summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--SConstruct9
-rw-r--r--core/event_queue.cpp2
-rw-r--r--core/message_queue.cpp2
-rw-r--r--core/os/input_event.cpp59
-rw-r--r--core/os/input_event.h4
-rw-r--r--core/os/thread.h7
-rw-r--r--core/path_remap.cpp19
-rw-r--r--core/resource.cpp28
-rw-r--r--core/resource.h2
-rw-r--r--core/script_language.cpp30
-rw-r--r--core/script_language.h12
-rw-r--r--core/typedefs.h1
-rw-r--r--core/variant_call.cpp14
-rw-r--r--doc/base/classes.xml156
-rw-r--r--drivers/openssl/stream_peer_openssl.cpp7
-rw-r--r--drivers/unix/dir_access_unix.cpp31
-rw-r--r--drivers/unix/thread_posix.cpp7
-rw-r--r--drivers/windows/dir_access_windows.cpp20
-rw-r--r--drivers/windows/thread_windows.cpp9
-rw-r--r--drivers/windows/thread_windows.h1
-rw-r--r--modules/cscript/SCsub5
-rw-r--r--modules/cscript/config.py11
-rw-r--r--modules/cscript/godot_c.cpp2
-rw-r--r--modules/cscript/godot_c.h568
-rw-r--r--modules/cscript/register_types.cpp37
-rw-r--r--modules/cscript/register_types.h30
-rw-r--r--modules/gdscript/gd_compiler.cpp4
-rw-r--r--modules/gdscript/gd_editor.cpp2
-rw-r--r--modules/gdscript/gd_function.cpp25
-rw-r--r--modules/gdscript/gd_function.h4
-rw-r--r--modules/gdscript/gd_parser.cpp37
-rw-r--r--modules/gdscript/gd_parser.h2
-rw-r--r--modules/gdscript/gd_script.cpp17
-rw-r--r--modules/gdscript/gd_script.h2
-rw-r--r--modules/gdscript/register_types.cpp2
-rw-r--r--platform/android/godot_android.cpp4
-rw-r--r--platform/android/java/src/org/godotengine/godot/Godot.java4
-rw-r--r--platform/android/java_glue.cpp4
-rw-r--r--platform/android/thread_jandroid.cpp3
-rw-r--r--platform/haiku/context_gl_haiku.cpp12
-rw-r--r--platform/haiku/context_gl_haiku.h5
-rw-r--r--platform/haiku/detect.py6
-rw-r--r--platform/windows/joystick.cpp2
-rw-r--r--platform/windows/os_windows.cpp8
-rw-r--r--platform/winrt/thread_winrt.cpp2
-rw-r--r--platform/x11/detect.py4
-rw-r--r--scene/2d/canvas_item.cpp68
-rw-r--r--scene/2d/canvas_item.h1
-rw-r--r--scene/2d/parallax_background.cpp15
-rw-r--r--scene/2d/parallax_background.h7
-rw-r--r--scene/2d/parallax_layer.cpp54
-rw-r--r--scene/2d/parallax_layer.h4
-rw-r--r--scene/2d/sprite.cpp2
-rw-r--r--scene/3d/skeleton.cpp16
-rw-r--r--scene/animation/animation_player.cpp14
-rw-r--r--scene/audio/stream_player.cpp10
-rw-r--r--scene/audio/stream_player.h2
-rw-r--r--scene/gui/base_button.cpp7
-rw-r--r--scene/gui/color_picker.cpp12
-rw-r--r--scene/gui/color_picker.h1
-rw-r--r--scene/gui/color_ramp_edit.cpp4
-rw-r--r--scene/gui/control.cpp19
-rw-r--r--scene/gui/control.h2
-rw-r--r--scene/gui/grid_container.cpp1
-rw-r--r--scene/gui/item_list.cpp16
-rw-r--r--scene/gui/item_list.h1
-rw-r--r--scene/gui/line_edit.cpp49
-rw-r--r--scene/gui/line_edit.h6
-rw-r--r--scene/gui/patch_9_frame.cpp5
-rw-r--r--scene/gui/text_edit.cpp7
-rw-r--r--scene/gui/tree.cpp7
-rw-r--r--scene/main/node.cpp14
-rw-r--r--scene/main/node.h3
-rw-r--r--scene/main/viewport.cpp97
-rw-r--r--scene/main/viewport.h1
-rw-r--r--scene/resources/animation.cpp22
-rw-r--r--scene/resources/animation.h3
-rw-r--r--scene/resources/packed_scene.cpp8
-rw-r--r--scene/resources/packed_scene.h1
-rw-r--r--scene/resources/sample.cpp2
-rw-r--r--scene/resources/sample.h1
-rw-r--r--scene/resources/sample_library.cpp10
-rw-r--r--scene/resources/scene_format_text.cpp55
-rw-r--r--scene/resources/scene_format_text.h2
-rw-r--r--scene/resources/style_box.cpp5
-rw-r--r--scene/resources/texture.cpp9
-rw-r--r--scene/resources/texture.h1
-rw-r--r--tools/doc/doc_data.cpp6
-rw-r--r--tools/editor/animation_editor.cpp24
-rw-r--r--tools/editor/animation_editor.h2
-rw-r--r--tools/editor/asset_library_editor_plugin.cpp2
-rw-r--r--tools/editor/editor_data.cpp4
-rw-r--r--tools/editor/editor_dir_dialog.cpp18
-rw-r--r--tools/editor/editor_file_dialog.cpp10
-rw-r--r--tools/editor/editor_file_system.cpp45
-rw-r--r--tools/editor/editor_node.cpp168
-rw-r--r--tools/editor/editor_node.h10
-rw-r--r--tools/editor/icons/2x/icon_zoom_less.pngbin0 -> 162 bytes
-rw-r--r--tools/editor/icons/2x/icon_zoom_more.pngbin0 -> 290 bytes
-rw-r--r--tools/editor/icons/2x/icon_zoom_reset.pngbin0 -> 689 bytes
-rw-r--r--tools/editor/icons/icon_loop_interpolation.pngbin374 -> 0 bytes
-rw-r--r--tools/editor/icons/icon_zoom_less.pngbin0 -> 149 bytes
-rw-r--r--tools/editor/icons/icon_zoom_more.pngbin0 -> 232 bytes
-rw-r--r--tools/editor/icons/icon_zoom_reset.pngbin0 -> 430 bytes
-rw-r--r--tools/editor/icons/source/icon_zoom_more.svg104
-rw-r--r--tools/editor/io_plugins/editor_scene_import_plugin.cpp92
-rw-r--r--tools/editor/plugins/animation_player_editor_plugin.cpp1
-rw-r--r--tools/editor/plugins/canvas_item_editor_plugin.cpp38
-rw-r--r--tools/editor/plugins/sample_editor_plugin.cpp5
-rw-r--r--tools/editor/plugins/script_editor_plugin.cpp22
-rw-r--r--tools/editor/plugins/script_editor_plugin.h2
-rw-r--r--tools/editor/plugins/shader_graph_editor_plugin.cpp4
-rw-r--r--tools/editor/plugins/sprite_frames_editor_plugin.cpp63
-rw-r--r--tools/editor/plugins/texture_region_editor_plugin.cpp891
-rw-r--r--tools/editor/plugins/texture_region_editor_plugin.h57
-rw-r--r--tools/editor/plugins/tile_map_editor_plugin.cpp2
-rw-r--r--tools/editor/project_manager.cpp3
-rw-r--r--tools/editor/property_editor.cpp1
-rw-r--r--tools/editor/scene_tree_dock.cpp22
-rw-r--r--tools/editor/scene_tree_dock.h2
-rw-r--r--tools/editor/scene_tree_editor.cpp16
-rw-r--r--tools/editor/scenes_dock.cpp5
-rw-r--r--tools/translations/ar.po165
-rw-r--r--tools/translations/bg.po6213
-rw-r--r--tools/translations/cs.po161
-rw-r--r--tools/translations/de.po220
-rw-r--r--tools/translations/de_CH.po299
-rw-r--r--tools/translations/es.po232
-rw-r--r--tools/translations/es_AR.po226
-rw-r--r--tools/translations/fr.po281
-rw-r--r--tools/translations/it.po311
-rw-r--r--tools/translations/ja.po6182
-rw-r--r--tools/translations/ko.po235
-rw-r--r--tools/translations/pt_BR.po232
-rw-r--r--tools/translations/ru.po383
-rw-r--r--tools/translations/sk.po238
-rw-r--r--tools/translations/tools.pot127
-rw-r--r--tools/translations/zh_CN.po241
-rw-r--r--tools/translations/zh_HK.po169
-rw-r--r--tools/translations/zh_TW.po161
140 files changed, 17677 insertions, 1804 deletions
diff --git a/SConstruct b/SConstruct
index 80d39403ba..01b1f2ce8e 100644
--- a/SConstruct
+++ b/SConstruct
@@ -77,7 +77,7 @@ env_base.android_manifest_chunk=""
env_base.android_permission_chunk=""
env_base.android_appattributes_chunk=""
env_base.disabled_modules=[]
-
+env_base.use_ptrcall=False
env_base.split_drivers=False
@@ -144,6 +144,7 @@ opts.Add('unix_global_settings_path', 'unix-specific path to system-wide setting
opts.Add('disable_3d', 'Disable 3D nodes for smaller executable (yes/no)', "no")
opts.Add('disable_advanced_gui', 'Disable advance 3D gui nodes and behaviors (yes/no)', "no")
opts.Add('colored', 'Enable colored output for the compilation (yes/no)', 'no')
+opts.Add('deprecated','Enable deprecated features (yes/no)','yes')
opts.Add('extra_suffix', 'Custom extra suffix added to the base filename of all generated binary files.', '')
opts.Add('vsproj', 'Generate Visual Studio Project. (yes/no)', 'no')
@@ -179,6 +180,9 @@ if (env_base['target']=='debug'):
env_base.Append(CPPFLAGS=['-DDEBUG_MEMORY_ALLOC']);
env_base.Append(CPPFLAGS=['-DSCI_NAMESPACE'])
+if (env_base['deprecated']!='no'):
+ env_base.Append(CPPFLAGS=['-DENABLE_DEPRECATED']);
+
env_base.platforms = {}
@@ -313,6 +317,9 @@ if selected_platform in platform_list:
sys.modules.pop('config')
+ if (env.use_ptrcall):
+ env.Append(CPPFLAGS=['-DPTRCALL_ENABLED']);
+
if (env['musepack']=='yes'):
env.Append(CPPFLAGS=['-DMUSEPACK_ENABLED']);
diff --git a/core/event_queue.cpp b/core/event_queue.cpp
index 53638c5431..958ef41132 100644
--- a/core/event_queue.cpp
+++ b/core/event_queue.cpp
@@ -92,7 +92,7 @@ Error EventQueue::push_call(uint32_t p_instance_ID, const StringName& p_method,
*v=p_arg5;
}
- if (buffer_max_used>buffer_end);
+ if (buffer_end > buffer_max_used)
buffer_max_used=buffer_end;
return OK;
diff --git a/core/message_queue.cpp b/core/message_queue.cpp
index c69021f4f0..f3daa46c3d 100644
--- a/core/message_queue.cpp
+++ b/core/message_queue.cpp
@@ -320,7 +320,7 @@ void MessageQueue::_call_function(Object* p_target, const StringName& p_func, co
void MessageQueue::flush() {
- if (buffer_max_used<buffer_end); {
+ if (buffer_end > buffer_max_used) {
buffer_max_used=buffer_end;
//statistics();
}
diff --git a/core/os/input_event.cpp b/core/os/input_event.cpp
index 2d47645a66..8c79657c64 100644
--- a/core/os/input_event.cpp
+++ b/core/os/input_event.cpp
@@ -199,3 +199,62 @@ uint32_t InputEventKey::get_scancode_with_modifiers() const {
return sc;
}
+
+InputEvent InputEvent::xform_by(const Matrix32& p_xform) const {
+
+
+ InputEvent ev=*this;
+
+ switch(ev.type) {
+
+ case InputEvent::MOUSE_BUTTON: {
+
+ Vector2 g = p_xform.xform(Vector2(ev.mouse_button.global_x,ev.mouse_button.global_y));
+ Vector2 l = p_xform.xform(Vector2(ev.mouse_button.x,ev.mouse_button.y));
+ ev.mouse_button.x=l.x;
+ ev.mouse_button.y=l.y;
+ ev.mouse_button.global_x=g.x;
+ ev.mouse_button.global_y=g.y;
+
+ } break;
+ case InputEvent::MOUSE_MOTION: {
+
+ Vector2 g = p_xform.xform(Vector2(ev.mouse_motion.global_x,ev.mouse_motion.global_y));
+ Vector2 l = p_xform.xform(Vector2(ev.mouse_motion.x,ev.mouse_motion.y));
+ Vector2 r = p_xform.basis_xform(Vector2(ev.mouse_motion.relative_x,ev.mouse_motion.relative_y));
+ Vector2 s = p_xform.basis_xform(Vector2(ev.mouse_motion.speed_x,ev.mouse_motion.speed_y));
+ ev.mouse_motion.x=l.x;
+ ev.mouse_motion.y=l.y;
+ ev.mouse_motion.global_x=g.x;
+ ev.mouse_motion.global_y=g.y;
+ ev.mouse_motion.relative_x=r.x;
+ ev.mouse_motion.relative_y=r.y;
+ ev.mouse_motion.speed_x=s.x;
+ ev.mouse_motion.speed_y=s.y;
+
+ } break;
+ case InputEvent::SCREEN_TOUCH: {
+
+
+ Vector2 t = p_xform.xform(Vector2(ev.screen_touch.x,ev.screen_touch.y));
+ ev.screen_touch.x=t.x;
+ ev.screen_touch.y=t.y;
+
+ } break;
+ case InputEvent::SCREEN_DRAG: {
+
+
+ Vector2 t = p_xform.xform(Vector2(ev.screen_drag.x,ev.screen_drag.y));
+ Vector2 r = p_xform.basis_xform(Vector2(ev.screen_drag.relative_x,ev.screen_drag.relative_y));
+ Vector2 s = p_xform.basis_xform(Vector2(ev.screen_drag.speed_x,ev.screen_drag.speed_y));
+ ev.screen_drag.x=t.x;
+ ev.screen_drag.y=t.y;
+ ev.screen_drag.relative_x=r.x;
+ ev.screen_drag.relative_y=r.y;
+ ev.screen_drag.speed_x=s.x;
+ ev.screen_drag.speed_y=s.y;
+ } break;
+ }
+
+ return ev;
+}
diff --git a/core/os/input_event.h b/core/os/input_event.h
index 0588374790..1c4f1dcf96 100644
--- a/core/os/input_event.h
+++ b/core/os/input_event.h
@@ -33,7 +33,7 @@
#include "typedefs.h"
#include "os/copymem.h"
#include "ustring.h"
-
+#include "math_2d.h"
/**
@author Juan Linietsky <reduzio@gmail.com>
*/
@@ -297,6 +297,8 @@ struct InputEvent {
bool is_echo() const;
void set_as_action(const String& p_action, bool p_pressed);
+
+ InputEvent xform_by(const Matrix32& p_xform) const;
bool operator==(const InputEvent &p_event) const;
operator String() const;
InputEvent() { zeromem(this,sizeof(InputEvent)); }
diff --git a/core/os/thread.h b/core/os/thread.h
index 7349b83dbc..5f0ec707f2 100644
--- a/core/os/thread.h
+++ b/core/os/thread.h
@@ -39,6 +39,8 @@
typedef void (*ThreadCreateCallback)(void *p_userdata);
+
+
class Thread {
public:
@@ -65,15 +67,14 @@ protected:
static void (*wait_to_finish_func)(Thread*);
static Error (*set_name_func)(const String&);
- friend class Main;
+ friend class Main;
- static ID _main_thread_id;
+ static ID _main_thread_id;
Thread();
public:
-
virtual ID get_ID() const=0;
static Error set_name(const String &p_name);
diff --git a/core/path_remap.cpp b/core/path_remap.cpp
index d4cb883f41..8f189187f2 100644
--- a/core/path_remap.cpp
+++ b/core/path_remap.cpp
@@ -59,12 +59,20 @@ String PathRemap::get_remap(const String& p_from) const {
return p_from;
} else {
+ const RemapData *ptr2=NULL;
+
String locale = TranslationServer::get_singleton()->get_locale();
if (ptr->locale.has(locale)) {
if (OS::get_singleton()->is_stdout_verbose())
print_line("remap found: "+p_from+" -> "+ptr->locale[locale]);
- return ptr->locale[locale];
+
+ ptr2=remap.getptr(ptr->locale[locale]);
+
+ if (ptr2 && ptr2->always!=String()) //may have atlas or export remap too
+ return ptr2->always;
+ else
+ return ptr->locale[locale];
}
int p = locale.find("_");
@@ -73,7 +81,14 @@ String PathRemap::get_remap(const String& p_from) const {
if (ptr->locale.has(locale)) {
if (OS::get_singleton()->is_stdout_verbose())
print_line("remap found: "+p_from+" -> "+ptr->locale[locale]);
- return ptr->locale[locale];
+
+ ptr2=remap.getptr(ptr->locale[locale]);
+
+ if (ptr2 && ptr2->always!=String()) //may have atlas or export remap too
+ return ptr2->always;
+ else
+ return ptr->locale[locale];
+
}
}
diff --git a/core/resource.cpp b/core/resource.cpp
index 97dee3e1d7..b80ec7012d 100644
--- a/core/resource.cpp
+++ b/core/resource.cpp
@@ -30,7 +30,7 @@
#include "core_string_names.h"
#include <stdio.h>
#include "os/file_access.h"
-
+#include "io/resource_loader.h"
void ResourceImportMetadata::set_editor(const String& p_editor) {
@@ -218,14 +218,36 @@ String Resource::get_name() const {
return name;
}
-bool Resource::can_reload_from_file() {
+bool Resource::editor_can_reload_from_file() {
- return false;
+ return true; //by default yes
}
void Resource::reload_from_file() {
+ String path=get_path();
+ if (!path.is_resource_file())
+ return;
+
+ Ref<Resource> s = ResourceLoader::load(path,get_type(),true);
+
+ if (!s.is_valid())
+ return;
+
+ List<PropertyInfo> pi;
+ s->get_property_list(&pi);
+
+ for (List<PropertyInfo>::Element *E=pi.front();E;E=E->next()) {
+
+ if (!(E->get().usage&PROPERTY_USAGE_STORAGE))
+ continue;
+ if (E->get().name=="resource/path")
+ continue; //do not change path
+
+ set(E->get().name,s->get(E->get().name));
+
+ }
}
diff --git a/core/resource.h b/core/resource.h
index 958414f62b..0673a4e89d 100644
--- a/core/resource.h
+++ b/core/resource.h
@@ -121,7 +121,7 @@ protected:
void _take_over_path(const String& p_path);
public:
- virtual bool can_reload_from_file();
+ virtual bool editor_can_reload_from_file();
virtual void reload_from_file();
void register_owner(Object *p_owner);
diff --git a/core/script_language.cpp b/core/script_language.cpp
index 68a694398a..75d8b6d285 100644
--- a/core/script_language.cpp
+++ b/core/script_language.cpp
@@ -85,6 +85,20 @@ void ScriptServer::register_language(ScriptLanguage *p_language) {
_languages[_language_count++]=p_language;
}
+void ScriptServer::unregister_language(ScriptLanguage *p_language) {
+
+
+ for(int i=0;i<_language_count;i++) {
+ if (_languages[i]==p_language) {
+ _language_count--;
+ if (i<_language_count) {
+ SWAP(_languages[i],_languages[_language_count]);
+ }
+ return;
+ }
+ }
+}
+
void ScriptServer::init_languages() {
for(int i=0;i<_language_count;i++) {
@@ -102,6 +116,22 @@ bool ScriptServer::is_reload_scripts_on_save_enabled() {
return reload_scripts_on_save;
}
+void ScriptServer::thread_enter() {
+
+ for(int i=0;i<_language_count;i++) {
+ _languages[i]->thread_enter();
+ }
+}
+
+void ScriptServer::thread_exit() {
+
+ for(int i=0;i<_language_count;i++) {
+ _languages[i]->thread_exit();
+ }
+
+}
+
+
void ScriptInstance::get_property_state(List<Pair<StringName, Variant> > &state) {
List<PropertyInfo> pinfo;
diff --git a/core/script_language.h b/core/script_language.h
index bde4d619ab..6d75b83aaf 100644
--- a/core/script_language.h
+++ b/core/script_language.h
@@ -55,10 +55,14 @@ public:
static int get_language_count();
static ScriptLanguage *get_language(int p_idx);
static void register_language(ScriptLanguage *p_language);
+ static void unregister_language(ScriptLanguage *p_language);
static void set_reload_scripts_on_save(bool p_enable);
static bool is_reload_scripts_on_save_enabled();
+ static void thread_enter();
+ static void thread_exit();
+
static void init_languages();
};
@@ -74,6 +78,7 @@ class Script : public Resource {
protected:
+ virtual bool editor_can_reload_from_file() { return false; } // this is handled by editor better
void _notification( int p_what);
static void _bind_methods();
@@ -128,7 +133,6 @@ public:
virtual void call_multilevel_reversed(const StringName& p_method,const Variant** p_args,int p_argcount);
virtual void notification(int p_notification)=0;
-
//this is used by script languages that keep a reference counter of their own
//you can make make Ref<> not die when it reaches zero, so deleting the reference
//depends entirely from the script
@@ -183,6 +187,12 @@ public:
virtual void auto_indent_code(String& p_code,int p_from_line,int p_to_line) const=0;
virtual void add_global_constant(const StringName& p_variable,const Variant& p_value)=0;
+ /* MULTITHREAD FUNCTIONS */
+
+ //some VMs need to be notified of thread creation/exiting to allocate a stack
+ virtual void thread_enter() {}
+ virtual void thread_exit() {}
+
/* DEBUGGER FUNCTIONS */
virtual String debug_get_error() const=0;
diff --git a/core/typedefs.h b/core/typedefs.h
index 6f9bb58958..30a75e66da 100644
--- a/core/typedefs.h
+++ b/core/typedefs.h
@@ -296,5 +296,6 @@ struct _GlobalLock {
#define __STR(m_index) __STRX(m_index)
+
#endif /* typedefs.h */
diff --git a/core/variant_call.cpp b/core/variant_call.cpp
index c0f8930eed..7b9dea4eab 100644
--- a/core/variant_call.cpp
+++ b/core/variant_call.cpp
@@ -516,6 +516,7 @@ static void _call_##m_type##_##m_method(Variant& r_ret,Variant& p_self,const Var
VCALL_LOCALMEM1(ByteArray,remove);
VCALL_LOCALMEM1(ByteArray,append);
VCALL_LOCALMEM1(ByteArray,append_array);
+ VCALL_LOCALMEM0(ByteArray,invert);
VCALL_LOCALMEM0R(IntArray,size);
VCALL_LOCALMEM2(IntArray,set);
@@ -526,6 +527,7 @@ static void _call_##m_type##_##m_method(Variant& r_ret,Variant& p_self,const Var
VCALL_LOCALMEM1(IntArray,remove);
VCALL_LOCALMEM1(IntArray,append);
VCALL_LOCALMEM1(IntArray,append_array);
+ VCALL_LOCALMEM0(IntArray,invert);
VCALL_LOCALMEM0R(RealArray,size);
VCALL_LOCALMEM2(RealArray,set);
@@ -536,6 +538,7 @@ static void _call_##m_type##_##m_method(Variant& r_ret,Variant& p_self,const Var
VCALL_LOCALMEM1(RealArray,remove);
VCALL_LOCALMEM1(RealArray,append);
VCALL_LOCALMEM1(RealArray,append_array);
+ VCALL_LOCALMEM0(RealArray,invert);
VCALL_LOCALMEM0R(StringArray,size);
VCALL_LOCALMEM2(StringArray,set);
@@ -546,6 +549,7 @@ static void _call_##m_type##_##m_method(Variant& r_ret,Variant& p_self,const Var
VCALL_LOCALMEM1(StringArray,remove);
VCALL_LOCALMEM1(StringArray,append);
VCALL_LOCALMEM1(StringArray,append_array);
+ VCALL_LOCALMEM0(StringArray,invert);
VCALL_LOCALMEM0R(Vector2Array,size);
VCALL_LOCALMEM2(Vector2Array,set);
@@ -556,6 +560,7 @@ static void _call_##m_type##_##m_method(Variant& r_ret,Variant& p_self,const Var
VCALL_LOCALMEM1(Vector2Array,remove);
VCALL_LOCALMEM1(Vector2Array,append);
VCALL_LOCALMEM1(Vector2Array,append_array);
+ VCALL_LOCALMEM0(Vector2Array,invert);
VCALL_LOCALMEM0R(Vector3Array,size);
VCALL_LOCALMEM2(Vector3Array,set);
@@ -566,6 +571,7 @@ static void _call_##m_type##_##m_method(Variant& r_ret,Variant& p_self,const Var
VCALL_LOCALMEM1(Vector3Array,remove);
VCALL_LOCALMEM1(Vector3Array,append);
VCALL_LOCALMEM1(Vector3Array,append_array);
+ VCALL_LOCALMEM0(Vector3Array,invert);
VCALL_LOCALMEM0R(ColorArray,size);
VCALL_LOCALMEM2(ColorArray,set);
@@ -576,6 +582,7 @@ static void _call_##m_type##_##m_method(Variant& r_ret,Variant& p_self,const Var
VCALL_LOCALMEM1(ColorArray,remove);
VCALL_LOCALMEM1(ColorArray,append);
VCALL_LOCALMEM1(ColorArray,append_array);
+ VCALL_LOCALMEM0(ColorArray,invert);
#define VCALL_PTR0(m_type,m_method)\
static void _call_##m_type##_##m_method(Variant& r_ret,Variant& p_self,const Variant** p_args) { reinterpret_cast<m_type*>(p_self._data._ptr)->m_method(); }
@@ -1506,6 +1513,7 @@ _VariantCall::addfunc(Variant::m_vtype,Variant::m_ret,_SCS(#m_method),VCALL(m_cl
ADDFUNC1(RAW_ARRAY,NIL,ByteArray,remove,INT,"idx",varray());
ADDFUNC2(RAW_ARRAY,INT,ByteArray,insert,INT,"idx",INT,"byte",varray());
ADDFUNC1(RAW_ARRAY,NIL,ByteArray,resize,INT,"idx",varray());
+ ADDFUNC0(RAW_ARRAY,NIL,ByteArray,invert,varray());
ADDFUNC0(RAW_ARRAY,STRING,ByteArray,get_string_from_ascii,varray());
ADDFUNC0(RAW_ARRAY,STRING,ByteArray,get_string_from_utf8,varray());
@@ -1519,6 +1527,7 @@ _VariantCall::addfunc(Variant::m_vtype,Variant::m_ret,_SCS(#m_method),VCALL(m_cl
ADDFUNC1(INT_ARRAY,NIL,IntArray,remove,INT,"idx",varray());
ADDFUNC2(INT_ARRAY,INT,IntArray,insert,INT,"idx",INT,"integer",varray());
ADDFUNC1(INT_ARRAY,NIL,IntArray,resize,INT,"idx",varray());
+ ADDFUNC0(INT_ARRAY,NIL,IntArray,invert,varray());
ADDFUNC0(REAL_ARRAY,INT,RealArray,size,varray());
ADDFUNC2(REAL_ARRAY,NIL,RealArray,set,INT,"idx",REAL,"value",varray());
@@ -1528,6 +1537,7 @@ _VariantCall::addfunc(Variant::m_vtype,Variant::m_ret,_SCS(#m_method),VCALL(m_cl
ADDFUNC1(REAL_ARRAY,NIL,RealArray,remove,INT,"idx",varray());
ADDFUNC2(REAL_ARRAY,INT,RealArray,insert,INT,"idx",REAL,"value",varray());
ADDFUNC1(REAL_ARRAY,NIL,RealArray,resize,INT,"idx",varray());
+ ADDFUNC0(REAL_ARRAY,NIL,RealArray,invert,varray());
ADDFUNC0(STRING_ARRAY,INT,StringArray,size,varray());
ADDFUNC2(STRING_ARRAY,NIL,StringArray,set,INT,"idx",STRING,"string",varray());
@@ -1537,6 +1547,7 @@ _VariantCall::addfunc(Variant::m_vtype,Variant::m_ret,_SCS(#m_method),VCALL(m_cl
ADDFUNC1(STRING_ARRAY,NIL,StringArray,remove,INT,"idx",varray());
ADDFUNC2(STRING_ARRAY,INT,StringArray,insert,INT,"idx",STRING,"string",varray());
ADDFUNC1(STRING_ARRAY,NIL,StringArray,resize,INT,"idx",varray());
+ ADDFUNC0(STRING_ARRAY,NIL,StringArray,invert,varray());
ADDFUNC0(VECTOR2_ARRAY,INT,Vector2Array,size,varray());
ADDFUNC2(VECTOR2_ARRAY,NIL,Vector2Array,set,INT,"idx",VECTOR2,"vector2",varray());
@@ -1546,6 +1557,7 @@ _VariantCall::addfunc(Variant::m_vtype,Variant::m_ret,_SCS(#m_method),VCALL(m_cl
ADDFUNC1(VECTOR2_ARRAY,NIL,Vector2Array,remove,INT,"idx",varray());
ADDFUNC2(VECTOR2_ARRAY,INT,Vector2Array,insert,INT,"idx",VECTOR2,"vector2",varray());
ADDFUNC1(VECTOR2_ARRAY,NIL,Vector2Array,resize,INT,"idx",varray());
+ ADDFUNC0(VECTOR2_ARRAY,NIL,Vector2Array,invert,varray());
ADDFUNC0(VECTOR3_ARRAY,INT,Vector3Array,size,varray());
ADDFUNC2(VECTOR3_ARRAY,NIL,Vector3Array,set,INT,"idx",VECTOR3,"vector3",varray());
@@ -1555,6 +1567,7 @@ _VariantCall::addfunc(Variant::m_vtype,Variant::m_ret,_SCS(#m_method),VCALL(m_cl
ADDFUNC1(VECTOR3_ARRAY,NIL,Vector3Array,remove,INT,"idx",varray());
ADDFUNC2(VECTOR3_ARRAY,INT,Vector3Array,insert,INT,"idx",VECTOR3,"vector3",varray());
ADDFUNC1(VECTOR3_ARRAY,NIL,Vector3Array,resize,INT,"idx",varray());
+ ADDFUNC0(VECTOR3_ARRAY,NIL,Vector3Array,invert,varray());
ADDFUNC0(COLOR_ARRAY,INT,ColorArray,size,varray());
ADDFUNC2(COLOR_ARRAY,NIL,ColorArray,set,INT,"idx",COLOR,"color",varray());
@@ -1564,6 +1577,7 @@ _VariantCall::addfunc(Variant::m_vtype,Variant::m_ret,_SCS(#m_method),VCALL(m_cl
ADDFUNC1(COLOR_ARRAY,NIL,ColorArray,remove,INT,"idx",varray());
ADDFUNC2(COLOR_ARRAY,INT,ColorArray,insert,INT,"idx",COLOR,"color",varray());
ADDFUNC1(COLOR_ARRAY,NIL,ColorArray,resize,INT,"idx",varray());
+ ADDFUNC0(COLOR_ARRAY,NIL,ColorArray,invert,varray());
//pointerbased
diff --git a/doc/base/classes.xml b/doc/base/classes.xml
index 09554e6a98..4b5c424d4b 100644
--- a/doc/base/classes.xml
+++ b/doc/base/classes.xml
@@ -2517,12 +2517,6 @@
Return whether the animation has the loop flag set.
</description>
</method>
- <method name="has_loop_interpolation" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
<method name="method_track_get_key_indices" qualifiers="const">
<return type="IntArray">
</return>
@@ -2579,12 +2573,6 @@
Set a flag indicating that the animation must loop. This is uses for correct interpolation of animation cycles, and for hinting the player that it must restart the animation.
</description>
</method>
- <method name="set_loop_interpolation">
- <argument index="0" name="enabled" type="bool">
- </argument>
- <description>
- </description>
- </method>
<method name="set_step">
<argument index="0" name="size_sec" type="float">
</argument>
@@ -4685,6 +4673,12 @@
</description>
</method>
</methods>
+ <signals>
+ <signal name="atlas_changed">
+ <description>
+ </description>
+ </signal>
+ </signals>
<constants>
</constants>
</class>
@@ -6994,6 +6988,12 @@
Set a custom transform for drawing. Anything drawn afterwards will be transformed by this.
</description>
</method>
+ <method name="draw_set_transform_matrix">
+ <argument index="0" name="xform" type="Matrix32">
+ </argument>
+ <description>
+ </description>
+ </method>
<method name="draw_string">
<argument index="0" name="font" type="Font">
</argument>
@@ -8544,6 +8544,11 @@
Insert a new element at a given position in the array. The position must be valid, or at the end of the array (pos==size()).
</description>
</method>
+ <method name="invert">
+ <description>
+ Reverse the order of the elements in the array (so first element will now be the last).
+ </description>
+ </method>
<method name="push_back">
<argument index="0" name="color" type="Color">
</argument>
@@ -17192,6 +17197,11 @@ Example: (content-length:12), (Content-Type:application/json; charset=UTF-8)
Insert a new int at a given position in the array. The position must be valid, or at the end of the array (pos==size()).
</description>
</method>
+ <method name="invert">
+ <description>
+ Reverse the order of the elements in the array (so first element will now be the last).
+ </description>
+ </method>
<method name="push_back">
<argument index="0" name="integer" type="int">
</argument>
@@ -17497,6 +17507,13 @@ Example: (content-length:12), (Content-Type:application/json; charset=UTF-8)
<description>
</description>
</method>
+ <method name="get_selected_items">
+ <return type="IntArray">
+ </return>
+ <description>
+ Returns a list of selected indexes.
+ </description>
+ </method>
<method name="is_item_disabled" qualifiers="const">
<return type="bool">
</return>
@@ -18902,6 +18919,34 @@ Example: (content-length:12), (Content-Type:application/json; charset=UTF-8)
Clear the [LineEdit] text.
</description>
</method>
+ <method name="cursor_get_blink_enabled" qualifiers="const">
+ <return type="bool">
+ </return>
+ <description>
+ Gets whether the line edit caret is blinking.
+ </description>
+ </method>
+ <method name="cursor_get_blink_speed" qualifiers="const">
+ <return type="float">
+ </return>
+ <description>
+ Gets the line edit caret blink speed.
+ </description>
+ </method>
+ <method name="cursor_set_blink_enabled">
+ <argument index="0" name="enable" type="bool">
+ </argument>
+ <description>
+ Set the line edit caret to blink.
+ </description>
+ </method>
+ <method name="cursor_set_blink_speed">
+ <argument index="0" name="blink_speed" type="float">
+ </argument>
+ <description>
+ Set the line edit caret blink speed. Cannot be less then or equal to 0.
+ </description>
+ </method>
<method name="get_align" qualifiers="const">
<return type="int">
</return>
@@ -18981,34 +19026,6 @@ Example: (content-length:12), (Content-Type:application/json; charset=UTF-8)
Set the cursor position inside the [LineEdit], causing it to scroll if needed.
</description>
</method>
- <method name="cursor_set_blink_enabled">
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- Set the line edit caret to blink.
- </description>
- </method>
- <method name="cursor_get_blink_enabled" qualifiers="const">
- <return type="float">
- </return>
- <description>
- Gets whether the line edit caret is blinking.
- </description>
- </method>
- <method name="cursor_set_blink_speed">
- <argument index="0" name="blink_speed" type="float">
- </argument>
- <description>
- Set the line edit caret blink speed. Cannot be less then or equal to 0.
- </description>
- </method>
- <method name="cursor_get_blink_speed" qualifiers="const">
- <return type="float">
- </return>
- <description>
- Gets the line edit caret blink speed.
- </description>
- </method>
<method name="set_editable">
<argument index="0" name="enabled" type="bool">
</argument>
@@ -24026,6 +24043,12 @@ Example: (content-length:12), (Content-Type:application/json; charset=UTF-8)
Return the mirroring of the ParallaxLayer.
</description>
</method>
+ <method name="get_motion_offset" qualifiers="const">
+ <return type="Vector2">
+ </return>
+ <description>
+ </description>
+ </method>
<method name="get_motion_scale" qualifiers="const">
<return type="Vector2">
</return>
@@ -24040,6 +24063,12 @@ Example: (content-length:12), (Content-Type:application/json; charset=UTF-8)
Set the mirroring of the ParallaxLayer. If an axis is set to 0 then that axis will have no mirroring.
</description>
</method>
+ <method name="set_motion_offset">
+ <argument index="0" name="offset" type="Vector2">
+ </argument>
+ <description>
+ </description>
+ </method>
<method name="set_motion_scale">
<argument index="0" name="scale" type="Vector2">
</argument>
@@ -24872,6 +24901,12 @@ Example: (content-length:12), (Content-Type:application/json; charset=UTF-8)
</description>
</method>
</methods>
+ <signals>
+ <signal name="texture_changed">
+ <description>
+ </description>
+ </signal>
+ </signals>
<constants>
</constants>
</class>
@@ -30279,6 +30314,11 @@ A similar effect may be achieved moving this node's descendants.
Insert a new element at a given position in the array. The position must be valid, or at the end of the array (pos==size()).
</description>
</method>
+ <method name="invert">
+ <description>
+ Reverse the order of the elements in the array (so first element will now be the last).
+ </description>
+ </method>
<method name="push_back">
<argument index="0" name="byte" type="int">
</argument>
@@ -30657,6 +30697,11 @@ A similar effect may be achieved moving this node's descendants.
Insert a new element at a given position in the array. The position must be valid, or at the end of the array (pos==size()).
</description>
</method>
+ <method name="invert">
+ <description>
+ Reverse the order of the elements in the array (so first element will now be the last).
+ </description>
+ </method>
<method name="push_back">
<argument index="0" name="value" type="float">
</argument>
@@ -36484,6 +36529,10 @@ A similar effect may be achieved moving this node's descendants.
<description>
</description>
</signal>
+ <signal name="texture_changed">
+ <description>
+ </description>
+ </signal>
</signals>
<constants>
</constants>
@@ -38120,6 +38169,11 @@ A similar effect may be achieved moving this node's descendants.
Insert a new element at a given position in the array. The position must be valid, or at the end of the array (pos==size()).
</description>
</method>
+ <method name="invert">
+ <description>
+ Reverse the order of the elements in the array (so first element will now be the last).
+ </description>
+ </method>
<method name="push_back">
<argument index="0" name="string" type="String">
</argument>
@@ -38470,6 +38524,12 @@ A similar effect may be achieved moving this node's descendants.
</description>
</method>
</methods>
+ <signals>
+ <signal name="texture_changed">
+ <description>
+ </description>
+ </signal>
+ </signals>
<constants>
</constants>
</class>
@@ -39332,6 +39392,10 @@ A similar effect may be achieved moving this node's descendants.
</theme_item>
<theme_item name="completion" type="StyleBox">
</theme_item>
+ <theme_item name="completion_background_color" type="Color">
+ </theme_item>
+ <theme_item name="completion_existing_color" type="Color">
+ </theme_item>
<theme_item name="completion_lines" type="int">
</theme_item>
<theme_item name="completion_max_width" type="int">
@@ -39340,6 +39404,8 @@ A similar effect may be achieved moving this node's descendants.
</theme_item>
<theme_item name="completion_scroll_width" type="int">
</theme_item>
+ <theme_item name="completion_selected_color" type="Color">
+ </theme_item>
<theme_item name="current_line_color" type="Color">
</theme_item>
<theme_item name="focus" type="StyleBox">
@@ -43043,6 +43109,11 @@ A similar effect may be achieved moving this node's descendants.
Insert a new element at a given position in the array. The position must be valid, or at the end of the array (pos==size()).
</description>
</method>
+ <method name="invert">
+ <description>
+ Reverse the order of the elements in the array (so first element will now be the last).
+ </description>
+ </method>
<method name="push_back">
<argument index="0" name="vector2" type="Vector2">
</argument>
@@ -43334,6 +43405,11 @@ A similar effect may be achieved moving this node's descendants.
Insert a new element at a given position in the array. The position must be valid, or at the end of the array (pos==size()).
</description>
</method>
+ <method name="invert">
+ <description>
+ Reverse the order of the elements in the array (so first element will now be the last).
+ </description>
+ </method>
<method name="push_back">
<argument index="0" name="vector3" type="Vector3">
</argument>
diff --git a/drivers/openssl/stream_peer_openssl.cpp b/drivers/openssl/stream_peer_openssl.cpp
index 67f58b6028..9349df3793 100644
--- a/drivers/openssl/stream_peer_openssl.cpp
+++ b/drivers/openssl/stream_peer_openssl.cpp
@@ -309,6 +309,9 @@ Error StreamPeerOpenSSL::connect(Ref<StreamPeer> p_base, bool p_validate_certs,
validate_certs=p_validate_certs;
validate_hostname=p_for_hostname!="";
+
+
+
if (p_validate_certs) {
@@ -380,6 +383,10 @@ Error StreamPeerOpenSSL::connect(Ref<StreamPeer> p_base, bool p_validate_certs,
bio->ptr = this;
SSL_set_bio( ssl, bio, bio );
+ if (p_for_hostname!=String()) {
+ SSL_set_tlsext_host_name(ssl,p_for_hostname.utf8().get_data());
+ }
+
use_blocking=true; // let handshake use blocking
// Set the SSL to automatically retry on failure.
SSL_set_mode(ssl, SSL_MODE_AUTO_RETRY);
diff --git a/drivers/unix/dir_access_unix.cpp b/drivers/unix/dir_access_unix.cpp
index f0e4511b1d..544d3883dc 100644
--- a/drivers/unix/dir_access_unix.cpp
+++ b/drivers/unix/dir_access_unix.cpp
@@ -67,8 +67,8 @@ bool DirAccessUnix::file_exists(String p_file) {
if (p_file.is_rel_path())
p_file=current_dir.plus_file(p_file);
- else
- p_file=fix_path(p_file);
+
+ p_file=fix_path(p_file);
struct stat flags;
bool success = (stat(p_file.utf8().get_data(),&flags)==0);
@@ -88,8 +88,8 @@ bool DirAccessUnix::dir_exists(String p_dir) {
if (p_dir.is_rel_path())
p_dir=get_current_dir().plus_file(p_dir);
- else
- p_dir=fix_path(p_dir);
+
+ p_dir=fix_path(p_dir);
struct stat flags;
bool success = (stat(p_dir.utf8().get_data(),&flags)==0);
@@ -105,8 +105,8 @@ uint64_t DirAccessUnix::get_modified_time(String p_file) {
if (p_file.is_rel_path())
p_file=current_dir.plus_file(p_file);
- else
- p_file=fix_path(p_file);
+
+ p_file=fix_path(p_file);
struct stat flags;
bool success = (stat(p_file.utf8().get_data(),&flags)==0);
@@ -201,8 +201,11 @@ Error DirAccessUnix::make_dir(String p_dir) {
if (p_dir.is_rel_path())
p_dir=get_current_dir().plus_file(p_dir);
- else
- p_dir=fix_path(p_dir);
+
+
+ p_dir=fix_path(p_dir);
+
+
#if 1
@@ -287,13 +290,13 @@ Error DirAccessUnix::rename(String p_path,String p_new_path) {
if (p_path.is_rel_path())
p_path=get_current_dir().plus_file(p_path);
- else
- p_path=fix_path(p_path);
+
+ p_path=fix_path(p_path);
if (p_new_path.is_rel_path())
p_new_path=get_current_dir().plus_file(p_new_path);
- else
- p_new_path=fix_path(p_new_path);
+
+ p_new_path=fix_path(p_new_path);
return ::rename(p_path.utf8().get_data(),p_new_path.utf8().get_data())==0?OK:FAILED;
}
@@ -301,8 +304,8 @@ Error DirAccessUnix::remove(String p_path) {
if (p_path.is_rel_path())
p_path=get_current_dir().plus_file(p_path);
- else
- p_path=fix_path(p_path);
+
+ p_path=fix_path(p_path);
struct stat flags;
if ((stat(p_path.utf8().get_data(),&flags)!=0))
diff --git a/drivers/unix/thread_posix.cpp b/drivers/unix/thread_posix.cpp
index 6ace64a923..c71e09685b 100644
--- a/drivers/unix/thread_posix.cpp
+++ b/drivers/unix/thread_posix.cpp
@@ -27,6 +27,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "thread_posix.h"
+#include "script_language.h"
#if defined(UNIX_ENABLED) || defined(PTHREAD_ENABLED)
@@ -50,7 +51,13 @@ void *ThreadPosix::thread_callback(void *userdata) {
ThreadPosix *t=reinterpret_cast<ThreadPosix*>(userdata);
t->id=(ID)pthread_self();
+
+ ScriptServer::thread_enter(); //scripts may need to attach a stack
+
t->callback(t->user);
+
+ ScriptServer::thread_exit();
+
return NULL;
}
diff --git a/drivers/windows/dir_access_windows.cpp b/drivers/windows/dir_access_windows.cpp
index fa18f7c1f5..90e43d2518 100644
--- a/drivers/windows/dir_access_windows.cpp
+++ b/drivers/windows/dir_access_windows.cpp
@@ -193,8 +193,8 @@ Error DirAccessWindows::make_dir(String p_dir) {
if (p_dir.is_rel_path())
p_dir=get_current_dir().plus_file(p_dir);
- else
- p_dir=fix_path(p_dir);
+
+ p_dir=fix_path(p_dir);
p_dir = p_dir.replace("/","\\");
bool success;
@@ -268,8 +268,8 @@ bool DirAccessWindows::dir_exists(String p_dir) {
if (p_dir.is_rel_path())
p_dir=get_current_dir().plus_file(p_dir);
- else
- p_dir=fix_path(p_dir);
+
+ p_dir=fix_path(p_dir);
//p_dir.replace("/","\\");
@@ -289,13 +289,13 @@ Error DirAccessWindows::rename(String p_path,String p_new_path) {
if (p_path.is_rel_path())
p_path=get_current_dir().plus_file(p_path);
- else
- p_path=fix_path(p_path);
+
+ p_path=fix_path(p_path);
if (p_new_path.is_rel_path())
p_new_path=get_current_dir().plus_file(p_new_path);
- else
- p_new_path=fix_path(p_new_path);
+
+ p_new_path=fix_path(p_new_path);
if (file_exists(p_new_path)) {
if (remove(p_new_path) != OK) {
@@ -310,8 +310,8 @@ Error DirAccessWindows::remove(String p_path) {
if (p_path.is_rel_path())
p_path=get_current_dir().plus_file(p_path);
- else
- p_path=fix_path(p_path);
+
+ p_path=fix_path(p_path);
printf("erasing %s\n",p_path.utf8().get_data());
diff --git a/drivers/windows/thread_windows.cpp b/drivers/windows/thread_windows.cpp
index d5e489aab4..884575e81e 100644
--- a/drivers/windows/thread_windows.cpp
+++ b/drivers/windows/thread_windows.cpp
@@ -32,6 +32,7 @@
#include "os/memory.h"
+
Thread::ID ThreadWindows::get_ID() const {
return id;
@@ -45,8 +46,14 @@ Thread* ThreadWindows::create_thread_windows() {
DWORD ThreadWindows::thread_callback( LPVOID userdata ) {
ThreadWindows *t=reinterpret_cast<ThreadWindows*>(userdata);
- t->callback(t->user);
+
+ ScriptServer::thread_enter(); //scripts may need to attach a stack
+
t->id=(ID)GetCurrentThreadId(); // must implement
+ t->callback(t->user);
+
+ ScriptServer::thread_exit();
+
return 0;
}
diff --git a/drivers/windows/thread_windows.h b/drivers/windows/thread_windows.h
index b051bfe370..1c90504dde 100644
--- a/drivers/windows/thread_windows.h
+++ b/drivers/windows/thread_windows.h
@@ -36,6 +36,7 @@
#ifdef WINDOWS_ENABLED
#include "os/thread.h"
+#include "script_language.h"
#include <windows.h>
class ThreadWindows : public Thread {
diff --git a/modules/cscript/SCsub b/modules/cscript/SCsub
new file mode 100644
index 0000000000..403fe68f66
--- /dev/null
+++ b/modules/cscript/SCsub
@@ -0,0 +1,5 @@
+Import('env')
+
+env.add_source_files(env.modules_sources,"*.cpp")
+
+Export('env')
diff --git a/modules/cscript/config.py b/modules/cscript/config.py
new file mode 100644
index 0000000000..ea7e83378a
--- /dev/null
+++ b/modules/cscript/config.py
@@ -0,0 +1,11 @@
+
+
+def can_build(platform):
+ return True
+
+
+def configure(env):
+ pass
+
+
+
diff --git a/modules/cscript/godot_c.cpp b/modules/cscript/godot_c.cpp
new file mode 100644
index 0000000000..d5c1b53dfe
--- /dev/null
+++ b/modules/cscript/godot_c.cpp
@@ -0,0 +1,2 @@
+#include "godot_c.h"
+
diff --git a/modules/cscript/godot_c.h b/modules/cscript/godot_c.h
new file mode 100644
index 0000000000..b0465d8524
--- /dev/null
+++ b/modules/cscript/godot_c.h
@@ -0,0 +1,568 @@
+#ifndef GODOT_C_H
+#define GODOT_C_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#if defined(GDAPI_BUILT_IN) || !defined(WINDOWS_ENABLED)
+#define GDAPI
+#elif defined(GDAPI_EXPORTS)
+#define GDAPI __declspec(dllexport)
+#else
+#define GDAPI __declspec(dllimport)
+#endif
+
+
+#define GODOT_API_VERSION 1
+
+
+typedef int godot_bool;
+
+#define GODOT_FALSE 0
+#define GODOT_TRUE 1
+
+////// Image
+
+
+#define GODOT_IMAGE_FORMAT_GRAYSCALE 0
+#define GODOT_IMAGE_FORMAT_INTENSITY 1
+#define GODOT_IMAGE_FORMAT_GRAYSCALE_ALPHA 2
+#define GODOT_IMAGE_FORMAT_RGB 3
+#define GODOT_IMAGE_FORMAT_RGBA 4
+#define GODOT_IMAGE_FORMAT_INDEXED 5
+#define GODOT_IMAGE_FORMAT_INDEXED_ALPHA 6
+#define GODOT_IMAGE_FORMAT_YUV_422 7
+#define GODOT_IMAGE_FORMAT_YUV_444 8
+#define GODOT_IMAGE_FORMAT_BC1 9
+#define GODOT_IMAGE_FORMAT_BC2 10
+#define GODOT_IMAGE_FORMAT_BC3 11
+#define GODOT_IMAGE_FORMAT_BC4 12
+#define GODOT_IMAGE_FORMAT_BC5 13
+#define GODOT_IMAGE_FORMAT_PVRTC2 14
+#define GODOT_IMAGE_FORMAT_PVRTC2_ALPHA 15
+#define GODOT_IMAGE_FORMAT_PVRTC4 16
+#define GODOT_IMAGE_FORMAT_PVRTC4_ALPHA 17
+#define GODOT_IMAGE_FORMAT_ETC 18
+#define GODOT_IMAGE_FORMAT_ATC 19
+#define GODOT_IMAGE_FORMAT_ATC_ALPHA_EXPLICIT 20
+#define GODOT_IMAGE_FORMAT_ATC_ALPHA_INTERPOLATED 21
+
+typedef void* godot_image;
+
+godot_image GDAPI godot_image_create_empty();
+godot_image GDAPI godot_image_create(int p_width,int p_height,int p_format,int p_use_mipmaps);
+godot_image GDAPI godot_image_create_with_data(int p_width,int p_height,int p_format,int p_use_mipmaps,unsigned char* p_buffer);
+int GDAPI godot_image_get_width(godot_image p_image);
+int GDAPI godot_image_get_height(godot_image p_image);
+int GDAPI godot_image_get_format(godot_image p_image);
+int GDAPI godot_image_get_mipmap_count(godot_image p_image);
+godot_image GDAPI godot_image_copy(godot_image p_image);
+void GDAPI godot_image_free(godot_image p_image);
+
+
+////// RID
+
+typedef void* godot_rid;
+
+godot_rid GDAPI godot_rid_create();
+godot_rid GDAPI godot_rid_copy(godot_rid p_rid);
+void GDAPI godot_rid_free(godot_rid p_rid);
+
+////// Variant (forward declared)
+
+typedef void* godot_variant;
+
+
+////// Dictionary
+
+typedef void* godot_dictionary;
+
+godot_dictionary GDAPI godot_dictionary_create();
+void GDAPI godot_dictionary_has(godot_dictionary p_dictionary,godot_variant p_key);
+godot_variant GDAPI godot_dictionary_get(godot_dictionary p_dictionary,godot_variant p_key);
+void GDAPI godot_dictionary_insert(godot_dictionary p_dictionary,godot_variant p_key,godot_variant p_value);
+void GDAPI godot_dictionary_remove(godot_dictionary p_dictionary,godot_variant p_key);
+void GDAPI godot_dictionary_clear(godot_dictionary p_dictionary);
+int GDAPI godot_dictionary_get_size(godot_dictionary p_dictionary);
+void GDAPI godot_dictionary_get_keys(godot_dictionary p_dictionary,godot_variant* p_keys);
+godot_dictionary GDAPI godot_dictionary_copy(godot_dictionary p_dictionary);
+void GDAPI godot_dictionary_free(godot_dictionary p_dictionary);
+
+////// Array
+
+typedef void* godot_array;
+
+godot_array GDAPI godot_array_create();
+godot_variant GDAPI godot_array_get(godot_array p_array,int p_index);
+void GDAPI godot_array_set(godot_array p_array,int p_index,godot_variant p_value);
+void GDAPI godot_array_resize(godot_array p_array,int p_size);
+void GDAPI godot_array_insert(godot_array p_array,int p_position,godot_variant p_value);
+void GDAPI godot_array_remove(godot_array p_array,int p_position);
+void GDAPI godot_array_clear(godot_array p_array);
+int GDAPI godot_array_get_size(godot_array p_array);
+int GDAPI godot_array_find(godot_array p_array,godot_variant p_value,int p_from_pos=-1);
+godot_array GDAPI godot_array_copy(godot_array p_array);
+void GDAPI godot_array_free(godot_array p_array);
+
+////// InputEvent
+
+#define INPUT_EVENT_BUTTON_LEFT 1
+#define INPUT_EVENT_BUTTON_RIGHT 2
+#define INPUT_EVENT_BUTTON_MIDDLE 3
+#define INPUT_EVENT_BUTTON_WHEEL_UP 4
+#define INPUT_EVENT_BUTTON_WHEEL_DOWN 5
+#define INPUT_EVENT_BUTTON_WHEEL_LEFT 6
+#define INPUT_EVENT_BUTTON_WHEEL_RIGHT 7
+#define INPUT_EVENT_BUTTON_MASK_LEFT (1<<(INPUT_EVENT_BUTTON_LEFT-1))
+#define INPUT_EVENT_BUTTON_MASK_RIGHT (1<<(INPUT_EVENT_BUTTON_RIGHT-1))
+#define INPUT_EVENT_BUTTON_MASK_MIDDLE (1<<(INPUT_EVENT_BUTTON_MIDDLE-1))
+
+#define INPUT_EVENT_TYPE_NONE 0
+#define INPUT_EVENT_TYPE_KEY 1
+#define INPUT_EVENT_TYPE_MOUSE_MOTION 2
+#define INPUT_EVENT_TYPE_MOUSE_BUTTON 3
+#define INPUT_EVENT_TYPE_JOYSTICK_MOTION 4
+#define INPUT_EVENT_TYPE_JOYSTICK_BUTTON 5
+#define INPUT_EVENT_TYPE_SCREEN_TOUCH 6
+#define INPUT_EVENT_TYPE_SCREEN_DRAG 7
+#define INPUT_EVENT_TYPE_ACTION 8
+
+typedef void* godot_input_event;
+
+
+godot_input_event GDAPI godot_input_event_create();
+godot_input_event GDAPI godot_input_event_copy(godot_input_event p_input_event);
+void GDAPI godot_input_event_free(godot_input_event p_input_event);
+
+int GDAPI godot_input_event_get_type(godot_input_event p_event);
+int GDAPI godot_input_event_get_device(godot_input_event p_event);
+
+godot_bool GDAPI godot_input_event_mod_has_alt(godot_input_event p_event);
+godot_bool GDAPI godot_input_event_mod_has_ctrl(godot_input_event p_event);
+godot_bool GDAPI godot_input_event_mod_has_command(godot_input_event p_event);
+godot_bool GDAPI godot_input_event_mod_has_shift(godot_input_event p_event);
+godot_bool GDAPI godot_input_event_mod_has_meta(godot_input_event p_event);
+
+int GDAPI godot_input_event_key_get_scancode(godot_input_event p_event);
+int GDAPI godot_input_event_key_get_unicode(godot_input_event p_event);
+godot_bool GDAPI godot_input_event_key_is_pressed(godot_input_event p_event);
+godot_bool GDAPI godot_input_event_key_is_echo(godot_input_event p_event);
+
+int GDAPI godot_input_event_mouse_get_x(godot_input_event p_event);
+int GDAPI godot_input_event_mouse_get_y(godot_input_event p_event);
+int GDAPI godot_input_event_mouse_get_global_x(godot_input_event p_event);
+int GDAPI godot_input_event_mouse_get_global_y(godot_input_event p_event);
+int GDAPI godot_input_event_mouse_get_button_mask(godot_input_event p_event);
+
+int GDAPI godot_input_event_mouse_button_get_button_index(godot_input_event p_event);
+godot_bool GDAPI godot_input_event_mouse_button_is_pressed(godot_input_event p_event);
+godot_bool GDAPI godot_input_event_mouse_button_is_doubleclick(godot_input_event p_event);
+
+int GDAPI godot_input_event_mouse_motion_get_relative_x(godot_input_event p_event);
+int GDAPI godot_input_event_mouse_motion_get_relative_y(godot_input_event p_event);
+
+int GDAPI godot_input_event_mouse_motion_get_speed_x(godot_input_event p_event);
+int GDAPI godot_input_event_mouse_motion_get_speed_y(godot_input_event p_event);
+
+int GDAPI godot_input_event_joystick_motion_get_axis(godot_input_event p_event);
+float GDAPI godot_input_event_joystick_motion_get_axis_value(godot_input_event p_event);
+
+int GDAPI godot_input_event_joystick_button_get_button_index(godot_input_event p_event);
+godot_bool GDAPI godot_input_event_joystick_button_is_pressed(godot_input_event p_event);
+float GDAPI godot_input_event_joystick_button_get_pressure(godot_input_event p_event);
+
+
+int GDAPI godot_input_event_screen_touch_get_index(godot_input_event p_event);
+int GDAPI godot_input_event_screen_touch_get_x(godot_input_event p_event);
+int GDAPI godot_input_event_screen_touch_get_y(godot_input_event p_event);
+int GDAPI godot_input_event_screen_touch_is_pressed(godot_input_event p_event);
+
+int GDAPI godot_input_event_screen_drag_get_index(godot_input_event p_event);
+int GDAPI godot_input_event_screen_drag_get_x(godot_input_event p_event);
+int GDAPI godot_input_event_screen_drag_get_y(godot_input_event p_event);
+int GDAPI godot_input_event_screen_drag_get_relative_x(godot_input_event p_event);
+int GDAPI godot_input_event_screen_drag_get_relative_y(godot_input_event p_event);
+int GDAPI godot_input_event_screen_drag_get_speed_x(godot_input_event p_event);
+int GDAPI godot_input_event_screen_drag_get_speed_y(godot_input_event p_event);
+
+int GDAPI godot_input_event_is_action(godot_input_event p_event,char *p_action);
+int GDAPI godot_input_event_is_action_pressed(godot_input_event p_event,char *p_action);
+
+////// ByteArray
+
+typedef void* godot_byte_array;
+
+godot_byte_array GDAPI godot_byte_array_create();
+godot_byte_array GDAPI godot_byte_array_copy(godot_byte_array p_byte_array);
+void GDAPI godot_byte_array_free(godot_byte_array p_byte_array);
+
+int GDAPI godot_byte_array_get_size(godot_byte_array p_byte_array);
+unsigned char GDAPI godot_byte_array_get(godot_byte_array p_byte_array,int p_index);
+void GDAPI godot_byte_array_set(godot_byte_array p_byte_array,int p_index,unsigned char p_value);
+void GDAPI godot_byte_array_remove(godot_byte_array p_byte_array,int p_index);
+void GDAPI godot_byte_array_clear(godot_byte_array p_byte_array);
+
+typedef void* godot_byte_array_lock;
+
+godot_byte_array_lock GDAPI godot_byte_array_get_lock(godot_byte_array p_byte_array);
+unsigned char GDAPI *godot_byte_array_lock_get_pointer(godot_byte_array_lock p_byte_array_lock);
+void GDAPI godot_byte_array_lock_free(godot_byte_array_lock p_byte_array_lock);
+
+
+godot_image GDAPI godot_image_create_with_array(int p_width,int p_height,int p_format,int p_use_mipmaps,godot_array p_array);
+godot_byte_array GDAPI godot_image_get_data(godot_image p_image);
+
+
+////// IntArray
+
+typedef void* godot_int_array;
+
+godot_int_array GDAPI godot_int_array_create();
+godot_int_array GDAPI godot_int_array_copy(godot_int_array p_int_array);
+void GDAPI godot_int_array_free(godot_int_array p_int_array);
+
+int GDAPI godot_int_array_get_size(godot_int_array p_int_array);
+int GDAPI godot_int_array_get(godot_int_array p_int_array,int p_index);
+void GDAPI godot_int_array_set(godot_int_array p_int_array,int p_index,int p_value);
+void GDAPI godot_int_array_remove(godot_int_array p_int_array,int p_index);
+void GDAPI godot_int_array_clear(godot_int_array p_int_array);
+
+typedef void* godot_int_array_lock;
+
+godot_int_array_lock GDAPI godot_int_array_get_lock(godot_int_array p_int_array);
+int GDAPI *godot_int_array_lock_get_pointer(godot_int_array_lock p_int_array_lock);
+void GDAPI godot_int_array_lock_free(godot_int_array_lock p_int_array_lock);
+
+////// RealArray
+
+typedef void* godot_real_array;
+
+
+godot_real_array GDAPI godot_real_array_create();
+godot_real_array GDAPI godot_real_array_copy(godot_real_array p_real_array);
+void GDAPI godot_real_array_free(godot_real_array p_real_array);
+
+int GDAPI godot_real_array_get_size(godot_real_array p_real_array);
+float GDAPI godot_real_array_get(godot_real_array p_real_array,int p_index);
+void GDAPI godot_real_array_set(godot_real_array p_real_array,int p_index,float p_value);
+void GDAPI godot_real_array_remove(godot_real_array p_real_array,int p_index);
+void GDAPI godot_real_array_clear(godot_real_array p_real_array);
+
+typedef void* godot_real_array_lock;
+
+godot_real_array_lock GDAPI godot_real_array_get_lock(godot_real_array p_real_array);
+float GDAPI *godot_real_array_lock_get_pointer(godot_real_array_lock p_real_array_lock);
+void GDAPI godot_real_array_lock_free(godot_real_array_lock p_real_array_lock);
+
+
+////// StringArray
+
+typedef void* godot_string_array;
+
+
+godot_string_array GDAPI godot_string_array_create();
+godot_string_array GDAPI godot_string_array_copy(godot_string_array p_string_array);
+void GDAPI godot_string_array_free(godot_string_array p_string_array);
+
+int GDAPI godot_string_array_get_size(godot_string_array p_string_array);
+int GDAPI godot_string_array_get(godot_string_array p_string_array,int p_index,unsigned char* p_string,int p_max_len);
+void GDAPI godot_string_array_set(godot_string_array p_string_array,int p_index,unsigned char *p_string);
+void GDAPI godot_string_array_remove(godot_string_array p_string_array,int p_index);
+void GDAPI godot_string_array_clear(godot_string_array p_string_array);
+
+////// Vector2Array
+
+typedef void* godot_vector2_array;
+
+godot_vector2_array GDAPI godot_vector2_array_create();
+godot_vector2_array GDAPI godot_vector2_array_copy(godot_vector2_array p_vector2_array);
+void GDAPI godot_vector2_array_free(godot_vector2_array p_vector2_array);
+
+int GDAPI godot_vector2_array_get_size(godot_vector2_array p_vector2_array);
+int GDAPI godot_vector2_array_get_stride(godot_vector2_array p_vector2_array);
+void GDAPI godot_vector2_array_get(godot_vector2_array p_vector2_array,int p_index,float* p_vector2);
+void GDAPI godot_vector2_array_set(godot_vector2_array p_vector2_array,int p_index,float *p_vector2);
+void GDAPI godot_vector2_array_remove(godot_vector2_array p_vector2_array,int p_index);
+void GDAPI godot_vector2_array_clear(godot_vector2_array p_vector2_array);
+
+
+typedef void* godot_vector2_array_lock;
+
+godot_vector2_array_lock GDAPI godot_vector2_array_get_lock(godot_vector2_array p_vector2_array);
+float GDAPI *godot_vector2_array_lock_get_pointer(godot_vector2_array_lock p_vector2_array_lock);
+void GDAPI godot_vector2_array_lock_free(godot_vector2_array_lock p_vector2_array_lock);
+
+////// Vector3Array
+
+typedef void* godot_vector3_array;
+
+godot_vector3_array GDAPI godot_vector3_array_create();
+godot_vector3_array GDAPI godot_vector3_array_copy(godot_vector3_array p_vector3_array);
+void GDAPI godot_vector3_array_free(godot_vector3_array p_vector3_array);
+
+int GDAPI godot_vector3_array_get_size(godot_vector3_array p_vector3_array);
+int GDAPI godot_vector3_array_get_stride(godot_vector3_array p_vector3_array);
+void GDAPI godot_vector3_array_get(godot_vector3_array p_vector3_array,int p_index,float* p_vector3);
+void GDAPI godot_vector3_array_set(godot_vector3_array p_vector3_array,int p_index,float *p_vector3);
+void GDAPI godot_vector3_array_remove(godot_vector3_array p_vector3_array,int p_index);
+void GDAPI godot_vector3_array_clear(godot_vector3_array p_vector3_array);
+
+
+typedef void* godot_vector3_array_lock;
+
+godot_vector3_array_lock GDAPI godot_vector3_array_get_lock(godot_vector3_array p_vector3_array);
+float GDAPI *godot_vector3_array_lock_get_pointer(godot_vector3_array_lock p_vector3_array_lock);
+void GDAPI godot_vector3_array_lock_free(godot_vector3_array_lock p_vector3_array_lock);
+
+////// ColorArray
+
+typedef void* godot_color_array;
+
+godot_color_array GDAPI godot_color_array_create();
+godot_color_array GDAPI godot_color_array_copy(godot_color_array p_color_array);
+void GDAPI godot_color_array_free(godot_color_array p_color_array);
+
+int GDAPI godot_color_array_get_size(godot_color_array p_color_array);
+int GDAPI godot_color_array_get_stride(godot_color_array p_color_array);
+void GDAPI godot_color_array_get(godot_color_array p_color_array,int p_index,float* p_color);
+void GDAPI godot_color_array_set(godot_color_array p_color_array,int p_index,float *p_color);
+void GDAPI godot_color_array_remove(godot_color_array p_color_array,int p_index);
+void GDAPI godot_color_array_clear(godot_color_array p_color_array);
+
+
+typedef void* godot_color_array_lock;
+
+godot_color_array_lock GDAPI godot_color_array_get_lock(godot_color_array p_color_array);
+float GDAPI *godot_color_array_lock_get_pointer(godot_color_array_lock p_color_array_lock);
+void GDAPI godot_color_array_lock_free(godot_color_array_lock p_color_array_lock);
+
+
+////// Instance (forward declared)
+
+typedef void *godot_instance;
+
+////// Variant
+
+#define GODOT_VARIANT_NIL 0
+#define GODOT_VARIANT_BOOL 1
+#define GODOT_VARIANT_INT 2
+#define GODOT_VARIANT_REAL 3
+#define GODOT_VARIANT_STRING 4
+#define GODOT_VARIANT_VECTOR2 5
+#define GODOT_VARIANT_RECT2 6
+#define GODOT_VARIANT_VECTOR3 7
+#define GODOT_VARIANT_MATRIX32 8
+#define GODOT_VARIANT_PLANE 9
+#define GODOT_VARIANT_QUAT 10
+#define GODOT_VARIANT_AABB 11
+#define GODOT_VARIANT_MATRIX3 12
+#define GODOT_VARIANT_TRANSFORM 13
+#define GODOT_VARIANT_COLOR 14
+#define GODOT_VARIANT_IMAGE 15
+#define GODOT_VARIANT_NODE_PATH 16
+#define GODOT_VARIANT_RID 17
+#define GODOT_VARIANT_OBJECT 18
+#define GODOT_VARIANT_INPUT_EVENT 19
+#define GODOT_VARIANT_DICTIONARY 20
+#define GODOT_VARIANT_ARRAY 21
+#define GODOT_VARIANT_BYTE_ARRAY 22
+#define GODOT_VARIANT_INT_ARRAY 23
+#define GODOT_VARIANT_REAL_ARRAY 24
+#define GODOT_VARIANT_STRING_ARRAY 25
+#define GODOT_VARIANT_VECTOR2_ARRAY 26
+#define GODOT_VARIANT_VECTOR3_ARRAY 27
+#define GODOT_VARIANT_COLOR_ARRAY 28
+#define GODOT_VARIANT_MAX 29
+
+godot_variant *godot_variant_new();
+
+int GDAPI godot_variant_get_type(godot_variant p_variant);
+
+void GDAPI godot_variant_set_null(godot_variant p_variant);
+void GDAPI godot_variant_set_bool(godot_variant p_variant,godot_bool p_bool);
+void GDAPI godot_variant_set_int(godot_variant p_variant,int p_int);
+void GDAPI godot_variant_set_float(godot_variant p_variant,int p_float);
+void GDAPI godot_variant_set_string(godot_variant p_variant,char *p_string);
+void GDAPI godot_variant_set_vector2(godot_variant p_variant,float *p_elems);
+void GDAPI godot_variant_set_rect2(godot_variant p_variant,float *p_elems);
+void GDAPI godot_variant_set_vector3(godot_variant p_variant,float *p_elems);
+void GDAPI godot_variant_set_matrix32(godot_variant p_variant,float *p_elems);
+void GDAPI godot_variant_set_plane(godot_variant p_variant,float *p_elems);
+void GDAPI godot_variant_set_aabb(godot_variant p_variant,float *p_elems);
+void GDAPI godot_variant_set_matrix3(godot_variant p_variant,float *p_elems);
+void GDAPI godot_variant_set_transform(godot_variant p_variant,float *p_elems);
+void GDAPI godot_variant_set_color(godot_variant p_variant,float *p_elems);
+void GDAPI godot_variant_set_image(godot_variant p_variant,godot_image *p_image);
+void GDAPI godot_variant_set_node_path(godot_variant p_variant,char *p_path);
+void GDAPI godot_variant_set_rid(godot_variant p_variant,char *p_path);
+void GDAPI godot_variant_set_instance(godot_variant p_variant,godot_instance p_instance);
+void GDAPI godot_variant_set_input_event(godot_variant p_variant,godot_input_event p_instance);
+void GDAPI godot_variant_set_dictionary(godot_variant p_variant,godot_dictionary p_dictionary);
+void GDAPI godot_variant_set_array(godot_variant p_variant,godot_array p_array);
+void GDAPI godot_variant_set_byte_array(godot_variant p_variant,godot_byte_array p_array);
+void GDAPI godot_variant_set_int_array(godot_variant p_variant,godot_byte_array p_array);
+void GDAPI godot_variant_set_string_array(godot_variant p_variant,godot_string_array p_array);
+void GDAPI godot_variant_set_vector2_array(godot_variant p_variant,godot_vector2_array p_array);
+void GDAPI godot_variant_set_vector3_array(godot_variant p_variant,godot_vector3_array p_array);
+void GDAPI godot_variant_set_color_array(godot_variant p_variant,godot_color_array p_array);
+
+godot_bool GDAPI godot_variant_get_bool(godot_variant p_variant);
+int GDAPI godot_variant_get_int(godot_variant p_variant);
+float GDAPI godot_variant_get_float(godot_variant p_variant);
+int GDAPI godot_variant_get_string(godot_variant p_variant,char *p_string,int p_bufsize);
+void GDAPI godot_variant_get_vector2(godot_variant p_variant,float *p_elems);
+void GDAPI godot_variant_get_rect2(godot_variant p_variant,float *p_elems);
+void GDAPI godot_variant_get_vector3(godot_variant p_variant,float *p_elems);
+void GDAPI godot_variant_get_matrix32(godot_variant p_variant,float *p_elems);
+void GDAPI godot_variant_get_plane(godot_variant p_variant,float *p_elems);
+void GDAPI godot_variant_get_aabb(godot_variant p_variant,float *p_elems);
+void GDAPI godot_variant_get_matrix3(godot_variant p_variant,float *p_elems);
+void GDAPI godot_variant_get_transform(godot_variant p_variant,float *p_elems);
+void GDAPI godot_variant_get_color(godot_variant p_variant,float *p_elems);
+godot_image GDAPI *godot_variant_get_image(godot_variant p_variant);
+int GDAPI godot_variant_get_node_path(godot_variant p_variant,char *p_path, int p_bufsize);
+godot_rid GDAPI godot_variant_get_rid(godot_variant p_variant);
+godot_instance GDAPI godot_variant_get_instance(godot_variant p_variant);
+void GDAPI godot_variant_get_input_event(godot_variant p_variant,godot_input_event);
+void GDAPI godot_variant_get_dictionary(godot_variant p_variant,godot_dictionary);
+godot_array GDAPI godot_variant_get_array(godot_variant p_variant);
+godot_byte_array GDAPI godot_variant_get_byte_array(godot_variant p_variant);
+godot_byte_array GDAPI godot_variant_get_int_array(godot_variant p_variant);
+godot_string_array GDAPI godot_variant_get_string_array(godot_variant p_variant);
+godot_vector2_array GDAPI godot_variant_get_vector2_array(godot_variant p_variant);
+godot_vector3_array GDAPI godot_variant_get_vector3_array(godot_variant p_variant);
+godot_color_array GDAPI godot_variant_get_color_array(godot_variant p_variant);
+
+
+void GDAPI godot_variant_delete(godot_variant p_variant);
+
+////// Class
+///
+
+char GDAPI **godot_class_get_list(); //get list of classes in array to array of strings, must be freed, use godot_list_free()
+
+int GDAPI godot_class_get_base(char* p_class,char *p_base,int p_max_len);
+int GDAPI godot_class_get_name(char* p_class,char *p_base,int p_max_len);
+
+char GDAPI **godot_class_get_method_list(char* p_class); //free with godot_list_free()
+int GDAPI godot_class_method_get_argument_count(char* p_class,char *p_method);
+int GDAPI godot_class_method_get_argument_type(char* p_class,char *p_method,int p_argument);
+godot_variant GDAPI godot_class_method_get_argument_default_value(char* p_class,char *p_method,int p_argument);
+
+char GDAPI **godot_class_get_constant_list(char* p_class); //free with godot_list_free()
+int GDAPI godot_class_constant_get_value(char* p_class,char *p_constant);
+
+
+////// Instance
+
+typedef int godot_call_error;
+
+#define GODOT_CALL_OK
+#define GODOT_CALL_ERROR_WRONG_ARGUMENTS
+#define GODOT_CALL_ERROR_INVALID_INSTANCE
+
+godot_instance GDAPI godot_instance_new(char* p_class);
+int GDAPI godot_instance_get_class(godot_instance p_instance,char* p_class,int p_max_len);
+
+typedef struct {
+ char *name;
+ int hint;
+ char *hint_string;
+ int usage;
+} godot_property_info;
+
+godot_call_error GDAPI godot_instance_call(godot_instance p_instance, char* p_method, ...);
+godot_call_error GDAPI godot_instance_call_ret(godot_instance p_instance, godot_variant r_return, char* p_method, ...);
+godot_bool GDAPI godot_instance_set(godot_instance p_instance, char* p_prop,godot_variant p_value);
+godot_variant GDAPI godot_instance_get(godot_instance p_instance, char* p_prop);
+
+
+#define GODOT_PROPERTY_HINT_NONE 0 ///< no hint provided.
+#define GODOT_PROPERTY_HINT_RANGE 1///< hint_text = "min,max,step,slider; //slider is optional"
+#define GODOT_PROPERTY_HINT_EXP_RANGE 2///< hint_text = "min,max,step", exponential edit
+#define GODOT_PROPERTY_HINT_ENUM 3///< hint_text= "val1,val2,val3,etc"
+#define GODOT_PROPERTY_HINT_EXP_EASING 4/// exponential easing funciton (Math::ease)
+#define GODOT_PROPERTY_HINT_LENGTH 5///< hint_text= "length" (as integer)
+#define GODOT_PROPERTY_HINT_SPRITE_FRAME 6
+#define GODOT_PROPERTY_HINT_KEY_ACCEL 7///< hint_text= "length" (as integer)
+#define GODOT_PROPERTY_HINT_FLAGS 8///< hint_text= "flag1,flag2,etc" (as bit flags)
+#define GODOT_PROPERTY_HINT_ALL_FLAGS 9
+#define GODOT_PROPERTY_HINT_FILE 10 ///< a file path must be passed, hint_text (optionally) is a filter "*.png,*.wav,*.doc,"
+#define GODOT_PROPERTY_HINT_DIR 11 ///< a directort path must be passed
+#define GODOT_PROPERTY_HINT_GLOBAL_FILE 12///< a file path must be passed, hint_text (optionally) is a filter "*.png,*.wav,*.doc,"
+#define GODOT_PROPERTY_HINT_GLOBAL_DIR 13 ///< a directort path must be passed
+#define GODOT_PROPERTY_HINT_RESOURCE_TYPE 14///< a resource object type
+#define GODOT_PROPERTY_HINT_MULTILINE_TEXT 15///< used for string properties that can contain multiple lines
+#define GODOT_PROPERTY_HINT_COLOR_NO_ALPHA 16///< used for ignoring alpha component when editing a color
+#define GODOT_PROPERTY_HINT_IMAGE_COMPRESS_LOSSY 17
+#define GODOT_PROPERTY_HINT_IMAGE_COMPRESS_LOSSLESS 18
+#define GODOT_PROPERTY_HINT_OBJECT_ID 19
+
+
+#define GODOT_PROPERTY_USAGE_STORAGE 1
+#define GODOT_PROPERTY_USAGE_EDITOR 2
+#define GODOT_PROPERTY_USAGE_NETWORK 4
+#define GODOT_PROPERTY_USAGE_EDITOR_HELPER 8
+#define GODOT_PROPERTY_USAGE_CHECKABLE 16 //used for editing global variables
+#define GODOT_PROPERTY_USAGE_CHECKED 32 //used for editing global variables
+#define GODOT_PROPERTY_USAGE_INTERNATIONALIZED 64 //hint for internationalized strings
+#define GODOT_PROPERTY_USAGE_BUNDLE 128 //used for optimized bundles
+#define GODOT_PROPERTY_USAGE_CATEGORY 256
+#define GODOT_PROPERTY_USAGE_STORE_IF_NONZERO 512 //only store if nonzero
+#define GODOT_PROPERTY_USAGE_STORE_IF_NONONE 1024 //only store if false
+#define GODOT_PROPERTY_USAGE_NO_INSTANCE_STATE 2048
+#define GODOT_PROPERTY_USAGE_RESTART_IF_CHANGED 4096
+#define GODOT_PROPERTY_USAGE_SCRIPT_VARIABLE 8192
+#define GODOT_PROPERTY_USAGE_STORE_IF_NULL 16384
+#define GODOT_PROPERTY_USAGE_ANIMATE_AS_TRIGGER 32768
+
+#define GODOT_PROPERTY_USAGE_DEFAULT GODOT_PROPERTY_USAGE_STORAGE|GODOT_PROPERTY_USAGE_EDITOR|GODOT_PROPERTY_USAGE_NETWORK
+#define GODOT_PROPERTY_USAGE_DEFAULT_INTL GODOT_PROPERTY_USAGE_STORAGE|GODOT_PROPERTY_USAGE_EDITOR|GODOT_PROPERTY_USAGE_NETWORK|GODOT_PROPERTY_USAGE_INTERNATIONALIZED
+#define GODOT_PROPERTY_USAGE_NOEDITOR GODOT_PROPERTY_USAGE_STORAGE|GODOT_PROPERTY_USAGE_NETWORK
+
+
+godot_property_info GDAPI **godot_instance_get_property_list(godot_instance p_instance);
+void GDAPI godot_instance_free_property_list(godot_instance p_instance,godot_property_info** p_list);
+
+
+
+void GDAPI godot_list_free(char **p_name); //helper to free all the class list
+
+
+////// Script API
+
+typedef void* (godot_script_instance_func)(godot_instance); //passed an instance, return a pointer to your userdata
+typedef void (godot_script_free_func)(godot_instance,void*); //passed an instance, please free your userdata
+
+void GDAPI godot_script_register(char* p_base,char* p_name,godot_script_instance_func p_instance_func,godot_script_free_func p_free_func);
+void GDAPI godot_script_unregister(char* p_name);
+
+typedef GDAPI godot_variant (godot_script_func)(godot_instance,void*,godot_variant*,int); //instance,userdata,arguments,argument count. Return something or NULL. Arguments must not be freed.
+
+
+void GDAPI godot_script_add_function(char* p_name,char* p_function_name,godot_script_func p_func);
+void GDAPI godot_script_add_validated_function(char* p_name,char* p_function_name,godot_script_func p_func,int* p_arg_types,int p_arg_count,godot_variant* p_default_args,int p_default_arg_count);
+
+typedef void (godot_set_property_func)(godot_instance,void*,godot_variant); //instance,userdata,value. Value must not be freed.
+typedef godot_variant (godot_get_property_func)(godot_instance,void*); //instance,userdata. Return a value or NULL.
+
+void GDAPI godot_script_add_property(char* p_name,char* p_path,godot_set_property_func p_set_func,godot_get_property_func p_get_func);
+void GDAPI godot_script_add_listed_property(char* p_name,char* p_path,godot_set_property_func p_set_func,godot_get_property_func p_get_func,int p_type,int p_hint,char* p_hint_string,int p_usage);
+
+
+////// System Functions
+
+//using these will help Godot track how much memory is in use in debug mode
+void GDAPI *godot_alloc(int p_bytes);
+void GDAPI *godot_realloc(void* p_ptr,int p_bytes);
+void GDAPI godot_free(void* p_ptr);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif // GODOT_C_H
diff --git a/modules/cscript/register_types.cpp b/modules/cscript/register_types.cpp
new file mode 100644
index 0000000000..267e5245ed
--- /dev/null
+++ b/modules/cscript/register_types.cpp
@@ -0,0 +1,37 @@
+/*************************************************************************/
+/* register_types.cpp */
+/*************************************************************************/
+/* This file is part of: */
+/* GODOT ENGINE */
+/* http://www.godotengine.org */
+/*************************************************************************/
+/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the */
+/* "Software"), to deal in the Software without restriction, including */
+/* without limitation the rights to use, copy, modify, merge, publish, */
+/* distribute, sublicense, and/or sell copies of the Software, and to */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions: */
+/* */
+/* The above copyright notice and this permission notice shall be */
+/* included in all copies or substantial portions of the Software. */
+/* */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
+/*************************************************************************/
+#include "register_types.h"
+
+
+void register_cscript_types() {
+
+}
+void unregister_cscript_types() {
+
+}
diff --git a/modules/cscript/register_types.h b/modules/cscript/register_types.h
new file mode 100644
index 0000000000..a0f41eee5d
--- /dev/null
+++ b/modules/cscript/register_types.h
@@ -0,0 +1,30 @@
+/*************************************************************************/
+/* register_types.h */
+/*************************************************************************/
+/* This file is part of: */
+/* GODOT ENGINE */
+/* http://www.godotengine.org */
+/*************************************************************************/
+/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the */
+/* "Software"), to deal in the Software without restriction, including */
+/* without limitation the rights to use, copy, modify, merge, publish, */
+/* distribute, sublicense, and/or sell copies of the Software, and to */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions: */
+/* */
+/* The above copyright notice and this permission notice shall be */
+/* included in all copies or substantial portions of the Software. */
+/* */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
+/*************************************************************************/
+void register_cscript_types();
+void unregister_cscript_types();
diff --git a/modules/gdscript/gd_compiler.cpp b/modules/gdscript/gd_compiler.cpp
index 9cc482c988..1f76f025d4 100644
--- a/modules/gdscript/gd_compiler.cpp
+++ b/modules/gdscript/gd_compiler.cpp
@@ -1505,7 +1505,8 @@ Error GDCompiler::_parse_class(GDScript *p_script, GDScript *p_owner, const GDPa
String sub = p_class->extends_class[i];
if (script->subclasses.has(sub)) {
- script=script->subclasses[sub];
+ Ref<Script> subclass = script->subclasses[sub]; //avoid reference from dissapearing
+ script=subclass;
} else {
_set_error("Could not find subclass: "+sub,p_class);
@@ -1691,6 +1692,7 @@ Error GDCompiler::_parse_class(GDScript *p_script, GDScript *p_owner, const GDPa
if (err)
return err;
+
p_script->constants.insert(name,subclass); //once parsed, goes to the list of constants
p_script->subclasses.insert(name,subclass);
diff --git a/modules/gdscript/gd_editor.cpp b/modules/gdscript/gd_editor.cpp
index b1da7e782c..07a5a636d4 100644
--- a/modules/gdscript/gd_editor.cpp
+++ b/modules/gdscript/gd_editor.cpp
@@ -212,7 +212,7 @@ String GDScriptLanguage::debug_get_stack_level_source(int p_level) const {
ERR_FAIL_INDEX_V(p_level,_debug_call_stack_pos,"");
int l = _debug_call_stack_pos - p_level -1;
- return _call_stack[l].function->get_script()->get_path();
+ return _call_stack[l].function->get_source();
}
void GDScriptLanguage::debug_get_stack_level_locals(int p_level,List<String> *p_locals, List<Variant> *p_values, int p_max_subitems,int p_max_depth) {
diff --git a/modules/gdscript/gd_function.cpp b/modules/gdscript/gd_function.cpp
index 6e52686de4..de86eb2ab9 100644
--- a/modules/gdscript/gd_function.cpp
+++ b/modules/gdscript/gd_function.cpp
@@ -846,6 +846,8 @@ Variant GDFunction::call(GDInstance *p_instance, const Variant **p_args, int p_a
gdfs->state._class=_class;
gdfs->state.ip=ip+ipofs;
gdfs->state.line=line;
+ gdfs->state.instance_id=(p_instance && p_instance->get_owner())?p_instance->get_owner()->get_instance_ID():0;
+ gdfs->state.script_id=_class->get_instance_ID();
//gdfs->state.result_pos=ip+ipofs-1;
gdfs->state.defarg=defarg;
gdfs->state.instance=p_instance;
@@ -1352,6 +1354,18 @@ GDFunction::~GDFunction() {
Variant GDFunctionState::_signal_callback(const Variant** p_args, int p_argcount, Variant::CallError& r_error) {
+#ifdef DEBUG_ENABLED
+ if (state.instance_id && !ObjectDB::get_instance(state.instance_id)) {
+ ERR_EXPLAIN("Resumed after yield, but class instance is gone");
+ ERR_FAIL_V(Variant());
+ }
+
+ if (state.script_id && !ObjectDB::get_instance(state.script_id)) {
+ ERR_EXPLAIN("Resumed after yield, but script is gone");
+ ERR_FAIL_V(Variant());
+ }
+#endif
+
Variant arg;
r_error.error=Variant::CallError::CALL_OK;
@@ -1398,6 +1412,17 @@ bool GDFunctionState::is_valid() const {
Variant GDFunctionState::resume(const Variant& p_arg) {
ERR_FAIL_COND_V(!function,Variant());
+#ifdef DEBUG_ENABLED
+ if (state.instance_id && !ObjectDB::get_instance(state.instance_id)) {
+ ERR_EXPLAIN("Resumed after yield, but class instance is gone");
+ ERR_FAIL_V(Variant());
+ }
+
+ if (state.script_id && !ObjectDB::get_instance(state.script_id)) {
+ ERR_EXPLAIN("Resumed after yield, but script is gone");
+ ERR_FAIL_V(Variant());
+ }
+#endif
state.result=p_arg;
Variant::CallError err;
diff --git a/modules/gdscript/gd_function.h b/modules/gdscript/gd_function.h
index 1f790eaadc..e09c6509dd 100644
--- a/modules/gdscript/gd_function.h
+++ b/modules/gdscript/gd_function.h
@@ -136,6 +136,9 @@ public:
struct CallState {
+ ObjectID instance_id; //by debug only
+ ObjectID script_id;
+
GDInstance *instance;
Vector<uint8_t> stack;
int stack_size;
@@ -160,6 +163,7 @@ public:
int get_default_argument_count() const;
int get_default_argument_addr(int p_idx) const;
GDScript *get_script() const { return _script; }
+ StringName get_source() const { return source; }
void debug_get_stack_member_state(int p_line,List<Pair<StringName,int> > *r_stackvars) const;
diff --git a/modules/gdscript/gd_parser.cpp b/modules/gdscript/gd_parser.cpp
index 3ef42f81a4..c33bf00c7b 100644
--- a/modules/gdscript/gd_parser.cpp
+++ b/modules/gdscript/gd_parser.cpp
@@ -31,6 +31,7 @@
#include "io/resource_loader.h"
#include "os/file_access.h"
#include "script_language.h"
+#include "gd_script.h"
template<class T>
T* GDParser::alloc_node() {
@@ -216,7 +217,7 @@ bool GDParser::_get_completable_identifier(CompletionType p_type,StringName& ide
}
-GDParser::Node* GDParser::_parse_expression(Node *p_parent,bool p_static,bool p_allow_assign) {
+GDParser::Node* GDParser::_parse_expression(Node *p_parent,bool p_static,bool p_allow_assign,bool p_parsing_constant) {
// Vector<Node*> expressions;
// Vector<OperatorNode::Operator> operators;
@@ -243,7 +244,7 @@ GDParser::Node* GDParser::_parse_expression(Node *p_parent,bool p_static,bool p_
//subexpression ()
tokenizer->advance();
parenthesis++;
- Node* subexpr = _parse_expression(p_parent,p_static);
+ Node* subexpr = _parse_expression(p_parent,p_static,p_allow_assign,p_parsing_constant);
parenthesis--;
if (!subexpr)
return NULL;
@@ -477,20 +478,30 @@ GDParser::Node* GDParser::_parse_expression(Node *p_parent,bool p_static,bool p_
} else if (tokenizer->get_token()==GDTokenizer::TK_IDENTIFIER) {
//identifier (reference)
- const ClassNode* cln = static_cast<const ClassNode*>(get_parse_tree());
+ const ClassNode* cln = current_class;
bool bfn = false;
StringName identifier;
if (_get_completable_identifier(COMPLETION_IDENTIFIER,identifier)) {
}
- for( int i=0; i<cln->constant_expressions.size(); ++i ) {
+ if (p_parsing_constant) {
+ for( int i=0; i<cln->constant_expressions.size(); ++i ) {
- if( cln->constant_expressions[i].identifier == identifier ) {
+ if( cln->constant_expressions[i].identifier == identifier ) {
- expr = cln->constant_expressions[i].expression;
- bfn = true;
- break;
+ expr = cln->constant_expressions[i].expression;
+ bfn = true;
+ break;
+ }
+ }
+
+ if (GDScriptLanguage::get_singleton()->get_global_map().has(identifier)) {
+ //check from constants
+ ConstantNode *constant = alloc_node<ConstantNode>();
+ constant->value = GDScriptLanguage::get_singleton()->get_global_array()[ GDScriptLanguage::get_singleton()->get_global_map()[identifier] ];
+ expr=constant;
+ bfn = true;
}
}
@@ -567,7 +578,7 @@ GDParser::Node* GDParser::_parse_expression(Node *p_parent,bool p_static,bool p_
_set_error("',' or ']' expected");
return NULL;
}
- Node *n = _parse_expression(arr,p_static);
+ Node *n = _parse_expression(arr,p_static,p_allow_assign,p_parsing_constant);
if (!n)
return NULL;
arr->elements.push_back(n);
@@ -674,7 +685,7 @@ GDParser::Node* GDParser::_parse_expression(Node *p_parent,bool p_static,bool p_
expecting=DICT_EXPECT_VALUE;
} else {
//python/js style more flexible
- key = _parse_expression(dict,p_static);
+ key = _parse_expression(dict,p_static,p_allow_assign,p_parsing_constant);
if (!key)
return NULL;
expecting=DICT_EXPECT_COLON;
@@ -682,7 +693,7 @@ GDParser::Node* GDParser::_parse_expression(Node *p_parent,bool p_static,bool p_
}
if (expecting==DICT_EXPECT_VALUE) {
- Node *value = _parse_expression(dict,p_static);
+ Node *value = _parse_expression(dict,p_static,p_allow_assign,p_parsing_constant);
if (!value)
return NULL;
expecting=DICT_EXPECT_COMMA;
@@ -833,7 +844,7 @@ GDParser::Node* GDParser::_parse_expression(Node *p_parent,bool p_static,bool p_
tokenizer->advance(1);
- Node *subexpr = _parse_expression(op,p_static);
+ Node *subexpr = _parse_expression(op,p_static,p_allow_assign,p_parsing_constant);
if (!subexpr) {
return NULL;
}
@@ -1432,7 +1443,7 @@ GDParser::Node* GDParser::_reduce_expression(Node *p_node,bool p_to_const) {
GDParser::Node* GDParser::_parse_and_reduce_expression(Node *p_parent,bool p_static,bool p_reduce_const,bool p_allow_assign) {
- Node* expr=_parse_expression(p_parent,p_static,p_allow_assign);
+ Node* expr=_parse_expression(p_parent,p_static,p_allow_assign,p_reduce_const);
if (!expr || error_set)
return NULL;
expr = _reduce_expression(expr,p_reduce_const);
diff --git a/modules/gdscript/gd_parser.h b/modules/gdscript/gd_parser.h
index 6c49c1df52..4afc534a8c 100644
--- a/modules/gdscript/gd_parser.h
+++ b/modules/gdscript/gd_parser.h
@@ -435,7 +435,7 @@ private:
bool _parse_arguments(Node* p_parent, Vector<Node*>& p_args, bool p_static, bool p_can_codecomplete=false);
bool _enter_indent_block(BlockNode *p_block=NULL);
bool _parse_newline();
- Node* _parse_expression(Node *p_parent,bool p_static,bool p_allow_assign=false);
+ Node* _parse_expression(Node *p_parent, bool p_static, bool p_allow_assign=false, bool p_parsing_constant=false);
Node* _reduce_expression(Node *p_node,bool p_to_const=false);
Node* _parse_and_reduce_expression(Node *p_parent,bool p_static,bool p_reduce_const=false,bool p_allow_assign=false);
diff --git a/modules/gdscript/gd_script.cpp b/modules/gdscript/gd_script.cpp
index e37a2ca155..d9783c218a 100644
--- a/modules/gdscript/gd_script.cpp
+++ b/modules/gdscript/gd_script.cpp
@@ -874,6 +874,10 @@ GDScript::~GDScript() {
memdelete( E->get() );
}
+ for (Map<StringName,Ref<GDScript> >::Element *E=subclasses.front();E;E=E->next()) {
+ E->get()->_owner=NULL; //bye, you are no longer owned cause I died
+ }
+
#ifdef DEBUG_ENABLED
if (GDScriptLanguage::get_singleton()->lock) {
GDScriptLanguage::get_singleton()->lock->lock();
@@ -960,11 +964,16 @@ bool GDInstance::get(const StringName& p_name, Variant &r_ret) const {
}
{
- const Map<StringName,Variant>::Element *E = script->constants.find(p_name);
- if (E) {
- r_ret=E->get();
- return true; //index found
+ const GDScript *sl = sptr;
+ while(sl) {
+ const Map<StringName,Variant>::Element *E = sl->constants.find(p_name);
+ if (E) {
+ r_ret=E->get();
+ return true; //index found
+
+ }
+ sl=sl->_base;
}
}
diff --git a/modules/gdscript/gd_script.h b/modules/gdscript/gd_script.h
index 166e29ad70..723761c3a9 100644
--- a/modules/gdscript/gd_script.h
+++ b/modules/gdscript/gd_script.h
@@ -202,6 +202,8 @@ friend class GDCompiler;
public:
+ _FORCE_INLINE_ Object* get_owner() { return owner; }
+
virtual bool set(const StringName& p_name, const Variant& p_value);
virtual bool get(const StringName& p_name, Variant &r_ret) const;
virtual void get_property_list(List<PropertyInfo> *p_properties) const;
diff --git a/modules/gdscript/register_types.cpp b/modules/gdscript/register_types.cpp
index 6aa53f03ef..95b18cae4d 100644
--- a/modules/gdscript/register_types.cpp
+++ b/modules/gdscript/register_types.cpp
@@ -158,7 +158,7 @@ void register_gdscript_types() {
void unregister_gdscript_types() {
-
+ ScriptServer::unregister_language(script_language_gd);
if (script_language_gd)
memdelete( script_language_gd );
diff --git a/platform/android/godot_android.cpp b/platform/android/godot_android.cpp
index edb051575f..9f909d7041 100644
--- a/platform/android/godot_android.cpp
+++ b/platform/android/godot_android.cpp
@@ -910,7 +910,7 @@ static Variant::Type get_jni_type(const String& p_type) {
{"java.lang.String",Variant::STRING},
{"[I",Variant::INT_ARRAY},
{"[F",Variant::REAL_ARRAY},
- {"[java.lang.String",Variant::STRING_ARRAY},
+ {"[Ljava.lang.String;",Variant::STRING_ARRAY},
{NULL,Variant::NIL}
};
@@ -941,7 +941,7 @@ static const char* get_jni_sig(const String& p_type) {
{"java.lang.String","Ljava/lang/String;"},
{"[I","[I"},
{"[F","[F"},
- {"[java.lang.String","[Ljava/lang/String;"},
+ {"[Ljava.lang.String;","[Ljava/lang/String;"},
{NULL,"V"}
};
diff --git a/platform/android/java/src/org/godotengine/godot/Godot.java b/platform/android/java/src/org/godotengine/godot/Godot.java
index cdf17e3161..4c0f4878f5 100644
--- a/platform/android/java/src/org/godotengine/godot/Godot.java
+++ b/platform/android/java/src/org/godotengine/godot/Godot.java
@@ -602,8 +602,8 @@ public class Godot extends Activity implements SensorEventListener, IDownloaderC
}
mView.onResume();
- mSensorManager.registerListener(this, mAccelerometer, SensorManager.SENSOR_DELAY_NORMAL);
- mSensorManager.registerListener(this, mMagnetometer, SensorManager.SENSOR_DELAY_NORMAL);
+ mSensorManager.registerListener(this, mAccelerometer, SensorManager.SENSOR_DELAY_GAME);
+ mSensorManager.registerListener(this, mMagnetometer, SensorManager.SENSOR_DELAY_GAME);
GodotLib.focusin();
if(use_immersive && Build.VERSION.SDK_INT >= 19.0){ // check if the application runs on an android 4.4+
Window window = getWindow();
diff --git a/platform/android/java_glue.cpp b/platform/android/java_glue.cpp
index 1ea7cd7ebb..5fd2ab8910 100644
--- a/platform/android/java_glue.cpp
+++ b/platform/android/java_glue.cpp
@@ -1563,7 +1563,7 @@ static Variant::Type get_jni_type(const String& p_type) {
{"[I",Variant::INT_ARRAY},
{"[B",Variant::RAW_ARRAY},
{"[F",Variant::REAL_ARRAY},
- {"[java.lang.String",Variant::STRING_ARRAY},
+ {"[Ljava.lang.String;",Variant::STRING_ARRAY},
{"org.godotengine.godot.Dictionary", Variant::DICTIONARY},
{NULL,Variant::NIL}
};
@@ -1599,7 +1599,7 @@ static const char* get_jni_sig(const String& p_type) {
{"[I","[I"},
{"[B","[B"},
{"[F","[F"},
- {"[java.lang.String","[Ljava/lang/String;"},
+ {"[Ljava.lang.String;","[Ljava/lang/String;"},
{NULL,"V"}
};
diff --git a/platform/android/thread_jandroid.cpp b/platform/android/thread_jandroid.cpp
index 1425e23c73..61ee237586 100644
--- a/platform/android/thread_jandroid.cpp
+++ b/platform/android/thread_jandroid.cpp
@@ -29,6 +29,7 @@
#include "thread_jandroid.h"
#include "os/memory.h"
+#include "script_language.h"
Thread::ID ThreadAndroid::get_ID() const {
@@ -44,8 +45,10 @@ void *ThreadAndroid::thread_callback(void *userdata) {
ThreadAndroid *t=reinterpret_cast<ThreadAndroid*>(userdata);
setup_thread();
+ ScriptServer::thread_enter(); //scripts may need to attach a stack
t->id=(ID)pthread_self();
t->callback(t->user);
+ ScriptServer::thread_exit();
return NULL;
}
diff --git a/platform/haiku/context_gl_haiku.cpp b/platform/haiku/context_gl_haiku.cpp
index 2fedd1532a..bf890d14bf 100644
--- a/platform/haiku/context_gl_haiku.cpp
+++ b/platform/haiku/context_gl_haiku.cpp
@@ -35,6 +35,8 @@ ContextGL_Haiku::ContextGL_Haiku(HaikuDirectWindow* p_window) {
uint32 type = BGL_RGB | BGL_DOUBLE | BGL_DEPTH;
view = new HaikuGLView(window->Bounds(), type);
+
+ use_vsync = false;
}
ContextGL_Haiku::~ContextGL_Haiku() {
@@ -57,7 +59,7 @@ void ContextGL_Haiku::make_current() {
}
void ContextGL_Haiku::swap_buffers() {
- view->SwapBuffers();
+ view->SwapBuffers(use_vsync);
}
int ContextGL_Haiku::get_window_width() {
@@ -68,4 +70,12 @@ int ContextGL_Haiku::get_window_height() {
return window->Bounds().IntegerHeight();
}
+void ContextGL_Haiku::set_use_vsync(bool p_use) {
+ use_vsync = p_use;
+}
+
+bool ContextGL_Haiku::is_using_vsync() const {
+ return use_vsync;
+}
+
#endif
diff --git a/platform/haiku/context_gl_haiku.h b/platform/haiku/context_gl_haiku.h
index 91aae6b382..c7f80543aa 100644
--- a/platform/haiku/context_gl_haiku.h
+++ b/platform/haiku/context_gl_haiku.h
@@ -40,6 +40,8 @@ class ContextGL_Haiku : public ContextGL {
private:
HaikuGLView* view;
HaikuDirectWindow* window;
+
+ bool use_vsync;
public:
ContextGL_Haiku(HaikuDirectWindow* p_window);
@@ -51,6 +53,9 @@ public:
virtual void swap_buffers();
virtual int get_window_width();
virtual int get_window_height();
+
+ virtual void set_use_vsync(bool p_use);
+ virtual bool is_using_vsync() const;
};
#endif
diff --git a/platform/haiku/detect.py b/platform/haiku/detect.py
index 6d1a96a8da..f36b0c567e 100644
--- a/platform/haiku/detect.py
+++ b/platform/haiku/detect.py
@@ -24,7 +24,7 @@ def get_opts():
def get_flags():
return [
('builtin_zlib', 'no'),
- #('glew', 'yes'), # TODO: investigate the GLEW situation on Haiku
+ ('glew', 'yes'),
]
def configure(env):
@@ -38,8 +38,8 @@ def configure(env):
env.Append(CPPPATH = ['#platform/haiku'])
- env["CC"] = "gcc"
- env["CXX"] = "g++"
+ env["CC"] = "gcc-x86"
+ env["CXX"] = "g++-x86"
if (env["target"]=="release"):
if (env["debug_release"]=="yes"):
diff --git a/platform/windows/joystick.cpp b/platform/windows/joystick.cpp
index 663bbe3b9b..e69bfe6a52 100644
--- a/platform/windows/joystick.cpp
+++ b/platform/windows/joystick.cpp
@@ -283,7 +283,7 @@ void joystick_windows::close_joystick(int id) {
d_joysticks[id].attached = false;
attached_joysticks[d_joysticks[id].id] = false;
d_joysticks[id].guid.Data1 = d_joysticks[id].guid.Data2 = d_joysticks[id].guid.Data3 = 0;
- input->joy_connection_changed(id, false, "");
+ input->joy_connection_changed(d_joysticks[id].id, false, "");
joystick_count--;
}
diff --git a/platform/windows/os_windows.cpp b/platform/windows/os_windows.cpp
index 630d5715e9..9421e0d48e 100644
--- a/platform/windows/os_windows.cpp
+++ b/platform/windows/os_windows.cpp
@@ -604,8 +604,12 @@ LRESULT OS_Windows::WndProc(HWND hWnd,UINT uMsg, WPARAM wParam, LPARAM lParam) {
} break;
case WM_SIZE: {
- video_mode.width=LOWORD(lParam);
- video_mode.height=HIWORD(lParam);
+ int window_w = LOWORD(lParam);
+ int window_h = HIWORD(lParam);
+ if (window_w > 0 && window_h > 0) {
+ video_mode.width = window_w;
+ video_mode.height = window_h;
+ }
//return 0; // Jump Back
} break;
case WM_SYSKEYDOWN:
diff --git a/platform/winrt/thread_winrt.cpp b/platform/winrt/thread_winrt.cpp
index 097050e511..e7028bd9dc 100644
--- a/platform/winrt/thread_winrt.cpp
+++ b/platform/winrt/thread_winrt.cpp
@@ -33,6 +33,8 @@
Thread* ThreadWinrt::create_func_winrt(ThreadCreateCallback p_callback,void *p_user,const Settings&) {
ThreadWinrt* thread = memnew(ThreadWinrt);
+
+
std::thread new_thread(p_callback, p_user);
std::swap(thread->thread, new_thread);
diff --git a/platform/x11/detect.py b/platform/x11/detect.py
index 5f272536ba..54940866b2 100644
--- a/platform/x11/detect.py
+++ b/platform/x11/detect.py
@@ -209,5 +209,7 @@ def configure(env):
if (env["use_static_cpp"]=="yes"):
env.Append(LINKFLAGS=['-static-libstdc++'])
- env["x86_opt_gcc"]=True
+ list_of_x86 = ['x86_64', 'x86', 'i386', 'i586']
+ if any(platform.machine() in s for s in list_of_x86):
+ env["x86_opt_gcc"]=True
diff --git a/scene/2d/canvas_item.cpp b/scene/2d/canvas_item.cpp
index 976a5c4f1e..bc5bff3b8e 100644
--- a/scene/2d/canvas_item.cpp
+++ b/scene/2d/canvas_item.cpp
@@ -756,6 +756,17 @@ void CanvasItem::draw_set_transform(const Point2& p_offset, float p_rot, const S
VisualServer::get_singleton()->canvas_item_add_set_transform(canvas_item,xform);
}
+void CanvasItem::draw_set_transform_matrix(const Matrix32& p_matrix) {
+
+ if (!drawing) {
+ ERR_EXPLAIN("Drawing is only allowed inside NOTIFICATION_DRAW, _draw() function or 'draw' signal.");
+ ERR_FAIL();
+ }
+
+ VisualServer::get_singleton()->canvas_item_add_set_transform(canvas_item,p_matrix);
+
+}
+
void CanvasItem::draw_polygon(const Vector<Point2>& p_points, const Vector<Color>& p_colors,const Vector<Point2>& p_uvs, Ref<Texture> p_texture) {
if (!drawing) {
@@ -942,62 +953,8 @@ InputEvent CanvasItem::make_input_local(const InputEvent& p_event) const {
ERR_FAIL_COND_V(!is_inside_tree(),p_event);
- InputEvent ev = p_event;
-
- Matrix32 local_matrix = (get_canvas_transform() * get_global_transform()).affine_inverse();
-
- switch(ev.type) {
-
- case InputEvent::MOUSE_BUTTON: {
-
- Vector2 g = local_matrix.xform(Vector2(ev.mouse_button.global_x,ev.mouse_button.global_y));
- Vector2 l = local_matrix.xform(Vector2(ev.mouse_button.x,ev.mouse_button.y));
- ev.mouse_button.x=l.x;
- ev.mouse_button.y=l.y;
- ev.mouse_button.global_x=g.x;
- ev.mouse_button.global_y=g.y;
-
- } break;
- case InputEvent::MOUSE_MOTION: {
-
- Vector2 g = local_matrix.xform(Vector2(ev.mouse_motion.global_x,ev.mouse_motion.global_y));
- Vector2 l = local_matrix.xform(Vector2(ev.mouse_motion.x,ev.mouse_motion.y));
- Vector2 r = local_matrix.basis_xform(Vector2(ev.mouse_motion.relative_x,ev.mouse_motion.relative_y));
- Vector2 s = local_matrix.basis_xform(Vector2(ev.mouse_motion.speed_x,ev.mouse_motion.speed_y));
- ev.mouse_motion.x=l.x;
- ev.mouse_motion.y=l.y;
- ev.mouse_motion.global_x=g.x;
- ev.mouse_motion.global_y=g.y;
- ev.mouse_motion.relative_x=r.x;
- ev.mouse_motion.relative_y=r.y;
- ev.mouse_motion.speed_x=s.x;
- ev.mouse_motion.speed_y=s.y;
-
- } break;
- case InputEvent::SCREEN_TOUCH: {
-
-
- Vector2 t = local_matrix.xform(Vector2(ev.screen_touch.x,ev.screen_touch.y));
- ev.screen_touch.x=t.x;
- ev.screen_touch.y=t.y;
-
- } break;
- case InputEvent::SCREEN_DRAG: {
-
-
- Vector2 t = local_matrix.xform(Vector2(ev.screen_drag.x,ev.screen_drag.y));
- Vector2 r = local_matrix.basis_xform(Vector2(ev.screen_drag.relative_x,ev.screen_drag.relative_y));
- Vector2 s = local_matrix.basis_xform(Vector2(ev.screen_drag.speed_x,ev.screen_drag.speed_y));
- ev.screen_drag.x=t.x;
- ev.screen_drag.y=t.y;
- ev.screen_drag.relative_x=r.x;
- ev.screen_drag.relative_y=r.y;
- ev.screen_drag.speed_x=s.x;
- ev.screen_drag.speed_y=s.y;
- } break;
- }
+ return p_event.xform_by( (get_canvas_transform() * get_global_transform()).affine_inverse() );
- return ev;
}
@@ -1076,6 +1033,7 @@ void CanvasItem::_bind_methods() {
ObjectTypeDB::bind_method(_MD("draw_char","font:Font","pos","char","next","modulate"),&CanvasItem::draw_char,DEFVAL(Color(1,1,1)));
ObjectTypeDB::bind_method(_MD("draw_set_transform","pos","rot","scale"),&CanvasItem::draw_set_transform);
+ ObjectTypeDB::bind_method(_MD("draw_set_transform_matrix","xform"),&CanvasItem::draw_set_transform_matrix);
ObjectTypeDB::bind_method(_MD("get_transform"),&CanvasItem::get_transform);
ObjectTypeDB::bind_method(_MD("get_global_transform"),&CanvasItem::get_global_transform);
ObjectTypeDB::bind_method(_MD("get_global_transform_with_canvas"),&CanvasItem::get_global_transform_with_canvas);
diff --git a/scene/2d/canvas_item.h b/scene/2d/canvas_item.h
index 8b44e09857..8a61b449fd 100644
--- a/scene/2d/canvas_item.h
+++ b/scene/2d/canvas_item.h
@@ -222,6 +222,7 @@ public:
float draw_char(const Ref<Font>& p_font,const Point2& p_pos, const String& p_char,const String& p_next="",const Color& p_modulate=Color(1,1,1));
void draw_set_transform(const Point2& p_offset, float p_rot, const Size2& p_scale);
+ void draw_set_transform_matrix(const Matrix32& p_matrix);
/* RECT / TRANSFORM */
diff --git a/scene/2d/parallax_background.cpp b/scene/2d/parallax_background.cpp
index 7f2e9efd96..1b6ab66fcc 100644
--- a/scene/2d/parallax_background.cpp
+++ b/scene/2d/parallax_background.cpp
@@ -104,16 +104,18 @@ void ParallaxBackground::_update_scroll() {
}
ofs = -ofs;
+ final_offset=ofs;
+
for(int i=0;i<get_child_count();i++) {
ParallaxLayer *l=get_child(i)->cast_to<ParallaxLayer>();
if (!l)
continue;
- if (ignore_camera_zoom)
- l->set_base_offset_and_scale(ofs, 1.0);
- else
- l->set_base_offset_and_scale(ofs, scale);
+ if (ignore_camera_zoom)
+ l->set_base_offset_and_scale(ofs, 1.0);
+ else
+ l->set_base_offset_and_scale(ofs, scale);
}
}
@@ -180,6 +182,11 @@ bool ParallaxBackground::is_ignore_camera_zoom(){
}
+Vector2 ParallaxBackground::get_final_offset() const {
+
+ return final_offset;
+}
+
void ParallaxBackground::_bind_methods() {
ObjectTypeDB::bind_method(_MD("_camera_moved"),&ParallaxBackground::_camera_moved);
diff --git a/scene/2d/parallax_background.h b/scene/2d/parallax_background.h
index bdaf7d241f..c00cd52f26 100644
--- a/scene/2d/parallax_background.h
+++ b/scene/2d/parallax_background.h
@@ -44,6 +44,7 @@ class ParallaxBackground : public CanvasLayer {
String group_name;
Point2 limit_begin;
Point2 limit_end;
+ Point2 final_offset;
bool ignore_camera_zoom;
void _update_scroll();
@@ -73,8 +74,10 @@ public:
void set_limit_end(const Point2& p_ofs);
Point2 get_limit_end() const;
- void set_ignore_camera_zoom(bool ignore);
- bool is_ignore_camera_zoom();
+ void set_ignore_camera_zoom(bool ignore);
+ bool is_ignore_camera_zoom();
+
+ Vector2 get_final_offset() const;
ParallaxBackground();
};
diff --git a/scene/2d/parallax_layer.cpp b/scene/2d/parallax_layer.cpp
index a67ea04959..e9378b1d02 100644
--- a/scene/2d/parallax_layer.cpp
+++ b/scene/2d/parallax_layer.cpp
@@ -32,6 +32,15 @@
void ParallaxLayer::set_motion_scale(const Size2& p_scale) {
motion_scale=p_scale;
+
+
+ ParallaxBackground *pb = get_parent()->cast_to<ParallaxBackground>();
+ if (is_inside_tree() && pb) {
+ Vector2 ofs = pb->get_final_offset();
+ float scale = pb->get_scroll_scale();
+ set_base_offset_and_scale(ofs,scale);
+ }
+
}
Size2 ParallaxLayer::get_motion_scale() const {
@@ -40,6 +49,23 @@ Size2 ParallaxLayer::get_motion_scale() const {
}
+void ParallaxLayer::set_motion_offset(const Size2& p_offset) {
+
+ motion_offset=p_offset;
+
+ ParallaxBackground *pb = get_parent()->cast_to<ParallaxBackground>();
+ if (is_inside_tree() && pb) {
+ Vector2 ofs = pb->get_final_offset();
+ float scale = pb->get_scroll_scale();
+ set_base_offset_and_scale(ofs,scale);
+ }
+}
+
+Size2 ParallaxLayer::get_motion_offset() const {
+
+ return motion_offset;
+
+}
void ParallaxLayer::_update_mirroring() {
@@ -59,6 +85,11 @@ void ParallaxLayer::_update_mirroring() {
void ParallaxLayer::set_mirroring(const Size2& p_mirroring) {
mirroring=p_mirroring;
+ if (mirroring.x<0)
+ mirroring.x=0;
+ if (mirroring.y<0)
+ mirroring.y=0;
+
_update_mirroring();
}
@@ -89,16 +120,26 @@ void ParallaxLayer::set_base_offset_and_scale(const Point2& p_offset,float p_sca
return;
if (get_tree()->is_editor_hint())
return;
- Point2 new_ofs = ((orig_offset+p_offset)*motion_scale)*p_scale;
+ Point2 new_ofs = ((orig_offset+p_offset)*motion_scale)*p_scale+motion_offset;
if (mirroring.x) {
- double den = mirroring.x*p_scale;
- new_ofs.x = fmod(new_ofs.x,den) - (mirroring.x > 0 ? den : 0);
+
+ while( new_ofs.x>=0) {
+ new_ofs.x -= mirroring.x*p_scale;
+ }
+ while(new_ofs.x < -mirroring.x*p_scale) {
+ new_ofs.x += mirroring.x*p_scale;
+ }
}
if (mirroring.y) {
- double den = mirroring.y*p_scale;
- new_ofs.y = fmod(new_ofs.y,den) - (mirroring.y > 0 ? den : 0);
+
+ while( new_ofs.y>=0) {
+ new_ofs.y -= mirroring.y*p_scale;
+ }
+ while(new_ofs.y < -mirroring.y*p_scale) {
+ new_ofs.y += mirroring.y*p_scale;
+ }
}
@@ -122,10 +163,13 @@ void ParallaxLayer::_bind_methods() {
ObjectTypeDB::bind_method(_MD("set_motion_scale","scale"),&ParallaxLayer::set_motion_scale);
ObjectTypeDB::bind_method(_MD("get_motion_scale"),&ParallaxLayer::get_motion_scale);
+ ObjectTypeDB::bind_method(_MD("set_motion_offset","offset"),&ParallaxLayer::set_motion_offset);
+ ObjectTypeDB::bind_method(_MD("get_motion_offset"),&ParallaxLayer::get_motion_offset);
ObjectTypeDB::bind_method(_MD("set_mirroring","mirror"),&ParallaxLayer::set_mirroring);
ObjectTypeDB::bind_method(_MD("get_mirroring"),&ParallaxLayer::get_mirroring);
ADD_PROPERTY( PropertyInfo(Variant::VECTOR2,"motion/scale"),_SCS("set_motion_scale"),_SCS("get_motion_scale"));
+ ADD_PROPERTY( PropertyInfo(Variant::VECTOR2,"motion/offset"),_SCS("set_motion_offset"),_SCS("get_motion_offset"));
ADD_PROPERTY( PropertyInfo(Variant::VECTOR2,"motion/mirroring"),_SCS("set_mirroring"),_SCS("get_mirroring"));
}
diff --git a/scene/2d/parallax_layer.h b/scene/2d/parallax_layer.h
index c2d345da47..6b1d73ea66 100644
--- a/scene/2d/parallax_layer.h
+++ b/scene/2d/parallax_layer.h
@@ -38,6 +38,7 @@ class ParallaxLayer : public Node2D {
Point2 orig_offset;
Point2 orig_scale;
Size2 motion_scale;
+ Vector2 motion_offset;
Vector2 mirroring;
void _update_mirroring();
@@ -48,6 +49,9 @@ protected:
public:
+ void set_motion_offset(const Size2& p_scale);
+ Size2 get_motion_offset() const;
+
void set_motion_scale(const Size2& p_scale);
Size2 get_motion_scale() const;
diff --git a/scene/2d/sprite.cpp b/scene/2d/sprite.cpp
index 3e6384ea2c..27aa08ec5b 100644
--- a/scene/2d/sprite.cpp
+++ b/scene/2d/sprite.cpp
@@ -120,6 +120,7 @@ void Sprite::set_texture(const Ref<Texture>& p_texture) {
}
#endif
update();
+ emit_signal("texture_changed");
item_rect_changed();
}
@@ -323,6 +324,7 @@ void Sprite::_bind_methods() {
ObjectTypeDB::bind_method(_MD("get_modulate"),&Sprite::get_modulate);
ADD_SIGNAL(MethodInfo("frame_changed"));
+ ADD_SIGNAL(MethodInfo("texture_changed"));
ADD_PROPERTYNZ( PropertyInfo( Variant::OBJECT, "texture", PROPERTY_HINT_RESOURCE_TYPE,"Texture"), _SCS("set_texture"),_SCS("get_texture"));
ADD_PROPERTYNO( PropertyInfo( Variant::BOOL, "centered"), _SCS("set_centered"),_SCS("is_centered"));
diff --git a/scene/3d/skeleton.cpp b/scene/3d/skeleton.cpp
index d0b739e17f..c996a8123c 100644
--- a/scene/3d/skeleton.cpp
+++ b/scene/3d/skeleton.cpp
@@ -64,15 +64,17 @@ bool Skeleton::_set(const StringName& p_path, const Variant& p_value) {
else if (what=="bound_childs") {
Array children=p_value;
- bones[which].nodes_bound.clear();
+ if (is_inside_tree()) {
+ bones[which].nodes_bound.clear();
- for (int i=0;i<children.size();i++) {
+ for (int i=0;i<children.size();i++) {
- NodePath path=children[i];
- ERR_CONTINUE( path.operator String()=="" );
- Node *node = get_node(path);
- ERR_CONTINUE(!node);
- bind_child_node_to_bone(which,node);
+ NodePath path=children[i];
+ ERR_CONTINUE( path.operator String()=="" );
+ Node *node = get_node(path);
+ ERR_CONTINUE(!node);
+ bind_child_node_to_bone(which,node);
+ }
}
} else {
return false;
diff --git a/scene/animation/animation_player.cpp b/scene/animation/animation_player.cpp
index dd4fa992ac..30af9b0094 100644
--- a/scene/animation/animation_player.cpp
+++ b/scene/animation/animation_player.cpp
@@ -540,7 +540,6 @@ void AnimationPlayer::_animation_process_data(PlaybackData &cd,float p_delta,flo
float len=cd.from->animation->get_length();
bool loop=cd.from->animation->has_loop();
- bool loop_interpolation=cd.from->animation->has_loop_interpolation();
if (!loop) {
@@ -566,21 +565,10 @@ void AnimationPlayer::_animation_process_data(PlaybackData &cd,float p_delta,flo
}
- } else if (loop_interpolation) {
+ } else {
next_pos=Math::fposmod(next_pos,len);
- } else {
-
- if (next_pos<0 || next_pos>len) {
- if (!backwards)
- next_pos=0;
- else if (backwards)
- next_pos=len;
- }
- // fix delta - not sure if needed here
- delta=next_pos-cd.pos;
-
}
cd.pos=next_pos;
diff --git a/scene/audio/stream_player.cpp b/scene/audio/stream_player.cpp
index 050e945c8f..99ecace1ed 100644
--- a/scene/audio/stream_player.cpp
+++ b/scene/audio/stream_player.cpp
@@ -77,7 +77,7 @@ void StreamPlayer::sp_update() {
if (to_mix==0) {
if (!stop_request) {
stop_request=true;
- call_deferred("stop");
+ call_deferred("_do_stop");
}
return;
}
@@ -91,7 +91,10 @@ void StreamPlayer::sp_update() {
}
}
-
+void StreamPlayer::_do_stop() {
+ stop();
+ emit_signal("finished");
+}
void StreamPlayer::_notification(int p_what) {
@@ -181,7 +184,7 @@ void StreamPlayer::stop() {
stop_request=false;
playback->stop();
resampler.flush();
- emit_signal("finished");
+
//set_idle_process(false);
}
@@ -381,6 +384,7 @@ void StreamPlayer::_bind_methods() {
ObjectTypeDB::bind_method(_MD("_set_play","play"),&StreamPlayer::_set_play);
ObjectTypeDB::bind_method(_MD("_get_play"),&StreamPlayer::_get_play);
+ ObjectTypeDB::bind_method(_MD("_do_stop"),&StreamPlayer::_do_stop);
ADD_PROPERTY( PropertyInfo(Variant::OBJECT, "stream/stream", PROPERTY_HINT_RESOURCE_TYPE,"AudioStream"), _SCS("set_stream"), _SCS("get_stream") );
ADD_PROPERTY( PropertyInfo(Variant::BOOL, "stream/play"), _SCS("_set_play"), _SCS("_get_play") );
diff --git a/scene/audio/stream_player.h b/scene/audio/stream_player.h
index 475139c2a4..4facc3c816 100644
--- a/scene/audio/stream_player.h
+++ b/scene/audio/stream_player.h
@@ -71,6 +71,8 @@ class StreamPlayer : public Node {
AudioRBResampler resampler;
+ void _do_stop();
+
bool _play;
void _set_play(bool p_play);
bool _get_play() const;
diff --git a/scene/gui/base_button.cpp b/scene/gui/base_button.cpp
index d7632b14b8..699062fee4 100644
--- a/scene/gui/base_button.cpp
+++ b/scene/gui/base_button.cpp
@@ -31,6 +31,7 @@
#include "print_string.h"
#include "button_group.h"
#include "scene/scene_string_names.h"
+#include "scene/main/viewport.h"
void BaseButton::_input_event(InputEvent p_event) {
@@ -415,7 +416,11 @@ Ref<ShortCut> BaseButton:: get_shortcut() const {
void BaseButton::_unhandled_input(InputEvent p_event) {
- if (!is_disabled() && is_visible() && shortcut.is_valid() && shortcut->is_shortcut(p_event)) {
+ if (!is_disabled() && is_visible() && p_event.is_pressed() && shortcut.is_valid() && shortcut->is_shortcut(p_event)) {
+
+ if (get_viewport()->get_modal_stack_top() && !get_viewport()->get_modal_stack_top()->is_a_parent_of(this))
+ return; //ignore because of modal window
+
if (is_toggle_mode()) {
set_pressed(!is_pressed());
emit_signal("toggled",is_pressed());
diff --git a/scene/gui/color_picker.cpp b/scene/gui/color_picker.cpp
index d6bbdf2d21..06f8c27957 100644
--- a/scene/gui/color_picker.cpp
+++ b/scene/gui/color_picker.cpp
@@ -72,13 +72,16 @@ void ColorPicker::_notification(int p_what) {
_update_color();
}
- case NOTIFICATION_VISIBILITY_CHANGED: {
- c_text->call_deferred("grab_focus");
- c_text->call_deferred("select");
- } break;
+
}
}
+void ColorPicker::set_focus_on_line_edit() {
+
+ c_text->grab_focus();
+ c_text->select();
+}
+
void ColorPicker::_update_controls() {
if (edit_alpha) {
@@ -628,6 +631,7 @@ void ColorPickerButton::pressed() {
popup->set_pos(get_global_pos()-Size2(0,ms.height));
popup->set_size(ms);
popup->popup();
+ picker->set_focus_on_line_edit();
}
diff --git a/scene/gui/color_picker.h b/scene/gui/color_picker.h
index f5de982200..b9ef1f1e2f 100644
--- a/scene/gui/color_picker.h
+++ b/scene/gui/color_picker.h
@@ -107,6 +107,7 @@ public:
void set_raw_mode(bool p_enabled);
bool is_raw_mode() const;
+ void set_focus_on_line_edit();
ColorPicker();
};
diff --git a/scene/gui/color_ramp_edit.cpp b/scene/gui/color_ramp_edit.cpp
index 50e1ffbec9..b7347f00dc 100644
--- a/scene/gui/color_ramp_edit.cpp
+++ b/scene/gui/color_ramp_edit.cpp
@@ -271,7 +271,9 @@ void ColorRampEdit::_input_event(const InputEvent& p_event) {
void ColorRampEdit::_notification(int p_what) {
if (p_what==NOTIFICATION_ENTER_TREE) {
- picker->connect("color_changed",this,"_color_changed");
+ if (!picker->is_connected("color_changed",this,"_color_changed")) {
+ picker->connect("color_changed",this,"_color_changed");
+ }
}
if (p_what==NOTIFICATION_DRAW) {
diff --git a/scene/gui/control.cpp b/scene/gui/control.cpp
index 2e28baa137..fc27c0d24f 100644
--- a/scene/gui/control.cpp
+++ b/scene/gui/control.cpp
@@ -49,14 +49,22 @@
Variant Control::edit_get_state() const {
- return get_rect();
+ Dictionary s;
+ s["rect"]=get_rect();
+ s["rot"]=get_rotation();
+ s["scale"]=get_scale();
+ return s;
}
void Control::edit_set_state(const Variant& p_state) {
- Rect2 state=p_state;
+ Dictionary s=p_state;
+
+ Rect2 state=s["rect"];
set_pos(state.pos);
set_size(state.size);
+ set_rotation(s["rot"]);
+ set_scale(s["scale"]);
}
void Control::set_custom_minimum_size(const Size2& p_custom) {
@@ -754,6 +762,11 @@ bool Control::is_window_modal_on_top() const {
return get_viewport()->_gui_is_modal_on_top(this);
}
+uint64_t Control::get_modal_frame() const {
+
+ return data.modal_frame;
+}
+
Size2 Control::get_minimum_size() const {
@@ -1829,6 +1842,7 @@ void Control::show_modal(bool p_exclusive) {
raise();
data.modal_exclusive=p_exclusive;
data.MI=get_viewport()->_gui_show_modal(this);
+ data.modal_frame=OS::get_singleton()->get_frames_drawn();
}
@@ -2539,6 +2553,7 @@ Control::Control() {
data.parent_canvas_item=NULL;
data.scale=Vector2(1,1);
data.drag_owner=0;
+ data.modal_frame=0;
for (int i=0;i<4;i++) {
diff --git a/scene/gui/control.h b/scene/gui/control.h
index 07a28de1ea..830ebd1620 100644
--- a/scene/gui/control.h
+++ b/scene/gui/control.h
@@ -132,6 +132,7 @@ private:
ObjectID drag_owner;
bool modal;
bool modal_exclusive;
+ uint64_t modal_frame; //frame used to put something as modal
Ref<Theme> theme;
Control *theme_owner;
String tooltip;
@@ -249,6 +250,7 @@ public:
Size2 get_custom_minimum_size() const;
bool is_window_modal_on_top() const;
+ uint64_t get_modal_frame() const; //frame in which this was made modal
Control *get_parent_control() const;
diff --git a/scene/gui/grid_container.cpp b/scene/gui/grid_container.cpp
index dde9768a6d..5e6622b3f8 100644
--- a/scene/gui/grid_container.cpp
+++ b/scene/gui/grid_container.cpp
@@ -156,6 +156,7 @@ void GridContainer::_notification(int p_what) {
void GridContainer::set_columns(int p_columns) {
+ ERR_FAIL_COND(p_columns<1);
columns=p_columns;
queue_sort();
minimum_size_changed();
diff --git a/scene/gui/item_list.cpp b/scene/gui/item_list.cpp
index 5379836746..d63c483ef9 100644
--- a/scene/gui/item_list.cpp
+++ b/scene/gui/item_list.cpp
@@ -1245,6 +1245,19 @@ real_t ItemList::get_icon_scale() const {
return icon_scale;
}
+Vector<int> ItemList::get_selected_items() {
+ Vector<int> selected;
+ for (int i = 0; i < items.size(); i++) {
+ if (items[i].selected) {
+ selected.push_back(i);
+ if (this->select_mode == SELECT_SINGLE) {
+ break;
+ }
+ }
+ }
+ return selected;
+}
+
void ItemList::_bind_methods(){
ObjectTypeDB::bind_method(_MD("add_item","text","icon:Texture","selectable"),&ItemList::add_item,DEFVAL(Variant()),DEFVAL(true));
@@ -1277,6 +1290,7 @@ void ItemList::_bind_methods(){
ObjectTypeDB::bind_method(_MD("select","idx","single"),&ItemList::select,DEFVAL(true));
ObjectTypeDB::bind_method(_MD("unselect","idx"),&ItemList::unselect);
ObjectTypeDB::bind_method(_MD("is_selected","idx"),&ItemList::is_selected);
+ ObjectTypeDB::bind_method(_MD("get_selected_items"),&ItemList::get_selected_items);
ObjectTypeDB::bind_method(_MD("get_item_count"),&ItemList::get_item_count);
ObjectTypeDB::bind_method(_MD("remove_item","idx"),&ItemList::remove_item);
@@ -1330,8 +1344,6 @@ void ItemList::_bind_methods(){
ADD_SIGNAL( MethodInfo("item_activated",PropertyInfo(Variant::INT,"index")));
}
-
-
ItemList::ItemList() {
current=-1;
diff --git a/scene/gui/item_list.h b/scene/gui/item_list.h
index aa6dd64c50..e1902d1c1f 100644
--- a/scene/gui/item_list.h
+++ b/scene/gui/item_list.h
@@ -144,6 +144,7 @@ public:
void select(int p_idx,bool p_single=true);
void unselect(int p_idx);
bool is_selected(int p_idx) const;
+ Vector<int> get_selected_items();
void set_current(int p_current);
int get_current() const;
diff --git a/scene/gui/line_edit.cpp b/scene/gui/line_edit.cpp
index 579a6e2f0a..c025e4c706 100644
--- a/scene/gui/line_edit.cpp
+++ b/scene/gui/line_edit.cpp
@@ -108,7 +108,7 @@ void LineEdit::_input_event(InputEvent p_event) {
selection.doubleclick=false;
if (OS::get_singleton()->has_virtual_keyboard())
- OS::get_singleton()->show_virtual_keyboard(get_text(),get_global_rect());
+ OS::get_singleton()->show_virtual_keyboard(text,get_global_rect());
}
update();
@@ -556,7 +556,9 @@ void LineEdit::_notification(int p_what) {
cursor_set_blink_enabled(EDITOR_DEF("text_editor/caret_blink", false));
cursor_set_blink_speed(EDITOR_DEF("text_editor/caret_blink_speed", 0.65));
- EditorSettings::get_singleton()->connect("settings_changed",this,"_editor_settings_changed");
+ if (!EditorSettings::get_singleton()->is_connected("settings_changed",this,"_editor_settings_changed")) {
+ EditorSettings::get_singleton()->connect("settings_changed",this,"_editor_settings_changed");
+ }
}
} break;
#endif
@@ -634,14 +636,19 @@ void LineEdit::_notification(int p_what) {
Color font_color_selected=get_color("font_color_selected");
Color cursor_color=get_color("cursor_color");
+ const String& t = text.empty() ? placeholder : text;
+ // draw placeholder color
+ if(text.empty())
+ font_color.a *= placeholder_alpha;
+
while(true) {
//end of string, break!
- if (char_ofs>=text.length())
+ if (char_ofs>=t.length())
break;
- CharType cchar=pass?'*':text[char_ofs];
- CharType next=pass?'*':text[char_ofs+1];
+ CharType cchar=pass?'*':t[char_ofs];
+ CharType next=pass?'*':t[char_ofs+1];
int char_width=font->get_char_size( cchar,next ).width;
// end of widget, break!
@@ -678,7 +685,7 @@ void LineEdit::_notification(int p_what) {
}
if (OS::get_singleton()->has_virtual_keyboard())
- OS::get_singleton()->show_virtual_keyboard(get_text(),get_global_rect());
+ OS::get_singleton()->show_virtual_keyboard(text,get_global_rect());
} break;
case NOTIFICATION_FOCUS_EXIT: {
@@ -938,6 +945,29 @@ String LineEdit::get_text() const {
return text;
}
+void LineEdit::set_placeholder(String p_text) {
+
+ placeholder = p_text;
+ update();
+}
+
+String LineEdit::get_placeholder() const {
+
+ return placeholder;
+}
+
+
+void LineEdit::set_placeholder_alpha(float p_alpha) {
+
+ placeholder_alpha = p_alpha;
+ update();
+}
+
+float LineEdit::get_placeholder_alpha() const {
+
+ return placeholder_alpha;
+}
+
void LineEdit::set_cursor_pos(int p_pos) {
if (p_pos>(int)text.length())
@@ -1223,6 +1253,10 @@ void LineEdit::_bind_methods() {
ObjectTypeDB::bind_method(_MD("select_all"),&LineEdit::select_all);
ObjectTypeDB::bind_method(_MD("set_text","text"),&LineEdit::set_text);
ObjectTypeDB::bind_method(_MD("get_text"),&LineEdit::get_text);
+ ObjectTypeDB::bind_method(_MD("set_placeholder","text"),&LineEdit::set_placeholder);
+ ObjectTypeDB::bind_method(_MD("get_placeholder"),&LineEdit::get_placeholder);
+ ObjectTypeDB::bind_method(_MD("set_placeholder_alpha","alpha"),&LineEdit::set_placeholder_alpha);
+ ObjectTypeDB::bind_method(_MD("get_placeholder_alpha"),&LineEdit::get_placeholder_alpha);
ObjectTypeDB::bind_method(_MD("set_cursor_pos","pos"),&LineEdit::set_cursor_pos);
ObjectTypeDB::bind_method(_MD("get_cursor_pos"),&LineEdit::get_cursor_pos);
ObjectTypeDB::bind_method(_MD("cursor_set_blink_enabled", "enable"),&LineEdit::cursor_set_blink_enabled);
@@ -1257,6 +1291,8 @@ void LineEdit::_bind_methods() {
BIND_CONSTANT( MENU_MAX );
ADD_PROPERTYNZ( PropertyInfo( Variant::STRING, "text" ), _SCS("set_text"),_SCS("get_text") );
+ ADD_PROPERTYNZ( PropertyInfo( Variant::STRING, "placeholder/text" ), _SCS("set_placeholder"),_SCS("get_placeholder") );
+ ADD_PROPERTYNZ( PropertyInfo( Variant::REAL, "placeholder/alpha",PROPERTY_HINT_RANGE,"0,1,0.001" ), _SCS("set_placeholder_alpha"),_SCS("get_placeholder_alpha") );
ADD_PROPERTYNZ(PropertyInfo(Variant::INT, "align", PROPERTY_HINT_ENUM, "Left,Center,Right,Fill"), _SCS("set_align"), _SCS("get_align"));
ADD_PROPERTYNZ( PropertyInfo( Variant::INT, "max_length" ), _SCS("set_max_length"),_SCS("get_max_length") );
ADD_PROPERTYNO( PropertyInfo( Variant::BOOL, "editable" ), _SCS("set_editable"),_SCS("is_editable") );
@@ -1275,6 +1311,7 @@ LineEdit::LineEdit() {
window_has_focus=true;
max_length = 0;
pass=false;
+ placeholder_alpha=0.6;
selection_clear();
set_focus_mode( FOCUS_ALL );
diff --git a/scene/gui/line_edit.h b/scene/gui/line_edit.h
index e4da0f0b87..112e4ad55e 100644
--- a/scene/gui/line_edit.h
+++ b/scene/gui/line_edit.h
@@ -67,6 +67,8 @@ private:
String undo_text;
String text;
+ String placeholder;
+ float placeholder_alpha;
PopupMenu *menu;
@@ -135,6 +137,10 @@ public:
void delete_text(int p_from_column, int p_to_column);
void set_text(String p_text);
String get_text() const;
+ void set_placeholder(String p_text);
+ String get_placeholder() const;
+ void set_placeholder_alpha(float p_alpha);
+ float get_placeholder_alpha() const;
void set_cursor_pos(int p_pos);
int get_cursor_pos() const;
void set_max_length(int p_max_length);
diff --git a/scene/gui/patch_9_frame.cpp b/scene/gui/patch_9_frame.cpp
index a6a3490ad2..9ad6398359 100644
--- a/scene/gui/patch_9_frame.cpp
+++ b/scene/gui/patch_9_frame.cpp
@@ -79,6 +79,8 @@ void Patch9Frame::_bind_methods() {
ObjectTypeDB::bind_method(_MD("set_draw_center","draw_center"), & Patch9Frame::set_draw_center );
ObjectTypeDB::bind_method(_MD("get_draw_center"), & Patch9Frame::get_draw_center );
+ ADD_SIGNAL(MethodInfo("texture_changed"));
+
ADD_PROPERTYNZ( PropertyInfo( Variant::OBJECT, "texture", PROPERTY_HINT_RESOURCE_TYPE, "Texture"), _SCS("set_texture"),_SCS("get_texture") );
ADD_PROPERTYNO( PropertyInfo( Variant::COLOR, "modulate"), _SCS("set_modulate"),_SCS("get_modulate") );
ADD_PROPERTYNO( PropertyInfo( Variant::BOOL, "draw_center"), _SCS("set_draw_center"),_SCS("get_draw_center") );
@@ -93,11 +95,14 @@ void Patch9Frame::_bind_methods() {
void Patch9Frame::set_texture(const Ref<Texture>& p_tex) {
+ if (texture==p_tex)
+ return;
texture=p_tex;
update();
//if (texture.is_valid())
// texture->set_flags(texture->get_flags()&(~Texture::FLAG_REPEAT)); //remove repeat from texture, it looks bad in sprites
minimum_size_changed();
+ emit_signal("texture_changed");
}
Ref<Texture> Patch9Frame::get_texture() const {
diff --git a/scene/gui/text_edit.cpp b/scene/gui/text_edit.cpp
index 6fd6137ac8..e106f0dfc6 100644
--- a/scene/gui/text_edit.cpp
+++ b/scene/gui/text_edit.cpp
@@ -852,6 +852,11 @@ void TextEdit::_notification(int p_what) {
k++;
}
+ // check for space between name and bracket
+ while (k < str.length() && (str[k] == '\t' || str[k] == ' ')) {
+ k++;
+ }
+
if (str[k] == '(') {
in_function_name = true;
}
@@ -1973,6 +1978,7 @@ void TextEdit::_input_event(const InputEvent& p_input_event) {
}
} break;
case KEY_TAB: {
+ if (k.mod.command) break; // avoid tab when command
if (readonly)
break;
@@ -4541,6 +4547,7 @@ TextEdit::TextEdit() {
scroll_past_end_of_file_enabled=false;
auto_brace_completion_enabled=false;
brace_matching_enabled=false;
+ highlight_all_occurrences=false;
auto_indent=false;
insert_mode = false;
window_has_focus=true;
diff --git a/scene/gui/tree.cpp b/scene/gui/tree.cpp
index f8516f8f5d..db14c15db8 100644
--- a/scene/gui/tree.cpp
+++ b/scene/gui/tree.cpp
@@ -1355,6 +1355,8 @@ void Tree::select_single_item(TreeItem *p_selected,TreeItem *p_current,int p_col
switched=true;
}
+ bool emitted_row=false;
+
for (int i=0;i<columns.size();i++) {
TreeItem::Cell &c=p_current->cells[i];
@@ -1373,7 +1375,10 @@ void Tree::select_single_item(TreeItem *p_selected,TreeItem *p_current,int p_col
selected_item=p_selected;
selected_col=0;
selected_item=p_selected;
- emit_signal("item_selected");
+ if (!emitted_row) {
+ emit_signal("item_selected");
+ emitted_row=true;
+ }
//if (p_col==i)
// p_current->selected_signal.call(p_col);
}
diff --git a/scene/main/node.cpp b/scene/main/node.cpp
index 11b400d4a9..bea6e75aef 100644
--- a/scene/main/node.cpp
+++ b/scene/main/node.cpp
@@ -2085,6 +2085,15 @@ bool Node::is_owned_by_parent() const {
return data.parent_owned;
}
+void Node::set_display_folded(bool p_folded) {
+ data.display_folded=p_folded;
+}
+
+bool Node::is_displayed_folded() const {
+
+ return data.display_folded;
+}
+
void Node::_bind_methods() {
ObjectTypeDB::bind_method(_MD("_add_child_below_node","node:Node","child_node:Node","legible_unique_name"),&Node::add_child_below_node,DEFVAL(false));
@@ -2140,6 +2149,8 @@ void Node::_bind_methods() {
ObjectTypeDB::bind_method(_MD("can_process"),&Node::can_process);
ObjectTypeDB::bind_method(_MD("print_stray_nodes"),&Node::_print_stray_nodes);
ObjectTypeDB::bind_method(_MD("get_position_in_parent"),&Node::get_position_in_parent);
+ ObjectTypeDB::bind_method(_MD("set_display_folded","fold"),&Node::set_display_folded);
+ ObjectTypeDB::bind_method(_MD("is_displayed_folded"),&Node::is_displayed_folded);
ObjectTypeDB::bind_method(_MD("get_tree:SceneTree"),&Node::get_tree);
@@ -2194,6 +2205,7 @@ void Node::_bind_methods() {
//ADD_PROPERTYNZ( PropertyInfo( Variant::BOOL, "process/input" ), _SCS("set_process_input"),_SCS("is_processing_input" ) );
//ADD_PROPERTYNZ( PropertyInfo( Variant::BOOL, "process/unhandled_input" ), _SCS("set_process_unhandled_input"),_SCS("is_processing_unhandled_input" ) );
ADD_PROPERTYNZ( PropertyInfo( Variant::INT, "process/pause_mode",PROPERTY_HINT_ENUM,"Inherit,Stop,Process" ), _SCS("set_pause_mode"),_SCS("get_pause_mode" ) );
+ ADD_PROPERTYNZ( PropertyInfo( Variant::BOOL, "editor/display_folded",PROPERTY_HINT_NONE,"",PROPERTY_USAGE_NOEDITOR ), _SCS("set_display_folded"),_SCS("is_displayed_folded" ) );
BIND_VMETHOD( MethodInfo("_process",PropertyInfo(Variant::REAL,"delta")) );
BIND_VMETHOD( MethodInfo("_fixed_process",PropertyInfo(Variant::REAL,"delta")) );
@@ -2231,6 +2243,7 @@ Node::Node() {
data.in_constructor=true;
data.viewport=NULL;
data.use_placeholder=false;
+ data.display_folded=false;
}
Node::~Node() {
@@ -2240,6 +2253,7 @@ Node::~Node() {
data.owned.clear();
data.children.clear();
+
ERR_FAIL_COND(data.parent);
ERR_FAIL_COND(data.children.size());
diff --git a/scene/main/node.h b/scene/main/node.h
index 88334f32f0..dcc3829d15 100644
--- a/scene/main/node.h
+++ b/scene/main/node.h
@@ -111,6 +111,7 @@ private:
bool in_constructor;
bool use_placeholder;
+ bool display_folded;
} data;
@@ -325,6 +326,8 @@ public:
void update_configuration_warning();
+ void set_display_folded(bool p_folded);
+ bool is_displayed_folded() const;
/* CANVAS */
Node();
diff --git a/scene/main/viewport.cpp b/scene/main/viewport.cpp
index 3c52af1c1e..c6a32d5568 100644
--- a/scene/main/viewport.cpp
+++ b/scene/main/viewport.cpp
@@ -1331,11 +1331,11 @@ Matrix32 Viewport::_get_input_pre_xform() const {
Matrix32 pre_xf;
if (render_target) {
- ERR_FAIL_COND_V(to_screen_rect.size.x==0,pre_xf);
- ERR_FAIL_COND_V(to_screen_rect.size.y==0,pre_xf);
+ if (to_screen_rect!=Rect2()) {
- pre_xf.elements[2]=-to_screen_rect.pos;
- pre_xf.scale(rect.size/to_screen_rect.size);
+ pre_xf.elements[2]=-to_screen_rect.pos;
+ pre_xf.scale(rect.size/to_screen_rect.size);
+ }
} else {
pre_xf.elements[2]=-rect.pos;
@@ -1575,35 +1575,38 @@ void Viewport::_gui_call_input(Control *p_control,const InputEvent& p_input) {
// _block();
+ InputEvent ev = p_input;
+
//mouse wheel events can't be stopped
- bool cant_stop_me_now = (p_input.type==InputEvent::MOUSE_BUTTON &&
- (p_input.mouse_button.button_index==BUTTON_WHEEL_DOWN ||
- p_input.mouse_button.button_index==BUTTON_WHEEL_UP ||
- p_input.mouse_button.button_index==BUTTON_WHEEL_LEFT ||
- p_input.mouse_button.button_index==BUTTON_WHEEL_RIGHT ) );
+ bool cant_stop_me_now = (ev.type==InputEvent::MOUSE_BUTTON &&
+ (ev.mouse_button.button_index==BUTTON_WHEEL_DOWN ||
+ ev.mouse_button.button_index==BUTTON_WHEEL_UP ||
+ ev.mouse_button.button_index==BUTTON_WHEEL_LEFT ||
+ ev.mouse_button.button_index==BUTTON_WHEEL_RIGHT ) );
CanvasItem *ci=p_control;
while(ci) {
Control *control = ci->cast_to<Control>();
if (control) {
- control->call_multilevel(SceneStringNames::get_singleton()->_input_event,p_input);
+ control->call_multilevel(SceneStringNames::get_singleton()->_input_event,ev);
if (gui.key_event_accepted)
break;
if (!control->is_inside_tree())
break;
- control->emit_signal(SceneStringNames::get_singleton()->input_event,p_input);
+ control->emit_signal(SceneStringNames::get_singleton()->input_event,ev);
if (!control->is_inside_tree() || control->is_set_as_toplevel())
break;
if (gui.key_event_accepted)
break;
- if (!cant_stop_me_now && control->data.stop_mouse && (p_input.type==InputEvent::MOUSE_BUTTON || p_input.type==InputEvent::MOUSE_MOTION))
+ if (!cant_stop_me_now && control->data.stop_mouse && (ev.type==InputEvent::MOUSE_BUTTON || ev.type==InputEvent::MOUSE_MOTION))
break;
}
if (ci->is_set_as_toplevel())
break;
+ ev=ev.xform_by(ci->get_transform()); //transform event upwards
ci=ci->get_parent_item();
}
@@ -1749,8 +1752,9 @@ void Viewport::_gui_input_event(InputEvent p_event) {
Vector2 pos = top->get_global_transform_with_canvas().affine_inverse().xform(mpos);
if (!top->has_point(pos)) {
- if (top->data.modal_exclusive) {
+ if (top->data.modal_exclusive || top->data.modal_frame==OS::get_singleton()->get_frames_drawn()) {
//cancel event, sorry, modal exclusive EATS UP ALL
+ //alternative, you can't pop out a window the same frame it was made modal (fixes many issues)
//get_tree()->call_group(SceneTree::GROUP_CALL_REALTIME,"windows","_cancel_input_ID",p_event.ID);
get_tree()->set_input_as_handled();
return; // no one gets the event if exclusive NO ONE
@@ -1784,15 +1788,12 @@ void Viewport::_gui_input_event(InputEvent p_event) {
if (p_event.mouse_button.button_index==BUTTON_LEFT) {
gui.drag_accum=Vector2();
gui.drag_attempted=false;
- if (gui.drag_data.get_type()!=Variant::NIL) {
- _propagate_viewport_notification(this,NOTIFICATION_DRAG_END);
- }
- gui.drag_data=Variant();
}
}
+
p_event.mouse_button.global_x = pos.x;
p_event.mouse_button.global_y = pos.y;
@@ -1828,30 +1829,55 @@ void Viewport::_gui_input_event(InputEvent p_event) {
get_tree()->call_group(SceneTree::GROUP_CALL_REALTIME,"windows","_cancel_input_ID",p_event.ID);
get_tree()->set_input_as_handled();
+
+ if (gui.drag_data.get_type()!=Variant::NIL && p_event.mouse_button.button_index==BUTTON_LEFT) {
+
+ //alternate drop use (when using force_drag(), as proposed by #5342
+ if (gui.mouse_focus && gui.mouse_focus->can_drop_data(pos,gui.drag_data)) {
+ gui.mouse_focus->drop_data(pos,gui.drag_data);
+ }
+
+ gui.drag_data=Variant();
+
+ if (gui.drag_preview) {
+ memdelete( gui.drag_preview );
+ gui.drag_preview=NULL;
+ }
+ _propagate_viewport_notification(this,NOTIFICATION_DRAG_END);
+ //change mouse accordingly
+ }
+
+
+
_gui_cancel_tooltip();
//gui.tooltip_popup->hide();
} else {
- if (gui.drag_preview && p_event.mouse_button.button_index==BUTTON_LEFT) {
- memdelete( gui.drag_preview );
- gui.drag_preview=NULL;
- }
- if (!gui.mouse_focus) {
- if (gui.mouse_over && gui.drag_data.get_type()!=Variant::NIL && p_event.mouse_button.button_index==BUTTON_LEFT) {
+ if (gui.drag_data.get_type()!=Variant::NIL && p_event.mouse_button.button_index==BUTTON_LEFT) {
+ if (gui.mouse_over) {
Size2 pos = mpos;
pos = gui.focus_inv_xform.xform(pos);
if (gui.mouse_over->can_drop_data(pos,gui.drag_data)) {
gui.mouse_over->drop_data(pos,gui.drag_data);
}
- gui.drag_data=Variant();
- _propagate_viewport_notification(this,NOTIFICATION_DRAG_END);
- //change mouse accordingly
}
+ if (gui.drag_preview && p_event.mouse_button.button_index==BUTTON_LEFT) {
+ memdelete( gui.drag_preview );
+ gui.drag_preview=NULL;
+ }
+
+ gui.drag_data=Variant();
+ _propagate_viewport_notification(this,NOTIFICATION_DRAG_END);
+ //change mouse accordingly
+ }
+
+ if (!gui.mouse_focus) {
+ //release event is only sent if a mouse focus (previously pressed button) exists
break;
}
@@ -1871,10 +1897,10 @@ void Viewport::_gui_input_event(InputEvent p_event) {
gui.mouse_focus_button=-1;
}
- if (gui.drag_data.get_type()!=Variant::NIL && p_event.mouse_button.button_index==BUTTON_LEFT) {
+ /*if (gui.drag_data.get_type()!=Variant::NIL && p_event.mouse_button.button_index==BUTTON_LEFT) {
_propagate_viewport_notification(this,NOTIFICATION_DRAG_END);
gui.drag_data=Variant(); //always clear
- }
+ }*/
get_tree()->call_group(SceneTree::GROUP_CALL_REALTIME,"windows","_cancel_input_ID",p_event.ID);
@@ -2032,7 +2058,12 @@ void Viewport::_gui_input_event(InputEvent p_event) {
case InputEvent::JOYSTICK_BUTTON:
case InputEvent::KEY: {
- if (gui.key_focus) {
+
+ if (gui.key_focus && !gui.key_focus->is_visible()) {
+ gui.key_focus->release_focus();
+ }
+
+ if (gui.key_focus) {
gui.key_event_accepted=false;
if (gui.key_focus->can_process()) {
@@ -2172,6 +2203,9 @@ void Viewport::_gui_remove_from_modal_stack(List<Control*>::Element *MI,ObjectID
void Viewport::_gui_force_drag(Control *p_base, const Variant& p_data, Control *p_control) {
+ ERR_EXPLAIN("Drag data must be a value");
+ ERR_FAIL_COND(p_data.get_type()==Variant::NIL);
+
gui.drag_data=p_data;
gui.mouse_focus=NULL;
@@ -2368,8 +2402,8 @@ void Viewport::input(const InputEvent& p_event) {
ERR_FAIL_COND(!is_inside_tree());
+ get_tree()->_call_input_pause(input_group,"_input",p_event); //not a bug, must happen before GUI, order is _input -> gui input -> _unhandled input
_gui_input_event(p_event);
- get_tree()->_call_input_pause(input_group,"_input",p_event);
//get_tree()->call_group(SceneTree::GROUP_CALL_REVERSE|SceneTree::GROUP_CALL_REALTIME|SceneTree::GROUP_CALL_MULIILEVEL,gui_input_group,"_gui_input",p_event); //special one for GUI, as controls use their own process check
}
@@ -2498,6 +2532,9 @@ Variant Viewport::gui_get_drag_data() const {
return gui.drag_data;
}
+Control *Viewport::get_modal_stack_top() const {
+ return gui.modal_stack.size()?gui.modal_stack.back()->get():NULL;
+}
String Viewport::get_configuration_warning() const {
diff --git a/scene/main/viewport.h b/scene/main/viewport.h
index 545020dfc7..aaa640e0e6 100644
--- a/scene/main/viewport.h
+++ b/scene/main/viewport.h
@@ -374,6 +374,7 @@ public:
bool gui_has_modal_stack() const;
Variant gui_get_drag_data() const;
+ Control *get_modal_stack_top() const;
virtual String get_configuration_warning() const;
diff --git a/scene/resources/animation.cpp b/scene/resources/animation.cpp
index 8be39e3021..098801bcf5 100644
--- a/scene/resources/animation.cpp
+++ b/scene/resources/animation.cpp
@@ -38,8 +38,6 @@ bool Animation::_set(const StringName& p_name, const Variant& p_value) {
set_length(p_value);
else if (name=="loop")
set_loop(p_value);
- else if (name=="loop_interpolation")
- set_loop_interpolation(p_value);
else if (name=="step")
set_step(p_value);
else if (name.begins_with("tracks/")) {
@@ -270,8 +268,6 @@ bool Animation::_get(const StringName& p_name,Variant &r_ret) const {
r_ret= length;
else if (name=="loop")
r_ret= loop;
- else if (name=="loop_interpolation")
- r_ret= loop_interpolation;
else if (name=="step")
r_ret= step;
else if (name.begins_with("tracks/")) {
@@ -437,7 +433,6 @@ void Animation::_get_property_list( List<PropertyInfo> *p_list) const {
p_list->push_back( PropertyInfo( Variant::REAL, "length", PROPERTY_HINT_RANGE, "0.001,99999,0.001"));
p_list->push_back( PropertyInfo( Variant::BOOL, "loop" ));
- p_list->push_back( PropertyInfo( Variant::BOOL, "loop_interpolation"));
p_list->push_back( PropertyInfo( Variant::REAL, "step", PROPERTY_HINT_RANGE, "0,4096,0.001" ));
for (int i=0;i<tracks.size();i++) {
@@ -1244,7 +1239,7 @@ T Animation::_interpolate( const Vector< TKey<T> >& p_keys, float p_time, Inter
float c=0;
// prepare for all cases of interpolation
- if (loop && loop_interpolation) {
+ if (loop) {
// loop
if (idx>=0) {
@@ -1632,19 +1627,10 @@ void Animation::set_loop(bool p_enabled) {
loop=p_enabled;
emit_changed();
}
-void Animation::set_loop_interpolation(bool p_enabled) {
-
- loop_interpolation=p_enabled;
- emit_changed();
-}
bool Animation::has_loop() const {
return loop;
}
-bool Animation::has_loop_interpolation() const {
-
- return loop_interpolation;
-}
void Animation::track_move_up(int p_track) {
@@ -1741,9 +1727,7 @@ void Animation::_bind_methods() {
ObjectTypeDB::bind_method(_MD("get_length"),&Animation::get_length);
ObjectTypeDB::bind_method(_MD("set_loop","enabled"),&Animation::set_loop);
- ObjectTypeDB::bind_method(_MD("set_loop_interpolation","enabled"),&Animation::set_loop_interpolation);
ObjectTypeDB::bind_method(_MD("has_loop"),&Animation::has_loop);
- ObjectTypeDB::bind_method(_MD("has_loop_interpolation"),&Animation::has_loop_interpolation);
ObjectTypeDB::bind_method(_MD("set_step","size_sec"),&Animation::set_step);
ObjectTypeDB::bind_method(_MD("get_step"),&Animation::get_step);
@@ -1771,7 +1755,6 @@ void Animation::clear() {
memdelete( tracks[i] );
tracks.clear();
loop=false;
- loop_interpolation=true;
length=1;
}
@@ -2031,7 +2014,6 @@ Animation::Animation() {
step=0.1;
loop=false;
- loop_interpolation=true;
length=1;
}
@@ -2042,3 +2024,5 @@ Animation::~Animation() {
memdelete( tracks[i] );
}
+
+
diff --git a/scene/resources/animation.h b/scene/resources/animation.h
index ee643c9678..6c8d7252aa 100644
--- a/scene/resources/animation.h
+++ b/scene/resources/animation.h
@@ -172,7 +172,6 @@ private:
float length;
float step;
bool loop;
- bool loop_interpolation;
// bind helpers
private:
@@ -279,9 +278,7 @@ public:
float get_length() const;
void set_loop(bool p_enabled);
- void set_loop_interpolation(bool p_enabled);
bool has_loop() const;
- bool has_loop_interpolation() const;
void set_step(float p_step);
float get_step() const;
diff --git a/scene/resources/packed_scene.cpp b/scene/resources/packed_scene.cpp
index ac528e6659..4f5eed8796 100644
--- a/scene/resources/packed_scene.cpp
+++ b/scene/resources/packed_scene.cpp
@@ -375,7 +375,7 @@ Error SceneState::_parse_node(Node *p_owner,Node *p_node,int p_parent_idx, Map<S
PackState ps;
ps.node=node;
ps.state=state;
- pack_state_stack.push_front(ps);
+ pack_state_stack.push_back(ps);
instanced_by_owner=false;
}
}
@@ -545,6 +545,7 @@ https://github.com/godotengine/godot/issues/3127
}
#endif
+
if (exists) {
//check if already exists and did not change
@@ -556,6 +557,7 @@ https://github.com/godotengine/godot/issues/3127
if (Math::abs(a-b)<CMP_EPSILON)
continue;
} else if (bool(Variant::evaluate(Variant::OP_EQUAL,value,original))) {
+
continue;
}
}
@@ -729,6 +731,7 @@ Error SceneState::_parse_connections(Node *p_owner,Node *p_node, Map<StringName,
List<MethodInfo> _signals;
p_node->get_signal_list(&_signals);
+ _signals.sort();
//ERR_FAIL_COND_V( !node_map.has(p_node), ERR_BUG);
//NodeData &nd = nodes[node_map[p_node]];
@@ -738,6 +741,9 @@ Error SceneState::_parse_connections(Node *p_owner,Node *p_node, Map<StringName,
List<Node::Connection> conns;
p_node->get_signal_connection_list(E->get().name,&conns);
+
+ conns.sort();
+
for(List<Node::Connection>::Element *F=conns.front();F;F=F->next()) {
const Node::Connection &c = F->get();
diff --git a/scene/resources/packed_scene.h b/scene/resources/packed_scene.h
index 6bde508d72..3b6c0898e0 100644
--- a/scene/resources/packed_scene.h
+++ b/scene/resources/packed_scene.h
@@ -196,6 +196,7 @@ class PackedScene : public Resource {
protected:
+ virtual bool editor_can_reload_from_file() { return false; } // this is handled by editor better
static void _bind_methods();
public:
diff --git a/scene/resources/sample.cpp b/scene/resources/sample.cpp
index 87fcfc425d..aae4e85a27 100644
--- a/scene/resources/sample.cpp
+++ b/scene/resources/sample.cpp
@@ -187,6 +187,8 @@ RID Sample::get_rid() const {
return sample;
}
+
+
void Sample::_bind_methods(){
diff --git a/scene/resources/sample.h b/scene/resources/sample.h
index 0a88167233..18672e41c0 100644
--- a/scene/resources/sample.h
+++ b/scene/resources/sample.h
@@ -75,6 +75,7 @@ protected:
public:
+
void create(Format p_format, bool p_stereo, int p_length);
Format get_format() const;
diff --git a/scene/resources/sample_library.cpp b/scene/resources/sample_library.cpp
index 5b70ee0e11..73517b180e 100644
--- a/scene/resources/sample_library.cpp
+++ b/scene/resources/sample_library.cpp
@@ -122,9 +122,17 @@ bool SampleLibrary::has_sample(const StringName& p_name) const {
void SampleLibrary::_get_property_list(List<PropertyInfo> *p_list) const {
+
+ List<PropertyInfo> tpl;
for(Map<StringName,SampleData>::Element *E=sample_map.front();E;E=E->next()) {
- p_list->push_back( PropertyInfo( Variant::DICTIONARY, "samples/"+E->key(),PROPERTY_HINT_RESOURCE_TYPE,"Sample",PROPERTY_USAGE_NOEDITOR ) );
+ tpl.push_back( PropertyInfo( Variant::DICTIONARY, "samples/"+E->key(),PROPERTY_HINT_RESOURCE_TYPE,"Sample",PROPERTY_USAGE_NOEDITOR ) );
+ }
+
+ tpl.sort();
+ //sort so order is kept
+ for(List<PropertyInfo>::Element *E=tpl.front();E;E=E->next()) {
+ p_list->push_back(E->get());
}
}
diff --git a/scene/resources/scene_format_text.cpp b/scene/resources/scene_format_text.cpp
index c7e2fc4e73..95645107d4 100644
--- a/scene/resources/scene_format_text.cpp
+++ b/scene/resources/scene_format_text.cpp
@@ -67,12 +67,17 @@ Error ResourceInteractiveLoaderText::_parse_sub_resource(VariantParser::Stream*
String path = local_path+"::"+itos(index);
- if (!ResourceCache::has(path)) {
- r_err_str="Can't load cached sub-resource: "+path;
- return ERR_PARSE_ERROR;
- }
+ if (!ignore_resource_parsing) {
- r_res=RES(ResourceCache::get(path));
+ if (!ResourceCache::has(path)) {
+ r_err_str="Can't load cached sub-resource: "+path;
+ return ERR_PARSE_ERROR;
+ }
+
+ r_res=RES(ResourceCache::get(path));
+ } else {
+ r_res=RES();
+ }
VariantParser::get_token(p_stream,token,line,r_err_str);
if (token.type!=VariantParser::TK_PARENTHESIS_CLOSE) {
@@ -95,25 +100,29 @@ Error ResourceInteractiveLoaderText::_parse_ext_resource(VariantParser::Stream*
int id = token.value;
+ if (!ignore_resource_parsing) {
- if (!ext_resources.has(id)) {
- r_err_str="Can't load cached ext-resource #"+itos(id);
- return ERR_PARSE_ERROR;
- }
+ if (!ext_resources.has(id)) {
+ r_err_str="Can't load cached ext-resource #"+itos(id);
+ return ERR_PARSE_ERROR;
+ }
- String path = ext_resources[id].path;
- String type = ext_resources[id].type;
+ String path = ext_resources[id].path;
+ String type = ext_resources[id].type;
- if (path.find("://")==-1 && path.is_rel_path()) {
- // path is relative to file being loaded, so convert to a resource path
- path=Globals::get_singleton()->localize_path(res_path.get_base_dir().plus_file(path));
+ if (path.find("://")==-1 && path.is_rel_path()) {
+ // path is relative to file being loaded, so convert to a resource path
+ path=Globals::get_singleton()->localize_path(res_path.get_base_dir().plus_file(path));
- }
+ }
- r_res=ResourceLoader::load(path,type);
+ r_res=ResourceLoader::load(path,type);
- if (r_res.is_null()) {
- WARN_PRINT(String("Couldn't load external resource: "+path).utf8().get_data());
+ if (r_res.is_null()) {
+ WARN_PRINT(String("Couldn't load external resource: "+path).utf8().get_data());
+ }
+ } else {
+ r_res=RES();
}
VariantParser::get_token(p_stream,token,line,r_err_str);
@@ -625,6 +634,7 @@ void ResourceInteractiveLoaderText::get_dependencies(FileAccess *f,List<String>
open(f);
+ ignore_resource_parsing=true;
ERR_FAIL_COND(error!=OK);
while(next_tag.name=="ext_resource") {
@@ -662,6 +672,7 @@ void ResourceInteractiveLoaderText::get_dependencies(FileAccess *f,List<String>
Error err = VariantParser::parse_tag(&stream,lines,error_text,next_tag,&rp);
if (err) {
+ print_line(error_text+" - "+itos(lines));
error_text="Unexpected end of file";
_printerr();
error=ERR_FILE_CORRUPT;
@@ -676,7 +687,7 @@ Error ResourceInteractiveLoaderText::rename_dependencies(FileAccess *p_f, const
open(p_f,true);
ERR_FAIL_COND_V(error!=OK,error);
-
+ ignore_resource_parsing=true;
//FileAccess
FileAccess *fw = NULL;
@@ -794,7 +805,7 @@ void ResourceInteractiveLoaderText::open(FileAccess *p_f,bool p_skip_first_tag)
stream.f=f;
is_scene=false;
-
+ ignore_resource_parsing=false;
resource_current=0;
@@ -879,6 +890,8 @@ String ResourceInteractiveLoaderText::recognize(FileAccess *p_f) {
stream.f=f;
+ ignore_resource_parsing=true;
+
VariantParser::Tag tag;
Error err = VariantParser::parse_tag(&stream,lines,error_text,tag);
@@ -1296,7 +1309,7 @@ Error ResourceFormatSaverTextInstance::save(const String &p_path,const RES& p_re
if ((PE->get().usage&PROPERTY_USAGE_STORE_IF_NONZERO && value.is_zero())||(PE->get().usage&PROPERTY_USAGE_STORE_IF_NONONE && value.is_one()) )
continue;
- if (PE->get().type==Variant::OBJECT && value.is_zero() && (!PE->get().usage&PROPERTY_USAGE_STORE_IF_NULL))
+ if (PE->get().type==Variant::OBJECT && value.is_zero() && !(PE->get().usage&PROPERTY_USAGE_STORE_IF_NULL))
continue;
String vars;
diff --git a/scene/resources/scene_format_text.h b/scene/resources/scene_format_text.h
index 8dbfbfda48..6122a1f9d8 100644
--- a/scene/resources/scene_format_text.h
+++ b/scene/resources/scene_format_text.h
@@ -56,7 +56,7 @@ class ResourceInteractiveLoaderText : public ResourceInteractiveLoader {
bool is_scene;
String res_type;
-
+ bool ignore_resource_parsing;
// Map<String,String> remaps;
diff --git a/scene/resources/style_box.cpp b/scene/resources/style_box.cpp
index a61ffe8e97..8580ffdc5a 100644
--- a/scene/resources/style_box.cpp
+++ b/scene/resources/style_box.cpp
@@ -104,7 +104,10 @@ StyleBox::StyleBox() {
void StyleBoxTexture::set_texture(RES p_texture) {
+ if (texture==p_texture)
+ return;
texture=p_texture;
+ emit_signal("texture_changed");
emit_changed();
}
@@ -207,6 +210,8 @@ void StyleBoxTexture::_bind_methods() {
ObjectTypeDB::bind_method(_MD("set_draw_center","enable"),&StyleBoxTexture::set_draw_center);
ObjectTypeDB::bind_method(_MD("get_draw_center"),&StyleBoxTexture::get_draw_center);
+ ADD_SIGNAL(MethodInfo("texture_changed"));
+
ADD_PROPERTY( PropertyInfo( Variant::OBJECT, "texture", PROPERTY_HINT_RESOURCE_TYPE, "Texture" ), _SCS("set_texture"),_SCS("get_texture") );
ADD_PROPERTYNZ( PropertyInfo( Variant::RECT2, "region_rect"), _SCS("set_region_rect"),_SCS("get_region_rect"));
ADD_PROPERTYI( PropertyInfo( Variant::REAL, "margin/left", PROPERTY_HINT_RANGE,"0,2048,1" ), _SCS("set_margin_size"),_SCS("get_margin_size"), MARGIN_LEFT );
diff --git a/scene/resources/texture.cpp b/scene/resources/texture.cpp
index 1893bfe524..726b1938c4 100644
--- a/scene/resources/texture.cpp
+++ b/scene/resources/texture.cpp
@@ -98,10 +98,6 @@ Texture::Texture() {
-bool ImageTexture::can_reload_from_file() {
-
- return true;
-}
void ImageTexture::reload_from_file() {
@@ -526,8 +522,11 @@ uint32_t AtlasTexture::get_flags() const{
void AtlasTexture::set_atlas(const Ref<Texture>& p_atlas){
+ if (atlas==p_atlas)
+ return;
atlas=p_atlas;
emit_changed();
+ emit_signal("atlas_changed");
}
Ref<Texture> AtlasTexture::get_atlas() const{
@@ -569,6 +568,8 @@ void AtlasTexture::_bind_methods() {
ObjectTypeDB::bind_method(_MD("set_margin","margin"),&AtlasTexture::set_margin);
ObjectTypeDB::bind_method(_MD("get_margin"),&AtlasTexture::get_margin);
+ ADD_SIGNAL(MethodInfo("atlas_changed"));
+
ADD_PROPERTY( PropertyInfo( Variant::OBJECT, "atlas", PROPERTY_HINT_RESOURCE_TYPE,"Texture"), _SCS("set_atlas"),_SCS("get_atlas") );
ADD_PROPERTY( PropertyInfo( Variant::RECT2, "region"), _SCS("set_region"),_SCS("get_region") );
ADD_PROPERTY( PropertyInfo( Variant::RECT2, "margin"), _SCS("set_margin"),_SCS("get_margin") );
diff --git a/scene/resources/texture.h b/scene/resources/texture.h
index 103b425cd8..05ea833978 100644
--- a/scene/resources/texture.h
+++ b/scene/resources/texture.h
@@ -103,7 +103,6 @@ private:
float lossy_storage_quality;
protected:
- virtual bool can_reload_from_file();
virtual void reload_from_file();
bool _set(const StringName& p_name, const Variant& p_value);
diff --git a/tools/doc/doc_data.cpp b/tools/doc/doc_data.cpp
index e3689cf13d..470dd078ae 100644
--- a/tools/doc/doc_data.cpp
+++ b/tools/doc/doc_data.cpp
@@ -455,6 +455,12 @@ void DocData::generate(bool p_basic_types) {
}
+ {
+ //so it can be documented that it does not exist
+ class_list["Variant"]=ClassDoc();
+ class_list["Variant"].name="Variant";
+ }
+
if (!p_basic_types)
return;
diff --git a/tools/editor/animation_editor.cpp b/tools/editor/animation_editor.cpp
index dd3c3fee32..7582162b72 100644
--- a/tools/editor/animation_editor.cpp
+++ b/tools/editor/animation_editor.cpp
@@ -2922,7 +2922,6 @@ void AnimationKeyEditor::_notification(int p_what) {
edit_button->connect("pressed",this,"_toggle_edit_curves");
loop->set_icon(get_icon("Loop","EditorIcons"));
- loop_interpolation->set_icon(get_icon("LoopInterpolation","EditorIcons"));
curve_edit->connect("transition_changed",this,"_curve_transition_changed");
//edit_button->add_color_override("font_color",get_color("font_color","Tree"));
@@ -3013,7 +3012,6 @@ void AnimationKeyEditor::_update_menu() {
length->set_val(animation->get_length());
loop->set_pressed(animation->has_loop());
- loop_interpolation->set_pressed(animation->has_loop_interpolation());
step->set_val(animation->get_step());
}
@@ -3469,21 +3467,6 @@ void AnimationKeyEditor::_animation_loop_changed() {
}
-void AnimationKeyEditor::_animation_loop_interpolation_changed() {
-
- if (updating)
- return;
-
- if (!animation.is_null()) {
-
- undo_redo->create_action(TTR("Change Anim Loop Interpolation"));
- undo_redo->add_do_method(animation.ptr(),"set_loop_interpolation",loop_interpolation->is_pressed());
- undo_redo->add_undo_method(animation.ptr(),"set_loop_interpolation",!loop_interpolation->is_pressed());
- undo_redo->commit_action();
- }
-
-}
-
void AnimationKeyEditor::_create_value_item(int p_type) {
@@ -3769,7 +3752,6 @@ void AnimationKeyEditor::_bind_methods() {
ObjectTypeDB::bind_method(_MD("_animation_loop_changed"),&AnimationKeyEditor::_animation_loop_changed);
- ObjectTypeDB::bind_method(_MD("_animation_loop_interpolation_changed"),&AnimationKeyEditor::_animation_loop_interpolation_changed);
ObjectTypeDB::bind_method(_MD("_animation_len_changed"),&AnimationKeyEditor::_animation_len_changed);
ObjectTypeDB::bind_method(_MD("_create_value_item"),&AnimationKeyEditor::_create_value_item);
ObjectTypeDB::bind_method(_MD("_pane_drag"),&AnimationKeyEditor::_pane_drag);
@@ -3880,12 +3862,6 @@ AnimationKeyEditor::AnimationKeyEditor() {
hb->add_child(loop);
loop->set_tooltip(TTR("Enable/Disable looping in animation."));
- loop_interpolation = memnew( ToolButton );
- loop_interpolation->set_toggle_mode(true);
- loop_interpolation->connect("pressed",this,"_animation_loop_interpolation_changed");
- hb->add_child(loop_interpolation);
- loop_interpolation->set_tooltip(TTR("Enable/Disable interpolation when looping animation."));
-
hb->add_child( memnew( VSeparator ) );
menu_add_track = memnew( MenuButton );
diff --git a/tools/editor/animation_editor.h b/tools/editor/animation_editor.h
index c8de1d87c1..413c73b4b9 100644
--- a/tools/editor/animation_editor.h
+++ b/tools/editor/animation_editor.h
@@ -173,7 +173,6 @@ class AnimationKeyEditor : public VBoxContainer {
//MenuButton *menu;
SpinBox *length;
Button *loop;
- Button *loop_interpolation;
bool keying;
ToolButton *edit_button;
ToolButton *move_up_button;
@@ -239,7 +238,6 @@ class AnimationKeyEditor : public VBoxContainer {
void _animation_len_changed(float p_len);
void _animation_loop_changed();
- void _animation_loop_interpolation_changed();
void _step_changed(float p_len);
struct InsertData {
diff --git a/tools/editor/asset_library_editor_plugin.cpp b/tools/editor/asset_library_editor_plugin.cpp
index a2448921d7..ee535310bc 100644
--- a/tools/editor/asset_library_editor_plugin.cpp
+++ b/tools/editor/asset_library_editor_plugin.cpp
@@ -1366,7 +1366,7 @@ EditorAssetLibrary::EditorAssetLibrary(bool p_templates_only) {
repository = memnew( OptionButton );
repository->add_item("Godot");
- repository->set_item_metadata(0, "http://godotengine.org/asset-library/api");
+ repository->set_item_metadata(0, "https://godotengine.org/asset-library/api");
repository->add_item("Localhost"); // TODO: Maybe remove?
repository->set_item_metadata(1, "http://127.0.0.1/asset-library/api");
repository->connect("item_selected",this,"_repository_changed");
diff --git a/tools/editor/editor_data.cpp b/tools/editor/editor_data.cpp
index 4c4fecdd83..0f10041034 100644
--- a/tools/editor/editor_data.cpp
+++ b/tools/editor/editor_data.cpp
@@ -565,6 +565,8 @@ bool EditorData::check_and_update_scene(int p_idx) {
bool must_reload = _find_updated_instances(edited_scene[p_idx].root,edited_scene[p_idx].root,checked_scenes);
+ print_line("MUST RELOAD? "+itos(must_reload));
+
if (must_reload) {
Ref<PackedScene> pscene;
pscene.instance();
@@ -762,6 +764,8 @@ Ref<ResourceImportMetadata> EditorData::get_edited_scene_import_metadata() const
return edited_scene[current_edited_scene].medatata;
}
+
+
void EditorData::clear_edited_scenes() {
for(int i=0;i<edited_scene.size();i++) {
diff --git a/tools/editor/editor_dir_dialog.cpp b/tools/editor/editor_dir_dialog.cpp
index a6e231cf18..f6ce7bf3f8 100644
--- a/tools/editor/editor_dir_dialog.cpp
+++ b/tools/editor/editor_dir_dialog.cpp
@@ -99,8 +99,14 @@ void EditorDirDialog::_notification(int p_what) {
if (p_what==NOTIFICATION_ENTER_TREE) {
reload();
- tree->connect("item_collapsed",this,"_item_collapsed",varray(),CONNECT_DEFERRED);
- EditorFileSystem::get_singleton()->connect("filesystem_changed",this,"reload");
+
+ if (!tree->is_connected("item_collapsed",this,"_item_collapsed")) {
+ tree->connect("item_collapsed",this,"_item_collapsed",varray(),CONNECT_DEFERRED);
+ }
+
+ if (!EditorFileSystem::get_singleton()->is_connected("filesystem_changed",this,"reload")) {
+ EditorFileSystem::get_singleton()->connect("filesystem_changed",this,"reload");
+ }
}
@@ -185,10 +191,14 @@ void EditorDirDialog::ok_pressed() {
void EditorDirDialog::_make_dir() {
TreeItem *ti=tree->get_selected();
- if (!ti)
+ if (!ti) {
+ mkdirerr->set_text("Please select a base directory first");
+ mkdirerr->popup_centered_minsize();
return;
+ }
makedialog->popup_centered_minsize(Size2(250,80));
+ makedirname->grab_focus();
}
void EditorDirDialog::_make_dir_confirm() {
@@ -198,9 +208,11 @@ void EditorDirDialog::_make_dir_confirm() {
return;
String dir = ti->get_metadata(0);
+
DirAccess *d = DirAccess::open(dir);
ERR_FAIL_COND(!d);
Error err = d->make_dir(makedirname->get_text());
+
if (err!=OK) {
mkdirerr->popup_centered_minsize(Size2(250,80));
} else {
diff --git a/tools/editor/editor_file_dialog.cpp b/tools/editor/editor_file_dialog.cpp
index e68a53659b..b8abd1d32c 100644
--- a/tools/editor/editor_file_dialog.cpp
+++ b/tools/editor/editor_file_dialog.cpp
@@ -144,11 +144,11 @@ void EditorFileDialog::_unhandled_input(const InputEvent& p_event) {
dir->grab_focus();
handled=true;
}
- if (ED_IS_SHORTCUT("file_dialog/mode_favorite_up", p_event)) {
+ if (ED_IS_SHORTCUT("file_dialog/move_favorite_up", p_event)) {
_favorite_move_up();
handled=true;
}
- if (ED_IS_SHORTCUT("file_dialog/mode_favorite_down", p_event)) {
+ if (ED_IS_SHORTCUT("file_dialog/move_favorite_down", p_event)) {
_favorite_move_down();
handled=true;
}
@@ -1290,14 +1290,14 @@ EditorFileDialog::EditorFileDialog() {
ED_SHORTCUT("file_dialog/go_back", TTR("Go Back"), KEY_MASK_ALT|KEY_LEFT);
ED_SHORTCUT("file_dialog/go_forward", TTR("Go Forward"), KEY_MASK_ALT|KEY_RIGHT);
ED_SHORTCUT("file_dialog/go_up", TTR("Go Up"), KEY_MASK_ALT|KEY_UP);
- ED_SHORTCUT("file_dialog/refresh", TTR("Refresh"), KEY_MASK_CMD|KEY_F5); // ctrl + f5 else it launches the game as well..
+ ED_SHORTCUT("file_dialog/refresh", TTR("Refresh"), KEY_F5);
ED_SHORTCUT("file_dialog/toggle_hidden_files", TTR("Toggle Hidden Files"), KEY_MASK_CMD|KEY_H);
ED_SHORTCUT("file_dialog/toggle_favorite", TTR("Toggle Favorite"), KEY_MASK_ALT|KEY_F);
ED_SHORTCUT("file_dialog/toggle_mode", TTR("Toggle Mode"), KEY_MASK_ALT|KEY_V);
ED_SHORTCUT("file_dialog/create_folder", TTR("Create Folder"), KEY_MASK_CMD|KEY_N);
ED_SHORTCUT("file_dialog/focus_path", TTR("Focus Path"), KEY_MASK_CMD|KEY_D);
- ED_SHORTCUT("file_dialog/mode_favorite_up", TTR("Mode Favorite Up"), KEY_MASK_CMD|KEY_UP);
- ED_SHORTCUT("file_dialog/mode_favorite_down", TTR("Mode Favorite Down"), KEY_MASK_CMD|KEY_DOWN);
+ ED_SHORTCUT("file_dialog/move_favorite_up", TTR("Move Favorite Up"), KEY_MASK_CMD|KEY_UP);
+ ED_SHORTCUT("file_dialog/move_favorite_down", TTR("Move Favorite Down"), KEY_MASK_CMD|KEY_DOWN);
HBoxContainer *pathhb = memnew( HBoxContainer );
diff --git a/tools/editor/editor_file_system.cpp b/tools/editor/editor_file_system.cpp
index c5c92b5228..1f414f80a0 100644
--- a/tools/editor/editor_file_system.cpp
+++ b/tools/editor/editor_file_system.cpp
@@ -621,31 +621,40 @@ void EditorFileSystem::_scan_new_dir(EditorFileSystemDirectory *p_dir,DirAccess
int total = dirs.size()+files.size();
int idx=0;
+
for (List<String>::Element *E=dirs.front();E;E=E->next(),idx++) {
if (da->change_dir(E->get())==OK) {
- EditorFileSystemDirectory *efd = memnew( EditorFileSystemDirectory );
+ String d = da->get_current_dir();
- efd->parent=p_dir;
- efd->name=E->get();
+ if (d==cd || !d.begins_with(cd)) {
+ da->change_dir(cd); //avoid recursion
+ } else {
- _scan_new_dir(efd,da,p_progress.get_sub(idx,total));
- int idx=0;
- for(int i=0;i<p_dir->subdirs.size();i++) {
+ EditorFileSystemDirectory *efd = memnew( EditorFileSystemDirectory );
- if (efd->name<p_dir->subdirs[i]->name)
- break;
- idx++;
- }
- if (idx==p_dir->subdirs.size()) {
- p_dir->subdirs.push_back(efd);
- } else {
- p_dir->subdirs.insert(idx,efd);
- }
+ efd->parent=p_dir;
+ efd->name=E->get();
+
+ _scan_new_dir(efd,da,p_progress.get_sub(idx,total));
+
+ int idx=0;
+ for(int i=0;i<p_dir->subdirs.size();i++) {
+
+ if (efd->name<p_dir->subdirs[i]->name)
+ break;
+ idx++;
+ }
+ if (idx==p_dir->subdirs.size()) {
+ p_dir->subdirs.push_back(efd);
+ } else {
+ p_dir->subdirs.insert(idx,efd);
+ }
- da->change_dir("..");
+ da->change_dir("..");
+ }
} else {
ERR_PRINTS(TTR("Cannot go into subdir:")+" "+E->get());
}
@@ -821,12 +830,10 @@ void EditorFileSystem::_scan_fs_changes(EditorFileSystemDirectory *p_dir,const S
}
}
+
da->list_dir_end();
memdelete(da);
-
-
-
}
for(int i=0;i<p_dir->files.size();i++) {
diff --git a/tools/editor/editor_node.cpp b/tools/editor/editor_node.cpp
index f9bedc7660..2bba97251d 100644
--- a/tools/editor/editor_node.cpp
+++ b/tools/editor/editor_node.cpp
@@ -168,6 +168,10 @@ void EditorNode::_update_title() {
void EditorNode::_unhandled_input(const InputEvent& p_event) {
+ if (Node::get_viewport()->get_modal_stack_top())
+ return; //ignore because of modal window
+
+
if (p_event.type==InputEvent::KEY && p_event.key.pressed && !p_event.key.echo && !gui_base->get_viewport()->gui_has_modal_stack()) {
@@ -1161,7 +1165,11 @@ void EditorNode::_dialog_action(String p_file) {
load_scene(p_file);
} break;
+ case SETTINGS_PICK_MAIN_SCENE: {
+ Globals::get_singleton()->set("application/main_scene",p_file);
+ //would be nice to show the project manager opened with the hilighted field..
+ } break;
case FILE_SAVE_OPTIMIZED: {
@@ -1850,12 +1858,31 @@ void EditorNode::_run(bool p_current,const String& p_custom) {
current_option=-1;
//accept->get_cancel()->hide();
- accept->get_ok()->set_text(TTR("I see.."));
- accept->set_text(TTR("No main scene has ever been defined.\nSelect one from \"Project Settings\" under the 'application' category."));
- accept->popup_centered_minsize();
+ pick_main_scene->set_text(TTR("No main scene has ever been defined, select one?\nYou can change it later in later in \"Project Settings\" under the 'application' category."));
+ pick_main_scene->popup_centered_minsize();
return;
}
+ if (!FileAccess::exists(run_filename)) {
+
+ current_option=-1;
+ //accept->get_cancel()->hide();
+ pick_main_scene->set_text(vformat(TTR("Selected scene '%s' does not exist, select a valid one?\nYou can change it later in \"Project Settings\" under the 'application' category."), run_filename));
+ pick_main_scene->popup_centered_minsize();
+ return;
+
+ }
+
+ if (ResourceLoader::get_resource_type(run_filename)!="PackedScene") {
+
+ current_option=-1;
+ //accept->get_cancel()->hide();
+ pick_main_scene->set_text(vformat(TTR("Selected scene '%s' is not a scene file, select a valid one?\nYou can change it later in \"Project Settings\" under the 'application' category."), run_filename));
+ pick_main_scene->popup_centered_minsize();
+ return;
+
+ }
+
}
@@ -2769,6 +2796,30 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
file_templates->popup_centered_ratio();
} break;
+ case SETTINGS_PICK_MAIN_SCENE: {
+
+
+ //print_tree();
+ file->set_mode(EditorFileDialog::MODE_OPEN_FILE);
+ //not for now?
+ List<String> extensions;
+ ResourceLoader::get_recognized_extensions_for_type("PackedScene",&extensions);
+ file->clear_filters();
+ for(int i=0;i<extensions.size();i++) {
+
+ file->add_filter("*."+extensions[i]+" ; "+extensions[i].to_upper());
+ }
+
+
+ //file->set_current_path(current_path);
+ Node *scene = editor_data.get_edited_scene_root();
+ if (scene) {
+ file->set_current_path(scene->get_filename());
+ };
+ file->set_title(TTR("Pick a Main Scene"));
+ file->popup_centered_ratio();
+
+ } break;
case SETTINGS_ABOUT: {
about->popup_centered(Size2(500,130)*EDSCALE);
@@ -2782,10 +2833,12 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
List<Ref<Resource> > cached;
ResourceCache::get_cached_resources(&cached);
-
+ //this should probably be done in a thread..
for(List<Ref<Resource> >::Element *E=cached.front();E;E=E->next()) {
- if (!E->get()->can_reload_from_file())
+ if (!E->get()->editor_can_reload_from_file())
+ continue;
+ if (!E->get()->get_path().is_resource_file() && !E->get()->get_path().is_abs_path())
continue;
if (!FileAccess::exists(E->get()->get_path()))
continue;
@@ -3376,7 +3429,10 @@ Dictionary EditorNode::_get_main_scene_state() {
return state;
}
-void EditorNode::_set_main_scene_state(Dictionary p_state) {
+void EditorNode::_set_main_scene_state(Dictionary p_state,Node* p_for_scene) {
+
+ if (get_edited_scene()!=p_for_scene && p_for_scene!=NULL)
+ return; //not for this scene
//print_line("set current 7 ");
changing_scene=false;
@@ -3520,7 +3576,7 @@ void EditorNode::set_current_scene(int p_idx) {
}*/
//_set_main_scene_state(state);
- call_deferred("_set_main_scene_state",state); //do after everything else is done setting up
+ call_deferred("_set_main_scene_state",state,get_edited_scene()); //do after everything else is done setting up
//print_line("set current 6 ");
@@ -3540,7 +3596,7 @@ void EditorNode::fix_dependencies(const String& p_for_file) {
dependency_fixer->edit(p_for_file);
}
-Error EditorNode::load_scene(const String& p_scene, bool p_ignore_broken_deps,bool p_set_inherited) {
+Error EditorNode::load_scene(const String& p_scene, bool p_ignore_broken_deps,bool p_set_inherited,bool p_clear_errors) {
if (!is_inside_tree()) {
defer_load_scene = p_scene;
@@ -3559,7 +3615,9 @@ Error EditorNode::load_scene(const String& p_scene, bool p_ignore_broken_deps,bo
}
- load_errors->clear();
+ if (p_clear_errors)
+ load_errors->clear();
+
String lpath = Globals::get_singleton()->localize_path(p_scene);
if (!lpath.begins_with("res://")) {
@@ -3996,15 +4054,17 @@ bool EditorNode::_find_editing_changed_scene(Node *p_from) {
void EditorNode::add_io_error(const String& p_error) {
- CharString err_ut = p_error.utf8();
- ERR_PRINT(err_ut.get_data());
+ //CharString err_ut = p_error.utf8();
+ //ERR_PRINT(!err_ut.get_data());
_load_error_notify(singleton,p_error);
}
void EditorNode::_load_error_notify(void* p_ud,const String& p_text) {
+
EditorNode*en=(EditorNode*)p_ud;
- en->load_errors->set_text(en->load_errors->get_text()+p_text+"\n");
+ en->load_errors->add_image(en->gui_base->get_icon("Error","EditorIcons"));
+ en->load_errors->add_text(p_text+"\n");
en->load_error_dialog->popup_centered_ratio(0.5);
}
@@ -5058,6 +5118,78 @@ void EditorNode::_file_access_close_error_notify(const String& p_str) {
add_io_error("Unable to write to file '"+p_str+"', file in use, locked or lacking permissions.");
}
+
+void EditorNode::reload_scene(const String& p_path) {
+
+
+ //first of all, reload textures as they might have changed on disk
+
+ List<Ref<Resource> > cached;
+ ResourceCache::get_cached_resources(&cached);
+ List<Ref<Resource> > to_clear; //clear internal resources from previous scene from being used
+ for(List<Ref<Resource> >::Element *E=cached.front();E;E=E->next()) {
+
+ if (E->get()->get_path().begins_with(p_path+"::")) //subresources of existing scene
+ to_clear.push_back(E->get());
+
+ if (!E->get()->cast_to<Texture>())
+ continue;
+ if (!E->get()->get_path().is_resource_file() && !E->get()->get_path().is_abs_path())
+ continue;
+ if (!FileAccess::exists(E->get()->get_path()))
+ continue;
+ uint64_t mt = FileAccess::get_modified_time(E->get()->get_path());
+ if (mt!=E->get()->get_last_modified_time()) {
+ E->get()->reload_from_file();
+ }
+ }
+
+ //so reload reloads everything, clear subresources of previous scene
+ while(to_clear.front()) {
+ to_clear.front()->get()->set_path("");
+ to_clear.pop_front();
+ }
+
+ int scene_idx=-1;
+ for(int i=0;i<editor_data.get_edited_scene_count();i++) {
+
+ if (editor_data.get_scene_path(i)==p_path) {
+ scene_idx=i;
+ break;
+ }
+ }
+
+ int current_tab = editor_data.get_edited_scene();
+
+
+ if (scene_idx==-1) {
+ if (get_edited_scene()) {
+ //scene is not open, so at it might be instanced, just refresh, set tab to itself and it will reload
+ set_current_scene(current_tab);
+ editor_data.get_undo_redo().clear_history();
+ }
+ return;
+ }
+
+
+ if (current_tab==scene_idx) {
+ editor_data.apply_changes_in_editors();
+ _set_scene_metadata(p_path);
+
+ }
+ //remove scene
+ _remove_scene(scene_idx);
+ //reload scene
+ load_scene(p_path);
+ //adjust index so tab is back a the previous position
+ editor_data.move_edited_scene_to_index(scene_idx);
+ get_undo_redo()->clear_history();
+ //recover the tab
+ scene_tabs->set_current_tab(current_tab);
+ _scene_tab_changed(current_tab);
+}
+
+
void EditorNode::_bind_methods() {
@@ -6421,13 +6553,14 @@ EditorNode::EditorNode() {
set_process_unhandled_input(true);
_playing_edited=false;
- load_errors = memnew( TextEdit );
- load_errors->set_readonly(true);
+// Panel *errors = memnew( Panel );
+ load_errors = memnew( RichTextLabel );
+// load_errors->set_readonly(true);
load_error_dialog = memnew( AcceptDialog );
load_error_dialog->add_child(load_errors);
load_error_dialog->set_title(TTR("Load Errors"));
load_error_dialog->set_child_rect(load_errors);
- add_child(load_error_dialog);
+ gui_base->add_child(load_error_dialog);
//EditorImport::add_importer( Ref<EditorImporterCollada>( memnew(EditorImporterCollada )));
@@ -6452,7 +6585,10 @@ EditorNode::EditorNode() {
Node::set_human_readable_collision_renaming(true);
-
+ pick_main_scene = memnew( ConfirmationDialog );
+ gui_base->add_child(pick_main_scene);
+ pick_main_scene->get_ok()->set_text("Select");
+ pick_main_scene->connect("confirmed",this,"_menu_option",varray(SETTINGS_PICK_MAIN_SCENE));
// Ref<ImageTexture> it = gui_base->get_icon("logo","Icons");
// OS::get_singleton()->set_icon( it->get_data() );
diff --git a/tools/editor/editor_node.h b/tools/editor/editor_node.h
index bea973a357..9b0edda75e 100644
--- a/tools/editor/editor_node.h
+++ b/tools/editor/editor_node.h
@@ -185,6 +185,7 @@ private:
SETTINGS_LAYOUT_DELETE,
SETTINGS_LAYOUT_DEFAULT,
SETTINGS_LOAD_EXPORT_TEMPLATES,
+ SETTINGS_PICK_MAIN_SCENE,
SETTINGS_HELP,
SETTINGS_ABOUT,
SOURCES_REIMPORT,
@@ -261,7 +262,7 @@ private:
TextureProgress *audio_vu;
//MenuButton *fileserver_menu;
- TextEdit *load_errors;
+ RichTextLabel *load_errors;
AcceptDialog *load_error_dialog;
//Control *scene_root_base;
@@ -287,6 +288,7 @@ private:
ConfirmationDialog *confirmation;
ConfirmationDialog *import_confirmation;
ConfirmationDialog *open_recent_confirmation;
+ ConfirmationDialog *pick_main_scene;
AcceptDialog *accept;
AcceptDialog *about;
AcceptDialog *warning;
@@ -553,7 +555,7 @@ private:
void _scene_tab_script_edited(int p_tab);
Dictionary _get_main_scene_state();
- void _set_main_scene_state(Dictionary p_state);
+ void _set_main_scene_state(Dictionary p_state,Node* p_for_scene);
int _get_current_main_editor();
@@ -652,7 +654,7 @@ public:
void fix_dependencies(const String& p_for_file);
void clear_scene() { _cleanup_scene(); }
- Error load_scene(const String& p_scene, bool p_ignore_broken_deps=false, bool p_set_inherited=false);
+ Error load_scene(const String& p_scene, bool p_ignore_broken_deps=false, bool p_set_inherited=false, bool p_clear_errors=true);
Error load_resource(const String& p_scene);
bool is_scene_open(const String& p_path);
@@ -714,6 +716,8 @@ public:
void update_keying();
+ void reload_scene(const String& p_path);
+
bool is_exiting() const { return exiting; }
ToolButton *get_pause_button() { return pause_button; }
diff --git a/tools/editor/icons/2x/icon_zoom_less.png b/tools/editor/icons/2x/icon_zoom_less.png
new file mode 100644
index 0000000000..d483db55ce
--- /dev/null
+++ b/tools/editor/icons/2x/icon_zoom_less.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_zoom_more.png b/tools/editor/icons/2x/icon_zoom_more.png
new file mode 100644
index 0000000000..8f9ef77849
--- /dev/null
+++ b/tools/editor/icons/2x/icon_zoom_more.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_zoom_reset.png b/tools/editor/icons/2x/icon_zoom_reset.png
new file mode 100644
index 0000000000..092215b3e2
--- /dev/null
+++ b/tools/editor/icons/2x/icon_zoom_reset.png
Binary files differ
diff --git a/tools/editor/icons/icon_loop_interpolation.png b/tools/editor/icons/icon_loop_interpolation.png
deleted file mode 100644
index 488b33316e..0000000000
--- a/tools/editor/icons/icon_loop_interpolation.png
+++ /dev/null
Binary files differ
diff --git a/tools/editor/icons/icon_zoom_less.png b/tools/editor/icons/icon_zoom_less.png
new file mode 100644
index 0000000000..fd8ef9075e
--- /dev/null
+++ b/tools/editor/icons/icon_zoom_less.png
Binary files differ
diff --git a/tools/editor/icons/icon_zoom_more.png b/tools/editor/icons/icon_zoom_more.png
new file mode 100644
index 0000000000..8e818db1ee
--- /dev/null
+++ b/tools/editor/icons/icon_zoom_more.png
Binary files differ
diff --git a/tools/editor/icons/icon_zoom_reset.png b/tools/editor/icons/icon_zoom_reset.png
new file mode 100644
index 0000000000..fa8a9d197e
--- /dev/null
+++ b/tools/editor/icons/icon_zoom_reset.png
Binary files differ
diff --git a/tools/editor/icons/source/icon_zoom_more.svg b/tools/editor/icons/source/icon_zoom_more.svg
new file mode 100644
index 0000000000..87acdfb021
--- /dev/null
+++ b/tools/editor/icons/source/icon_zoom_more.svg
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_zoom.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_zoom_more.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="3.7772222"
+ inkscape:cy="13.690414"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1018"
+ inkscape:window-x="-8"
+ inkscape:window-y="-8"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <g
+ id="layer1-6"
+ inkscape:label="Capa 1"
+ transform="translate(-201.5751,205.0256)">
+ <g
+ inkscape:label="Layer 1"
+ id="layer1-0-4"
+ transform="matrix(48.459085,0,0,53.967813,-126.63031,-55835.691)">
+ <g
+ transform="translate(0.51853114,-0.01988754)"
+ id="g4182-8">
+ <rect
+ style="fill:#e0e0e0;fill-opacity:0.99607843"
+ id="rect4167"
+ width="0.042994563"
+ height="0.26204652"
+ x="6.3978949"
+ y="1050.0524"
+ rx="0"
+ ry="0" />
+ <rect
+ ry="0"
+ rx="0"
+ y="1050.165"
+ x="6.2806396"
+ height="0.040943757"
+ width="0.28011176"
+ id="rect4169-6"
+ style="fill:#e0e0e0;fill-opacity:0.99607843" />
+ </g>
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/tools/editor/io_plugins/editor_scene_import_plugin.cpp b/tools/editor/io_plugins/editor_scene_import_plugin.cpp
index c7d92a9658..8899d65aea 100644
--- a/tools/editor/io_plugins/editor_scene_import_plugin.cpp
+++ b/tools/editor/io_plugins/editor_scene_import_plugin.cpp
@@ -822,7 +822,7 @@ void EditorSceneImportDialog::_import(bool p_and_open) {
return;
}
if (wip_open)
- EditorNode::get_singleton()->load_scene(save_file);
+ EditorNode::get_singleton()->load_scene(save_file,false,false,false);
}
@@ -867,7 +867,7 @@ void EditorSceneImportDialog::_import_confirm() {
}
if (wip_open)
- EditorNode::get_singleton()->load_scene(wip_save_file);
+ EditorNode::get_singleton()->load_scene(wip_save_file,false,false,false);
wip_open=false;
wip_save_file="";
@@ -2459,7 +2459,7 @@ void EditorSceneImportPlugin::_optimize_animations(Node *scene, float p_max_lin_
void EditorSceneImportPlugin::_find_resources_to_merge(Node *scene, Node *node, bool p_merge_material, Map<String, Ref<Material> > &materials, bool p_merge_anims, Map<String,Ref<Animation> >& merged_anims,Set<Ref<Mesh> > &tested_meshes) {
- if (node->get_owner()!=scene)
+ if (node!=scene && node->get_owner()!=scene)
return;
String path = scene->get_path_to(node);
@@ -2507,11 +2507,43 @@ void EditorSceneImportPlugin::_find_resources_to_merge(Node *scene, Node *node,
for(int i=0;i<mesh->get_surface_count();i++) {
Ref<Material> material = mesh->surface_get_material(i);
- materials[mesh->get_name()+":surf:"+mesh->surface_get_name(i)]=material;
+
+ if (material.is_valid()) {
+
+ String sname = mesh->surface_get_name(i);
+ if (sname=="")
+ sname="surf_"+itos(i);
+
+ sname=mesh->get_name()+":surf:"+sname;
+ materials[sname]=material;
+ }
}
tested_meshes.insert(mesh);
}
+
+ if (mesh.is_valid()) {
+
+ for(int i=0;i<mesh->get_surface_count();i++) {
+ Ref<Material> material = mi->get_surface_material(i);
+ if (material.is_valid()) {
+ String sname = mesh->surface_get_name(i);
+ if (sname=="")
+ sname="surf_"+itos(i);
+
+ sname=path+":inst_surf:"+sname;
+ materials[sname]=material;
+ }
+ }
+
+ }
+
+ Ref<Material> override = mi->get_material_override();
+
+ if (override.is_valid()) {
+
+ materials[path+":override"]=override;
+ }
}
@@ -2525,11 +2557,13 @@ void EditorSceneImportPlugin::_find_resources_to_merge(Node *scene, Node *node,
void EditorSceneImportPlugin::_merge_found_resources(Node *scene, Node *node, bool p_merge_material, const Map<String, Ref<Material> > &materials, bool p_merge_anims, const Map<String,Ref<Animation> >& merged_anims, Set<Ref<Mesh> > &tested_meshes) {
- if (node->get_owner()!=scene)
+ if (node!=scene && node->get_owner()!=scene)
return;
String path = scene->get_path_to(node);
+ print_line("at path: "+path);
+
if (node->cast_to<AnimationPlayer>()) {
AnimationPlayer *ap = node->cast_to<AnimationPlayer>();
@@ -2570,15 +2604,48 @@ void EditorSceneImportPlugin::_merge_found_resources(Node *scene, Node *node, bo
if (mesh.is_valid() && mesh->get_name()!=String() && !tested_meshes.has(mesh)) {
for(int i=0;i<mesh->get_surface_count();i++) {
- String sname = mesh->get_name()+":surf:"+mesh->surface_get_name(i);
+
+ String sname = mesh->surface_get_name(i);
+ if (sname=="")
+ sname="surf_"+itos(i);
+
+ sname=mesh->get_name()+":surf:"+sname;
+
if (materials.has(sname)) {
+
mesh->surface_set_material(i,materials[sname]);
}
}
tested_meshes.insert(mesh);
}
+
+ if (mesh.is_valid()) {
+
+ for(int i=0;i<mesh->get_surface_count();i++) {
+
+ String sname = mesh->surface_get_name(i);
+ if (sname=="")
+ sname="surf_"+itos(i);
+
+ sname=path+":inst_surf:"+sname;
+
+
+ if (materials.has(sname)) {
+
+ mi->set_surface_material(i,materials[sname]);
+ }
+ }
+
+ }
+
+
+ String opath = path+":override";
+ if (materials.has(opath)) {
+ mi->set_material_override(materials[opath]);
+ }
+
}
@@ -2643,6 +2710,7 @@ Error EditorSceneImportPlugin::import2(Node *scene, const String& p_dest_path, c
if (scene_flags&(SCENE_FLAG_MERGE_KEEP_MATERIALS|SCENE_FLAG_MERGE_KEEP_EXTRA_ANIM_TRACKS) && FileAccess::exists(p_dest_path)) {
//must merge!
+ print_line("MUST MERGE");
Ref<PackedScene> pscene = ResourceLoader::load(p_dest_path,"PackedScene",true);
if (pscene.is_valid()) {
@@ -2653,8 +2721,9 @@ Error EditorSceneImportPlugin::import2(Node *scene, const String& p_dest_path, c
Set<Ref<Mesh> > tested_meshes;
_find_resources_to_merge(instance,instance,scene_flags&SCENE_FLAG_MERGE_KEEP_MATERIALS,merged_materials,scene_flags&SCENE_FLAG_MERGE_KEEP_EXTRA_ANIM_TRACKS,merged_anims,tested_meshes);
+
tested_meshes.clear();
- _merge_found_resources(instance,instance,scene_flags&SCENE_FLAG_MERGE_KEEP_MATERIALS,merged_materials,scene_flags&SCENE_FLAG_MERGE_KEEP_EXTRA_ANIM_TRACKS,merged_anims,tested_meshes);
+ _merge_found_resources(scene,scene,scene_flags&SCENE_FLAG_MERGE_KEEP_MATERIALS,merged_materials,scene_flags&SCENE_FLAG_MERGE_KEEP_EXTRA_ANIM_TRACKS,merged_anims,tested_meshes);
memdelete(instance);
}
@@ -2680,8 +2749,9 @@ Error EditorSceneImportPlugin::import2(Node *scene, const String& p_dest_path, c
post_import_script = Ref<EditorScenePostImport>( memnew( EditorScenePostImport ) );
post_import_script->set_script(scr.get_ref_ptr());
if (!post_import_script->get_script_instance()) {
- EditorNode::add_io_error(TTR("Invalid/broken script for post-import:")+" "+post_import_script_path);
+ EditorNode::add_io_error(TTR("Invalid/broken script for post-import (check console):")+" "+post_import_script_path);
post_import_script.unref();
+ return ERR_CANT_CREATE;
}
}
}
@@ -2789,15 +2859,16 @@ Error EditorSceneImportPlugin::import2(Node *scene, const String& p_dest_path, c
Ref<PackedScene> packer = memnew( PackedScene );
packer->pack(scene);
- packer->set_path(p_dest_path);
+ //packer->set_path(p_dest_path); do not take over, let the changed files reload themselves
packer->set_import_metadata(from);
print_line("SAVING TO: "+p_dest_path);
- err = ResourceSaver::save(p_dest_path,packer,ResourceSaver::FLAG_REPLACE_SUBRESOURCE_PATHS);
+ err = ResourceSaver::save(p_dest_path,packer); //do not take over, let the changed files reload themselves
//EditorFileSystem::get_singleton()->update_resource(packer);
memdelete(scene);
+
/*
scene->set_filename(p_dest_path);
if (r_scene) {
@@ -2817,6 +2888,7 @@ Error EditorSceneImportPlugin::import2(Node *scene, const String& p_dest_path, c
*/
+ EditorNode::get_singleton()->reload_scene(p_dest_path);
return err;
diff --git a/tools/editor/plugins/animation_player_editor_plugin.cpp b/tools/editor/plugins/animation_player_editor_plugin.cpp
index 10c7bf79a3..203564e612 100644
--- a/tools/editor/plugins/animation_player_editor_plugin.cpp
+++ b/tools/editor/plugins/animation_player_editor_plugin.cpp
@@ -1404,6 +1404,7 @@ AnimationPlayerEditor::AnimationPlayerEditor(EditorNode *p_editor) {
hb->add_child(animation);
animation->set_h_size_flags(SIZE_EXPAND_FILL);
animation->set_tooltip(TTR("Display list of animations in player."));
+ animation->set_clip_text(true);
autoplay = memnew( ToolButton );
hb->add_child(autoplay);
diff --git a/tools/editor/plugins/canvas_item_editor_plugin.cpp b/tools/editor/plugins/canvas_item_editor_plugin.cpp
index 0cbc867b47..81601a81a7 100644
--- a/tools/editor/plugins/canvas_item_editor_plugin.cpp
+++ b/tools/editor/plugins/canvas_item_editor_plugin.cpp
@@ -1382,6 +1382,8 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) {
se->undo_state=canvas_item->edit_get_state();
if (canvas_item->cast_to<Node2D>())
se->undo_pivot=canvas_item->cast_to<Node2D>()->edit_get_pivot();
+ if (canvas_item->cast_to<Control>())
+ se->undo_pivot=Vector2();
return;
}
@@ -1566,14 +1568,34 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) {
if (drag==DRAG_ROTATE) {
Vector2 center = canvas_item->get_global_transform_with_canvas().get_origin();
- if (Node2D *node = canvas_item->cast_to<Node2D>()) {
- Matrix32 rot;
- rot.elements[1] = (dfrom - center).normalized();
- rot.elements[0] = rot.elements[1].tangent();
- node->set_rot(snap_angle(rot.xform_inv(dto-center).angle() + node->get_rot(), node->get_rot()));
- display_rotate_to = dto;
- display_rotate_from = center;
- viewport->update();
+ {
+ Node2D *node = canvas_item->cast_to<Node2D>();
+
+
+ if (node) {
+ Matrix32 rot;
+ rot.elements[1] = (dfrom - center).normalized();
+ rot.elements[0] = rot.elements[1].tangent();
+ node->set_rot(snap_angle(rot.xform_inv(dto-center).angle() + node->get_rot(), node->get_rot()));
+ display_rotate_to = dto;
+ display_rotate_from = center;
+ viewport->update();
+ }
+ }
+
+ {
+ Control *node = canvas_item->cast_to<Control>();
+
+
+ if (node) {
+ Matrix32 rot;
+ rot.elements[1] = (dfrom - center).normalized();
+ rot.elements[0] = rot.elements[1].tangent();
+ node->set_rotation(snap_angle(rot.xform_inv(dto-center).angle() + node->get_rotation(), node->get_rotation()));
+ display_rotate_to = dto;
+ display_rotate_from = center;
+ viewport->update();
+ }
}
continue;
diff --git a/tools/editor/plugins/sample_editor_plugin.cpp b/tools/editor/plugins/sample_editor_plugin.cpp
index b094184a29..69602ac995 100644
--- a/tools/editor/plugins/sample_editor_plugin.cpp
+++ b/tools/editor/plugins/sample_editor_plugin.cpp
@@ -324,12 +324,13 @@ void SampleEditor::generate_preview_texture(const Ref<Sample>& p_sample,Ref<Imag
void SampleEditor::_update_sample() {
player->stop_all();
- if (sample->get_format()==Sample::FORMAT_IMA_ADPCM)
- return; //bye or unsupported
generate_preview_texture(sample,peakdisplay);
info_label->set_text(TTR("Length:")+" "+String::num(sample->get_length()/(float)sample->get_mix_rate(),2)+"s");
+ if (library->has_sample("default"))
+ library->remove_sample("default");
+
library->add_sample("default",sample);
}
diff --git a/tools/editor/plugins/script_editor_plugin.cpp b/tools/editor/plugins/script_editor_plugin.cpp
index 10e4fc8475..ee83b6b032 100644
--- a/tools/editor/plugins/script_editor_plugin.cpp
+++ b/tools/editor/plugins/script_editor_plugin.cpp
@@ -585,7 +585,6 @@ void ScriptTextEditor::_code_complete_script(const String& p_code, List<String>*
Error err = script->get_language()->complete_code(p_code,script->get_path().get_base_dir(),base,r_options,hint);
if (hint!="") {
get_text_edit()->set_code_hint(hint);
- print_line("hint: "+hint.replace(String::chr(0xFFFF),"|"));
}
}
@@ -2316,6 +2315,22 @@ void ScriptEditor::_script_split_dragged(float) {
EditorNode::get_singleton()->save_layout();
}
+void ScriptEditor::_unhandled_input(const InputEvent& p_event) {
+ if (p_event.key.pressed || !is_visible()) return;
+ if (ED_IS_SHORTCUT("script_editor/next_script", p_event)) {
+ int next_tab = script_list->get_current() + 1;
+ next_tab %= script_list->get_item_count();
+ _go_to_tab(script_list->get_item_metadata(next_tab));
+ _update_script_names();
+ }
+ if (ED_IS_SHORTCUT("script_editor/prev_script", p_event)) {
+ int next_tab = script_list->get_current() - 1;
+ next_tab = next_tab >= 0 ? next_tab : script_list->get_item_count() - 1;
+ _go_to_tab(script_list->get_item_metadata(next_tab));
+ _update_script_names();
+ }
+}
+
void ScriptEditor::set_window_layout(Ref<ConfigFile> p_layout) {
if (!bool(EDITOR_DEF("text_editor/restore_scripts_on_load",true))) {
@@ -2598,6 +2613,7 @@ void ScriptEditor::_bind_methods() {
ObjectTypeDB::bind_method("_history_forward",&ScriptEditor::_history_forward);
ObjectTypeDB::bind_method("_history_back",&ScriptEditor::_history_back);
ObjectTypeDB::bind_method("_live_auto_reload_running_scripts",&ScriptEditor::_live_auto_reload_running_scripts);
+ ObjectTypeDB::bind_method("_unhandled_input",&ScriptEditor::_unhandled_input);
}
@@ -2631,6 +2647,10 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) {
tab_container->set_h_size_flags(SIZE_EXPAND_FILL);
+ ED_SHORTCUT("script_editor/next_script", TTR("Next script"), KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_GREATER);
+ ED_SHORTCUT("script_editor/prev_script", TTR("Previous script"), KEY_MASK_CMD | KEY_LESS);
+ set_process_unhandled_input(true);
+
file_menu = memnew( MenuButton );
menu_hb->add_child(file_menu);
file_menu->set_text(TTR("File"));
diff --git a/tools/editor/plugins/script_editor_plugin.h b/tools/editor/plugins/script_editor_plugin.h
index 0636190a41..85412087b4 100644
--- a/tools/editor/plugins/script_editor_plugin.h
+++ b/tools/editor/plugins/script_editor_plugin.h
@@ -279,6 +279,8 @@ class ScriptEditor : public VBoxContainer {
void _script_split_dragged(float);
+ void _unhandled_input(const InputEvent& p_event);
+
void _history_forward();
void _history_back();
diff --git a/tools/editor/plugins/shader_graph_editor_plugin.cpp b/tools/editor/plugins/shader_graph_editor_plugin.cpp
index d567c8e9b3..dea2fe4833 100644
--- a/tools/editor/plugins/shader_graph_editor_plugin.cpp
+++ b/tools/editor/plugins/shader_graph_editor_plugin.cpp
@@ -176,7 +176,9 @@ void GraphColorRampEdit::_input_event(const InputEvent& p_event) {
void GraphColorRampEdit::_notification(int p_what){
if (p_what==NOTIFICATION_ENTER_TREE) {
- picker->connect("color_changed",this,"_color_changed");
+ if (!picker->is_connected("color_changed",this,"_color_changed")) {
+ picker->connect("color_changed",this,"_color_changed");
+ }
}
if (p_what==NOTIFICATION_DRAW) {
diff --git a/tools/editor/plugins/sprite_frames_editor_plugin.cpp b/tools/editor/plugins/sprite_frames_editor_plugin.cpp
index 4f59287994..e29a0c8d52 100644
--- a/tools/editor/plugins/sprite_frames_editor_plugin.cpp
+++ b/tools/editor/plugins/sprite_frames_editor_plugin.cpp
@@ -31,7 +31,7 @@
#include "io/resource_loader.h"
#include "globals.h"
#include "tools/editor/editor_settings.h"
-
+#include "scene/3d/sprite_3d.h"
@@ -355,6 +355,35 @@ void SpriteFramesEditor::_animation_select() {
}
+
+static void _find_anim_sprites(Node* p_node,List<Node*> *r_nodes,Ref<SpriteFrames> p_sfames) {
+
+ Node *edited = EditorNode::get_singleton()->get_edited_scene();
+ if (!edited)
+ return;
+ if (p_node!=edited && p_node->get_owner()!=edited)
+ return;
+
+ {
+ AnimatedSprite *as = p_node->cast_to<AnimatedSprite>();
+ if (as && as->get_sprite_frames()==p_sfames) {
+ r_nodes->push_back(p_node);
+ }
+ }
+
+ {
+ AnimatedSprite3D *as = p_node->cast_to<AnimatedSprite3D>();
+ if (as && as->get_sprite_frames()==p_sfames) {
+ r_nodes->push_back(p_node);
+ }
+ }
+
+ for(int i=0;i<p_node->get_child_count();i++) {
+ _find_anim_sprites(p_node->get_child(i),r_nodes,p_sfames);
+ }
+
+}
+
void SpriteFramesEditor::_animation_name_edited(){
if (updating)
@@ -381,9 +410,24 @@ void SpriteFramesEditor::_animation_name_edited(){
name=new_name+" "+itos(counter);
}
+ List<Node*> nodes;
+ _find_anim_sprites(EditorNode::get_singleton()->get_edited_scene(),&nodes,Ref<SpriteFrames>(frames));
+
undo_redo->create_action(TTR("Rename Animation"));
undo_redo->add_do_method(frames,"rename_animation",edited_anim,name);
undo_redo->add_undo_method(frames,"rename_animation",name,edited_anim);
+
+ for(List<Node*>::Element *E=nodes.front();E;E=E->next()) {
+
+ String current = E->get()->call("get_animation");
+ if (current!=edited_anim)
+ continue;
+
+ undo_redo->add_do_method(E->get(),"set_animation",name);
+ undo_redo->add_undo_method(E->get(),"set_animation",edited_anim);
+
+ }
+
undo_redo->add_do_method(this,"_update_library");
undo_redo->add_undo_method(this,"_update_library");
@@ -406,12 +450,28 @@ void SpriteFramesEditor::_animation_add(){
name=new_name+" "+itos(counter);
}
+ List<Node*> nodes;
+ _find_anim_sprites(EditorNode::get_singleton()->get_edited_scene(),&nodes,Ref<SpriteFrames>(frames));
+
+
undo_redo->create_action(TTR("Add Animation"));
undo_redo->add_do_method(frames,"add_animation",name);
undo_redo->add_undo_method(frames,"remove_animation",name);
undo_redo->add_do_method(this,"_update_library");
undo_redo->add_undo_method(this,"_update_library");
+
+ for(List<Node*>::Element *E=nodes.front();E;E=E->next()) {
+
+ String current = E->get()->call("get_animation");
+ if (frames->has_animation(current))
+ continue;
+
+ undo_redo->add_do_method(E->get(),"set_animation",name);
+ undo_redo->add_undo_method(E->get(),"set_animation",current);
+
+ }
+
edited_anim=new_name;
undo_redo->commit_action();
@@ -426,6 +486,7 @@ void SpriteFramesEditor::_animation_remove(){
if (!frames->has_animation(edited_anim))
return;
+
undo_redo->create_action(TTR("Remove Animation"));
undo_redo->add_do_method(frames,"remove_animation",edited_anim);
undo_redo->add_undo_method(frames,"add_animation",edited_anim);
diff --git a/tools/editor/plugins/texture_region_editor_plugin.cpp b/tools/editor/plugins/texture_region_editor_plugin.cpp
index 57db19b736..63d8e2e1cf 100644
--- a/tools/editor/plugins/texture_region_editor_plugin.cpp
+++ b/tools/editor/plugins/texture_region_editor_plugin.cpp
@@ -29,21 +29,30 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+#include "core/core_string_names.h"
#include "texture_region_editor_plugin.h"
#include "scene/gui/check_box.h"
#include "os/input.h"
#include "os/keyboard.h"
+void draw_margin_line(Control *edit_draw, Vector2 from, Vector2 to){
+ Vector2 line = (to-from).normalized() * 10;
+ while ((to - from).length_squared() > 200) {
+ edit_draw->draw_line(from, from + line,Color(0.97, 0.2, 0.2),2);
+ from += line*2;
+ }
+}
+
void TextureRegionEditor::_region_draw()
{
Ref<Texture> base_tex = NULL;
- if(node_type == "Sprite" && node_sprite)
+ if(node_sprite)
base_tex = node_sprite->get_texture();
- else if(node_type == "Patch9Frame" && node_patch9)
+ else if(node_patch9)
base_tex = node_patch9->get_texture();
- else if(node_type == "StyleBoxTexture" && obj_styleBox)
+ else if(obj_styleBox.is_valid())
base_tex = obj_styleBox->get_texture();
- else if(node_type == "AtlasTexture" && atlas_tex)
+ else if(atlas_tex.is_valid())
base_tex = atlas_tex->get_atlas();
if (base_tex.is_null())
return;
@@ -57,29 +66,63 @@ void TextureRegionEditor::_region_draw()
edit_draw->draw_texture(base_tex,Point2());
VS::get_singleton()->canvas_item_add_set_transform(edit_draw->get_canvas_item(),Matrix32());
- if (snap_show_grid) {
+ if (snap_mode == SNAP_GRID) {
Size2 s = edit_draw->get_size();
int last_cell;
if (snap_step.x!=0) {
- for(int i=0;i<s.width;i++) {
- int cell = Math::fast_ftoi(Math::floor((mtx.affine_inverse().xform(Vector2(i,0)).x-snap_offset.x)/snap_step.x));
- if (i==0)
+ if (snap_separation.x == 0)
+ for(int i=0;i<s.width;i++) {
+ int cell = Math::fast_ftoi(Math::floor((mtx.affine_inverse().xform(Vector2(i,0)).x-snap_offset.x)/snap_step.x));
+ if (i==0)
+ last_cell=cell;
+ if (last_cell!=cell)
+ edit_draw->draw_line(Point2(i,0),Point2(i,s.height),Color(0.3,0.7,1,0.3));
last_cell=cell;
- if (last_cell!=cell)
- edit_draw->draw_line(Point2(i,0),Point2(i,s.height),Color(0.3,0.7,1,0.3));
- last_cell=cell;
- }
+ }
+ else
+ for(int i=0;i<s.width;i++) {
+ int cell = Math::fast_ftoi(Math::floor((mtx.affine_inverse().xform(Vector2(i,0)).x-snap_offset.x)/(snap_step.x+snap_separation.x)));
+ if (i==0)
+ last_cell=cell;
+ if (last_cell!=cell)
+ edit_draw->draw_rect(Rect2(i-snap_separation.x*draw_zoom,0,snap_separation.x*draw_zoom,s.height),Color(0.3,0.7,1,0.3));
+ last_cell=cell;
+ }
}
if (snap_step.y!=0) {
- for(int i=0;i<s.height;i++) {
- int cell = Math::fast_ftoi(Math::floor((mtx.affine_inverse().xform(Vector2(0,i)).y-snap_offset.y)/snap_step.y));
- if (i==0)
+ if (snap_separation.y == 0)
+ for(int i=0;i<s.height;i++) {
+ int cell = Math::fast_ftoi(Math::floor((mtx.affine_inverse().xform(Vector2(0,i)).y-snap_offset.y)/snap_step.y));
+ if (i==0)
+ last_cell=cell;
+ if (last_cell!=cell)
+ edit_draw->draw_line(Point2(0,i),Point2(s.width,i),Color(0.3,0.7,1,0.3));
last_cell=cell;
- if (last_cell!=cell)
- edit_draw->draw_line(Point2(0,i),Point2(s.width,i),Color(0.3,0.7,1,0.3));
- last_cell=cell;
+ }
+ else
+ for(int i=0;i<s.height;i++) {
+ int cell = Math::fast_ftoi(Math::floor((mtx.affine_inverse().xform(Vector2(0,i)).y-snap_offset.y)/(snap_step.y+snap_separation.y)));
+ if (i==0)
+ last_cell=cell;
+ if (last_cell!=cell)
+ edit_draw->draw_rect(Rect2(0,i-snap_separation.y*draw_zoom,s.width,snap_separation.y*draw_zoom),Color(0.3,0.7,1,0.3));
+ last_cell=cell;
+ }
+ }
+ } else if (snap_mode == SNAP_AUTOSLICE) {
+ for (List<Rect2>::Element *E = autoslice_cache.front();E;E=E->next()) {
+ Rect2 r = E->get();
+ Vector2 endpoints[4]={
+ mtx.basis_xform(r.pos),
+ mtx.basis_xform(r.pos+Vector2(r.size.x,0)),
+ mtx.basis_xform(r.pos+r.size),
+ mtx.basis_xform(r.pos+Vector2(0,r.size.y))
+ };
+ for(int i=0;i<4;i++) {
+ int next = (i+1)%4;
+ edit_draw->draw_line(endpoints[i]-draw_ofs, endpoints[next]-draw_ofs, Color(0.3,0.7,1,1) , 2);
}
}
}
@@ -96,8 +139,6 @@ void TextureRegionEditor::_region_draw()
mtx.basis_xform(rect.pos+Vector2(0,rect.size.y))
};
Color color(0.9,0.5,0.5);
- if(this->editing_region == REGION_PATCH_MARGIN)
- color = Color(0.21, 0.79, 0.31);
for(int i=0;i<4;i++) {
int prev = (i+3)%4;
@@ -108,12 +149,14 @@ void TextureRegionEditor::_region_draw()
edit_draw->draw_line(endpoints[i]-draw_ofs, endpoints[next]-draw_ofs, color , 2);
- edit_draw->draw_texture(select_handle,(endpoints[i]+ofs-(select_handle->get_size()/2)).floor()-draw_ofs);
+ if (snap_mode != SNAP_AUTOSLICE)
+ edit_draw->draw_texture(select_handle,(endpoints[i]+ofs-(select_handle->get_size()/2)).floor()-draw_ofs);
ofs = (endpoints[next]-endpoints[i])/2;
ofs += (endpoints[next]-endpoints[i]).tangent().normalized()*(select_handle->get_size().width/2);
- edit_draw->draw_texture(select_handle,(endpoints[i]+ofs-(select_handle->get_size()/2)).floor()-draw_ofs);
+ if (snap_mode != SNAP_AUTOSLICE)
+ edit_draw->draw_texture(select_handle,(endpoints[i]+ofs-(select_handle->get_size()/2)).floor()-draw_ofs);
scroll_rect.expand_to(endpoints[i]);
}
@@ -132,6 +175,31 @@ void TextureRegionEditor::_region_draw()
vscroll->set_val(draw_ofs.y);
vscroll->set_step(0.001);
updating_scroll=false;
+
+ float margins[4];
+ if (node_patch9 || obj_styleBox.is_valid()) {
+ if (node_patch9) {
+ margins[0] = node_patch9->get_patch_margin(MARGIN_TOP);
+ margins[1] = node_patch9->get_patch_margin(MARGIN_BOTTOM);
+ margins[2] = node_patch9->get_patch_margin(MARGIN_LEFT);
+ margins[3] = node_patch9->get_patch_margin(MARGIN_RIGHT);
+ } else if (obj_styleBox.is_valid()) {
+ margins[0] = obj_styleBox->get_margin_size(MARGIN_TOP);
+ margins[1] = obj_styleBox->get_margin_size(MARGIN_BOTTOM);
+ margins[2] = obj_styleBox->get_margin_size(MARGIN_LEFT);
+ margins[3] = obj_styleBox->get_margin_size(MARGIN_RIGHT);
+ }
+ Vector2 pos[4] = {
+ mtx.basis_xform(Vector2(0,margins[0]))+Vector2(0,endpoints[0].y-draw_ofs.y),
+ -mtx.basis_xform(Vector2(0,margins[1]))+Vector2(0,endpoints[2].y-draw_ofs.y),
+ mtx.basis_xform(Vector2(margins[2],0))+Vector2(endpoints[0].x-draw_ofs.x,0),
+ -mtx.basis_xform(Vector2(margins[3],0))+Vector2(endpoints[2].x-draw_ofs.x,0)};
+
+ draw_margin_line(edit_draw,pos[0],pos[0]+Vector2(edit_draw->get_size().x,0));
+ draw_margin_line(edit_draw,pos[1],pos[1]+Vector2(edit_draw->get_size().x,0));
+ draw_margin_line(edit_draw,pos[2],pos[2]+Vector2(0,edit_draw->get_size().y));
+ draw_margin_line(edit_draw,pos[3],pos[3]+Vector2(0,edit_draw->get_size().y));
+ }
}
void TextureRegionEditor::_region_input(const InputEvent& p_input)
@@ -153,84 +221,174 @@ void TextureRegionEditor::_region_input(const InputEvent& p_input)
if (p_input.type==InputEvent::MOUSE_BUTTON) {
-
const InputEventMouseButton &mb=p_input.mouse_button;
if (mb.button_index==BUTTON_LEFT) {
-
if (mb.pressed) {
-
- drag_from=mtx.affine_inverse().xform(Vector2(mb.x,mb.y));
- drag_from=snap_point(drag_from);
- drag=true;
- if(node_type == "Sprite" && node_sprite )
- rect_prev=node_sprite->get_region_rect();
- else if(node_type == "AtlasTexture" && atlas_tex)
- rect_prev=atlas_tex->get_region();
- else if(node_type == "Patch9Frame" && node_patch9)
- rect_prev=node_patch9->get_region_rect();
- else if(node_type == "StyleBoxTexture" && obj_styleBox)
- rect_prev=obj_styleBox->get_region_rect();
-
- drag_index=-1;
- for(int i=0;i<8;i++) {
-
- Vector2 tuv=endpoints[i];
- if (tuv.distance_to(Vector2(mb.x,mb.y))<8) {
- drag_index=i;
- creating = false;
+ if (node_patch9 || obj_styleBox.is_valid()) {
+ edited_margin = -1;
+ float margins[4];
+ if (node_patch9) {
+ margins[0] = node_patch9->get_patch_margin(MARGIN_TOP);
+ margins[1] = node_patch9->get_patch_margin(MARGIN_BOTTOM);
+ margins[2] = node_patch9->get_patch_margin(MARGIN_LEFT);
+ margins[3] = node_patch9->get_patch_margin(MARGIN_RIGHT);
+ } else if (obj_styleBox.is_valid()) {
+ margins[0] = obj_styleBox->get_margin_size(MARGIN_TOP);
+ margins[1] = obj_styleBox->get_margin_size(MARGIN_BOTTOM);
+ margins[2] = obj_styleBox->get_margin_size(MARGIN_LEFT);
+ margins[3] = obj_styleBox->get_margin_size(MARGIN_RIGHT);
+ }
+ Vector2 pos[4] = {
+ mtx.basis_xform(rect.pos+Vector2(0,margins[0]))-draw_ofs,
+ mtx.basis_xform(rect.pos+rect.size-Vector2(0,margins[1]))-draw_ofs,
+ mtx.basis_xform(rect.pos+Vector2(margins[2],0))-draw_ofs,
+ mtx.basis_xform(rect.pos+rect.size-Vector2(margins[3],0))-draw_ofs};
+ if (Math::abs(mb.y - pos[0].y) < 8) {
+ edited_margin = 0;
+ prev_margin = margins[0];
+ } else if (Math::abs(mb.y - pos[1].y) < 8) {
+ edited_margin = 1;
+ prev_margin = margins[1];
+ } else if (Math::abs(mb.x - pos[2].x) < 8) {
+ edited_margin = 2;
+ prev_margin = margins[2];
+ } else if (Math::abs(mb.x - pos[3].x) < 8) {
+ edited_margin = 3;
+ prev_margin = margins[3];
+ }
+ if (edited_margin >= 0) {
+ drag_from=Vector2(mb.x,mb.y);
+ drag=true;
}
}
+ if ( edited_margin < 0 && snap_mode == SNAP_AUTOSLICE) {
+ Vector2 point = mtx.affine_inverse().xform(Vector2(mb.x,mb.y));
+ for (List<Rect2>::Element *E=autoslice_cache.front();E;E=E->next()) {
+ if (E->get().has_point(point)) {
+ rect = E->get();
+ if (Input::get_singleton()->is_key_pressed(KEY_CONTROL)&&!(Input::get_singleton()->is_key_pressed(KEY_SHIFT|KEY_ALT))) {
+ Rect2 r;
+ if(node_sprite )
+ r=node_sprite->get_region_rect();
+ else if(node_patch9)
+ r=node_patch9->get_region_rect();
+ else if(obj_styleBox.is_valid())
+ r=obj_styleBox->get_region_rect();
+ else if(atlas_tex.is_valid())
+ r =atlas_tex->get_region();
+ rect.expand_to(r.pos);
+ rect.expand_to(r.pos+r.size);
+ }
+ undo_redo->create_action("Set Region Rect");
+ if(node_sprite){
+ undo_redo->add_do_method(node_sprite ,"set_region_rect",rect);
+ undo_redo->add_undo_method(node_sprite,"set_region_rect",node_sprite->get_region_rect());
+ } else if(node_patch9){
+ undo_redo->add_do_method(node_patch9 ,"set_region_rect",rect);
+ undo_redo->add_undo_method(node_patch9,"set_region_rect",node_patch9->get_region_rect());
+ } else if (obj_styleBox.is_valid()) {
+ undo_redo->add_do_method(obj_styleBox.ptr(),"set_region_rect",rect);
+ undo_redo->add_undo_method(obj_styleBox.ptr(),"set_region_rect",obj_styleBox->get_region_rect());
+ } else if (atlas_tex.is_valid()) {
+ undo_redo->add_do_method(atlas_tex.ptr(),"set_region",rect);
+ undo_redo->add_undo_method(atlas_tex.ptr(),"set_region",atlas_tex->get_region());
+ }
+ undo_redo->add_do_method(edit_draw,"update");
+ undo_redo->add_undo_method(edit_draw,"update");
+ undo_redo->commit_action();
+ break;
+ }
+ }
+ } else if (edited_margin < 0) {
+ drag_from=mtx.affine_inverse().xform(Vector2(mb.x,mb.y));
+ if (snap_mode == SNAP_PIXEL)
+ drag_from = drag_from.snapped(Vector2(1,1));
+ else if (snap_mode == SNAP_GRID)
+ drag_from=snap_point(drag_from);
+ drag=true;
+ if(node_sprite )
+ rect_prev=node_sprite->get_region_rect();
+ else if(node_patch9)
+ rect_prev=node_patch9->get_region_rect();
+ else if(obj_styleBox.is_valid())
+ rect_prev=obj_styleBox->get_region_rect();
+ else if(atlas_tex.is_valid())
+ rect_prev=atlas_tex->get_region();
+
+ for (int i=0; i<8;i++) {
+ Vector2 tuv=endpoints[i];
+ if (tuv.distance_to(Vector2(mb.x,mb.y))<8) {
+ drag_index=i;
+ }
+ }
- if (drag_index==-1) {
- creating = true;
- rect = Rect2(drag_from,Size2());
+ if (drag_index==-1) {
+ creating = true;
+ rect = Rect2(drag_from,Size2());
+ }
}
} else if (drag) {
- if(editing_region == REGION_TEXTURE_REGION) {
- undo_redo->create_action("Set region_rect");
- if(node_type == "Sprite" && node_sprite ){
+ if (edited_margin >= 0) {
+ undo_redo->create_action("Set Margin");
+ static Margin m[4] = {MARGIN_TOP,MARGIN_BOTTOM,MARGIN_LEFT,MARGIN_RIGHT};
+ if (node_patch9) {
+ undo_redo->add_do_method(node_patch9 ,"set_patch_margin",m[edited_margin],node_patch9->get_patch_margin(m[edited_margin]));
+ undo_redo->add_undo_method(node_patch9,"set_patch_margin",m[edited_margin],prev_margin);
+ } else if (obj_styleBox.is_valid()) {
+ undo_redo->add_do_method(obj_styleBox.ptr() ,"set_margin_size",m[edited_margin],obj_styleBox->get_margin_size(m[edited_margin]));
+ undo_redo->add_undo_method(obj_styleBox.ptr(),"set_margin_size",m[edited_margin],prev_margin);
+ obj_styleBox->emit_signal(CoreStringNames::get_singleton()->changed);
+ }
+ edited_margin = -1;
+ } else {
+ undo_redo->create_action("Set Region Rect");
+ if(node_sprite){
undo_redo->add_do_method(node_sprite ,"set_region_rect",node_sprite->get_region_rect());
undo_redo->add_undo_method(node_sprite,"set_region_rect",rect_prev);
}
- else if(node_type == "AtlasTexture" && atlas_tex ){
- undo_redo->add_do_method(atlas_tex ,"set_region",atlas_tex->get_region());
- undo_redo->add_undo_method(atlas_tex,"set_region",rect_prev);
+ else if(atlas_tex.is_valid()){
+ undo_redo->add_do_method(atlas_tex.ptr() ,"set_region",atlas_tex->get_region());
+ undo_redo->add_undo_method(atlas_tex.ptr(),"set_region",rect_prev);
}
- else if(node_type == "Patch9Frame" && node_patch9){
+ else if(node_patch9){
+ } else if(node_patch9){
undo_redo->add_do_method(node_patch9 ,"set_region_rect",node_patch9->get_region_rect());
undo_redo->add_undo_method(node_patch9,"set_region_rect",rect_prev);
+ } else if (obj_styleBox.is_valid()) {
+ undo_redo->add_do_method(obj_styleBox.ptr() ,"set_region_rect",obj_styleBox->get_region_rect());
+ undo_redo->add_undo_method(obj_styleBox.ptr(),"set_region_rect",rect_prev);
}
- else if(node_type == "StyleBoxTexture" && obj_styleBox){
- undo_redo->add_do_method(obj_styleBox ,"set_region_rect",obj_styleBox->get_region_rect());
- undo_redo->add_undo_method(obj_styleBox,"set_region_rect",rect_prev);
- }
- undo_redo->add_do_method(edit_draw,"update");
- undo_redo->add_undo_method(edit_draw,"update");
- undo_redo->commit_action();
+ drag_index = -1;
}
+ undo_redo->add_do_method(edit_draw,"update");
+ undo_redo->add_undo_method(edit_draw,"update");
+ undo_redo->commit_action();
drag=false;
+ creating = false;
}
} else if (mb.button_index==BUTTON_RIGHT && mb.pressed) {
if (drag) {
drag=false;
- apply_rect(rect_prev);
- rect=rect_prev;
- edit_draw->update();
+ if (edited_margin >= 0) {
+ static Margin m[4] = {MARGIN_TOP,MARGIN_BOTTOM,MARGIN_LEFT,MARGIN_RIGHT};
+ if (node_patch9)
+ node_patch9->set_patch_margin(m[edited_margin],prev_margin);
+ if (obj_styleBox.is_valid())
+ obj_styleBox->set_margin_size(m[edited_margin],prev_margin);
+ edited_margin = -1;
+ } else {
+ apply_rect(rect_prev);
+ rect=rect_prev;
+ edit_draw->update();
+ drag_index = -1;
+ }
}
-
- } else if (mb.button_index==BUTTON_WHEEL_UP && mb.pressed) {
-
- zoom->set_val( zoom->get_val()/0.9 );
- } else if (mb.button_index==BUTTON_WHEEL_DOWN && mb.pressed) {
-
- zoom->set_val( zoom->get_val()*0.9);
}
-
} else if (p_input.type==InputEvent::MOUSE_MOTION) {
const InputEventMouseMotion &mm=p_input.mouse_motion;
@@ -243,67 +401,89 @@ void TextureRegionEditor::_region_input(const InputEvent& p_input)
} else if (drag) {
- Vector2 new_pos = mtx.affine_inverse().xform(Vector2(mm.x,mm.y));
- new_pos = snap_point(new_pos);
-
- if (creating) {
- rect = Rect2(drag_from,Size2());
- rect.expand_to(new_pos);
- apply_rect(rect);
- edit_draw->update();
- return;
- }
-
- switch(drag_index) {
- case 0: {
- Vector2 p=rect_prev.pos+rect_prev.size;
- rect = Rect2(p,Size2());
- rect.expand_to(new_pos);
- apply_rect(rect);
- } break;
- case 1: {
- Vector2 p=rect_prev.pos+Vector2(0,rect_prev.size.y);
- rect = Rect2(p,Size2(rect_prev.size.x,0));
- rect.expand_to(new_pos);
- apply_rect(rect);
- } break;
- case 2: {
- Vector2 p=rect_prev.pos+Vector2(0,rect_prev.size.y);
- rect = Rect2(p,Size2());
- rect.expand_to(new_pos);
- apply_rect(rect);
- } break;
- case 3: {
- Vector2 p=rect_prev.pos;
- rect = Rect2(p,Size2(0,rect_prev.size.y));
- rect.expand_to(new_pos);
- apply_rect(rect);
- } break;
- case 4: {
- Vector2 p=rect_prev.pos;
- rect = Rect2(p,Size2());
- rect.expand_to(new_pos);
- apply_rect(rect);
- } break;
- case 5: {
- Vector2 p=rect_prev.pos;
- rect = Rect2(p,Size2(rect_prev.size.x,0));
- rect.expand_to(new_pos);
- apply_rect(rect);
- } break;
- case 6: {
- Vector2 p=rect_prev.pos+Vector2(rect_prev.size.x,0);
- rect = Rect2(p,Size2());
- rect.expand_to(new_pos);
- apply_rect(rect);
- } break;
- case 7: {
- Vector2 p=rect_prev.pos+Vector2(rect_prev.size.x,0);
- rect = Rect2(p,Size2(0,rect_prev.size.y));
+ if (edited_margin >= 0) {
+ float new_margin;
+ if (edited_margin == 0)
+ new_margin = prev_margin + (mm.y-drag_from.y) / draw_zoom;
+ else if (edited_margin == 1)
+ new_margin = prev_margin - (mm.y-drag_from.y) / draw_zoom;
+ else if (edited_margin == 2)
+ new_margin = prev_margin + (mm.x-drag_from.x) / draw_zoom;
+ else if (edited_margin == 3)
+ new_margin = prev_margin - (mm.x-drag_from.x) / draw_zoom;
+ if (new_margin < 0)
+ new_margin = 0;
+ static Margin m[4] = {MARGIN_TOP,MARGIN_BOTTOM,MARGIN_LEFT,MARGIN_RIGHT};
+ if (node_patch9)
+ node_patch9->set_patch_margin(m[edited_margin],new_margin);
+ if (obj_styleBox.is_valid())
+ obj_styleBox->set_margin_size(m[edited_margin],new_margin);
+ } else {
+ Vector2 new_pos = mtx.affine_inverse().xform(Vector2(mm.x,mm.y));
+ if (snap_mode == SNAP_PIXEL)
+ new_pos = new_pos.snapped(Vector2(1,1));
+ else if (snap_mode == SNAP_GRID)
+ new_pos=snap_point(new_pos);
+
+ if (creating) {
+ rect = Rect2(drag_from,Size2());
rect.expand_to(new_pos);
apply_rect(rect);
- } break;
+ edit_draw->update();
+ return;
+ }
+ switch(drag_index) {
+ case 0: {
+ Vector2 p=rect_prev.pos+rect_prev.size;
+ rect = Rect2(p,Size2());
+ rect.expand_to(new_pos);
+ apply_rect(rect);
+ } break;
+ case 1: {
+ Vector2 p=rect_prev.pos+Vector2(0,rect_prev.size.y);
+ rect = Rect2(p,Size2(rect_prev.size.x,0));
+ rect.expand_to(new_pos);
+ apply_rect(rect);
+ } break;
+ case 2: {
+ Vector2 p=rect_prev.pos+Vector2(0,rect_prev.size.y);
+ rect = Rect2(p,Size2());
+ rect.expand_to(new_pos);
+ apply_rect(rect);
+ } break;
+ case 3: {
+ Vector2 p=rect_prev.pos;
+ rect = Rect2(p,Size2(0,rect_prev.size.y));
+ rect.expand_to(new_pos);
+ apply_rect(rect);
+ } break;
+ case 4: {
+ Vector2 p=rect_prev.pos;
+ rect = Rect2(p,Size2());
+ rect.expand_to(new_pos);
+ apply_rect(rect);
+ } break;
+ case 5: {
+ Vector2 p=rect_prev.pos;
+ rect = Rect2(p,Size2(rect_prev.size.x,0));
+ rect.expand_to(new_pos);
+ apply_rect(rect);
+ } break;
+ case 6: {
+ Vector2 p=rect_prev.pos+Vector2(rect_prev.size.x,0);
+ rect = Rect2(p,Size2());
+ rect.expand_to(new_pos);
+ apply_rect(rect);
+ } break;
+ case 7: {
+ Vector2 p=rect_prev.pos+Vector2(rect_prev.size.x,0);
+ rect = Rect2(p,Size2(0,rect_prev.size.y));
+ rect.expand_to(new_pos);
+ apply_rect(rect);
+ } break;
+
+ }
}
edit_draw->update();
}
@@ -318,19 +498,21 @@ void TextureRegionEditor::_scroll_changed(float)
draw_ofs.x=hscroll->get_val();
draw_ofs.y=vscroll->get_val();
- draw_zoom=zoom->get_val();
- print_line("_scroll_changed");
edit_draw->update();
}
-void TextureRegionEditor::_set_use_snap(bool p_use)
+void TextureRegionEditor::_set_snap_mode(int p_mode)
{
- use_snap=p_use;
-}
+ snap_mode_button->get_popup()->set_item_checked(snap_mode,false);
+ snap_mode = p_mode;
+ snap_mode_button->set_text(snap_mode_button->get_popup()->get_item_text(p_mode));
+ snap_mode_button->get_popup()->set_item_checked(snap_mode,true);
+
+ if (snap_mode == SNAP_GRID)
+ hb_grid->show();
+ else
+ hb_grid->hide();
-void TextureRegionEditor::_set_show_grid(bool p_show)
-{
- snap_show_grid=p_show;
edit_draw->update();
}
@@ -358,42 +540,59 @@ void TextureRegionEditor::_set_snap_step_y(float p_val)
edit_draw->update();
}
-void TextureRegionEditor::apply_rect(const Rect2& rect){
+void TextureRegionEditor::_set_snap_sep_x(float p_val)
+{
+ snap_separation.x = p_val;
+ edit_draw->update();
+}
- if(this->editing_region == REGION_TEXTURE_REGION) {
- if(node_sprite)
- node_sprite->set_region_rect(rect);
- else if(node_patch9)
- node_patch9->set_region_rect(rect);
- else if(obj_styleBox)
- obj_styleBox->set_region_rect(rect);
- else if(atlas_tex)
- atlas_tex->set_region(rect);
+void TextureRegionEditor::_set_snap_sep_y(float p_val)
+{
+ snap_separation.y = p_val;
+ edit_draw->update();
+}
+
+void TextureRegionEditor::_zoom_in()
+{
+ if (draw_zoom < 8) {
+ draw_zoom *= 2;
+ edit_draw->update();
}
- else if(this->editing_region == REGION_PATCH_MARGIN) {
- if(node_patch9) {
- node_patch9->set_patch_margin(MARGIN_LEFT, rect.pos.x - tex_region.pos.x);
- node_patch9->set_patch_margin(MARGIN_RIGHT, tex_region.pos.x+tex_region.size.width-(rect.pos.x+rect.size.width));
- node_patch9->set_patch_margin(MARGIN_TOP, rect.pos.y - tex_region.pos.y);
- node_patch9->set_patch_margin(MARGIN_BOTTOM, tex_region.pos.y+tex_region.size.height-(rect.pos.y+rect.size.height));
- }
- else if(obj_styleBox) {
- obj_styleBox->set_margin_size(MARGIN_LEFT, rect.pos.x - tex_region.pos.x);
- obj_styleBox->set_margin_size(MARGIN_RIGHT, tex_region.pos.x+tex_region.size.width-(rect.pos.x+rect.size.width));
- obj_styleBox->set_margin_size(MARGIN_TOP, rect.pos.y - tex_region.pos.y);
- obj_styleBox->set_margin_size(MARGIN_BOTTOM, tex_region.pos.y+tex_region.size.height-(rect.pos.y+rect.size.height));
- }
+}
+
+void TextureRegionEditor::_zoom_reset()
+{
+ if (draw_zoom == 1) return;
+ draw_zoom = 1;
+ edit_draw->update();
+}
+
+void TextureRegionEditor::_zoom_out()
+{
+ if (draw_zoom > 0.25) {
+ draw_zoom /= 2;
+ edit_draw->update();
}
}
+void TextureRegionEditor::apply_rect(const Rect2& rect){
+ if(node_sprite)
+ node_sprite->set_region_rect(rect);
+ else if(node_patch9)
+ node_patch9->set_region_rect(rect);
+ else if(obj_styleBox.is_valid())
+ obj_styleBox->set_region_rect(rect);
+ else if(atlas_tex.is_valid())
+ atlas_tex->set_region(rect);
+}
+
void TextureRegionEditor::_notification(int p_what)
{
switch(p_what) {
case NOTIFICATION_READY: {
- region_button->set_icon( get_icon("RegionEdit","EditorIcons"));
- margin_button->set_icon( get_icon("Patch9Frame", "EditorIcons"));
- b_snap_grid->set_icon( get_icon("Grid", "EditorIcons"));
- b_snap_enable->set_icon( get_icon("Snap", "EditorIcons"));
+ zoom_out->set_icon(get_icon("ZoomLess", "EditorIcons"));
+ zoom_reset->set_icon(get_icon("ZoomReset", "EditorIcons"));
+ zoom_in->set_icon(get_icon("ZoomMore", "EditorIcons"));
icon_zoom->set_texture( get_icon("Zoom", "EditorIcons"));
} break;
}
@@ -401,149 +600,165 @@ void TextureRegionEditor::_notification(int p_what)
void TextureRegionEditor::_node_removed(Object *p_obj)
{
- if(p_obj == node_sprite || p_obj == node_patch9 || p_obj == obj_styleBox || p_obj == atlas_tex) {
- node_patch9 = NULL;
- node_sprite = NULL;
- obj_styleBox = NULL;
- atlas_tex = NULL;
+ if(p_obj == node_sprite || p_obj == node_patch9 || p_obj == obj_styleBox.ptr() || p_obj == atlas_tex.ptr()) {
+ node_patch9 = NULL;
+ node_sprite = NULL;
+ obj_styleBox = Ref<StyleBox>(NULL);
+ atlas_tex = Ref<AtlasTexture>(NULL);
hide();
}
}
void TextureRegionEditor::_bind_methods()
{
- ObjectTypeDB::bind_method(_MD("_edit_node"),&TextureRegionEditor::_edit_node);
ObjectTypeDB::bind_method(_MD("_edit_region"),&TextureRegionEditor::_edit_region);
- ObjectTypeDB::bind_method(_MD("_edit_margin"),&TextureRegionEditor::_edit_margin);
ObjectTypeDB::bind_method(_MD("_region_draw"),&TextureRegionEditor::_region_draw);
ObjectTypeDB::bind_method(_MD("_region_input"),&TextureRegionEditor::_region_input);
ObjectTypeDB::bind_method(_MD("_scroll_changed"),&TextureRegionEditor::_scroll_changed);
ObjectTypeDB::bind_method(_MD("_node_removed"),&TextureRegionEditor::_node_removed);
- ObjectTypeDB::bind_method(_MD("_set_use_snap"),&TextureRegionEditor::_set_use_snap);
- ObjectTypeDB::bind_method(_MD("_set_show_grid"),&TextureRegionEditor::_set_show_grid);
+ ObjectTypeDB::bind_method(_MD("_set_snap_mode"),&TextureRegionEditor::_set_snap_mode);
ObjectTypeDB::bind_method(_MD("_set_snap_off_x"),&TextureRegionEditor::_set_snap_off_x);
ObjectTypeDB::bind_method(_MD("_set_snap_off_y"),&TextureRegionEditor::_set_snap_off_y);
ObjectTypeDB::bind_method(_MD("_set_snap_step_x"),&TextureRegionEditor::_set_snap_step_x);
ObjectTypeDB::bind_method(_MD("_set_snap_step_y"),&TextureRegionEditor::_set_snap_step_y);
+ ObjectTypeDB::bind_method(_MD("_set_snap_sep_x"),&TextureRegionEditor::_set_snap_sep_x);
+ ObjectTypeDB::bind_method(_MD("_set_snap_sep_y"),&TextureRegionEditor::_set_snap_sep_y);
+ ObjectTypeDB::bind_method(_MD("_zoom_in"),&TextureRegionEditor::_zoom_in);
+ ObjectTypeDB::bind_method(_MD("_zoom_reset"),&TextureRegionEditor::_zoom_reset);
+ ObjectTypeDB::bind_method(_MD("_zoom_out"),&TextureRegionEditor::_zoom_out);
}
void TextureRegionEditor::edit(Object *p_obj)
{
+ if (node_sprite && node_sprite->is_connected("texture_changed",this,"_edit_region"))
+ node_sprite->disconnect("texture_changed",this,"_edit_region");
+ if (node_patch9 && node_patch9->is_connected("texture_changed",this,"_edit_region"))
+ node_patch9->disconnect("texture_changed",this,"_edit_region");
+ if (obj_styleBox.is_valid() && obj_styleBox->is_connected("texture_changed",this,"_edit_region"))
+ obj_styleBox->disconnect("texture_changed",this,"_edit_region");
+ if (atlas_tex.is_valid() && atlas_tex->is_connected("atlas_changed",this,"_edit_region"))
+ atlas_tex->disconnect("atlas_changed",this,"_edit_region");
if (p_obj) {
- margin_button->hide();
- node_type = p_obj->get_type();
- if(node_type == "Sprite"){
- node_sprite = p_obj->cast_to<Sprite>();
- node_patch9 = NULL;
- obj_styleBox = NULL;
- atlas_tex = NULL;
- }
- else if(node_type == "AtlasTexture") {
- atlas_tex = p_obj->cast_to<AtlasTexture>();
- node_sprite = NULL;
- node_patch9 = NULL;
- obj_styleBox = NULL;
- }
- else if(node_type == "Patch9Frame") {
- node_patch9 = p_obj->cast_to<Patch9Frame>();
- node_sprite = NULL;
- obj_styleBox = NULL;
- atlas_tex = NULL;
- margin_button->show();
- }
- else if(node_type == "StyleBoxTexture") {
- obj_styleBox = p_obj->cast_to<StyleBoxTexture>();
- node_sprite = NULL;
- node_patch9 = NULL;
- atlas_tex = NULL;
- margin_button->show();
+ node_sprite = p_obj->cast_to<Sprite>();
+ node_patch9 = p_obj->cast_to<Patch9Frame>();
+ if (p_obj->cast_to<StyleBoxTexture>())
+ obj_styleBox = Ref<StyleBoxTexture>(p_obj->cast_to<StyleBoxTexture>());
+ if (p_obj->cast_to<AtlasTexture>()) {
+ atlas_tex = Ref<AtlasTexture>(p_obj->cast_to<AtlasTexture>());
+ atlas_tex->connect("atlas_changed",this,"_edit_region");
+ } else {
+ p_obj->connect("texture_changed",this,"_edit_region");
}
p_obj->connect("exit_tree",this,"_node_removed",varray(p_obj),CONNECT_ONESHOT);
+ _edit_region();
} else {
if(node_sprite)
node_sprite->disconnect("exit_tree",this,"_node_removed");
- else if(atlas_tex)
- atlas_tex->disconnect("exit_tree",this,"_node_removed");
else if(node_patch9)
node_patch9->disconnect("exit_tree",this,"_node_removed");
- else if(obj_styleBox)
+ else if(obj_styleBox.is_valid())
obj_styleBox->disconnect("exit_tree",this,"_node_removed");
- node_sprite = NULL;
- node_patch9 = NULL;
- obj_styleBox = NULL;
- atlas_tex = NULL;
+ else if(atlas_tex.is_valid())
+ atlas_tex->disconnect("exit_tree",this,"_node_removed");
+
+ node_sprite = NULL;
+ node_patch9 = NULL;
+ obj_styleBox = Ref<StyleBoxTexture>(NULL);
+ atlas_tex = Ref<AtlasTexture>(NULL);
}
+ edit_draw->update();
}
void TextureRegionEditor::_edit_region()
{
- this->_edit_node(REGION_TEXTURE_REGION);
- dlg_editor->set_title(TTR("Texture Region Editor"));
-}
-
-void TextureRegionEditor::_edit_margin()
-{
- this->_edit_node(REGION_PATCH_MARGIN);
- dlg_editor->set_title(TTR("Scale Region Editor"));
-}
-
-void TextureRegionEditor::_edit_node(int region)
-{
Ref<Texture> texture = NULL;
- if(node_type == "Sprite" && node_sprite )
+ if(node_sprite )
texture = node_sprite->get_texture();
- else if(node_type == "Patch9Frame" && node_patch9 )
+ else if(node_patch9 )
texture = node_patch9->get_texture();
- else if(node_type == "StyleBoxTexture" && obj_styleBox)
+ else if(obj_styleBox.is_valid())
texture = obj_styleBox->get_texture();
- else if(node_type == "AtlasTexture" && atlas_tex)
+ else if(atlas_tex.is_valid())
texture = atlas_tex->get_atlas();
if (texture.is_null()) {
- error->set_text(TTR("No texture in this node.\nSet a texture to be able to edit region."));
- error->popup_centered_minsize();
return;
}
- if(node_type == "Sprite" && node_sprite )
- tex_region = node_sprite->get_region_rect();
- else if(node_type == "Patch9Frame" && node_patch9 )
- tex_region = node_patch9->get_region_rect();
- else if(node_type == "StyleBoxTexture" && obj_styleBox)
- tex_region = obj_styleBox->get_region_rect();
- else if(node_type == "AtlasTexture" && atlas_tex)
- tex_region = atlas_tex->get_region();
- rect = tex_region;
-
- if(region == REGION_PATCH_MARGIN) {
- if(node_patch9){
- Patch9Frame *node = node_patch9;
- rect.pos += Point2(node->get_patch_margin(MARGIN_LEFT),node->get_patch_margin(MARGIN_TOP));
- rect.size -= Size2(node->get_patch_margin(MARGIN_RIGHT)+node->get_patch_margin(MARGIN_LEFT), node->get_patch_margin(MARGIN_BOTTOM)+node->get_patch_margin(MARGIN_TOP));
- }
- else if(obj_styleBox) {
- StyleBoxTexture * node = obj_styleBox;
- rect.pos += Point2(node->get_margin_size(MARGIN_LEFT),node->get_margin_size(MARGIN_TOP));
- rect.size -= Size2(node->get_margin_size(MARGIN_RIGHT)+node->get_margin_size(MARGIN_LEFT), node->get_margin_size(MARGIN_BOTTOM)+node->get_margin_size(MARGIN_TOP));
+ autoslice_cache.clear();
+ Image i;
+ if (i.load(texture->get_path()) == OK) {
+ BitMap bm;
+ bm.create_from_image_alpha(i);
+ for (int y = 0; y < i.get_height(); y++) {
+ for (int x = 0; x < i.get_width(); x++) {
+ if (bm.get_bit(Point2(x,y))) {
+ bool found = false;
+ for (List<Rect2>::Element *E = autoslice_cache.front(); E; E=E->next()) {
+ Rect2 grown = E->get().grow(1.5);
+ if (grown.has_point(Point2(x,y))) {
+ E->get().expand_to(Point2(x,y));
+ E->get().expand_to(Point2(x+1,y+1));
+ x = E->get().pos.x+E->get().size.x-1;
+ bool merged = true;
+ while (merged) {
+ merged = false;
+ for (List<Rect2>::Element *F = autoslice_cache.front(); F; F=F->next()) {
+ if (F==E)
+ continue;
+ if (E->get().grow(1).intersects(F->get())) {
+ E->get().expand_to(F->get().pos);
+ E->get().expand_to(F->get().pos+F->get().size);
+ F=F->prev();
+ autoslice_cache.erase(F->next());
+ merged = true;
+ }
+ }
+ }
+ found = true;
+ break;
+ }
+ }
+ if (!found) {
+ Rect2 new_rect(x,y,1,1);
+ autoslice_cache.push_back(new_rect);
+ }
+ }
+ }
}
}
- dlg_editor->popup_centered_ratio(0.85);
- dlg_editor->get_ok()->release_focus();
- editing_region = region;
+ if(node_sprite )
+ rect = node_sprite->get_region_rect();
+ else if(node_patch9 )
+ rect = node_patch9->get_region_rect();
+ else if(obj_styleBox.is_valid())
+ rect = obj_styleBox->get_region_rect();
+ else if (atlas_tex.is_valid())
+ rect = atlas_tex->get_region();
+
+ edit_draw->update();
}
-inline float _snap_scalar(float p_offset, float p_step, float p_target) {
- return p_step != 0 ? Math::stepify(p_target - p_offset, p_step) + p_offset : p_target;
+inline float _snap_scalar(float p_offset, float p_step, float separation, float p_target) {
+ if (p_step != 0) {
+ float a = Math::stepify(p_target - p_offset, p_step+separation) + p_offset;
+ float b = a;
+ if (p_target >= 0)
+ b -= separation;
+ else
+ b += p_step;
+ return (Math::abs(p_target-a) < Math::abs(p_target-b)) ? a : b;
+ }
+ return p_target;
}
Vector2 TextureRegionEditor::snap_point(Vector2 p_target) const {
- if (use_snap) {
- p_target.x = _snap_scalar(snap_offset.x, snap_step.x, p_target.x);
- p_target.y = _snap_scalar(snap_offset.y, snap_step.y, p_target.y);
+ if (snap_mode == SNAP_GRID) {
+ p_target.x = _snap_scalar(snap_offset.x, snap_step.x, snap_separation.x, p_target.x);
+ p_target.y = _snap_scalar(snap_offset.y, snap_step.y, snap_separation.y, p_target.y);
}
- p_target = p_target.snapped(Size2(1, 1));
return p_target;
}
@@ -552,56 +767,42 @@ TextureRegionEditor::TextureRegionEditor(EditorNode* p_editor)
{
node_sprite = NULL;
node_patch9 = NULL;
- atlas_tex = NULL;
+ obj_styleBox = Ref<StyleBoxTexture>(NULL);
+ atlas_tex = Ref<AtlasTexture>(NULL);
editor=p_editor;
undo_redo = editor->get_undo_redo();
snap_step=Vector2(10,10);
- use_snap=false;
- snap_show_grid=false;
+ snap_separation = Vector2(0,0);
+ edited_margin = -1;
+ drag_index = -1;
drag=false;
- add_child( memnew( VSeparator ));
- region_button = memnew( ToolButton );
- add_child(region_button);
- region_button->set_tooltip(TTR("Texture Region Editor"));
- region_button->connect("pressed",this,"_edit_region");
-
- margin_button = memnew( ToolButton );
- add_child(margin_button);
- margin_button->set_tooltip(TTR("Scale Region Editor"));
- margin_button->connect("pressed",this,"_edit_margin");
-
- dlg_editor = memnew( AcceptDialog );
- add_child(dlg_editor);
- dlg_editor->set_self_opacity(0.9);
-
VBoxContainer *main_vb = memnew( VBoxContainer );
- dlg_editor->add_child(main_vb);
- dlg_editor->set_child_rect(main_vb);
+ add_child(main_vb);
+ main_vb->set_area_as_parent_rect(0);
HBoxContainer *hb_tools = memnew( HBoxContainer );
main_vb->add_child(hb_tools);
- b_snap_enable = memnew( ToolButton );
- hb_tools->add_child(b_snap_enable);
- b_snap_enable->set_text(TTR("Snap"));
- b_snap_enable->set_focus_mode(FOCUS_NONE);
- b_snap_enable->set_toggle_mode(true);
- b_snap_enable->set_pressed(use_snap);
- b_snap_enable->set_tooltip(TTR("Enable Snap"));
- b_snap_enable->connect("toggled",this,"_set_use_snap");
-
- b_snap_grid = memnew( ToolButton );
- hb_tools->add_child(b_snap_grid);
- b_snap_grid->set_text(TTR("Grid"));
- b_snap_grid->set_focus_mode(FOCUS_NONE);
- b_snap_grid->set_toggle_mode(true);
- b_snap_grid->set_pressed(snap_show_grid);
- b_snap_grid->set_tooltip(TTR("Show Grid"));
- b_snap_grid->connect("toggled",this,"_set_show_grid");
-
- hb_tools->add_child( memnew( VSeparator ));
- hb_tools->add_child( memnew( Label(TTR("Grid Offset:")) ) );
+ hb_tools->add_child(memnew( Label(TTR("Snap Mode:")) ));
+
+ snap_mode_button = memnew( MenuButton );
+ hb_tools->add_child(snap_mode_button);
+ snap_mode_button->set_text(TTR("<None>"));
+ PopupMenu *p = snap_mode_button->get_popup();
+ p->add_item(TTR("<None>"),0);
+ p->add_item(TTR("Pixel Snap"),1);
+ p->add_item(TTR("Grid Snap"),2);
+ p->add_item(TTR("Auto Slice"),3);
+ for (int i = 0; i < 4; i++)
+ p->set_item_as_checkable(i,true);
+ p->set_item_checked(0,true);
+ p->connect("item_pressed", this, "_set_snap_mode");
+ hb_grid = memnew( HBoxContainer );
+ hb_tools->add_child(hb_grid);
+ hb_grid->add_child( memnew( VSeparator ));
+
+ hb_grid->add_child( memnew( Label(TTR("Offset:")) ) );
sb_off_x = memnew( SpinBox );
sb_off_x->set_min(-256);
@@ -610,7 +811,7 @@ TextureRegionEditor::TextureRegionEditor(EditorNode* p_editor)
sb_off_x->set_val(snap_offset.x);
sb_off_x->set_suffix("px");
sb_off_x->connect("value_changed", this, "_set_snap_off_x");
- hb_tools->add_child(sb_off_x);
+ hb_grid->add_child(sb_off_x);
sb_off_y = memnew( SpinBox );
sb_off_y->set_min(-256);
@@ -619,10 +820,10 @@ TextureRegionEditor::TextureRegionEditor(EditorNode* p_editor)
sb_off_y->set_val(snap_offset.y);
sb_off_y->set_suffix("px");
sb_off_y->connect("value_changed", this, "_set_snap_off_y");
- hb_tools->add_child(sb_off_y);
+ hb_grid->add_child(sb_off_y);
- hb_tools->add_child( memnew( VSeparator ));
- hb_tools->add_child( memnew( Label(TTR("Grid Step:")) ) );
+ hb_grid->add_child( memnew( VSeparator ));
+ hb_grid->add_child( memnew( Label(TTR("Step:")) ) );
sb_step_x = memnew( SpinBox );
sb_step_x->set_min(-256);
@@ -631,7 +832,7 @@ TextureRegionEditor::TextureRegionEditor(EditorNode* p_editor)
sb_step_x->set_val(snap_step.x);
sb_step_x->set_suffix("px");
sb_step_x->connect("value_changed", this, "_set_snap_step_x");
- hb_tools->add_child(sb_step_x);
+ hb_grid->add_child(sb_step_x);
sb_step_y = memnew( SpinBox );
sb_step_y->set_min(-256);
@@ -640,7 +841,30 @@ TextureRegionEditor::TextureRegionEditor(EditorNode* p_editor)
sb_step_y->set_val(snap_step.y);
sb_step_y->set_suffix("px");
sb_step_y->connect("value_changed", this, "_set_snap_step_y");
- hb_tools->add_child(sb_step_y);
+ hb_grid->add_child(sb_step_y);
+
+ hb_grid->add_child( memnew( VSeparator ));
+ hb_grid->add_child( memnew( Label(TTR("Separation:")) ) );
+
+ sb_sep_x = memnew( SpinBox );
+ sb_sep_x->set_min(0);
+ sb_sep_x->set_max(256);
+ sb_sep_x->set_step(1);
+ sb_sep_x->set_val(snap_separation.x);
+ sb_sep_x->set_suffix("px");
+ sb_sep_x->connect("value_changed", this, "_set_snap_sep_x");
+ hb_grid->add_child(sb_sep_x);
+
+ sb_sep_y = memnew( SpinBox );
+ sb_sep_y->set_min(0);
+ sb_sep_y->set_max(256);
+ sb_sep_y->set_step(1);
+ sb_sep_y->set_val(snap_separation.y);
+ sb_sep_y->set_suffix("px");
+ sb_sep_y->connect("value_changed", this, "_set_snap_sep_y");
+ hb_grid->add_child(sb_sep_y);
+
+ hb_grid->hide();
HBoxContainer *main_hb = memnew( HBoxContainer );
main_vb->add_child(main_hb);
@@ -649,25 +873,24 @@ TextureRegionEditor::TextureRegionEditor(EditorNode* p_editor)
main_hb->set_v_size_flags(SIZE_EXPAND_FILL);
edit_draw->set_h_size_flags(SIZE_EXPAND_FILL);
+ Control * separator = memnew( Control );
+ separator->set_h_size_flags(Control::SIZE_EXPAND_FILL);
+ hb_tools->add_child(separator);
- hb_tools->add_child( memnew( VSeparator ));
icon_zoom = memnew( TextureFrame );
hb_tools->add_child(icon_zoom);
- zoom = memnew( HSlider );
- zoom->set_min(0.01);
- zoom->set_max(4);
- zoom->set_val(1);
- zoom->set_step(0.01);
- hb_tools->add_child(zoom);
- zoom->set_custom_minimum_size(Size2(200,0));
- zoom_value = memnew( SpinBox );
- zoom->share(zoom_value);
- zoom_value->set_custom_minimum_size(Size2(50,0));
- hb_tools->add_child(zoom_value);
- zoom->connect("value_changed",this,"_scroll_changed");
+ zoom_out = memnew( ToolButton );
+ zoom_out->connect("pressed", this, "_zoom_out");
+ hb_tools->add_child(zoom_out);
+ zoom_reset = memnew( ToolButton );
+ zoom_reset->connect("pressed", this, "_zoom_reset");
+ hb_tools->add_child(zoom_reset);
+ zoom_in = memnew( ToolButton );
+ zoom_in->connect("pressed", this, "_zoom_in");
+ hb_tools->add_child(zoom_in);
vscroll = memnew( VScrollBar);
main_hb->add_child(vscroll);
@@ -681,9 +904,6 @@ TextureRegionEditor::TextureRegionEditor(EditorNode* p_editor)
draw_zoom=1.0;
updating_scroll=false;
- error = memnew( AcceptDialog);
- add_child(error);
-
}
void TextureRegionEditorPlugin::edit(Object *p_node)
@@ -699,10 +919,13 @@ bool TextureRegionEditorPlugin::handles(Object *p_obj) const
void TextureRegionEditorPlugin::make_visible(bool p_visible)
{
if (p_visible) {
- region_editor->show();
+ region_button->show();
+ if (region_button->is_pressed())
+ region_editor->show();
} else {
- region_editor->hide();
+ region_button->hide();
region_editor->edit(NULL);
+ region_editor->hide();
}
}
@@ -710,11 +933,11 @@ void TextureRegionEditorPlugin::make_visible(bool p_visible)
Dictionary TextureRegionEditorPlugin::get_state() const {
Dictionary state;
- state["zoom"]=region_editor->zoom->get_val();
+ state["zoom"]=region_editor->draw_zoom;
state["snap_offset"]=region_editor->snap_offset;
state["snap_step"]=region_editor->snap_step;
- state["use_snap"]=region_editor->use_snap;
- state["snap_show_grid"]=region_editor->snap_show_grid;
+ state["snap_separation"]=region_editor->snap_separation;
+ state["snap_mode"]=region_editor->snap_mode;
return state;
}
@@ -722,7 +945,7 @@ void TextureRegionEditorPlugin::set_state(const Dictionary& p_state){
Dictionary state=p_state;
if (state.has("zoom")) {
- region_editor->zoom->set_val(p_state["zoom"]);
+ region_editor->draw_zoom = p_state["zoom"];
}
if (state.has("snap_step")) {
@@ -739,22 +962,28 @@ void TextureRegionEditorPlugin::set_state(const Dictionary& p_state){
region_editor->snap_offset = ofs;
}
- if (state.has("use_snap")) {
- region_editor->use_snap=state["use_snap"];
- region_editor->b_snap_enable->set_pressed(state["use_snap"]);
+ if (state.has("snap_separation")) {
+ Vector2 sep = state["snap_separation"];
+ region_editor->sb_sep_x->set_val(sep.x);
+ region_editor->sb_sep_y->set_val(sep.y);
+ region_editor->snap_separation = sep;
}
- if (state.has("snap_show_grid")) {
- region_editor->snap_show_grid=state["snap_show_grid"];
- region_editor->b_snap_grid->set_pressed(state["snap_show_grid"]);
+ if (state.has("snap_mode")) {
+ region_editor->_set_snap_mode(state["snap_mode"]);
}
+
}
TextureRegionEditorPlugin::TextureRegionEditorPlugin(EditorNode *p_node)
{
editor = p_node;
- region_editor= memnew ( TextureRegionEditor(p_node) );
- CanvasItemEditor::get_singleton()->add_control_to_menu_panel(region_editor);
+ region_editor = memnew ( TextureRegionEditor(p_node) );
+
+ region_button = p_node->add_bottom_panel_item(TTR("Texture Region"), region_editor);
+ region_button->set_tooltip(TTR("Texture Region Editor"));
+ region_editor->set_custom_minimum_size(Size2(0,200));
region_editor->hide();
+ region_button->hide();
}
diff --git a/tools/editor/plugins/texture_region_editor_plugin.h b/tools/editor/plugins/texture_region_editor_plugin.h
index 1e4888b06d..3658a38f11 100644
--- a/tools/editor/plugins/texture_region_editor_plugin.h
+++ b/tools/editor/plugins/texture_region_editor_plugin.h
@@ -40,69 +40,73 @@
#include "scene/resources/style_box.h"
#include "scene/resources/texture.h"
-class TextureRegionEditor : public HBoxContainer {
+class TextureRegionEditor : public Control {
- OBJ_TYPE(TextureRegionEditor, HBoxContainer );
- enum RegionType {
- REGION_TEXTURE_REGION,
- REGION_PATCH_MARGIN
+ OBJ_TYPE(TextureRegionEditor, Control );
+
+ enum SnapMode {
+ SNAP_NONE,
+ SNAP_PIXEL,
+ SNAP_GRID,
+ SNAP_AUTOSLICE
};
friend class TextureRegionEditorPlugin;
- ToolButton *region_button;
- ToolButton *margin_button;
- ToolButton *b_snap_enable;
- ToolButton *b_snap_grid;
+ MenuButton *snap_mode_button;
TextureFrame *icon_zoom;
- HSlider *zoom;
- SpinBox *zoom_value;
+ ToolButton *zoom_in;
+ ToolButton *zoom_reset;
+ ToolButton *zoom_out;
+ HBoxContainer * hb_grid; //For showing/hiding the grid controls when changing the SnapMode
SpinBox *sb_step_y;
SpinBox *sb_step_x;
SpinBox *sb_off_y;
SpinBox *sb_off_x;
+ SpinBox *sb_sep_y;
+ SpinBox *sb_sep_x;
Control *edit_draw;
VScrollBar *vscroll;
HScrollBar *hscroll;
EditorNode *editor;
- AcceptDialog *dlg_editor;
UndoRedo* undo_redo;
Vector2 draw_ofs;
float draw_zoom;
bool updating_scroll;
- bool use_snap;
- bool snap_show_grid;
+ int snap_mode;
Vector2 snap_offset;
Vector2 snap_step;
+ Vector2 snap_separation;
-
- String node_type;
Patch9Frame *node_patch9;
Sprite *node_sprite;
- StyleBoxTexture *obj_styleBox;
- AtlasTexture *atlas_tex;
+ Ref<StyleBoxTexture> obj_styleBox;
+ Ref<AtlasTexture> atlas_tex;
- int editing_region;
Rect2 rect;
Rect2 rect_prev;
- Rect2 tex_region;
+ float prev_margin;
+ int edited_margin;
+ List<Rect2> autoslice_cache;
bool drag;
bool creating;
Vector2 drag_from;
int drag_index;
- AcceptDialog *error;
-
- void _set_use_snap(bool p_use);
- void _set_show_grid(bool p_show);
+ void _set_snap_mode(int p_mode);
void _set_snap_off_x(float p_val);
void _set_snap_off_y(float p_val);
void _set_snap_step_x(float p_val);
void _set_snap_step_y(float p_val);
+ void _set_snap_sep_x(float p_val);
+ void _set_snap_sep_y(float p_val);
+ void _zoom_in();
+ void _zoom_reset();
+ void _zoom_out();
void apply_rect(const Rect2& rect);
protected:
@@ -114,9 +118,7 @@ protected:
public:
- void _edit_node(int tex_region);
void _edit_region();
- void _edit_margin();
void _region_draw();
void _region_input(const InputEvent &p_input);
void _scroll_changed(float);
@@ -130,11 +132,12 @@ class TextureRegionEditorPlugin : public EditorPlugin
{
OBJ_TYPE( TextureRegionEditorPlugin, EditorPlugin );
+ Button *region_button;
TextureRegionEditor *region_editor;
EditorNode *editor;
public:
- virtual String get_name() const { return "SpriteRegion"; }
+ virtual String get_name() const { return "TextureRegion"; }
bool has_main_screen() const { return false; }
virtual void edit(Object *p_node);
virtual bool handles(Object *p_node) const;
diff --git a/tools/editor/plugins/tile_map_editor_plugin.cpp b/tools/editor/plugins/tile_map_editor_plugin.cpp
index d5f85d3333..9d27ac8aa3 100644
--- a/tools/editor/plugins/tile_map_editor_plugin.cpp
+++ b/tools/editor/plugins/tile_map_editor_plugin.cpp
@@ -223,7 +223,7 @@ void TileMapEditor::_update_palette() {
String name;
if (tileset->tile_get_name(E->get())!="") {
- name = tileset->tile_get_name(E->get());
+ name = itos(E->get())+" - "+tileset->tile_get_name(E->get());
} else {
name = "#"+itos(E->get());
}
diff --git a/tools/editor/project_manager.cpp b/tools/editor/project_manager.cpp
index d8814fd50e..dafec397c5 100644
--- a/tools/editor/project_manager.cpp
+++ b/tools/editor/project_manager.cpp
@@ -871,9 +871,6 @@ ProjectManager::ProjectManager() {
HBoxContainer *top_hb = memnew( HBoxContainer);
vb->add_child(top_hb);
- TextureFrame *logo = memnew( TextureFrame );
- logo->set_texture(theme->get_icon("LogoSmall","EditorIcons"));
- //top_hb->add_child( logo );
CenterContainer *ccl = memnew( CenterContainer );
Label *l = memnew( Label );
l->set_text(_MKSTR(VERSION_NAME)+String(" - ")+TTR("Project Manager"));
diff --git a/tools/editor/property_editor.cpp b/tools/editor/property_editor.cpp
index 246785932d..e0dc76e733 100644
--- a/tools/editor/property_editor.cpp
+++ b/tools/editor/property_editor.cpp
@@ -612,6 +612,7 @@ bool CustomPropertyEditor::edit(Object* p_owner,const String& p_name,Variant::Ty
color_picker->set_edit_alpha(hint!=PROPERTY_HINT_COLOR_NO_ALPHA);
color_picker->set_color(v);
set_size( Size2(300*EDSCALE, color_picker->get_combined_minimum_size().height+10*EDSCALE));
+ color_picker->set_focus_on_line_edit();
/*
int ofs=80;
int m=10;
diff --git a/tools/editor/scene_tree_dock.cpp b/tools/editor/scene_tree_dock.cpp
index 30ffdf6664..d2bc0e112e 100644
--- a/tools/editor/scene_tree_dock.cpp
+++ b/tools/editor/scene_tree_dock.cpp
@@ -39,16 +39,20 @@
#include "multi_node_edit.h"
#include "tools/editor/plugins/animation_player_editor_plugin.h"
#include "animation_editor.h"
-
+#include "scene/main/viewport.h"
void SceneTreeDock::_unhandled_key_input(InputEvent p_event) {
+ if (get_viewport()->get_modal_stack_top())
+ return; //ignore because of modal window
+
uint32_t sc = p_event.key.get_scancode_with_modifiers();
if (!p_event.key.pressed || p_event.key.echo)
return;
+
if (ED_IS_SHORTCUT("scene_tree/add_child_node", p_event)) {
_tool_selected(TOOL_NEW);
}
@@ -1065,6 +1069,8 @@ void SceneTreeDock::_do_reparent(Node* p_new_parent,int p_position_in_parent,Vec
List<Pair<NodePath,NodePath> > path_renames;
+ int inc=0;
+
for(int ni=0;ni<p_nodes.size();ni++) {
//no undo for now, sorry
@@ -1081,12 +1087,16 @@ void SceneTreeDock::_do_reparent(Node* p_new_parent,int p_position_in_parent,Vec
}
+ if (new_parent==node->get_parent() && node->get_index() < p_position_in_parent+ni) {
+ //if child will generate a gap when moved, adjust
+ inc--;
+ }
editor_data->get_undo_redo().add_do_method(node->get_parent(),"remove_child",node);
editor_data->get_undo_redo().add_do_method(new_parent,"add_child",node);
if (p_position_in_parent>=0)
- editor_data->get_undo_redo().add_do_method(new_parent,"move_child",node,p_position_in_parent+ni);
+ editor_data->get_undo_redo().add_do_method(new_parent,"move_child",node,p_position_in_parent+inc);
ScriptEditorDebugger *sed = ScriptEditor::get_singleton()->get_debugger();
String new_name = new_parent->validate_child_name(node->get_name());
@@ -1118,6 +1128,8 @@ void SceneTreeDock::_do_reparent(Node* p_new_parent,int p_position_in_parent,Vec
editor_data->get_undo_redo().add_undo_method(new_parent,"remove_child",node);
+ inc++;
+
}
//add and move in a second step.. (so old order is preserved)
@@ -1579,7 +1591,7 @@ static Node* _find_last_visible(Node*p_node) {
}
-void SceneTreeDock::_normalize_drop(Node*& to_node, int &to_pos,int p_type) {
+void SceneTreeDock::_normalize_drop(Node*& to_node, int &to_pos, int p_type) {
to_pos=-1;
@@ -1620,6 +1632,7 @@ void SceneTreeDock::_normalize_drop(Node*& to_node, int &to_pos,int p_type) {
//just insert over this node because nothing is above at the same level
to_pos=to_node->get_index();
to_node=to_node->get_parent();
+
}
} else if (p_type==1) {
@@ -1646,12 +1659,13 @@ void SceneTreeDock::_normalize_drop(Node*& to_node, int &to_pos,int p_type) {
break;
}
}
-
if (lower_sibling) {
to_pos=lower_sibling->get_index();
}
to_node=to_node->get_parent();
+
+
}
#if 0
//quite complicated, look for next visible in tree
diff --git a/tools/editor/scene_tree_dock.h b/tools/editor/scene_tree_dock.h
index 60bec9b4f4..51041a235b 100644
--- a/tools/editor/scene_tree_dock.h
+++ b/tools/editor/scene_tree_dock.h
@@ -139,7 +139,7 @@ class SceneTreeDock : public VBoxContainer {
void _fill_path_renames(Vector<StringName> base_path,Vector<StringName> new_base_path,Node * p_node, List<Pair<NodePath,NodePath> > *p_renames);
- void _normalize_drop(Node*& to_node, int &to_pos,int p_type);
+ void _normalize_drop(Node*& to_node, int &to_pos, int p_type);
void _nodes_dragged(Array p_nodes,NodePath p_to,int p_type);
void _files_dropped(Vector<String> p_files,NodePath p_to,int p_type);
diff --git a/tools/editor/scene_tree_editor.cpp b/tools/editor/scene_tree_editor.cpp
index a155f0c0cf..f174bc2f1b 100644
--- a/tools/editor/scene_tree_editor.cpp
+++ b/tools/editor/scene_tree_editor.cpp
@@ -302,8 +302,15 @@ bool SceneTreeEditor::_add_nodes(Node *p_node,TreeItem *p_parent) {
item->set_selectable(0,true);
if (can_rename) {
-
- bool collapsed = p_node->has_meta("_editor_collapsed") ? (bool)p_node->get_meta("_editor_collapsed") : false;
+#ifdef ENABLE_DEPRECATED
+ if (p_node->has_meta("_editor_collapsed")) {
+ //remove previous way of storing folding, which did not get along with scene inheritance and instancing
+ if ((bool)p_node->get_meta("_editor_collapsed"))
+ p_node->set_display_folded(true);
+ p_node->set_meta("_editor_collapsed",Variant());
+ }
+#endif
+ bool collapsed = p_node->is_displayed_folded();
if (collapsed)
item->set_collapsed(true);
}
@@ -896,10 +903,7 @@ void SceneTreeEditor::_cell_collapsed(Object *p_obj) {
Node *n=get_node(np);
ERR_FAIL_COND(!n);
- if (collapsed)
- n->set_meta("_editor_collapsed",true);
- else
- n->set_meta("_editor_collapsed",Variant());
+ n->set_display_folded(collapsed);
}
diff --git a/tools/editor/scenes_dock.cpp b/tools/editor/scenes_dock.cpp
index 44832c84eb..0df4dfacc1 100644
--- a/tools/editor/scenes_dock.cpp
+++ b/tools/editor/scenes_dock.cpp
@@ -164,12 +164,14 @@ void ScenesDock::_notification(int p_what) {
if (split_mode) {
file_list_vb->hide();
+ tree->set_custom_minimum_size(Size2(0,0));
tree->set_v_size_flags(SIZE_EXPAND_FILL);
button_back->show();
} else {
tree->show();
file_list_vb->show();
+ tree->set_custom_minimum_size(Size2(0,200)*EDSCALE);
tree->set_v_size_flags(SIZE_FILL);
button_back->hide();
if (!EditorFileSystem::get_singleton()->is_scanning()) {
@@ -1668,7 +1670,7 @@ ScenesDock::ScenesDock(EditorNode *p_editor) {
button_favorite->set_focus_mode(FOCUS_NONE);
- Control *spacer = memnew( Control);
+// Control *spacer = memnew( Control);
@@ -1702,7 +1704,6 @@ ScenesDock::ScenesDock(EditorNode *p_editor) {
tree->set_hide_root(true);
split_box->add_child(tree);
- tree->set_custom_minimum_size(Size2(0,200)*EDSCALE);
tree->set_drag_forwarding(this);
diff --git a/tools/translations/ar.po b/tools/translations/ar.po
index 772404006a..a6c34268b1 100644
--- a/tools/translations/ar.po
+++ b/tools/translations/ar.po
@@ -7,7 +7,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
-"PO-Revision-Date: 2016-06-19 08:49+0000\n"
+"PO-Revision-Date: 2016-06-20 11:18+0000\n"
"Last-Translator: Mohammmad Khashashneh <mohammad.rasmi@gmail.com>\n"
"Language-Team: Arabic <https://hosted.weblate.org/projects/godot-engine/"
"godot/ar/>\n"
@@ -64,7 +64,7 @@ msgid ""
"order for AnimatedSprite to display frames."
msgstr ""
"ليتم إظهار الأطر (اللقطات) في الAnimatedSprite (النقوش المتحركة), يجب تكوين "
-"مصدر لها من نوع SpriteFrames و ضبط خاصية الFrames (الأطر) بها. "
+"مصدر لها من نوع SpriteFrames و ضبط خاصية الFrames (الأطر) بها."
#: scene/2d/canvas_modulate.cpp
msgid ""
@@ -640,10 +640,6 @@ msgid "Change Anim Loop"
msgstr ""
#: tools/editor/animation_editor.cpp
-msgid "Change Anim Loop Interpolation"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
msgid "Anim Create Typed Value Key"
msgstr ""
@@ -684,10 +680,6 @@ msgid "Enable/Disable looping in animation."
msgstr ""
#: tools/editor/animation_editor.cpp
-msgid "Enable/Disable interpolation when looping animation."
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
msgid "Add new tracks."
msgstr ""
@@ -952,7 +944,7 @@ msgid "Method in target Node must be specified!"
msgstr ""
#: tools/editor/connections_dialog.cpp
-msgid "Conect To Node:"
+msgid "Connect To Node:"
msgstr ""
#: tools/editor/connections_dialog.cpp tools/editor/groups_editor.cpp
@@ -1165,6 +1157,46 @@ msgstr ""
msgid "Choose"
msgstr ""
+#: tools/editor/editor_file_dialog.cpp
+msgid "Go Back"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Go Forward"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Go Up"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Toggle Hidden Files"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Toggle Favorite"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Toggle Mode"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Focus Path"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Mode Favorite Up"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Mode Favorite Down"
+msgstr ""
+
#: tools/editor/editor_file_dialog.cpp tools/editor/scenes_dock.cpp
msgid "Favorites:"
msgstr ""
@@ -1418,8 +1450,23 @@ msgstr ""
#: tools/editor/editor_node.cpp
msgid ""
-"No main scene has ever been defined.\n"
-"Select one from \"Project Settings\" under the 'application' category."
+"No main scene has ever been defined, select one?\n"
+"You can change it later in later in \"Project Settings\" under the "
+"'application' category."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid ""
+"Selected scene '%s' does not exist, select a valid one?\n"
+"You can change it later in \"Project Settings\" under the 'application' "
+"category."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid ""
+"Selected scene '%s' is not a scene file, select a valid one?\n"
+"You can change it later in \"Project Settings\" under the 'application' "
+"category."
msgstr ""
#: tools/editor/editor_node.cpp
@@ -1512,6 +1559,10 @@ msgid ""
"(Unsaved changes will be lost)"
msgstr ""
+#: tools/editor/editor_node.cpp
+msgid "Pick a Manu Scene"
+msgstr ""
+
#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
msgid "Ugh"
msgstr ""
@@ -1535,7 +1586,7 @@ msgid "Save Layout"
msgstr ""
#: tools/editor/editor_node.cpp
-msgid "Load Layout"
+msgid "Delete Layout"
msgstr ""
#: tools/editor/editor_node.cpp tools/editor/project_export.cpp
@@ -1543,10 +1594,6 @@ msgid "Default"
msgstr ""
#: tools/editor/editor_node.cpp
-msgid "Delete Layout"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
msgid "Switch Scene Tab"
msgstr ""
@@ -1576,6 +1623,14 @@ msgid "Distraction Free Mode"
msgstr ""
#: tools/editor/editor_node.cpp
+msgid "Next tab"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Previous tab"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
msgid "Operations with scene files."
msgstr ""
@@ -2118,6 +2173,12 @@ msgid "No target font resource!"
msgstr ""
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+msgid ""
+"Invalid file extension.\n"
+"Please use .fnt."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
msgid "Can't load/process source font."
msgstr ""
@@ -2353,7 +2414,7 @@ msgid "Couldn't load post-import script:"
msgstr ""
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Invalid/broken script for post-import:"
+msgid "Invalid/broken script for post-import (check console):"
msgstr ""
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
@@ -3016,13 +3077,11 @@ msgstr ""
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid Offset:"
msgstr ""
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid Step:"
msgstr ""
@@ -3138,7 +3197,6 @@ msgstr ""
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Show Grid"
msgstr ""
@@ -3391,6 +3449,10 @@ msgid "MeshInstance lacks a Mesh!"
msgstr ""
#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Mesh has not surface to create outlines from!"
+msgstr ""
+
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Could not create outline!"
msgstr ""
@@ -3752,17 +3814,14 @@ msgid "Clear UV"
msgstr ""
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Snap"
msgstr ""
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Enable Snap"
msgstr ""
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid"
msgstr ""
@@ -4598,17 +4657,43 @@ msgid "StyleBox Preview:"
msgstr ""
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid "Texture Region Editor"
+msgid "Snap Mode:"
msgstr ""
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid "Scale Region Editor"
+msgid "<None>"
msgstr ""
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid ""
-"No texture in this node.\n"
-"Set a texture to be able to edit region."
+msgid "Pixel Snap"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Grid Snap"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Auto Slice"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Offset:"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Step:"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Separation:"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Texture Region"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Texture Region Editor"
msgstr ""
#: tools/editor/plugins/theme_editor_plugin.cpp
@@ -5670,31 +5755,27 @@ msgid "Error duplicating scene to save it."
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "New Scene Root"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Inherit Scene"
+msgid "Edit Groups"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Add Child Node"
+msgid "Edit Connections"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Instance Child Scene"
+msgid "Delete Node(s)"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Change Type"
+msgid "Add Child Node"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Edit Groups"
+msgid "Instance Child Scene"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Edit Connections"
+msgid "Change Type"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
@@ -5710,10 +5791,6 @@ msgid "Save Branch as Scene"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Delete Node(s)"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "Add/Create a New Node"
msgstr ""
diff --git a/tools/translations/bg.po b/tools/translations/bg.po
new file mode 100644
index 0000000000..247585d5a3
--- /dev/null
+++ b/tools/translations/bg.po
@@ -0,0 +1,6213 @@
+# Bulgarian translation of the Godot Engine editor
+# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community
+# This file is distributed under the same license as the Godot source code.
+#
+# Bojidar Marinov <bojidar.marinov.bg@gmail.com>, 2016.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Godot Engine editor\n"
+"PO-Revision-Date: 2016-06-27 15:36+0000\n"
+"Last-Translator: Bojidar Marinov <bojidar.marinov.bg@gmail.com>\n"
+"Language-Team: Bulgarian <https://hosted.weblate.org/projects/godot-engine/"
+"godot/bg/>\n"
+"Language: bg\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8-bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 2.7-dev\n"
+
+#: modules/gdscript/gd_functions.cpp
+msgid "Invalid type argument to convert(), use TYPE_* constants."
+msgstr ""
+"Невалиден агрумент тип на convert(), използвайте константите започващи с "
+"TYPE_*."
+
+#: modules/gdscript/gd_functions.cpp
+msgid "Not enough bytes for decoding bytes, or invalid format."
+msgstr "Недостатъчно байтове за декодиране на байтовете, или невалиден формат."
+
+#: modules/gdscript/gd_functions.cpp
+msgid "step argument is zero!"
+msgstr "Стъпката на range() е нула!"
+
+#: modules/gdscript/gd_functions.cpp
+#, fuzzy
+msgid "Not a script with an instance"
+msgstr "Скриптът няма инстанция"
+
+#: modules/gdscript/gd_functions.cpp
+#, fuzzy
+msgid "Not based on a script"
+msgstr "Обектът не е базиран на скрипт"
+
+#: modules/gdscript/gd_functions.cpp
+#, fuzzy
+msgid "Not based on a resource file"
+msgstr "Обектът не е базиран на ресурсен файл"
+
+#: modules/gdscript/gd_functions.cpp
+#, fuzzy
+msgid "Invalid instance dictionary format (missing @path)"
+msgstr "Невалиден формат на инстанцията в речника (липсва @path)"
+
+#: modules/gdscript/gd_functions.cpp
+msgid "Invalid instance dictionary format (can't load script at @path)"
+msgstr ""
+"Невалиден формат на инстанцията в речника (скриптът в @path не може да бъде "
+"зареден)"
+
+#: modules/gdscript/gd_functions.cpp
+msgid "Invalid instance dictionary format (invalid script at @path)"
+msgstr ""
+"Невалиден формат на инстанцията в речника (скриптът в @path е невалиден)"
+
+#: modules/gdscript/gd_functions.cpp
+#, fuzzy
+msgid "Invalid instance dictionary (invalid subclasses)"
+msgstr "Невалиден формат на инстанцията в речника (невалиден подклас)"
+
+#: scene/2d/animated_sprite.cpp
+msgid ""
+"A SpriteFrames resource must be created or set in the 'Frames' property in "
+"order for AnimatedSprite to display frames."
+msgstr ""
+"За да може AnimatedSprite да показва кадри, първо трябва да му се даде "
+"SpriteFrames ресурс в парамертъра 'Frames'."
+
+#: scene/2d/canvas_modulate.cpp
+#, fuzzy
+msgid ""
+"Only one visible CanvasModulate is allowed per scene (or set of instanced "
+"scenes). The first created one will work, while the rest will be ignored."
+msgstr ""
+"Може да има само един видим CanvasModulate на сцене (или няколко "
+"инстанцирани сцени). Само първият ще работи, а всички останали - игнорирани."
+
+#: scene/2d/collision_polygon_2d.cpp
+msgid ""
+"CollisionPolygon2D only serves to provide a collision shape to a "
+"CollisionObject2D derived node. Please only use it as a child of Area2D, "
+"StaticBody2D, RigidBody2D, KinematicBody2D, etc. to give them a shape."
+msgstr ""
+"CollisionPolygon2D служи само за да даде форма за колизии на "
+"CollisionObject2D. Моля, използвайте го само като наследник на Area2D, "
+"StaticBody2D, RigidBody2D, KinematicBody2D, и т.н. за да им дадете форма."
+
+#: scene/2d/collision_polygon_2d.cpp
+msgid "An empty CollisionPolygon2D has no effect on collision."
+msgstr "Празен CollisionPolygon2D няма никакъв ефект на колизията."
+
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"CollisionShape2D only serves to provide a collision shape to a "
+"CollisionObject2D derived node. Please only use it as a child of Area2D, "
+"StaticBody2D, RigidBody2D, KinematicBody2D, etc. to give them a shape."
+msgstr ""
+"CollisionShape2D служи само за да даде форма за колизии на "
+"CollisionObject2D. Моля, използвайте го само като наследник на Area2D, "
+"StaticBody2D, RigidBody2D, KinematicBody2D, и т.н. за да им дадете форма."
+
+#: scene/2d/collision_shape_2d.cpp
+#, fuzzy
+msgid ""
+"A shape must be provided for CollisionShape2D to function. Please create a "
+"shape resource for it!"
+msgstr ""
+"За да работи CollisionShape2D, е нужно да му се даде форма. Моля, създайте "
+"му Shape2D ресурс."
+
+#: scene/2d/light_2d.cpp
+msgid ""
+"A texture with the shape of the light must be supplied to the 'texture' "
+"property."
+msgstr ""
+"Тесктура с нужната форма на светлината трябва да бъде дадена в параметъра "
+"'texture'."
+
+#: scene/2d/light_occluder_2d.cpp
+msgid ""
+"An occluder polygon must be set (or drawn) for this occluder to take effect."
+msgstr ""
+"Затъмняващият многоъгълник трябва да бъде зададен (или нарисуван) за да може "
+"да работи тази сянка."
+
+#: scene/2d/light_occluder_2d.cpp
+msgid "The occluder polygon for this occluder is empty. Please draw a polygon!"
+msgstr "Затъмняващият многоъгълник е празен. Моля, нарисувайте един."
+
+#: scene/2d/navigation_polygon.cpp
+msgid ""
+"A NavigationPolygon resource must be set or created for this node to work. "
+"Please set a property or draw a polygon."
+msgstr ""
+"На този нод трябва да бъде даден един NavigationPolygon ресурс. Моля, "
+"задайте или нарисувайте един многоъгълник."
+
+#: scene/2d/navigation_polygon.cpp
+msgid ""
+"NavigationPolygonInstance must be a child or grandchild to a Navigation2D "
+"node. It only provides navigation data."
+msgstr ""
+"NavigationPolygonInstance трябва да бъде наследник или наследник на "
+"наследник на Navigation2D. Той само дава навигационна информация."
+
+#: scene/2d/parallax_layer.cpp
+msgid ""
+"ParallaxLayer node only works when set as child of a ParallaxBackground node."
+msgstr "ParallaxLayer работи само когато е наследник на ParallaxBackground."
+
+#: scene/2d/particles_2d.cpp
+msgid "Path property must point to a valid Particles2D node to work."
+msgstr ""
+"Параметъра 'Path' трябва да сочи към работещ Particles2D нод за да работи."
+
+#: scene/2d/path_2d.cpp
+msgid "PathFollow2D only works when set as a child of a Path2D node."
+msgstr "PathFollow2D работи само когато е наследник на Path2D."
+
+#: scene/2d/remote_transform_2d.cpp
+msgid "Path property must point to a valid Node2D node to work."
+msgstr "Параметъра 'Path' трябва да сочи към Node2D нод за да работи."
+
+#: scene/2d/sample_player_2d.cpp scene/audio/sample_player.cpp
+msgid ""
+"A SampleLibrary resource must be created or set in the 'samples' property in "
+"order for SamplePlayer to play sound."
+msgstr ""
+"За да изпълнява звук, SamplePlayer трябва да има един SampleLibrary ресурс в "
+"параметъра 'samples'."
+
+#: scene/2d/sprite.cpp
+msgid ""
+"Path property must point to a valid Viewport node to work. Such Viewport "
+"must be set to 'render target' mode."
+msgstr ""
+"Параметъра 'Path' трябва да сочи към валиден Viewport нод за да работи. Този "
+"Viewport трябва да бъде настройен в режим 'рендъринг цел'(render target)."
+
+#: scene/2d/sprite.cpp
+msgid ""
+"The Viewport set in the path property must be set as 'render target' in "
+"order for this sprite to work."
+msgstr ""
+
+#: scene/2d/visibility_notifier_2d.cpp
+msgid ""
+"VisibilityEnable2D works best when used with the edited scene root directly "
+"as parent."
+msgstr ""
+
+#: scene/3d/body_shape.cpp
+msgid ""
+"CollisionShape only serves to provide a collision shape to a CollisionObject "
+"derived node. Please only use it as a child of Area, StaticBody, RigidBody, "
+"KinematicBody, etc. to give them a shape."
+msgstr ""
+
+#: scene/3d/body_shape.cpp
+msgid ""
+"A shape must be provided for CollisionShape to function. Please create a "
+"shape resource for it!"
+msgstr ""
+
+#: scene/3d/collision_polygon.cpp
+msgid ""
+"CollisionPolygon only serves to provide a collision shape to a "
+"CollisionObject derived node. Please only use it as a child of Area, "
+"StaticBody, RigidBody, KinematicBody, etc. to give them a shape."
+msgstr ""
+
+#: scene/3d/collision_polygon.cpp
+msgid "An empty CollisionPolygon has no effect on collision."
+msgstr ""
+
+#: scene/3d/navigation_mesh.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: scene/3d/navigation_mesh.cpp
+msgid ""
+"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
+"It only provides navigation data."
+msgstr ""
+
+#: scene/3d/scenario_fx.cpp
+msgid ""
+"Only one WorldEnvironment is allowed per scene (or set of instanced scenes)."
+msgstr ""
+
+#: scene/3d/spatial_sample_player.cpp
+msgid ""
+"A SampleLibrary resource must be created or set in the 'samples' property in "
+"order for SpatialSamplePlayer to play sound."
+msgstr ""
+
+#: scene/3d/sprite_3d.cpp
+msgid ""
+"A SpriteFrames resource must be created or set in the 'Frames' property in "
+"order for AnimatedSprite3D to display frames."
+msgstr ""
+
+#: scene/gui/dialogs.cpp tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Cancel"
+msgstr ""
+
+#: scene/gui/dialogs.cpp
+msgid "OK"
+msgstr ""
+
+#: scene/gui/dialogs.cpp
+msgid "Alert!"
+msgstr ""
+
+#: scene/gui/dialogs.cpp
+msgid "Please Confirm..."
+msgstr ""
+
+#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
+msgid "File Exists, Overwrite?"
+msgstr ""
+
+#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
+msgid "All Recognized"
+msgstr ""
+
+#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
+msgid "All Files (*)"
+msgstr ""
+
+#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
+#: tools/editor/editor_help.cpp tools/editor/editor_node.cpp
+#: tools/editor/plugins/script_editor_plugin.cpp tools/editor/quick_open.cpp
+#: tools/editor/scenes_dock.cpp
+msgid "Open"
+msgstr ""
+
+#: scene/gui/file_dialog.cpp
+msgid "Open a File"
+msgstr ""
+
+#: scene/gui/file_dialog.cpp
+msgid "Open File(s)"
+msgstr ""
+
+#: scene/gui/file_dialog.cpp
+msgid "Open a Directory"
+msgstr ""
+
+#: scene/gui/file_dialog.cpp
+msgid "Open a File or Directory"
+msgstr ""
+
+#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Save"
+msgstr ""
+
+#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
+msgid "Save a File"
+msgstr ""
+
+#: scene/gui/file_dialog.cpp tools/editor/editor_dir_dialog.cpp
+#: tools/editor/editor_file_dialog.cpp
+msgid "Create Folder"
+msgstr ""
+
+#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+#: tools/editor/project_settings.cpp tools/editor/script_create_dialog.cpp
+msgid "Path:"
+msgstr ""
+
+#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
+msgid "Directories & Files:"
+msgstr ""
+
+#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
+#: tools/editor/script_editor_debugger.cpp
+msgid "File:"
+msgstr ""
+
+#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
+msgid "Filter:"
+msgstr ""
+
+#: scene/gui/file_dialog.cpp tools/editor/editor_dir_dialog.cpp
+#: tools/editor/editor_file_dialog.cpp tools/editor/editor_plugin_settings.cpp
+#: tools/editor/plugins/theme_editor_plugin.cpp
+msgid "Name:"
+msgstr ""
+
+#: scene/gui/file_dialog.cpp tools/editor/editor_dir_dialog.cpp
+#: tools/editor/editor_file_dialog.cpp
+msgid "Could not create folder."
+msgstr ""
+
+#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
+msgid "Must use a valid extension."
+msgstr ""
+
+#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
+#: tools/editor/settings_config_dialog.cpp
+msgid "Shift+"
+msgstr ""
+
+#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
+#: tools/editor/settings_config_dialog.cpp
+msgid "Alt+"
+msgstr ""
+
+#: scene/gui/input_action.cpp
+msgid "Ctrl+"
+msgstr ""
+
+#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
+#: tools/editor/settings_config_dialog.cpp
+msgid "Meta+"
+msgstr ""
+
+#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
+msgid "Device"
+msgstr ""
+
+#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
+msgid "Button"
+msgstr ""
+
+#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
+msgid "Left Button."
+msgstr ""
+
+#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
+msgid "Right Button."
+msgstr ""
+
+#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
+msgid "Middle Button."
+msgstr ""
+
+#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
+msgid "Wheel Up."
+msgstr ""
+
+#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
+msgid "Wheel Down."
+msgstr ""
+
+#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
+msgid "Axis"
+msgstr ""
+
+#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+#: tools/editor/plugins/script_editor_plugin.cpp
+#: tools/editor/plugins/shader_editor_plugin.cpp
+msgid "Cut"
+msgstr ""
+
+#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+#: tools/editor/plugins/script_editor_plugin.cpp
+#: tools/editor/plugins/shader_editor_plugin.cpp
+#: tools/editor/property_editor.cpp tools/editor/resources_dock.cpp
+msgid "Copy"
+msgstr ""
+
+#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
+#: tools/editor/plugins/script_editor_plugin.cpp
+#: tools/editor/plugins/shader_editor_plugin.cpp
+#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
+#: tools/editor/property_editor.cpp tools/editor/resources_dock.cpp
+msgid "Paste"
+msgstr ""
+
+#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+#: tools/editor/plugins/script_editor_plugin.cpp
+#: tools/editor/plugins/shader_editor_plugin.cpp
+#: tools/editor/project_export.cpp
+msgid "Select All"
+msgstr ""
+
+#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp tools/editor/editor_log.cpp
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+#: tools/editor/plugins/rich_text_editor_plugin.cpp
+#: tools/editor/property_editor.cpp tools/editor/script_editor_debugger.cpp
+msgid "Clear"
+msgstr ""
+
+#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp tools/editor/editor_node.cpp
+#: tools/editor/plugins/script_editor_plugin.cpp
+#: tools/editor/plugins/shader_editor_plugin.cpp
+msgid "Undo"
+msgstr ""
+
+#: scene/gui/popup.cpp
+msgid ""
+"Popups will hide by default unless you call popup() or any of the popup*() "
+"functions. Making them visible for editing is fine though, but they will "
+"hide upon running."
+msgstr ""
+
+#: scene/main/viewport.cpp
+msgid ""
+"This viewport is not set as render target. If you intend for it to display "
+"its contents directly to the screen, make it a child of a Control so it can "
+"obtain a size. Otherwise, make it a RenderTarget and assign its internal "
+"texture to some node for display."
+msgstr ""
+
+#: scene/resources/dynamic_font.cpp
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+msgid "Error initializing FreeType."
+msgstr ""
+
+#: scene/resources/dynamic_font.cpp
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+msgid "Unknown font format."
+msgstr ""
+
+#: scene/resources/dynamic_font.cpp
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+msgid "Error loading font."
+msgstr ""
+
+#: scene/resources/dynamic_font.cpp
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+msgid "Invalid font size."
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Disabled"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "All Selection"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Move Add Key"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Anim Change Transition"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Anim Change Transform"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Anim Change Value"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Anim Change Call"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Anim Add Track"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Move Anim Track Up"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Move Anim Track Down"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Remove Anim Track"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Anim Duplicate Keys"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Set Transitions to:"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Anim Track Rename"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Anim Track Change Interpolation"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Anim Track Change Value Mode"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Edit Node Curve"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Edit Selection Curve"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Anim Delete Keys"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Continuous"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Discrete"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Trigger"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Anim Add Key"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Anim Move Keys"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Scale Selection"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Scale From Cursor"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+#: tools/editor/plugins/tile_map_editor_plugin.cpp
+msgid "Duplicate Selection"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Duplicate Transposed"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Goto Next Step"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Goto Prev Step"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp tools/editor/property_editor.cpp
+msgid "Linear"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+#: tools/editor/plugins/theme_editor_plugin.cpp
+msgid "Constant"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "In"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Out"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "In-Out"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Out-In"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Transitions"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Optimize Animation"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Clean-Up Animation"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Create NEW track for %s and insert key?"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Create %d NEW tracks and insert keys?"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp tools/editor/create_dialog.cpp
+#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
+#: tools/editor/plugins/particles_editor_plugin.cpp
+#: tools/editor/project_manager.cpp tools/editor/script_create_dialog.cpp
+msgid "Create"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Anim Create & Insert"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Anim Insert Track & Key"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Anim Insert Key"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Change Anim Len"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Change Anim Loop"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Anim Create Typed Value Key"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Anim Insert"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Anim Scale Keys"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Anim Add Call Track"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Animation zoom."
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Length (s):"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Animation length (in seconds)."
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Step (s):"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Cursor step snap (in seconds)."
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Enable/Disable looping in animation."
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Add new tracks."
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Move current track up."
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Move current track down."
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Remove selected track."
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Track tools"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Enable editing of individual keys by clicking them."
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Anim. Optimizer"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Max. Linear Error:"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Max. Angular Error:"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Max Optimizable Angle:"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Optimize"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Key"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Transition"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Scale Ratio:"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Call Functions in Which Node?"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Remove invalid keys"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Remove unresolved and empty tracks"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Clean-up all animations"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Clean-Up Animation(s) (NO UNDO!)"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Clean-Up"
+msgstr ""
+
+#: tools/editor/array_property_edit.cpp
+msgid "Resize Array"
+msgstr ""
+
+#: tools/editor/array_property_edit.cpp
+msgid "Change Array Value Type"
+msgstr ""
+
+#: tools/editor/array_property_edit.cpp
+msgid "Change Array Value"
+msgstr ""
+
+#: tools/editor/asset_library_editor_plugin.cpp tools/editor/create_dialog.cpp
+#: tools/editor/editor_help.cpp tools/editor/editor_node.cpp
+#: tools/editor/plugins/script_editor_plugin.cpp tools/editor/quick_open.cpp
+#: tools/editor/settings_config_dialog.cpp
+msgid "Search:"
+msgstr ""
+
+#: tools/editor/asset_library_editor_plugin.cpp
+msgid "Sort:"
+msgstr ""
+
+#: tools/editor/asset_library_editor_plugin.cpp
+msgid "Reverse"
+msgstr ""
+
+#: tools/editor/asset_library_editor_plugin.cpp
+#: tools/editor/project_settings.cpp
+msgid "Category:"
+msgstr ""
+
+#: tools/editor/asset_library_editor_plugin.cpp
+msgid "All"
+msgstr ""
+
+#: tools/editor/asset_library_editor_plugin.cpp
+msgid "Site:"
+msgstr ""
+
+#: tools/editor/asset_library_editor_plugin.cpp
+msgid "Support.."
+msgstr ""
+
+#: tools/editor/asset_library_editor_plugin.cpp
+msgid "Official"
+msgstr ""
+
+#: tools/editor/asset_library_editor_plugin.cpp
+msgid "Community"
+msgstr ""
+
+#: tools/editor/asset_library_editor_plugin.cpp
+msgid "Testing"
+msgstr ""
+
+#: tools/editor/asset_library_editor_plugin.cpp
+msgid "Assets ZIP File"
+msgstr ""
+
+#: tools/editor/call_dialog.cpp
+msgid "Method List For '%s':"
+msgstr ""
+
+#: tools/editor/call_dialog.cpp
+msgid "Call"
+msgstr ""
+
+#: tools/editor/call_dialog.cpp tools/editor/connections_dialog.cpp
+#: tools/editor/import_settings.cpp
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
+#: tools/editor/plugins/sample_library_editor_plugin.cpp
+#: tools/editor/plugins/script_editor_plugin.cpp
+#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
+#: tools/editor/project_settings.cpp tools/editor/property_editor.cpp
+#: tools/editor/run_settings_dialog.cpp tools/editor/settings_config_dialog.cpp
+msgid "Close"
+msgstr ""
+
+#: tools/editor/call_dialog.cpp
+msgid "Method List:"
+msgstr ""
+
+#: tools/editor/call_dialog.cpp
+msgid "Arguments:"
+msgstr ""
+
+#: tools/editor/call_dialog.cpp
+msgid "Return:"
+msgstr ""
+
+#: tools/editor/code_editor.cpp
+msgid "Go to Line"
+msgstr ""
+
+#: tools/editor/code_editor.cpp
+msgid "Line Number:"
+msgstr ""
+
+#: tools/editor/code_editor.cpp
+msgid "No Matches"
+msgstr ""
+
+#: tools/editor/code_editor.cpp
+msgid "Replaced %d Ocurrence(s)."
+msgstr ""
+
+#: tools/editor/code_editor.cpp
+msgid "Replace"
+msgstr ""
+
+#: tools/editor/code_editor.cpp
+msgid "Replace All"
+msgstr ""
+
+#: tools/editor/code_editor.cpp
+msgid "Match Case"
+msgstr ""
+
+#: tools/editor/code_editor.cpp
+msgid "Whole Words"
+msgstr ""
+
+#: tools/editor/code_editor.cpp
+msgid "Selection Only"
+msgstr ""
+
+#: tools/editor/code_editor.cpp tools/editor/editor_help.cpp
+#: tools/editor/plugins/script_editor_plugin.cpp
+#: tools/editor/plugins/shader_editor_plugin.cpp
+#: tools/editor/project_settings.cpp
+msgid "Search"
+msgstr ""
+
+#: tools/editor/code_editor.cpp tools/editor/editor_help.cpp
+msgid "Find"
+msgstr ""
+
+#: tools/editor/code_editor.cpp
+msgid "Next"
+msgstr ""
+
+#: tools/editor/code_editor.cpp
+msgid "Replaced %d ocurrence(s)."
+msgstr ""
+
+#: tools/editor/code_editor.cpp
+msgid "Not found!"
+msgstr ""
+
+#: tools/editor/code_editor.cpp
+msgid "Replace By"
+msgstr ""
+
+#: tools/editor/code_editor.cpp
+msgid "Case Sensitive"
+msgstr ""
+
+#: tools/editor/code_editor.cpp
+msgid "Backwards"
+msgstr ""
+
+#: tools/editor/code_editor.cpp
+msgid "Prompt On Replace"
+msgstr ""
+
+#: tools/editor/code_editor.cpp
+msgid "Skip"
+msgstr ""
+
+#: tools/editor/code_editor.cpp tools/editor/script_editor_debugger.cpp
+msgid "Line:"
+msgstr ""
+
+#: tools/editor/code_editor.cpp
+msgid "Col:"
+msgstr ""
+
+#: tools/editor/connections_dialog.cpp
+msgid "Method in target Node must be specified!"
+msgstr ""
+
+#: tools/editor/connections_dialog.cpp
+msgid "Connect To Node:"
+msgstr ""
+
+#: tools/editor/connections_dialog.cpp tools/editor/groups_editor.cpp
+#: tools/editor/plugins/item_list_editor_plugin.cpp
+#: tools/editor/plugins/theme_editor_plugin.cpp
+#: tools/editor/project_settings.cpp
+msgid "Add"
+msgstr ""
+
+#: tools/editor/connections_dialog.cpp tools/editor/dependency_editor.cpp
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+#: tools/editor/plugins/theme_editor_plugin.cpp
+#: tools/editor/project_manager.cpp
+msgid "Remove"
+msgstr ""
+
+#: tools/editor/connections_dialog.cpp
+msgid "Add Extra Call Argument:"
+msgstr ""
+
+#: tools/editor/connections_dialog.cpp
+msgid "Extra Call Arguments:"
+msgstr ""
+
+#: tools/editor/connections_dialog.cpp
+msgid "Path to Node:"
+msgstr ""
+
+#: tools/editor/connections_dialog.cpp
+msgid "Make Function"
+msgstr ""
+
+#: tools/editor/connections_dialog.cpp
+msgid "Deferred"
+msgstr ""
+
+#: tools/editor/connections_dialog.cpp
+msgid "Oneshot"
+msgstr ""
+
+#: tools/editor/connections_dialog.cpp
+msgid "Connect"
+msgstr ""
+
+#: tools/editor/connections_dialog.cpp
+msgid "Connect '%s' to '%s'"
+msgstr ""
+
+#: tools/editor/connections_dialog.cpp
+msgid "Connecting Signal:"
+msgstr ""
+
+#: tools/editor/connections_dialog.cpp
+msgid "Create Subscription"
+msgstr ""
+
+#: tools/editor/connections_dialog.cpp
+msgid "Connect.."
+msgstr ""
+
+#: tools/editor/connections_dialog.cpp
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Disconnect"
+msgstr ""
+
+#: tools/editor/connections_dialog.cpp tools/editor/node_dock.cpp
+msgid "Signals"
+msgstr ""
+
+#: tools/editor/create_dialog.cpp
+msgid "Create New"
+msgstr ""
+
+#: tools/editor/create_dialog.cpp tools/editor/editor_help.cpp
+#: tools/editor/plugins/script_editor_plugin.cpp tools/editor/quick_open.cpp
+msgid "Matches:"
+msgstr ""
+
+#: tools/editor/dependency_editor.cpp
+msgid "Search Replacement For:"
+msgstr ""
+
+#: tools/editor/dependency_editor.cpp
+msgid "Dependencies For:"
+msgstr ""
+
+#: tools/editor/dependency_editor.cpp
+msgid ""
+"Scene '%s' is currently being edited.\n"
+"Changes will not take effect unless reloaded."
+msgstr ""
+
+#: tools/editor/dependency_editor.cpp
+msgid ""
+"Resource '%s' is in use.\n"
+"Changes will take effect when reloaded."
+msgstr ""
+
+#: tools/editor/dependency_editor.cpp
+msgid "Dependencies"
+msgstr ""
+
+#: tools/editor/dependency_editor.cpp
+msgid "Resource"
+msgstr ""
+
+#: tools/editor/dependency_editor.cpp tools/editor/project_manager.cpp
+#: tools/editor/project_settings.cpp
+msgid "Path"
+msgstr ""
+
+#: tools/editor/dependency_editor.cpp
+msgid "Dependencies:"
+msgstr ""
+
+#: tools/editor/dependency_editor.cpp
+msgid "Fix Broken"
+msgstr ""
+
+#: tools/editor/dependency_editor.cpp
+msgid "Dependency Editor"
+msgstr ""
+
+#: tools/editor/dependency_editor.cpp
+msgid "Search Replacement Resource:"
+msgstr ""
+
+#: tools/editor/dependency_editor.cpp
+msgid "Owners Of:"
+msgstr ""
+
+#: tools/editor/dependency_editor.cpp
+msgid ""
+"The files being removed are required by other resources in order for them to "
+"work.\n"
+"Remove them anyway? (no undo)"
+msgstr ""
+
+#: tools/editor/dependency_editor.cpp
+msgid "Remove selected files from the project? (no undo)"
+msgstr ""
+
+#: tools/editor/dependency_editor.cpp
+msgid "Error loading:"
+msgstr ""
+
+#: tools/editor/dependency_editor.cpp
+msgid "Scene failed to load due to missing dependencies:"
+msgstr ""
+
+#: tools/editor/dependency_editor.cpp
+msgid "Open Anyway"
+msgstr ""
+
+#: tools/editor/dependency_editor.cpp
+msgid "Which action should be taken?"
+msgstr ""
+
+#: tools/editor/dependency_editor.cpp
+msgid "Fix Dependencies"
+msgstr ""
+
+#: tools/editor/dependency_editor.cpp
+msgid "Errors loading!"
+msgstr ""
+
+#: tools/editor/dependency_editor.cpp
+msgid "Permanently delete %d item(s)? (No undo!)"
+msgstr ""
+
+#: tools/editor/dependency_editor.cpp
+msgid "Owns"
+msgstr ""
+
+#: tools/editor/dependency_editor.cpp
+msgid "Resources Without Explicit Ownership:"
+msgstr ""
+
+#: tools/editor/dependency_editor.cpp tools/editor/editor_node.cpp
+msgid "Orphan Resource Explorer"
+msgstr ""
+
+#: tools/editor/dependency_editor.cpp
+msgid "Delete selected files?"
+msgstr ""
+
+#: tools/editor/dependency_editor.cpp tools/editor/editor_node.cpp
+#: tools/editor/plugins/item_list_editor_plugin.cpp
+#: tools/editor/scenes_dock.cpp
+msgid "Delete"
+msgstr ""
+
+#: tools/editor/editor_data.cpp
+msgid "Updating Scene"
+msgstr ""
+
+#: tools/editor/editor_data.cpp
+msgid "Storing local changes.."
+msgstr ""
+
+#: tools/editor/editor_data.cpp
+msgid "Updating scene.."
+msgstr ""
+
+#: tools/editor/editor_dir_dialog.cpp
+msgid "Choose a Directory"
+msgstr ""
+
+#: tools/editor/editor_dir_dialog.cpp
+msgid "Choose"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Go Back"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Go Forward"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Go Up"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Toggle Hidden Files"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Toggle Favorite"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Toggle Mode"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Focus Path"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Mode Favorite Up"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Mode Favorite Down"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp tools/editor/scenes_dock.cpp
+msgid "Favorites:"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Recent:"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Preview:"
+msgstr ""
+
+#: tools/editor/editor_file_system.cpp
+msgid "Cannot go into subdir:"
+msgstr ""
+
+#: tools/editor/editor_file_system.cpp
+msgid "ScanSources"
+msgstr ""
+
+#: tools/editor/editor_help.cpp
+msgid "Search Classes"
+msgstr ""
+
+#: tools/editor/editor_help.cpp
+msgid "Class List:"
+msgstr ""
+
+#: tools/editor/editor_help.cpp tools/editor/property_editor.cpp
+msgid "Class:"
+msgstr ""
+
+#: tools/editor/editor_help.cpp tools/editor/scene_tree_editor.cpp
+#: tools/editor/script_create_dialog.cpp
+msgid "Inherits:"
+msgstr ""
+
+#: tools/editor/editor_help.cpp
+msgid "Inherited by:"
+msgstr ""
+
+#: tools/editor/editor_help.cpp
+msgid "Brief Description:"
+msgstr ""
+
+#: tools/editor/editor_help.cpp
+msgid "Public Methods:"
+msgstr ""
+
+#: tools/editor/editor_help.cpp
+msgid "Members:"
+msgstr ""
+
+#: tools/editor/editor_help.cpp
+msgid "GUI Theme Items:"
+msgstr ""
+
+#: tools/editor/editor_help.cpp
+msgid "Signals:"
+msgstr ""
+
+#: tools/editor/editor_help.cpp
+msgid "Constants:"
+msgstr ""
+
+#: tools/editor/editor_help.cpp tools/editor/script_editor_debugger.cpp
+msgid "Description:"
+msgstr ""
+
+#: tools/editor/editor_help.cpp
+msgid "Method Description:"
+msgstr ""
+
+#: tools/editor/editor_help.cpp
+msgid "Search Text"
+msgstr ""
+
+#: tools/editor/editor_import_export.cpp
+msgid "Added:"
+msgstr ""
+
+#: tools/editor/editor_import_export.cpp
+msgid "Removed:"
+msgstr ""
+
+#: tools/editor/editor_import_export.cpp tools/editor/project_export.cpp
+msgid "Error saving atlas:"
+msgstr ""
+
+#: tools/editor/editor_import_export.cpp
+msgid "Could not save atlas subtexture:"
+msgstr ""
+
+#: tools/editor/editor_import_export.cpp
+msgid "Storing File:"
+msgstr ""
+
+#: tools/editor/editor_import_export.cpp
+msgid "Packing"
+msgstr ""
+
+#: tools/editor/editor_import_export.cpp
+msgid "Exporting for %s"
+msgstr ""
+
+#: tools/editor/editor_import_export.cpp
+msgid "Setting Up.."
+msgstr ""
+
+#: tools/editor/editor_log.cpp
+msgid " Output:"
+msgstr ""
+
+#: tools/editor/editor_node.cpp tools/editor/editor_reimport_dialog.cpp
+msgid "Re-Importing"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Importing:"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Node From Scene"
+msgstr ""
+
+#: tools/editor/editor_node.cpp tools/editor/scenes_dock.cpp
+msgid "Re-Import.."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+#: tools/editor/resources_dock.cpp
+msgid "Error saving resource!"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+#: tools/editor/resources_dock.cpp
+msgid "Save Resource As.."
+msgstr ""
+
+#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+msgid "I see.."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Can't open file for writing:"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Requested file format unknown:"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Error while saving."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Saving Scene"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Analyzing"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Creating Thumbnail"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid ""
+"Couldn't save scene. Likely dependencies (instances) couldn't be satisfied."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Failed to load resource."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Can't load MeshLibrary for merging!"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Error saving MeshLibrary!"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Can't load TileSet for merging!"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Error saving TileSet!"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Can't open export templates zip."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Loading Export Templates"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Error trying to save layout!"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Default editor layout overridden."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Layout name not found!"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Restored default layout to base settings."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Copy Params"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Paste Params"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
+msgid "Paste Resource"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Copy Resource"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Make Built-In"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Make Sub-Resources Unique"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Open in Help"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "There is no defined scene to run."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid ""
+"No main scene has ever been defined, select one?\n"
+"You can change it later in later in \"Project Settings\" under the "
+"'application' category."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid ""
+"Selected scene '%s' does not exist, select a valid one?\n"
+"You can change it later in \"Project Settings\" under the 'application' "
+"category."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid ""
+"Selected scene '%s' is not a scene file, select a valid one?\n"
+"You can change it later in \"Project Settings\" under the 'application' "
+"category."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Current scene was never saved, please save it prior to running."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Could not start subprocess!"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Open Scene"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Open Base Scene"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Quick Open Scene.."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Quick Open Script.."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Yes"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Close scene? (Unsaved changes will be lost)"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Save Scene As.."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "This scene has never been saved. Save before running?"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Please save the scene first."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Save Translatable Strings"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Export Mesh Library"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Export Tile Set"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Quit"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Exit the editor?"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Current scene not saved. Open anyway?"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Can't reload a scene that was never saved."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Revert"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "This action cannot be undone. Revert anyway?"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Quick Run Scene.."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid ""
+"Open Project Manager? \n"
+"(Unsaved changes will be lost)"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Pick a Manu Scene"
+msgstr ""
+
+#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+msgid "Ugh"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid ""
+"Error loading scene, it must be inside the project path. Use 'Import' to "
+"open the scene, then save it inside the project path."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Error loading scene."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Scene '%s' has broken dependencies:"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Save Layout"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Delete Layout"
+msgstr ""
+
+#: tools/editor/editor_node.cpp tools/editor/project_export.cpp
+msgid "Default"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Switch Scene Tab"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "%d more file(s)"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "%d more file(s) or folder(s)"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Scene"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Go to previously opened scene."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Fullscreen Mode"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Distraction Free Mode"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Next tab"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Previous tab"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Operations with scene files."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "New Scene"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "New Inherited Scene.."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Open Scene.."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Save Scene"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Close Scene"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Close Goto Prev. Scene"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Open Recent"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Quick Filter Files.."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Convert To.."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Translatable Strings.."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "MeshLibrary.."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "TileSet.."
+msgstr ""
+
+#: tools/editor/editor_node.cpp tools/editor/plugins/script_editor_plugin.cpp
+#: tools/editor/plugins/shader_editor_plugin.cpp
+msgid "Redo"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Run Script"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Project Settings"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Revert Scene"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Quit to Project List"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Import assets to the project."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+#: tools/editor/io_plugins/editor_mesh_import_plugin.cpp
+#: tools/editor/io_plugins/editor_sample_import_plugin.cpp
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+#: tools/editor/project_manager.cpp
+msgid "Import"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Miscellaneous project or scene-wide tools."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Tools"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Export the project to many platforms."
+msgstr ""
+
+#: tools/editor/editor_node.cpp tools/editor/project_export.cpp
+msgid "Export"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Play the project."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/sample_library_editor_plugin.cpp
+msgid "Play"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Pause the scene"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Pause Scene"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Stop the scene."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/sample_library_editor_plugin.cpp
+msgid "Stop"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Play the edited scene."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Play Scene"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Play custom scene"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Debug options"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Deploy with Remote Debug"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid ""
+"When exporting or deploying, the resulting executable will attempt to "
+"connect to the IP of this computer in order to be debugged."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Small Deploy with Network FS"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid ""
+"When this option is enabled, export or deploy will produce a minimal "
+"executable.\n"
+"The filesystem will be provided from the project by the editor over the "
+"network.\n"
+"On Android, deploy will use the USB cable for faster performance. This "
+"option speeds up testing for games with a large footprint."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Visible Collision Shapes"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid ""
+"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
+"running game if this option is turned on."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Visible Navigation"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid ""
+"Navigation meshes and polygons will be visible on the running game if this "
+"option is turned on."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Sync Scene Changes"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid ""
+"When this option is turned on, any changes made to the scene in the editor "
+"will be replicated in the running game.\n"
+"When used remotely on a device, this is more efficient with network "
+"filesystem."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Sync Script Changes"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid ""
+"When this option is turned on, any script that is saved will be reloaded on "
+"the running game.\n"
+"When used remotely on a device, this is more efficient with network "
+"filesystem."
+msgstr ""
+
+#: tools/editor/editor_node.cpp tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Settings"
+msgstr ""
+
+#: tools/editor/editor_node.cpp tools/editor/settings_config_dialog.cpp
+msgid "Editor Settings"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Editor Layout"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Install Export Templates"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "About"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Alerts when an external resource has changed."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Spins when the editor window repaints!"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Update Always"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Update Changes"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Inspector"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Create a new resource in memory and edit it."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Load an existing resource from disk and edit it."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Save the currently edited resource."
+msgstr ""
+
+#: tools/editor/editor_node.cpp tools/editor/plugins/script_editor_plugin.cpp
+msgid "Save As.."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Go to the previous edited object in history."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Go to the next edited object in history."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "History of recently edited objects."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Object properties."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "FileSystem"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Output"
+msgstr ""
+
+#: tools/editor/editor_node.cpp tools/editor/editor_reimport_dialog.cpp
+#: tools/editor/import_settings.cpp
+msgid "Re-Import"
+msgstr ""
+
+#: tools/editor/editor_node.cpp tools/editor/editor_plugin_settings.cpp
+msgid "Update"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Thanks from the Godot community!"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Thanks!"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Import Templates From ZIP File"
+msgstr ""
+
+#: tools/editor/editor_node.cpp tools/editor/project_export.cpp
+msgid "Export Project"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Export Library"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Merge With Existing"
+msgstr ""
+
+#: tools/editor/editor_node.cpp tools/editor/project_export.cpp
+msgid "Password:"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Open & Run a Script"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Load Errors"
+msgstr ""
+
+#: tools/editor/editor_plugin_settings.cpp
+msgid "Installed Plugins:"
+msgstr ""
+
+#: tools/editor/editor_plugin_settings.cpp
+msgid "Version:"
+msgstr ""
+
+#: tools/editor/editor_plugin_settings.cpp
+msgid "Author:"
+msgstr ""
+
+#: tools/editor/editor_plugin_settings.cpp
+msgid "Status:"
+msgstr ""
+
+#: tools/editor/editor_profiler.cpp
+msgid "Stop Profiling"
+msgstr ""
+
+#: tools/editor/editor_profiler.cpp
+msgid "Start Profiling"
+msgstr ""
+
+#: tools/editor/editor_profiler.cpp
+msgid "Measure:"
+msgstr ""
+
+#: tools/editor/editor_profiler.cpp
+msgid "Frame Time (sec)"
+msgstr ""
+
+#: tools/editor/editor_profiler.cpp
+msgid "Average Time (sec)"
+msgstr ""
+
+#: tools/editor/editor_profiler.cpp
+msgid "Frame %"
+msgstr ""
+
+#: tools/editor/editor_profiler.cpp
+msgid "Fixed Frame %"
+msgstr ""
+
+#: tools/editor/editor_profiler.cpp tools/editor/script_editor_debugger.cpp
+msgid "Time:"
+msgstr ""
+
+#: tools/editor/editor_profiler.cpp
+msgid "Inclusive"
+msgstr ""
+
+#: tools/editor/editor_profiler.cpp
+msgid "Self"
+msgstr ""
+
+#: tools/editor/editor_profiler.cpp
+msgid "Frame #:"
+msgstr ""
+
+#: tools/editor/editor_reimport_dialog.cpp
+msgid "Please wait for scan to complete."
+msgstr ""
+
+#: tools/editor/editor_reimport_dialog.cpp
+msgid "Current scene must be saved to re-import."
+msgstr ""
+
+#: tools/editor/editor_reimport_dialog.cpp
+msgid "Save & Re-Import"
+msgstr ""
+
+#: tools/editor/editor_reimport_dialog.cpp
+msgid "Re-Import Changed Resources"
+msgstr ""
+
+#: tools/editor/editor_run_script.cpp
+msgid "Write your logic in the _run() method."
+msgstr ""
+
+#: tools/editor/editor_run_script.cpp
+msgid "There is an edited scene already."
+msgstr ""
+
+#: tools/editor/editor_run_script.cpp
+msgid "Couldn't instance script:"
+msgstr ""
+
+#: tools/editor/editor_run_script.cpp
+msgid "Did you forget the 'tool' keyword?"
+msgstr ""
+
+#: tools/editor/editor_run_script.cpp
+msgid "Couldn't run script:"
+msgstr ""
+
+#: tools/editor/editor_run_script.cpp
+msgid "Did you forget the '_run' method?"
+msgstr ""
+
+#: tools/editor/editor_settings.cpp
+msgid "Default (Same as Editor)"
+msgstr ""
+
+#: tools/editor/editor_sub_scene.cpp
+msgid "Select Node(s) to Import"
+msgstr ""
+
+#: tools/editor/editor_sub_scene.cpp
+msgid "Scene Path:"
+msgstr ""
+
+#: tools/editor/editor_sub_scene.cpp
+msgid "Import From Node:"
+msgstr ""
+
+#: tools/editor/file_type_cache.cpp
+msgid "Can't open file_type_cache.cch for writing, not saving file type cache!"
+msgstr ""
+
+#: tools/editor/groups_editor.cpp
+msgid "Add to Group"
+msgstr ""
+
+#: tools/editor/groups_editor.cpp
+msgid "Remove from Group"
+msgstr ""
+
+#: tools/editor/import_settings.cpp
+msgid "Imported Resources"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
+msgid "No bit masks to import!"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
+#: tools/editor/io_plugins/editor_sample_import_plugin.cpp
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Target path is empty."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
+#: tools/editor/io_plugins/editor_sample_import_plugin.cpp
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Target path must be a complete resource path."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
+#: tools/editor/io_plugins/editor_sample_import_plugin.cpp
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Target path must exist."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
+#: tools/editor/io_plugins/editor_mesh_import_plugin.cpp
+#: tools/editor/io_plugins/editor_sample_import_plugin.cpp
+msgid "Save path is empty!"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
+msgid "Import BitMasks"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Source Texture(s):"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
+#: tools/editor/io_plugins/editor_mesh_import_plugin.cpp
+#: tools/editor/io_plugins/editor_sample_import_plugin.cpp
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+msgid "Target Path:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+#: tools/editor/io_plugins/editor_sample_import_plugin.cpp
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+msgid "Accept"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
+msgid "Bit Mask"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+msgid "No source font file!"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+msgid "No target font resource!"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+msgid ""
+"Invalid file extension.\n"
+"Please use .fnt."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+msgid "Can't load/process source font."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+msgid "Couldn't save font."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+msgid "Source Font:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+msgid "Source Font Size:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+msgid "Dest Resource:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+msgid "The quick brown fox jumps over the lazy dog."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+msgid "Test:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+#: tools/editor/io_plugins/editor_mesh_import_plugin.cpp
+#: tools/editor/io_plugins/editor_sample_import_plugin.cpp
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Options:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+msgid "Font Import"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+msgid ""
+"This file is already a Godot font file, please supply a BMFont type file "
+"instead."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+msgid "Failed opening as BMFont file."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+msgid "Invalid font custom source."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+#: tools/editor/plugins/theme_editor_plugin.cpp
+msgid "Font"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_mesh_import_plugin.cpp
+msgid "No meshes to import!"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_mesh_import_plugin.cpp
+msgid "Single Mesh Import"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_mesh_import_plugin.cpp
+msgid "Source Mesh(es):"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_mesh_import_plugin.cpp
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Mesh"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_mesh_import_plugin.cpp
+msgid "Surface %d"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_sample_import_plugin.cpp
+msgid "No samples to import!"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_sample_import_plugin.cpp
+msgid "Import Audio Samples"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_sample_import_plugin.cpp
+msgid "Source Sample(s):"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_sample_import_plugin.cpp
+msgid "Audio Sample"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "New Clip"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Animation Options"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Flags"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Bake FPS:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Optimizer"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Max Linear Error"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Max Angular Error"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Max Angle"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Clips"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+#: tools/editor/plugins/sample_library_editor_plugin.cpp
+#: tools/editor/project_manager.cpp tools/editor/project_settings.cpp
+msgid "Name"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Start(s)"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "End(s)"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Loop"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Filters"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Source path is empty."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Couldn't load post-import script."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Invalid/broken script for post-import."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Error importing scene."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Import 3D Scene"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Source Scene:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Same as Target Scene"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Shared"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Target Texture Folder:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Post-Process Script:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Custom Root Node Type:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Auto"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "The Following Files are Missing:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Import Anyway"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Import & Open"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Edited scene has not been saved, open imported scene anyway?"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+#: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp
+msgid "Import Scene"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Importing Scene.."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Running Custom Script.."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Couldn't load post-import script:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Invalid/broken script for post-import (check console):"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Error running post-import script:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Import Image:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Can't import a file over itself:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Couldn't localize path: %s (already local)"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Saving.."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "3D Scene Animation"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Uncompressed"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Compress Lossless (PNG)"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Compress Lossy (WebP)"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Compress (VRAM)"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Texture Format"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Texture Compression Quality (WebP):"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Texture Options"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Please specify some files!"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "At least one file needed for Atlas."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Error importing:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Only one file is required for large texture."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Max Texture Size:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Import Textures for Atlas (2D)"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Cell Size:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Large Texture"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Import Large Textures (2D)"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Source Texture"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Base Atlas Texture"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Source Texture(s)"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Import Textures for 2D"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Import Textures for 3D"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Import Textures"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "2D Texture"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "3D Texture"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Atlas Texture"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid ""
+"NOTICE: Importing 2D textures is not mandatory. Just copy png/jpg files to "
+"the project."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Crop empty space."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Texture"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Import Large Texture"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Load Source Image"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Slicing"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Inserting"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Saving"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Couldn't save large texture:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Build Atlas For:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Loading Image:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Couldn't load image:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Converting Images"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Cropping Images"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Blitting Images"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Couldn't save atlas image:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Couldn't save converted texture:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+msgid "Invalid source!"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+msgid "Invalid translation source!"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+msgid "Column"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+#: tools/editor/script_create_dialog.cpp
+msgid "Language"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+msgid "No items to import!"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+msgid "No target path!"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+msgid "Import Translations"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+msgid "Couldn't import!"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+msgid "Import Translation"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+msgid "Source CSV:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+msgid "Ignore First Row"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+msgid "Compress"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+msgid "Add to Project (engine.cfg)"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+msgid "Import Languages:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+msgid "Translation"
+msgstr ""
+
+#: tools/editor/multi_node_edit.cpp
+msgid "MultiNode Set"
+msgstr ""
+
+#: tools/editor/node_dock.cpp
+msgid "Node"
+msgstr ""
+
+#: tools/editor/node_dock.cpp
+msgid "Groups"
+msgstr ""
+
+#: tools/editor/node_dock.cpp
+msgid "Select a Node to edit Signals and Groups."
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Toggle Autoplay"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "New Animation Name:"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "New Anim"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Change Animation Name:"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Remove Animation"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "ERROR: Invalid animation name!"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "ERROR: Animation name already exists!"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Rename Animation"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Add Animation"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Blend Next Changed"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Change Blend Time"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Load Animation"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Duplicate Animation"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "ERROR: No animation to copy!"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "ERROR: No animation resource on clipboard!"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Pasted Animation"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Paste Animation"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "ERROR: No animation to edit!"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Play selected animation backwards from current pos. (A)"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Play selected animation backwards from end. (Shift+A)"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Stop animation playback. (S)"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Play selected animation from start. (Shift+D)"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Play selected animation from current pos. (D)"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Animation position (in seconds)."
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Scale animation playback globally for the node."
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Create new animation in player."
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Load animation from disk."
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Load an animation from disk."
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Save the current animation"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Save As"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Display list of animations in player."
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Autoplay on Load"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Edit Target Blend Times"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Animation Tools"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Copy Animation"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Create New Animation"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Animation Name:"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
+#: tools/editor/plugins/sample_library_editor_plugin.cpp
+#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
+#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp
+msgid "Error!"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Blend Times:"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Next (Auto Queue):"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Cross-Animation Blend Times"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Animation"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "New name:"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+#: tools/editor/plugins/multimesh_editor_plugin.cpp
+msgid "Scale:"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Fade In (s):"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Fade Out (s):"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Blend"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Mix"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Auto Restart:"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Restart (s):"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Random Restart (s):"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Start!"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+#: tools/editor/plugins/multimesh_editor_plugin.cpp
+msgid "Amount:"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Blend:"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Blend 0:"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Blend 1:"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "X-Fade Time (s):"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Current:"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Add Input"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Clear Auto-Advance"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Set Auto-Advance"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Delete Input"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Rename"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Animation tree is valid."
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Animation tree is invalid."
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Animation Node"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "OneShot Node"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Mix Node"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Blend2 Node"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Blend3 Node"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Blend4 Node"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "TimeScale Node"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "TimeSeek Node"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Transition Node"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Import Animations.."
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Edit Node Filters"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Filters.."
+msgstr ""
+
+#: tools/editor/plugins/baked_light_baker.cpp
+msgid "Parsing %d Triangles:"
+msgstr ""
+
+#: tools/editor/plugins/baked_light_baker.cpp
+msgid "Triangle #"
+msgstr ""
+
+#: tools/editor/plugins/baked_light_baker.cpp
+msgid "Light Baker Setup:"
+msgstr ""
+
+#: tools/editor/plugins/baked_light_baker.cpp
+msgid "Parsing Geometry"
+msgstr ""
+
+#: tools/editor/plugins/baked_light_baker.cpp
+msgid "Fixing Lights"
+msgstr ""
+
+#: tools/editor/plugins/baked_light_baker.cpp
+msgid "Making BVH"
+msgstr ""
+
+#: tools/editor/plugins/baked_light_baker.cpp
+msgid "Creating Light Octree"
+msgstr ""
+
+#: tools/editor/plugins/baked_light_baker.cpp
+msgid "Creating Octree Texture"
+msgstr ""
+
+#: tools/editor/plugins/baked_light_baker.cpp
+msgid "Transfer to Lightmaps:"
+msgstr ""
+
+#: tools/editor/plugins/baked_light_baker.cpp
+msgid "Allocating Texture #"
+msgstr ""
+
+#: tools/editor/plugins/baked_light_baker.cpp
+msgid "Baking Triangle #"
+msgstr ""
+
+#: tools/editor/plugins/baked_light_baker.cpp
+msgid "Post-Processing Texture #"
+msgstr ""
+
+#: tools/editor/plugins/baked_light_editor_plugin.cpp
+msgid "BakedLightInstance does not contain a BakedLight resource."
+msgstr ""
+
+#: tools/editor/plugins/baked_light_editor_plugin.cpp
+msgid "Bake!"
+msgstr ""
+
+#: tools/editor/plugins/baked_light_editor_plugin.cpp
+msgid "Reset the lightmap octree baking process (start over)."
+msgstr ""
+
+#: tools/editor/plugins/camera_editor_plugin.cpp
+#: tools/editor/plugins/sample_library_editor_plugin.cpp
+msgid "Preview"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Configure Snap"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Grid Offset:"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Grid Step:"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotation Offset:"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotation Step:"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move Pivot"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move Action"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Edit IK Chain"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Edit CanvasItem"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Change Anchors"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Zoom (%):"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Paste Pose"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Select Mode (Q)"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Drag: Rotate"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Alt+Drag: Move"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Press 'v' to Change Pivot, 'Shift+v' to Drag Pivot (while moving)."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Alt+RMB: Depth list selection"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Move Mode (W)"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Rotate Mode (E)"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Show a list of all objects at the position clicked\n"
+"(same as Alt+RMB in select mode)."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Click to change object's rotation pivot."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Pan Mode"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Lock the selected object in place (can't be moved)."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Unlock the selected object (can be moved)."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Makes sure the object's children are not selectable."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Restores the object's children's ability to be selected."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
+#: tools/editor/plugins/script_editor_plugin.cpp
+#: tools/editor/plugins/shader_editor_plugin.cpp
+#: tools/editor/project_manager.cpp
+msgid "Edit"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Use Snap"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Show Grid"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Use Rotation Snap"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Snap Relative"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Configure Snap.."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Use Pixel Snap"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Expand to Parent"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Skeleton.."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Make Bones"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Clear Bones"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Make IK Chain"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Clear IK Chain"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "View"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Zoom In"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Zoom Out"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Zoom Reset"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Zoom Set.."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Center Selection"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Frame Selection"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Anchor"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Insert Keys (Ins)"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Insert Key"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Insert Key (Existing Tracks)"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Copy Pose"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Clear Pose"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Set a Value"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Snap (Pixels):"
+msgstr ""
+
+#: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
+#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
+#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
+#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Create Poly"
+msgstr ""
+
+#: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
+#: tools/editor/plugins/collision_polygon_editor_plugin.cpp
+#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
+#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
+#: tools/editor/plugins/path_2d_editor_plugin.cpp
+#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Edit Poly"
+msgstr ""
+
+#: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
+#: tools/editor/plugins/collision_polygon_editor_plugin.cpp
+#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
+#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
+#: tools/editor/plugins/path_2d_editor_plugin.cpp
+#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Edit Poly (Remove Point)"
+msgstr ""
+
+#: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
+#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
+#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
+msgid "Create a new polygon from scratch."
+msgstr ""
+
+#: tools/editor/plugins/collision_polygon_editor_plugin.cpp
+msgid "Create Poly3D"
+msgstr ""
+
+#: tools/editor/plugins/collision_shape_2d_editor_plugin.cpp
+msgid "Set Handle"
+msgstr ""
+
+#: tools/editor/plugins/color_ramp_editor_plugin.cpp
+msgid "Add/Remove Color Ramp Point"
+msgstr ""
+
+#: tools/editor/plugins/color_ramp_editor_plugin.cpp
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Modify Color Ramp"
+msgstr ""
+
+#: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp
+msgid "Creating Mesh Library"
+msgstr ""
+
+#: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp
+msgid "Thumbnail.."
+msgstr ""
+
+#: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp
+msgid "Remove item %d?"
+msgstr ""
+
+#: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp
+#: tools/editor/plugins/theme_editor_plugin.cpp
+#: tools/editor/plugins/tile_set_editor_plugin.cpp
+msgid "Add Item"
+msgstr ""
+
+#: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp
+msgid "Remove Selected Item"
+msgstr ""
+
+#: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp
+msgid "Import from Scene"
+msgstr ""
+
+#: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp
+msgid "Update from Scene"
+msgstr ""
+
+#: tools/editor/plugins/item_list_editor_plugin.cpp
+msgid "Item %d"
+msgstr ""
+
+#: tools/editor/plugins/item_list_editor_plugin.cpp
+msgid "Items"
+msgstr ""
+
+#: tools/editor/plugins/item_list_editor_plugin.cpp
+msgid "Item List Editor"
+msgstr ""
+
+#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
+msgid "Create Occluder Polygon"
+msgstr ""
+
+#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
+#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
+msgid "Edit existing polygon:"
+msgstr ""
+
+#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
+#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
+msgid "LMB: Move Point."
+msgstr ""
+
+#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
+#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
+msgid "Ctrl+LMB: Split Segment."
+msgstr ""
+
+#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
+#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
+msgid "RMB: Erase Point."
+msgstr ""
+
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Mesh is empty!"
+msgstr ""
+
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Static Trimesh Body"
+msgstr ""
+
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Static Convex Body"
+msgstr ""
+
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "This doesn't work on scene root!"
+msgstr ""
+
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Trimesh Shape"
+msgstr ""
+
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Convex Shape"
+msgstr ""
+
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Navigation Mesh"
+msgstr ""
+
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "MeshInstance lacks a Mesh!"
+msgstr ""
+
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Mesh has not surface to create outlines from!"
+msgstr ""
+
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Could not create outline!"
+msgstr ""
+
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Outline"
+msgstr ""
+
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Trimesh Static Body"
+msgstr ""
+
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Convex Static Body"
+msgstr ""
+
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Trimesh Collision Sibling"
+msgstr ""
+
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Convex Collision Sibling"
+msgstr ""
+
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Outline Mesh.."
+msgstr ""
+
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Outline Mesh"
+msgstr ""
+
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Outline Size:"
+msgstr ""
+
+#: tools/editor/plugins/multimesh_editor_plugin.cpp
+msgid "No mesh source specified (and no MultiMesh set in node)."
+msgstr ""
+
+#: tools/editor/plugins/multimesh_editor_plugin.cpp
+msgid "No mesh source specified (and MultiMesh contains no Mesh)."
+msgstr ""
+
+#: tools/editor/plugins/multimesh_editor_plugin.cpp
+msgid "Mesh source is invalid (invalid path)."
+msgstr ""
+
+#: tools/editor/plugins/multimesh_editor_plugin.cpp
+msgid "Mesh source is invalid (not a MeshInstance)."
+msgstr ""
+
+#: tools/editor/plugins/multimesh_editor_plugin.cpp
+msgid "Mesh source is invalid (contains no Mesh resource)."
+msgstr ""
+
+#: tools/editor/plugins/multimesh_editor_plugin.cpp
+msgid "No surface source specified."
+msgstr ""
+
+#: tools/editor/plugins/multimesh_editor_plugin.cpp
+msgid "Surface source is invalid (invalid path)."
+msgstr ""
+
+#: tools/editor/plugins/multimesh_editor_plugin.cpp
+msgid "Surface source is invalid (no geometry)."
+msgstr ""
+
+#: tools/editor/plugins/multimesh_editor_plugin.cpp
+msgid "Surface source is invalid (no faces)."
+msgstr ""
+
+#: tools/editor/plugins/multimesh_editor_plugin.cpp
+msgid "Parent has no solid faces to populate."
+msgstr ""
+
+#: tools/editor/plugins/multimesh_editor_plugin.cpp
+msgid "Couldn't map area."
+msgstr ""
+
+#: tools/editor/plugins/multimesh_editor_plugin.cpp
+msgid "Select a Source Mesh:"
+msgstr ""
+
+#: tools/editor/plugins/multimesh_editor_plugin.cpp
+msgid "Select a Target Surface:"
+msgstr ""
+
+#: tools/editor/plugins/multimesh_editor_plugin.cpp
+msgid "Populate Surface"
+msgstr ""
+
+#: tools/editor/plugins/multimesh_editor_plugin.cpp
+msgid "Populate MultiMesh"
+msgstr ""
+
+#: tools/editor/plugins/multimesh_editor_plugin.cpp
+msgid "Target Surface:"
+msgstr ""
+
+#: tools/editor/plugins/multimesh_editor_plugin.cpp
+msgid "Source Mesh:"
+msgstr ""
+
+#: tools/editor/plugins/multimesh_editor_plugin.cpp
+msgid "X-Axis"
+msgstr ""
+
+#: tools/editor/plugins/multimesh_editor_plugin.cpp
+msgid "Y-Axis"
+msgstr ""
+
+#: tools/editor/plugins/multimesh_editor_plugin.cpp
+msgid "Z-Axis"
+msgstr ""
+
+#: tools/editor/plugins/multimesh_editor_plugin.cpp
+msgid "Mesh Up Axis:"
+msgstr ""
+
+#: tools/editor/plugins/multimesh_editor_plugin.cpp
+msgid "Random Rotation:"
+msgstr ""
+
+#: tools/editor/plugins/multimesh_editor_plugin.cpp
+msgid "Random Tilt:"
+msgstr ""
+
+#: tools/editor/plugins/multimesh_editor_plugin.cpp
+msgid "Random Scale:"
+msgstr ""
+
+#: tools/editor/plugins/multimesh_editor_plugin.cpp
+msgid "Populate"
+msgstr ""
+
+#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
+msgid "Create Navigation Polygon"
+msgstr ""
+
+#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
+msgid "Remove Poly And Point"
+msgstr ""
+
+#: tools/editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Error loading image:"
+msgstr ""
+
+#: tools/editor/plugins/particles_2d_editor_plugin.cpp
+msgid "No pixels with transparency > 128 in image.."
+msgstr ""
+
+#: tools/editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Set Emission Mask"
+msgstr ""
+
+#: tools/editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Clear Emission Mask"
+msgstr ""
+
+#: tools/editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Load Emission Mask"
+msgstr ""
+
+#: tools/editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Generated Point Count:"
+msgstr ""
+
+#: tools/editor/plugins/particles_editor_plugin.cpp
+msgid "Node does not contain geometry."
+msgstr ""
+
+#: tools/editor/plugins/particles_editor_plugin.cpp
+msgid "Node does not contain geometry (faces)."
+msgstr ""
+
+#: tools/editor/plugins/particles_editor_plugin.cpp
+msgid "Faces contain no area!"
+msgstr ""
+
+#: tools/editor/plugins/particles_editor_plugin.cpp
+msgid "No faces!"
+msgstr ""
+
+#: tools/editor/plugins/particles_editor_plugin.cpp
+msgid "Generate AABB"
+msgstr ""
+
+#: tools/editor/plugins/particles_editor_plugin.cpp
+msgid "Create Emitter From Mesh"
+msgstr ""
+
+#: tools/editor/plugins/particles_editor_plugin.cpp
+msgid "Create Emitter From Node"
+msgstr ""
+
+#: tools/editor/plugins/particles_editor_plugin.cpp
+msgid "Clear Emitter"
+msgstr ""
+
+#: tools/editor/plugins/particles_editor_plugin.cpp
+msgid "Create Emitter"
+msgstr ""
+
+#: tools/editor/plugins/particles_editor_plugin.cpp
+msgid "Emission Positions:"
+msgstr ""
+
+#: tools/editor/plugins/particles_editor_plugin.cpp
+msgid "Emission Fill:"
+msgstr ""
+
+#: tools/editor/plugins/particles_editor_plugin.cpp
+msgid "Surface"
+msgstr ""
+
+#: tools/editor/plugins/particles_editor_plugin.cpp
+msgid "Volume"
+msgstr ""
+
+#: tools/editor/plugins/path_2d_editor_plugin.cpp
+msgid "Remove Point from Curve"
+msgstr ""
+
+#: tools/editor/plugins/path_2d_editor_plugin.cpp
+#: tools/editor/plugins/path_editor_plugin.cpp
+msgid "Add Point to Curve"
+msgstr ""
+
+#: tools/editor/plugins/path_2d_editor_plugin.cpp
+msgid "Move Point in Curve"
+msgstr ""
+
+#: tools/editor/plugins/path_2d_editor_plugin.cpp
+msgid "Move In-Control in Curve"
+msgstr ""
+
+#: tools/editor/plugins/path_2d_editor_plugin.cpp
+msgid "Move Out-Control in Curve"
+msgstr ""
+
+#: tools/editor/plugins/path_2d_editor_plugin.cpp
+#: tools/editor/plugins/path_editor_plugin.cpp
+msgid "Select Points"
+msgstr ""
+
+#: tools/editor/plugins/path_2d_editor_plugin.cpp
+#: tools/editor/plugins/path_editor_plugin.cpp
+msgid "Shift+Drag: Select Control Points"
+msgstr ""
+
+#: tools/editor/plugins/path_2d_editor_plugin.cpp
+#: tools/editor/plugins/path_editor_plugin.cpp
+msgid "Click: Add Point"
+msgstr ""
+
+#: tools/editor/plugins/path_2d_editor_plugin.cpp
+#: tools/editor/plugins/path_editor_plugin.cpp
+msgid "Right Click: Delete Point"
+msgstr ""
+
+#: tools/editor/plugins/path_2d_editor_plugin.cpp
+msgid "Select Control Points (Shift+Drag)"
+msgstr ""
+
+#: tools/editor/plugins/path_2d_editor_plugin.cpp
+#: tools/editor/plugins/path_editor_plugin.cpp
+msgid "Add Point (in empty space)"
+msgstr ""
+
+#: tools/editor/plugins/path_2d_editor_plugin.cpp
+#: tools/editor/plugins/path_editor_plugin.cpp
+msgid "Split Segment (in curve)"
+msgstr ""
+
+#: tools/editor/plugins/path_2d_editor_plugin.cpp
+#: tools/editor/plugins/path_editor_plugin.cpp
+msgid "Delete Point"
+msgstr ""
+
+#: tools/editor/plugins/path_2d_editor_plugin.cpp
+#: tools/editor/plugins/path_editor_plugin.cpp
+msgid "Close Curve"
+msgstr ""
+
+#: tools/editor/plugins/path_editor_plugin.cpp
+msgid "Curve Point #"
+msgstr ""
+
+#: tools/editor/plugins/path_editor_plugin.cpp
+msgid "Set Curve Point Pos"
+msgstr ""
+
+#: tools/editor/plugins/path_editor_plugin.cpp
+msgid "Set Curve In Pos"
+msgstr ""
+
+#: tools/editor/plugins/path_editor_plugin.cpp
+msgid "Set Curve Out Pos"
+msgstr ""
+
+#: tools/editor/plugins/path_editor_plugin.cpp
+msgid "Split Path"
+msgstr ""
+
+#: tools/editor/plugins/path_editor_plugin.cpp
+msgid "Remove Path Point"
+msgstr ""
+
+#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Create UV Map"
+msgstr ""
+
+#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Transform UV Map"
+msgstr ""
+
+#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Polygon 2D UV Editor"
+msgstr ""
+
+#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Move Point"
+msgstr ""
+
+#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr ""
+
+#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Shift: Move All"
+msgstr ""
+
+#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Shift+Ctrl: Scale"
+msgstr ""
+
+#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Move Polygon"
+msgstr ""
+
+#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Rotate Polygon"
+msgstr ""
+
+#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Scale Polygon"
+msgstr ""
+
+#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Polygon->UV"
+msgstr ""
+
+#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "UV->Polygon"
+msgstr ""
+
+#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Clear UV"
+msgstr ""
+
+#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Snap"
+msgstr ""
+
+#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Enable Snap"
+msgstr ""
+
+#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Grid"
+msgstr ""
+
+#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
+msgid "ERROR: Couldn't load resource!"
+msgstr ""
+
+#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
+msgid "Add Resource"
+msgstr ""
+
+#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
+msgid "Rename Resource"
+msgstr ""
+
+#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
+#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Delete Resource"
+msgstr ""
+
+#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
+msgid "Resource clipboard is empty!"
+msgstr ""
+
+#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
+#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Load Resource"
+msgstr ""
+
+#: tools/editor/plugins/rich_text_editor_plugin.cpp
+msgid "Parse BBCode"
+msgstr ""
+
+#: tools/editor/plugins/sample_editor_plugin.cpp
+msgid "Length:"
+msgstr ""
+
+#: tools/editor/plugins/sample_library_editor_plugin.cpp
+msgid "Open Sample File(s)"
+msgstr ""
+
+#: tools/editor/plugins/sample_library_editor_plugin.cpp
+msgid "ERROR: Couldn't load sample!"
+msgstr ""
+
+#: tools/editor/plugins/sample_library_editor_plugin.cpp
+msgid "Add Sample"
+msgstr ""
+
+#: tools/editor/plugins/sample_library_editor_plugin.cpp
+msgid "Rename Sample"
+msgstr ""
+
+#: tools/editor/plugins/sample_library_editor_plugin.cpp
+msgid "Delete Sample"
+msgstr ""
+
+#: tools/editor/plugins/sample_library_editor_plugin.cpp
+msgid "16 Bits"
+msgstr ""
+
+#: tools/editor/plugins/sample_library_editor_plugin.cpp
+msgid "8 Bits"
+msgstr ""
+
+#: tools/editor/plugins/sample_library_editor_plugin.cpp
+msgid "Stereo"
+msgstr ""
+
+#: tools/editor/plugins/sample_library_editor_plugin.cpp
+msgid "Mono"
+msgstr ""
+
+#: tools/editor/plugins/sample_library_editor_plugin.cpp
+#: tools/editor/script_editor_debugger.cpp
+msgid "Format"
+msgstr ""
+
+#: tools/editor/plugins/sample_library_editor_plugin.cpp
+msgid "Pitch"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Error while saving theme"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Error saving"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Error importing theme"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Error importing"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Import Theme"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Save Theme As.."
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+#: tools/editor/project_export.cpp
+msgid "File"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+#: tools/editor/property_editor.cpp
+msgid "New"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Save All"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "History Prev"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "History Next"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Reload Theme"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Save Theme"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Save Theme As"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Move Up"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Move Down"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Indent Left"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Indent Right"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Toggle Comment"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Clone Down"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Complete Symbol"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Trim Trailing Whitespace"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Auto Indent"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Soft Reload Script"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+#: tools/editor/plugins/shader_editor_plugin.cpp
+msgid "Find.."
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+#: tools/editor/plugins/shader_editor_plugin.cpp
+msgid "Find Next"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+#: tools/editor/plugins/shader_editor_plugin.cpp
+msgid "Find Previous"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+#: tools/editor/plugins/shader_editor_plugin.cpp
+msgid "Replace.."
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Goto Function.."
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+#: tools/editor/plugins/shader_editor_plugin.cpp
+msgid "Goto Line.."
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Debug"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Toggle Breakpoint"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Remove All Breakpoints"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Goto Next Breakpoint"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Goto Previous Breakpoint"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+#: tools/editor/script_editor_debugger.cpp
+msgid "Step Over"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+#: tools/editor/script_editor_debugger.cpp
+msgid "Step Into"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+#: tools/editor/script_editor_debugger.cpp
+msgid "Break"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+#: tools/editor/script_editor_debugger.cpp
+msgid "Continue"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Keep Debugger Open"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Window"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Move Left"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Move Right"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Help"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Contextual Help"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Tutorials"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Open https://godotengine.org at tutorials section."
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Classes"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Search the class hierarchy."
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Search Help"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Search the reference documentation."
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Go to previous edited document."
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Go to next edited document."
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Create Script"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid ""
+"The following files are newer on disk.\n"
+"What action should be taken?:"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Reload"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Resave"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+#: tools/editor/script_editor_debugger.cpp
+msgid "Debugger"
+msgstr ""
+
+#: tools/editor/plugins/shader_editor_plugin.cpp
+msgid "Vertex"
+msgstr ""
+
+#: tools/editor/plugins/shader_editor_plugin.cpp
+msgid "Fragment"
+msgstr ""
+
+#: tools/editor/plugins/shader_editor_plugin.cpp
+msgid "Lighting"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Scalar Constant"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Vec Constant"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change RGB Constant"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Scalar Operator"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Vec Operator"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Vec Scalar Operator"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change RGB Operator"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Toggle Rot Only"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Scalar Function"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Vec Function"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Scalar Uniform"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Vec Uniform"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change RGB Uniform"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Default Value"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change XForm Uniform"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Texture Uniform"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Cubemap Uniform"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Comment"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Add/Remove to Color Ramp"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Add/Remove to Curve Map"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Modify Curve Map"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Input Name"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Connect Graph Nodes"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Disconnect Graph Nodes"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Remove Shader Graph Node"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Move Shader Graph Node"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Duplicate Graph Node(s)"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Delete Shader Graph Node(s)"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Error: Cyclic Connection Link"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Error: Missing Input Connections"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Add Shader Graph Node"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Orthogonal"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Perspective"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Transform Aborted."
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "X-Axis Transform."
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Y-Axis Transform."
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Z-Axis Transform."
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "View Plane Transform."
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Scaling to %s%%."
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Rotating %s degrees."
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom View."
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Top View."
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Top"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear View."
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Front View."
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Front"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Left View."
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Left"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Right View."
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Right"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Keying is disabled (no key inserted)."
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Animation Key Inserted."
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Align with view"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Top (Num7)"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom (Shift+Num7)"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Left (Num3)"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Right (Shift+Num3)"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Front (Num1)"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear (Shift+Num1)"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Perspective (Num5)"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Orthogonal (Num5)"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Environment"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Audio Listener"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Gizmos"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Selection (F)"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Align with view (Ctrl+Shift+F)"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "XForm Dialog"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "No scene selected to instance!"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Instance at Cursor"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Could not instance scene!"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Scale Mode (R)"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Transform"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Coords"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Transform Dialog.."
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Use Default Light"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Use Default sRGB"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "1 Viewport"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "2 Viewports"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "2 Viewports (Alt)"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "3 Viewports"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "3 Viewports (Alt)"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "4 Viewports"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Display Normal"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Display Wireframe"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Display Overdraw"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Display Shadeless"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "View Origin"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "View Grid"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Snap Settings"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Translate Snap:"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Rotate Snap (deg.):"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Scale Snap (%):"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Viewport Settings"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Default Light Normal:"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Ambient Light Color:"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Perspective FOV (deg.):"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "View Z-Near:"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "View Z-Far:"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Transform Change"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Translate:"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Rotate (deg.):"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Scale (ratio):"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Transform Type"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Pre"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Post"
+msgstr ""
+
+#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "ERROR: Couldn't load frame resource!"
+msgstr ""
+
+#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Add Frame"
+msgstr ""
+
+#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Resource clipboard is empty or not a texture!"
+msgstr ""
+
+#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Paste Frame"
+msgstr ""
+
+#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Add Empty"
+msgstr ""
+
+#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Change Animation Loop"
+msgstr ""
+
+#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Change Animation FPS"
+msgstr ""
+
+#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "(empty)"
+msgstr ""
+
+#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Animations"
+msgstr ""
+
+#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Speed (FPS):"
+msgstr ""
+
+#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Animation Frames"
+msgstr ""
+
+#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Insert Empty (Before)"
+msgstr ""
+
+#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Insert Empty (After)"
+msgstr ""
+
+#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Up"
+msgstr ""
+
+#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Down"
+msgstr ""
+
+#: tools/editor/plugins/style_box_editor_plugin.cpp
+msgid "StyleBox Preview:"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Snap Mode:"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "<None>"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Pixel Snap"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Grid Snap"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Auto Slice"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Offset:"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Step:"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Separation:"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Texture Region"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Texture Region Editor"
+msgstr ""
+
+#: tools/editor/plugins/theme_editor_plugin.cpp
+msgid "Can't save theme to file:"
+msgstr ""
+
+#: tools/editor/plugins/theme_editor_plugin.cpp
+msgid "Add All Items"
+msgstr ""
+
+#: tools/editor/plugins/theme_editor_plugin.cpp
+msgid "Add All"
+msgstr ""
+
+#: tools/editor/plugins/theme_editor_plugin.cpp
+#: tools/editor/plugins/tile_set_editor_plugin.cpp
+msgid "Remove Item"
+msgstr ""
+
+#: tools/editor/plugins/theme_editor_plugin.cpp
+msgid "Add Class Items"
+msgstr ""
+
+#: tools/editor/plugins/theme_editor_plugin.cpp
+msgid "Remove Class Items"
+msgstr ""
+
+#: tools/editor/plugins/theme_editor_plugin.cpp
+msgid "Create Empty Template"
+msgstr ""
+
+#: tools/editor/plugins/theme_editor_plugin.cpp
+msgid "Create Empty Editor Template"
+msgstr ""
+
+#: tools/editor/plugins/theme_editor_plugin.cpp
+msgid "CheckBox Radio1"
+msgstr ""
+
+#: tools/editor/plugins/theme_editor_plugin.cpp
+msgid "CheckBox Radio2"
+msgstr ""
+
+#: tools/editor/plugins/theme_editor_plugin.cpp
+msgid "Item"
+msgstr ""
+
+#: tools/editor/plugins/theme_editor_plugin.cpp
+msgid "Check Item"
+msgstr ""
+
+#: tools/editor/plugins/theme_editor_plugin.cpp
+msgid "Checked Item"
+msgstr ""
+
+#: tools/editor/plugins/theme_editor_plugin.cpp
+msgid "Has"
+msgstr ""
+
+#: tools/editor/plugins/theme_editor_plugin.cpp
+msgid "Many"
+msgstr ""
+
+#: tools/editor/plugins/theme_editor_plugin.cpp tools/editor/project_export.cpp
+msgid "Options"
+msgstr ""
+
+#: tools/editor/plugins/theme_editor_plugin.cpp
+msgid "Have,Many,Several,Options!"
+msgstr ""
+
+#: tools/editor/plugins/theme_editor_plugin.cpp
+msgid "Tab 1"
+msgstr ""
+
+#: tools/editor/plugins/theme_editor_plugin.cpp
+msgid "Tab 2"
+msgstr ""
+
+#: tools/editor/plugins/theme_editor_plugin.cpp
+msgid "Tab 3"
+msgstr ""
+
+#: tools/editor/plugins/theme_editor_plugin.cpp
+#: tools/editor/project_settings.cpp tools/editor/scene_tree_editor.cpp
+#: tools/editor/script_editor_debugger.cpp
+msgid "Type:"
+msgstr ""
+
+#: tools/editor/plugins/theme_editor_plugin.cpp
+msgid "Data Type:"
+msgstr ""
+
+#: tools/editor/plugins/theme_editor_plugin.cpp
+msgid "Icon"
+msgstr ""
+
+#: tools/editor/plugins/theme_editor_plugin.cpp
+msgid "Style"
+msgstr ""
+
+#: tools/editor/plugins/theme_editor_plugin.cpp
+msgid "Color"
+msgstr ""
+
+#: tools/editor/plugins/tile_map_editor_plugin.cpp
+msgid "Paint TileMap"
+msgstr ""
+
+#: tools/editor/plugins/tile_map_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Duplicate"
+msgstr ""
+
+#: tools/editor/plugins/tile_map_editor_plugin.cpp
+msgid "Erase TileMap"
+msgstr ""
+
+#: tools/editor/plugins/tile_map_editor_plugin.cpp
+msgid "Erase selection"
+msgstr ""
+
+#: tools/editor/plugins/tile_map_editor_plugin.cpp
+msgid "Find tile"
+msgstr ""
+
+#: tools/editor/plugins/tile_map_editor_plugin.cpp
+msgid "Transpose"
+msgstr ""
+
+#: tools/editor/plugins/tile_map_editor_plugin.cpp
+msgid "Mirror X"
+msgstr ""
+
+#: tools/editor/plugins/tile_map_editor_plugin.cpp
+msgid "Mirror Y"
+msgstr ""
+
+#: tools/editor/plugins/tile_map_editor_plugin.cpp
+msgid "Bucket"
+msgstr ""
+
+#: tools/editor/plugins/tile_map_editor_plugin.cpp
+msgid "Pick Tile"
+msgstr ""
+
+#: tools/editor/plugins/tile_map_editor_plugin.cpp
+msgid "Select"
+msgstr ""
+
+#: tools/editor/plugins/tile_map_editor_plugin.cpp
+msgid "Rotate 0 degrees"
+msgstr ""
+
+#: tools/editor/plugins/tile_map_editor_plugin.cpp
+msgid "Rotate 90 degrees"
+msgstr ""
+
+#: tools/editor/plugins/tile_map_editor_plugin.cpp
+msgid "Rotate 180 degrees"
+msgstr ""
+
+#: tools/editor/plugins/tile_map_editor_plugin.cpp
+msgid "Rotate 270 degrees"
+msgstr ""
+
+#: tools/editor/plugins/tile_set_editor_plugin.cpp
+msgid "Could not find tile:"
+msgstr ""
+
+#: tools/editor/plugins/tile_set_editor_plugin.cpp
+msgid "Item name or ID:"
+msgstr ""
+
+#: tools/editor/plugins/tile_set_editor_plugin.cpp
+msgid "Create from scene?"
+msgstr ""
+
+#: tools/editor/plugins/tile_set_editor_plugin.cpp
+msgid "Merge from scene?"
+msgstr ""
+
+#: tools/editor/plugins/tile_set_editor_plugin.cpp
+msgid "Create from Scene"
+msgstr ""
+
+#: tools/editor/plugins/tile_set_editor_plugin.cpp
+msgid "Merge from Scene"
+msgstr ""
+
+#: tools/editor/plugins/tile_set_editor_plugin.cpp
+#: tools/editor/script_editor_debugger.cpp
+msgid "Error"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Edit Script Options"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Please export outside the project folder!"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Error exporting project!"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Error writing the project PCK!"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "No exporter for platform '%s' yet."
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Include"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Change Image Group"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Group name can't be empty!"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Invalid character in group name!"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Group name already exists!"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Add Image Group"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Delete Image Group"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Atlas Preview"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Project Export Settings"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Target"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Export to Platform"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Resources"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Export selected resources (including dependencies)."
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Export all resources in the project."
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Export all files in the project directory."
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Export Mode:"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Resources to Export:"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Action"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid ""
+"Filters to export non-resource files (comma-separated, e.g.: *.json, *.txt):"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Filters to exclude from export (comma-separated, e.g.: *.json, *.txt):"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Convert text scenes to binary on export."
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Images"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Keep Original"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Compress for Disk (Lossy, WebP)"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Compress for RAM (BC/PVRTC/ETC)"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Convert Images (*.png):"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Compress for Disk (Lossy) Quality:"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Shrink All Images:"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Compress Formats:"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Image Groups"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Groups:"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Compress Disk"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Compress RAM"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Compress Mode:"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Lossy Quality:"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Atlas:"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Shrink By:"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Preview Atlas"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Image Filter:"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Images:"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Select None"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Group"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Samples"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Sample Conversion Mode: (.wav files):"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Keep"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Compress (RAM - IMA-ADPCM)"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Sampling Rate Limit (Hz):"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Trim"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Trailing Silence:"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Script"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Script Export Mode:"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Text"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Compiled"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Encrypted (Provide Key Below)"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Script Encryption Key (256-bits as hex):"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Export PCK/Zip"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Export Project PCK"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Export.."
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Project Export"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Export Preset:"
+msgstr ""
+
+#: tools/editor/project_manager.cpp
+msgid "Invalid project path, the path must exist!"
+msgstr ""
+
+#: tools/editor/project_manager.cpp
+msgid "Invalid project path, engine.cfg must not exist."
+msgstr ""
+
+#: tools/editor/project_manager.cpp
+msgid "Invalid project path, engine.cfg must exist."
+msgstr ""
+
+#: tools/editor/project_manager.cpp
+msgid "Imported Project"
+msgstr ""
+
+#: tools/editor/project_manager.cpp
+msgid "Invalid project path (changed anything?)."
+msgstr ""
+
+#: tools/editor/project_manager.cpp
+msgid "Couldn't create engine.cfg in project path."
+msgstr ""
+
+#: tools/editor/project_manager.cpp
+msgid "Import Existing Project"
+msgstr ""
+
+#: tools/editor/project_manager.cpp
+msgid "Project Path (Must Exist):"
+msgstr ""
+
+#: tools/editor/project_manager.cpp
+msgid "Project Name:"
+msgstr ""
+
+#: tools/editor/project_manager.cpp
+msgid "Create New Project"
+msgstr ""
+
+#: tools/editor/project_manager.cpp
+msgid "Project Path:"
+msgstr ""
+
+#: tools/editor/project_manager.cpp
+msgid "Browse"
+msgstr ""
+
+#: tools/editor/project_manager.cpp
+msgid "New Game Project"
+msgstr ""
+
+#: tools/editor/project_manager.cpp
+msgid "That's a BINGO!"
+msgstr ""
+
+#: tools/editor/project_manager.cpp
+msgid "Unnamed Project"
+msgstr ""
+
+#: tools/editor/project_manager.cpp
+msgid "Are you sure to open more than one projects?"
+msgstr ""
+
+#: tools/editor/project_manager.cpp
+msgid "Are you sure to run more than one projects?"
+msgstr ""
+
+#: tools/editor/project_manager.cpp
+msgid "Remove project from the list? (Folder contents will not be modified)"
+msgstr ""
+
+#: tools/editor/project_manager.cpp
+msgid "Project Manager"
+msgstr ""
+
+#: tools/editor/project_manager.cpp
+msgid "Project List"
+msgstr ""
+
+#: tools/editor/project_manager.cpp
+msgid "Run"
+msgstr ""
+
+#: tools/editor/project_manager.cpp
+msgid "Scan"
+msgstr ""
+
+#: tools/editor/project_manager.cpp
+msgid "New Project"
+msgstr ""
+
+#: tools/editor/project_manager.cpp
+msgid "Exit"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Key "
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Joy Button"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Joy Axis"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Mouse Button"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Invalid action (anything goes but '/' or ':')."
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Action '%s' already exists!"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Rename Input Action Event"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Add Input Action Event"
+msgstr ""
+
+#: tools/editor/project_settings.cpp tools/editor/settings_config_dialog.cpp
+msgid "Control+"
+msgstr ""
+
+#: tools/editor/project_settings.cpp tools/editor/settings_config_dialog.cpp
+msgid "Press a Key.."
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Mouse Button Index:"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Left Button"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Right Button"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Middle Button"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Wheel Up Button"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Wheel Down Button"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Button 6"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Button 7"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Button 8"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Button 9"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Joystick Axis Index:"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Joystick Button Index:"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Add Input Action"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Erase Input Action Event"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Toggle Persisting"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Error saving settings."
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Settings saved OK."
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Add Translation"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Invalid name."
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Valid characters:"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Invalid name. Must not collide with an existing engine class name."
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Invalid name. Must not collide with an existing buit-in type name."
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Invalid name. Must not collide with an existing global constant name."
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Autoload '%s' already exists!"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Rename Autoload"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Toggle AutoLoad Globals"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Add Autoload"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Remove Autoload"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Move Autoload"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Remove Translation"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Add Remapped Path"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Resource Remap Add Remap"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Change Resource Remap Language"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Remove Resource Remap"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Remove Resource Remap Option"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Enable"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Project Settings (engine.cfg)"
+msgstr ""
+
+#: tools/editor/project_settings.cpp tools/editor/settings_config_dialog.cpp
+msgid "General"
+msgstr ""
+
+#: tools/editor/project_settings.cpp tools/editor/property_editor.cpp
+msgid "Property:"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Del"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Copy To Platform.."
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Input Map"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Action:"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Device:"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Index:"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Localization"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Translations"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Translations:"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Add.."
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Remaps"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Resources:"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Remaps by Locale:"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Locale"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "AutoLoad"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Node Name:"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "List:"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Singleton"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Plugins"
+msgstr ""
+
+#: tools/editor/property_editor.cpp
+msgid "Preset.."
+msgstr ""
+
+#: tools/editor/property_editor.cpp
+msgid "Ease In"
+msgstr ""
+
+#: tools/editor/property_editor.cpp
+msgid "Ease Out"
+msgstr ""
+
+#: tools/editor/property_editor.cpp
+msgid "Zero"
+msgstr ""
+
+#: tools/editor/property_editor.cpp
+msgid "Easing In-Out"
+msgstr ""
+
+#: tools/editor/property_editor.cpp
+msgid "Easing Out-In"
+msgstr ""
+
+#: tools/editor/property_editor.cpp
+msgid "File.."
+msgstr ""
+
+#: tools/editor/property_editor.cpp
+msgid "Dir.."
+msgstr ""
+
+#: tools/editor/property_editor.cpp
+msgid "Load"
+msgstr ""
+
+#: tools/editor/property_editor.cpp
+msgid "Assign"
+msgstr ""
+
+#: tools/editor/property_editor.cpp
+msgid "Error loading file: Not a resource!"
+msgstr ""
+
+#: tools/editor/property_editor.cpp
+msgid "Couldn't load image"
+msgstr ""
+
+#: tools/editor/property_editor.cpp
+msgid "Bit %d, val %d."
+msgstr ""
+
+#: tools/editor/property_editor.cpp
+msgid "On"
+msgstr ""
+
+#: tools/editor/property_editor.cpp
+msgid "Set"
+msgstr ""
+
+#: tools/editor/property_editor.cpp
+msgid "Properties:"
+msgstr ""
+
+#: tools/editor/property_editor.cpp
+msgid "Global"
+msgstr ""
+
+#: tools/editor/property_editor.cpp
+msgid "Sections:"
+msgstr ""
+
+#: tools/editor/pvrtc_compress.cpp
+msgid "Could not execute PVRTC tool:"
+msgstr ""
+
+#: tools/editor/pvrtc_compress.cpp
+msgid "Can't load back converted image using PVRTC tool:"
+msgstr ""
+
+#: tools/editor/reparent_dialog.cpp tools/editor/scene_tree_dock.cpp
+msgid "Reparent Node"
+msgstr ""
+
+#: tools/editor/reparent_dialog.cpp
+msgid "Reparent Location (Select new Parent):"
+msgstr ""
+
+#: tools/editor/reparent_dialog.cpp
+msgid "Keep Global Transform"
+msgstr ""
+
+#: tools/editor/reparent_dialog.cpp tools/editor/scene_tree_dock.cpp
+msgid "Reparent"
+msgstr ""
+
+#: tools/editor/resources_dock.cpp
+msgid "Create New Resource"
+msgstr ""
+
+#: tools/editor/resources_dock.cpp
+msgid "Open Resource"
+msgstr ""
+
+#: tools/editor/resources_dock.cpp
+msgid "Save Resource"
+msgstr ""
+
+#: tools/editor/resources_dock.cpp
+msgid "Resource Tools"
+msgstr ""
+
+#: tools/editor/resources_dock.cpp
+msgid "Make Local"
+msgstr ""
+
+#: tools/editor/run_settings_dialog.cpp
+msgid "Run Mode:"
+msgstr ""
+
+#: tools/editor/run_settings_dialog.cpp
+msgid "Current Scene"
+msgstr ""
+
+#: tools/editor/run_settings_dialog.cpp
+msgid "Main Scene"
+msgstr ""
+
+#: tools/editor/run_settings_dialog.cpp
+msgid "Main Scene Arguments:"
+msgstr ""
+
+#: tools/editor/run_settings_dialog.cpp
+msgid "Scene Run Settings"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Error loading scene from %s"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Error instancing scene from %s"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Ok"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid ""
+"Cannot instance the scene '%s' because the current scene exists within one "
+"of its nodes."
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Instance Scene(s)"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "This operation can't be done on the tree root."
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Move Node In Parent"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Move Nodes In Parent"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Duplicate Node(s)"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Delete Node(s)?"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "This operation can't be done without a scene."
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "This operation requires a single selected node."
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "This operation can't be done on instanced scenes."
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Save New Scene As.."
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Makes Sense!"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Can't operate on nodes from a foreign scene!"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Can't operate on nodes the current scene inherits from!"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Remove Node(s)"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Create Node"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid ""
+"Couldn't save new scene. Likely dependencies (instances) couldn't be "
+"satisfied."
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Error saving scene."
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Error duplicating scene to save it."
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Edit Groups"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Edit Connections"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Delete Node(s)"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Add Child Node"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Instance Child Scene"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Change Type"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Add Script"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Merge From Scene"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Save Branch as Scene"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Add/Create a New Node"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid ""
+"Instance a scene file as a Node. Creates an inherited scene if no root node "
+"exists."
+msgstr ""
+
+#: tools/editor/scene_tree_editor.cpp
+msgid ""
+"This item cannot be made visible because the parent is hidden. Unhide the "
+"parent first."
+msgstr ""
+
+#: tools/editor/scene_tree_editor.cpp
+msgid "Toggle Spatial Visible"
+msgstr ""
+
+#: tools/editor/scene_tree_editor.cpp
+msgid "Toggle CanvasItem Visible"
+msgstr ""
+
+#: tools/editor/scene_tree_editor.cpp
+msgid "Instance:"
+msgstr ""
+
+#: tools/editor/scene_tree_editor.cpp
+msgid "Invalid node name, the following characters are not allowed:"
+msgstr ""
+
+#: tools/editor/scene_tree_editor.cpp
+msgid "Rename Node"
+msgstr ""
+
+#: tools/editor/scene_tree_editor.cpp
+msgid "Scene Tree (Nodes):"
+msgstr ""
+
+#: tools/editor/scene_tree_editor.cpp
+msgid "Editable Children"
+msgstr ""
+
+#: tools/editor/scene_tree_editor.cpp
+msgid "Load As Placeholder"
+msgstr ""
+
+#: tools/editor/scene_tree_editor.cpp
+msgid "Discard Instancing"
+msgstr ""
+
+#: tools/editor/scene_tree_editor.cpp
+msgid "Open in Editor"
+msgstr ""
+
+#: tools/editor/scene_tree_editor.cpp
+msgid "Clear Inheritance"
+msgstr ""
+
+#: tools/editor/scene_tree_editor.cpp
+msgid "Clear Inheritance? (No Undo!)"
+msgstr ""
+
+#: tools/editor/scene_tree_editor.cpp
+msgid "Clear!"
+msgstr ""
+
+#: tools/editor/scene_tree_editor.cpp
+msgid "Select a Node"
+msgstr ""
+
+#: tools/editor/scenes_dock.cpp
+msgid "Same source and destination files, doing nothing."
+msgstr ""
+
+#: tools/editor/scenes_dock.cpp
+msgid "Same source and destination paths, doing nothing."
+msgstr ""
+
+#: tools/editor/scenes_dock.cpp
+msgid "Can't move directories to within themselves."
+msgstr ""
+
+#: tools/editor/scenes_dock.cpp
+msgid "Can't operate on '..'"
+msgstr ""
+
+#: tools/editor/scenes_dock.cpp
+msgid "Pick New Name and Location For:"
+msgstr ""
+
+#: tools/editor/scenes_dock.cpp
+msgid "No files selected!"
+msgstr ""
+
+#: tools/editor/scenes_dock.cpp
+msgid "Instance"
+msgstr ""
+
+#: tools/editor/scenes_dock.cpp
+msgid "Edit Dependencies.."
+msgstr ""
+
+#: tools/editor/scenes_dock.cpp
+msgid "View Owners.."
+msgstr ""
+
+#: tools/editor/scenes_dock.cpp
+msgid "Copy Path"
+msgstr ""
+
+#: tools/editor/scenes_dock.cpp
+msgid "Rename or Move.."
+msgstr ""
+
+#: tools/editor/scenes_dock.cpp
+msgid "Move To.."
+msgstr ""
+
+#: tools/editor/scenes_dock.cpp
+msgid "Info"
+msgstr ""
+
+#: tools/editor/scenes_dock.cpp
+msgid "Show In File Manager"
+msgstr ""
+
+#: tools/editor/scenes_dock.cpp
+msgid "Previous Directory"
+msgstr ""
+
+#: tools/editor/scenes_dock.cpp
+msgid "Next Directory"
+msgstr ""
+
+#: tools/editor/scenes_dock.cpp
+msgid "Re-Scan Filesystem"
+msgstr ""
+
+#: tools/editor/scenes_dock.cpp
+msgid "Toggle folder status as Favorite"
+msgstr ""
+
+#: tools/editor/scenes_dock.cpp
+msgid "Instance the selected scene(s) as child of the selected node."
+msgstr ""
+
+#: tools/editor/scenes_dock.cpp
+msgid "Move"
+msgstr ""
+
+#: tools/editor/script_create_dialog.cpp
+msgid "Invalid parent class name"
+msgstr ""
+
+#: tools/editor/script_create_dialog.cpp
+msgid "Valid chars:"
+msgstr ""
+
+#: tools/editor/script_create_dialog.cpp
+msgid "Invalid class name"
+msgstr ""
+
+#: tools/editor/script_create_dialog.cpp
+msgid "Valid name"
+msgstr ""
+
+#: tools/editor/script_create_dialog.cpp
+msgid "N/A"
+msgstr ""
+
+#: tools/editor/script_create_dialog.cpp
+msgid "Class name is invalid!"
+msgstr ""
+
+#: tools/editor/script_create_dialog.cpp
+msgid "Parent class name is invalid!"
+msgstr ""
+
+#: tools/editor/script_create_dialog.cpp
+msgid "Invalid path!"
+msgstr ""
+
+#: tools/editor/script_create_dialog.cpp
+msgid "Could not create script in filesystem."
+msgstr ""
+
+#: tools/editor/script_create_dialog.cpp
+msgid "Path is empty"
+msgstr ""
+
+#: tools/editor/script_create_dialog.cpp
+msgid "Path is not local"
+msgstr ""
+
+#: tools/editor/script_create_dialog.cpp
+msgid "Invalid base path"
+msgstr ""
+
+#: tools/editor/script_create_dialog.cpp
+msgid "File exists"
+msgstr ""
+
+#: tools/editor/script_create_dialog.cpp
+msgid "Invalid extension"
+msgstr ""
+
+#: tools/editor/script_create_dialog.cpp
+msgid "Valid path"
+msgstr ""
+
+#: tools/editor/script_create_dialog.cpp
+msgid "Class Name:"
+msgstr ""
+
+#: tools/editor/script_create_dialog.cpp
+msgid "Built-In Script"
+msgstr ""
+
+#: tools/editor/script_create_dialog.cpp
+msgid "Create Node Script"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Bytes:"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Warning"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Error:"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Source:"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Function:"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Errors"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Child Process Connected"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Inspect Previous Instance"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Inspect Next Instance"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Stack Frames"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Variable"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Errors:"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Stack Trace (if applicable):"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Remote Inspector"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Live Scene Tree:"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Remote Object Properties: "
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Profiler"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Monitor"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Value"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Monitors"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "List of Video Memory Usage by Resource:"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Total:"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Video Mem"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Resource Path"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Type"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Usage"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Misc"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Clicked Control:"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Clicked Control Type:"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Live Edit Root:"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Set From Tree"
+msgstr ""
+
+#: tools/editor/settings_config_dialog.cpp
+msgid "Shortcuts"
+msgstr ""
+
+#: tools/editor/spatial_editor_gizmos.cpp
+msgid "Change Light Radius"
+msgstr ""
+
+#: tools/editor/spatial_editor_gizmos.cpp
+msgid "Change Camera FOV"
+msgstr ""
+
+#: tools/editor/spatial_editor_gizmos.cpp
+msgid "Change Camera Size"
+msgstr ""
+
+#: tools/editor/spatial_editor_gizmos.cpp
+msgid "Change Sphere Shape Radius"
+msgstr ""
+
+#: tools/editor/spatial_editor_gizmos.cpp
+msgid "Change Box Shape Extents"
+msgstr ""
+
+#: tools/editor/spatial_editor_gizmos.cpp
+msgid "Change Capsule Shape Radius"
+msgstr ""
+
+#: tools/editor/spatial_editor_gizmos.cpp
+msgid "Change Capsule Shape Height"
+msgstr ""
+
+#: tools/editor/spatial_editor_gizmos.cpp
+msgid "Change Ray Shape Length"
+msgstr ""
+
+#: tools/editor/spatial_editor_gizmos.cpp
+msgid "Change Notifier Extents"
+msgstr ""
diff --git a/tools/translations/cs.po b/tools/translations/cs.po
index 8a1e596942..9a482216ec 100644
--- a/tools/translations/cs.po
+++ b/tools/translations/cs.po
@@ -631,10 +631,6 @@ msgid "Change Anim Loop"
msgstr ""
#: tools/editor/animation_editor.cpp
-msgid "Change Anim Loop Interpolation"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
msgid "Anim Create Typed Value Key"
msgstr ""
@@ -675,10 +671,6 @@ msgid "Enable/Disable looping in animation."
msgstr ""
#: tools/editor/animation_editor.cpp
-msgid "Enable/Disable interpolation when looping animation."
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
msgid "Add new tracks."
msgstr ""
@@ -943,7 +935,7 @@ msgid "Method in target Node must be specified!"
msgstr ""
#: tools/editor/connections_dialog.cpp
-msgid "Conect To Node:"
+msgid "Connect To Node:"
msgstr ""
#: tools/editor/connections_dialog.cpp tools/editor/groups_editor.cpp
@@ -1156,6 +1148,46 @@ msgstr ""
msgid "Choose"
msgstr ""
+#: tools/editor/editor_file_dialog.cpp
+msgid "Go Back"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Go Forward"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Go Up"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Toggle Hidden Files"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Toggle Favorite"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Toggle Mode"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Focus Path"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Mode Favorite Up"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Mode Favorite Down"
+msgstr ""
+
#: tools/editor/editor_file_dialog.cpp tools/editor/scenes_dock.cpp
msgid "Favorites:"
msgstr ""
@@ -1409,8 +1441,23 @@ msgstr ""
#: tools/editor/editor_node.cpp
msgid ""
-"No main scene has ever been defined.\n"
-"Select one from \"Project Settings\" under the 'application' category."
+"No main scene has ever been defined, select one?\n"
+"You can change it later in later in \"Project Settings\" under the "
+"'application' category."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid ""
+"Selected scene '%s' does not exist, select a valid one?\n"
+"You can change it later in \"Project Settings\" under the 'application' "
+"category."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid ""
+"Selected scene '%s' is not a scene file, select a valid one?\n"
+"You can change it later in \"Project Settings\" under the 'application' "
+"category."
msgstr ""
#: tools/editor/editor_node.cpp
@@ -1503,6 +1550,10 @@ msgid ""
"(Unsaved changes will be lost)"
msgstr ""
+#: tools/editor/editor_node.cpp
+msgid "Pick a Manu Scene"
+msgstr ""
+
#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
msgid "Ugh"
msgstr ""
@@ -1526,7 +1577,7 @@ msgid "Save Layout"
msgstr ""
#: tools/editor/editor_node.cpp
-msgid "Load Layout"
+msgid "Delete Layout"
msgstr ""
#: tools/editor/editor_node.cpp tools/editor/project_export.cpp
@@ -1534,10 +1585,6 @@ msgid "Default"
msgstr ""
#: tools/editor/editor_node.cpp
-msgid "Delete Layout"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
msgid "Switch Scene Tab"
msgstr ""
@@ -1567,6 +1614,14 @@ msgid "Distraction Free Mode"
msgstr ""
#: tools/editor/editor_node.cpp
+msgid "Next tab"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Previous tab"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
msgid "Operations with scene files."
msgstr ""
@@ -2109,6 +2164,12 @@ msgid "No target font resource!"
msgstr ""
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+msgid ""
+"Invalid file extension.\n"
+"Please use .fnt."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
msgid "Can't load/process source font."
msgstr ""
@@ -2344,7 +2405,7 @@ msgid "Couldn't load post-import script:"
msgstr ""
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Invalid/broken script for post-import:"
+msgid "Invalid/broken script for post-import (check console):"
msgstr ""
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
@@ -3007,13 +3068,11 @@ msgstr ""
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid Offset:"
msgstr ""
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid Step:"
msgstr ""
@@ -3129,7 +3188,6 @@ msgstr ""
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Show Grid"
msgstr ""
@@ -3382,6 +3440,10 @@ msgid "MeshInstance lacks a Mesh!"
msgstr ""
#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Mesh has not surface to create outlines from!"
+msgstr ""
+
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Could not create outline!"
msgstr ""
@@ -3743,17 +3805,14 @@ msgid "Clear UV"
msgstr ""
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Snap"
msgstr ""
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Enable Snap"
msgstr ""
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid"
msgstr ""
@@ -4589,17 +4648,43 @@ msgid "StyleBox Preview:"
msgstr ""
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid "Texture Region Editor"
+msgid "Snap Mode:"
msgstr ""
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid "Scale Region Editor"
+msgid "<None>"
msgstr ""
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid ""
-"No texture in this node.\n"
-"Set a texture to be able to edit region."
+msgid "Pixel Snap"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Grid Snap"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Auto Slice"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Offset:"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Step:"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Separation:"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Texture Region"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Texture Region Editor"
msgstr ""
#: tools/editor/plugins/theme_editor_plugin.cpp
@@ -5661,31 +5746,27 @@ msgid "Error duplicating scene to save it."
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "New Scene Root"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Inherit Scene"
+msgid "Edit Groups"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Add Child Node"
+msgid "Edit Connections"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Instance Child Scene"
+msgid "Delete Node(s)"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Change Type"
+msgid "Add Child Node"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Edit Groups"
+msgid "Instance Child Scene"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Edit Connections"
+msgid "Change Type"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
@@ -5701,10 +5782,6 @@ msgid "Save Branch as Scene"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Delete Node(s)"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "Add/Create a New Node"
msgstr ""
diff --git a/tools/translations/de.po b/tools/translations/de.po
index b9c1c070d8..208b4d1bc5 100644
--- a/tools/translations/de.po
+++ b/tools/translations/de.po
@@ -18,8 +18,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2016-06-14 12:29+0000\n"
-"Last-Translator: Timo Schwarzer <account@timoschwarzer.com>\n"
+"PO-Revision-Date: 2016-06-27 09:01+0000\n"
+"Last-Translator: danjo <atze@libra.uberspace.de>\n"
"Language-Team: German <https://hosted.weblate.org/projects/godot-engine/"
"godot/de/>\n"
"Language: de\n"
@@ -598,18 +598,16 @@ msgid "Anim Delete Keys"
msgstr "Anim Schlüsselbilder löschen"
#: tools/editor/animation_editor.cpp
-#, fuzzy
msgid "Continuous"
-msgstr "Fortfahren"
+msgstr "Fortlaufend"
#: tools/editor/animation_editor.cpp
-#, fuzzy
msgid "Discrete"
-msgstr "Trennen"
+msgstr "Einzeln"
#: tools/editor/animation_editor.cpp
msgid "Trigger"
-msgstr ""
+msgstr "Auslöser"
#: tools/editor/animation_editor.cpp
msgid "Anim Add Key"
@@ -719,11 +717,6 @@ msgid "Change Anim Loop"
msgstr "Ändere Animationswiederholung"
#: tools/editor/animation_editor.cpp
-#, fuzzy
-msgid "Change Anim Loop Interpolation"
-msgstr "Ändere Animationswiederholung"
-
-#: tools/editor/animation_editor.cpp
msgid "Anim Create Typed Value Key"
msgstr "Animation Erstelle Typed Value Key"
@@ -764,11 +757,6 @@ msgid "Enable/Disable looping in animation."
msgstr "Aktivieren / Deaktivieren der Schleife (Loop)."
#: tools/editor/animation_editor.cpp
-#, fuzzy
-msgid "Enable/Disable interpolation when looping animation."
-msgstr "Aktivieren / Deaktivieren der Schleife (Loop)."
-
-#: tools/editor/animation_editor.cpp
msgid "Add new tracks."
msgstr "Neue Spuren hinzufügen."
@@ -1035,7 +1023,7 @@ msgstr "Methode in Ziel-Node muss angegeben werden!"
#: tools/editor/connections_dialog.cpp
#, fuzzy
-msgid "Conect To Node:"
+msgid "Connect To Node:"
msgstr "Verbinde Zu Node:"
#: tools/editor/connections_dialog.cpp tools/editor/groups_editor.cpp
@@ -1258,6 +1246,50 @@ msgstr "Wähle ein Verzeichnis"
msgid "Choose"
msgstr "Wählen"
+#: tools/editor/editor_file_dialog.cpp
+msgid "Go Back"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Go Forward"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Go Up"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Toggle Hidden Files"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+#, fuzzy
+msgid "Toggle Favorite"
+msgstr "Favoriten:"
+
+#: tools/editor/editor_file_dialog.cpp
+#, fuzzy
+msgid "Toggle Mode"
+msgstr "Autoplay Umschalten"
+
+#: tools/editor/editor_file_dialog.cpp
+#, fuzzy
+msgid "Focus Path"
+msgstr "Pfad kopieren"
+
+#: tools/editor/editor_file_dialog.cpp
+#, fuzzy
+msgid "Mode Favorite Up"
+msgstr "Favoriten:"
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Mode Favorite Down"
+msgstr ""
+
#: tools/editor/editor_file_dialog.cpp tools/editor/scenes_dock.cpp
msgid "Favorites:"
msgstr "Favoriten:"
@@ -1512,9 +1544,31 @@ msgid "There is no defined scene to run."
msgstr "Es ist keine zu startende Szene definiert."
#: tools/editor/editor_node.cpp
+#, fuzzy
+msgid ""
+"No main scene has ever been defined, select one?\n"
+"You can change it later in later in \"Project Settings\" under the "
+"'application' category."
+msgstr ""
+"Es ist keine Hauptszene definiert worden.\n"
+"Wähle eine in den \"Projekt Einstellungen\" in der 'Applikation' Kategorie."
+
+#: tools/editor/editor_node.cpp
+#, fuzzy
+msgid ""
+"Selected scene '%s' does not exist, select a valid one?\n"
+"You can change it later in \"Project Settings\" under the 'application' "
+"category."
+msgstr ""
+"Es ist keine Hauptszene definiert worden.\n"
+"Wähle eine in den \"Projekt Einstellungen\" in der 'Applikation' Kategorie."
+
+#: tools/editor/editor_node.cpp
+#, fuzzy
msgid ""
-"No main scene has ever been defined.\n"
-"Select one from \"Project Settings\" under the 'application' category."
+"Selected scene '%s' is not a scene file, select a valid one?\n"
+"You can change it later in \"Project Settings\" under the 'application' "
+"category."
msgstr ""
"Es ist keine Hauptszene definiert worden.\n"
"Wähle eine in den \"Projekt Einstellungen\" in der 'Applikation' Kategorie."
@@ -1615,6 +1669,11 @@ msgstr ""
"Projektmanager Öffnen?\n"
"(Nichtgespeicherte Änderungen gehen verloren)"
+#: tools/editor/editor_node.cpp
+#, fuzzy
+msgid "Pick a Manu Scene"
+msgstr "Hauptszene"
+
#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
msgid "Ugh"
msgstr "Ugh"
@@ -1641,18 +1700,14 @@ msgid "Save Layout"
msgstr "Layout Speichern"
#: tools/editor/editor_node.cpp
-msgid "Load Layout"
-msgstr "Layout Laden"
+msgid "Delete Layout"
+msgstr "Layout Löschen"
#: tools/editor/editor_node.cpp tools/editor/project_export.cpp
msgid "Default"
msgstr "Standard"
#: tools/editor/editor_node.cpp
-msgid "Delete Layout"
-msgstr "Layout Löschen"
-
-#: tools/editor/editor_node.cpp
msgid "Switch Scene Tab"
msgstr "Wechsle Szenen Tab"
@@ -1682,6 +1737,15 @@ msgid "Distraction Free Mode"
msgstr ""
#: tools/editor/editor_node.cpp
+#, fuzzy
+msgid "Next tab"
+msgstr "Nächste"
+
+#: tools/editor/editor_node.cpp
+msgid "Previous tab"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
msgid "Operations with scene files."
msgstr "Operationen mit Szenen Dateien."
@@ -1711,7 +1775,7 @@ msgstr "Schließen Zu Vorh. Szene Gehen"
#: tools/editor/editor_node.cpp
msgid "Open Recent"
-msgstr "Aktuelle Öffnen"
+msgstr "Zuletzt benutzte Scenen"
#: tools/editor/editor_node.cpp
msgid "Quick Filter Files.."
@@ -2246,6 +2310,12 @@ msgid "No target font resource!"
msgstr "Keine Ziel Font Ressource!"
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+msgid ""
+"Invalid file extension.\n"
+"Please use .fnt."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
msgid "Can't load/process source font."
msgstr "Quell Font kann nicht geladen/verarbeitet werden."
@@ -2485,7 +2555,8 @@ msgid "Couldn't load post-import script:"
msgstr "Post-Import Skript konnte nicht geladen werden:"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Invalid/broken script for post-import:"
+#, fuzzy
+msgid "Invalid/broken script for post-import (check console):"
msgstr "Fehlerhaftes Skript für Post-Import:"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
@@ -3152,13 +3223,11 @@ msgstr "Einrasten konfigurieren"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid Offset:"
msgstr "Gitterverschiebung:"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid Step:"
msgstr "Gitterabstand:"
@@ -3283,7 +3352,6 @@ msgstr "Einrasten aktivieren"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Show Grid"
msgstr "Raster anzeigen"
@@ -3536,6 +3604,10 @@ msgid "MeshInstance lacks a Mesh!"
msgstr ""
#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Mesh has not surface to create outlines from!"
+msgstr ""
+
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Could not create outline!"
msgstr ""
@@ -3897,17 +3969,14 @@ msgid "Clear UV"
msgstr ""
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Snap"
msgstr "Einrasten"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Enable Snap"
msgstr "Einrasten aktivieren"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid"
msgstr "Raster"
@@ -4743,19 +4812,52 @@ msgid "StyleBox Preview:"
msgstr ""
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid "Texture Region Editor"
-msgstr "Texturbegrenzungseditor"
+#, fuzzy
+msgid "Snap Mode:"
+msgstr "Export-Modus:"
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid "Scale Region Editor"
-msgstr "Skalierungsbegrenzungseditor"
+msgid "<None>"
+msgstr ""
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid ""
-"No texture in this node.\n"
-"Set a texture to be able to edit region."
+#, fuzzy
+msgid "Pixel Snap"
+msgstr "Einrasten an Pixeln aktivieren"
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+#, fuzzy
+msgid "Grid Snap"
+msgstr "Gitterabstand:"
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Auto Slice"
msgstr ""
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+#, fuzzy
+msgid "Offset:"
+msgstr "Gitterverschiebung:"
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+#, fuzzy
+msgid "Step:"
+msgstr "Schritte (s):"
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+#, fuzzy
+msgid "Separation:"
+msgstr "Version:"
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+#, fuzzy
+msgid "Texture Region"
+msgstr "Texturbegrenzungseditor"
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Texture Region Editor"
+msgstr "Texturbegrenzungseditor"
+
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Can't save theme to file:"
msgstr ""
@@ -5144,8 +5246,9 @@ msgid "Group"
msgstr "Gruppe"
#: tools/editor/project_export.cpp
+#, fuzzy
msgid "Samples"
-msgstr "Beispiele"
+msgstr "Samples"
#: tools/editor/project_export.cpp
msgid "Sample Conversion Mode: (.wav files):"
@@ -5822,31 +5925,27 @@ msgid "Error duplicating scene to save it."
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "New Scene Root"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Inherit Scene"
+msgid "Edit Groups"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Add Child Node"
+msgid "Edit Connections"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Instance Child Scene"
+msgid "Delete Node(s)"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Change Type"
+msgid "Add Child Node"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Edit Groups"
+msgid "Instance Child Scene"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Edit Connections"
+msgid "Change Type"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
@@ -5862,10 +5961,6 @@ msgid "Save Branch as Scene"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Delete Node(s)"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "Add/Create a New Node"
msgstr ""
@@ -6253,6 +6348,19 @@ msgstr ""
msgid "Change Notifier Extents"
msgstr ""
+#, fuzzy
+#~ msgid "Change Anim Loop Interpolation"
+#~ msgstr "Ändere Animationswiederholung"
+
+#~ msgid "Enable/Disable interpolation when looping animation."
+#~ msgstr "Aktivieren/Deaktivieren Interpolation, wenn Schleife aktiviert."
+
+#~ msgid "Load Layout"
+#~ msgstr "Layout Laden"
+
+#~ msgid "Scale Region Editor"
+#~ msgstr "Skalierungsbegrenzungseditor"
+
#~ msgid "Binds (Extra Params):"
#~ msgstr "Bindungen (Extra Parameter):"
diff --git a/tools/translations/de_CH.po b/tools/translations/de_CH.po
index eb5e1be880..4404ca02df 100644
--- a/tools/translations/de_CH.po
+++ b/tools/translations/de_CH.po
@@ -7,7 +7,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
-"PO-Revision-Date: 2016-06-12 13:27+0000\n"
+"PO-Revision-Date: 2016-06-22 14:54+0000\n"
"Last-Translator: Christian Fisch <christian.fiesel@gmail.com>\n"
"Language-Team: Swiss High German <https://hosted.weblate.org/projects/godot-"
"engine/godot/de_CH/>\n"
@@ -58,7 +58,6 @@ msgid "Invalid instance dictionary (invalid subclasses)"
msgstr ""
#: scene/2d/animated_sprite.cpp
-#, fuzzy
msgid ""
"A SpriteFrames resource must be created or set in the 'Frames' property in "
"order for AnimatedSprite to display frames."
@@ -222,7 +221,7 @@ msgstr ""
#: scene/gui/dialogs.cpp tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Cancel"
-msgstr ""
+msgstr "Abbrechen"
#: scene/gui/dialogs.cpp
msgid "OK"
@@ -230,15 +229,15 @@ msgstr "Okay"
#: scene/gui/dialogs.cpp
msgid "Alert!"
-msgstr ""
+msgstr "Alert!"
#: scene/gui/dialogs.cpp
msgid "Please Confirm..."
-msgstr ""
+msgstr "Bitte bestätigen..."
#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
msgid "File Exists, Overwrite?"
-msgstr ""
+msgstr "Datei existiert, Überschreiben?"
#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
msgid "All Recognized"
@@ -246,41 +245,41 @@ msgstr ""
#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
msgid "All Files (*)"
-msgstr ""
+msgstr "Alle Dateien (*)"
#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
#: tools/editor/editor_help.cpp tools/editor/editor_node.cpp
#: tools/editor/plugins/script_editor_plugin.cpp tools/editor/quick_open.cpp
#: tools/editor/scenes_dock.cpp
msgid "Open"
-msgstr ""
+msgstr "Öffnen"
#: scene/gui/file_dialog.cpp
msgid "Open a File"
-msgstr ""
+msgstr "Datei öffnen"
#: scene/gui/file_dialog.cpp
msgid "Open File(s)"
-msgstr ""
+msgstr "Datei(en) öffnen"
#: scene/gui/file_dialog.cpp
msgid "Open a Directory"
-msgstr ""
+msgstr "Verzeichnis öffnen"
#: scene/gui/file_dialog.cpp
msgid "Open a File or Directory"
-msgstr ""
+msgstr "Datei oder Verzeichnis öffnen"
#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
#: tools/editor/editor_node.cpp
#: tools/editor/plugins/animation_player_editor_plugin.cpp
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Save"
-msgstr ""
+msgstr "Speichern"
#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
msgid "Save a File"
-msgstr ""
+msgstr "Datei speichern"
#: scene/gui/file_dialog.cpp tools/editor/editor_dir_dialog.cpp
#: tools/editor/editor_file_dialog.cpp
@@ -431,8 +430,9 @@ msgstr ""
#: scene/resources/dynamic_font.cpp
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+#, fuzzy
msgid "Error initializing FreeType."
-msgstr ""
+msgstr "Fehler bei der FreeType Inizialisierung."
#: scene/resources/dynamic_font.cpp
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
@@ -515,7 +515,7 @@ msgstr ""
#: tools/editor/animation_editor.cpp
msgid "Edit Node Curve"
-msgstr ""
+msgstr "Node Kurve editieren"
#: tools/editor/animation_editor.cpp
msgid "Edit Selection Curve"
@@ -645,10 +645,6 @@ msgid "Change Anim Loop"
msgstr ""
#: tools/editor/animation_editor.cpp
-msgid "Change Anim Loop Interpolation"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
msgid "Anim Create Typed Value Key"
msgstr ""
@@ -689,10 +685,6 @@ msgid "Enable/Disable looping in animation."
msgstr ""
#: tools/editor/animation_editor.cpp
-msgid "Enable/Disable interpolation when looping animation."
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
msgid "Add new tracks."
msgstr ""
@@ -750,7 +742,7 @@ msgstr ""
#: tools/editor/animation_editor.cpp
msgid "Call Functions in Which Node?"
-msgstr ""
+msgstr "Im welchem Node soll die Funktion aufgerufen werden?"
#: tools/editor/animation_editor.cpp
msgid "Remove invalid keys"
@@ -954,11 +946,12 @@ msgstr ""
#: tools/editor/connections_dialog.cpp
msgid "Method in target Node must be specified!"
-msgstr ""
+msgstr "Die Methode muss im Ziel Node definiert werden!"
#: tools/editor/connections_dialog.cpp
-msgid "Conect To Node:"
-msgstr ""
+#, fuzzy
+msgid "Connect To Node:"
+msgstr "Verbindung zu Node:"
#: tools/editor/connections_dialog.cpp tools/editor/groups_editor.cpp
#: tools/editor/plugins/item_list_editor_plugin.cpp
@@ -984,7 +977,7 @@ msgstr ""
#: tools/editor/connections_dialog.cpp
msgid "Path to Node:"
-msgstr ""
+msgstr "Pfad zum Node:"
#: tools/editor/connections_dialog.cpp
msgid "Make Function"
@@ -1170,6 +1163,46 @@ msgstr ""
msgid "Choose"
msgstr ""
+#: tools/editor/editor_file_dialog.cpp
+msgid "Go Back"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Go Forward"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Go Up"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Toggle Hidden Files"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Toggle Favorite"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Toggle Mode"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Focus Path"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Mode Favorite Up"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Mode Favorite Down"
+msgstr ""
+
#: tools/editor/editor_file_dialog.cpp tools/editor/scenes_dock.cpp
msgid "Favorites:"
msgstr ""
@@ -1293,7 +1326,7 @@ msgstr ""
#: tools/editor/editor_node.cpp
msgid "Node From Scene"
-msgstr ""
+msgstr "Node von Szene"
#: tools/editor/editor_node.cpp tools/editor/scenes_dock.cpp
msgid "Re-Import.."
@@ -1423,8 +1456,23 @@ msgstr ""
#: tools/editor/editor_node.cpp
msgid ""
-"No main scene has ever been defined.\n"
-"Select one from \"Project Settings\" under the 'application' category."
+"No main scene has ever been defined, select one?\n"
+"You can change it later in later in \"Project Settings\" under the "
+"'application' category."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid ""
+"Selected scene '%s' does not exist, select a valid one?\n"
+"You can change it later in \"Project Settings\" under the 'application' "
+"category."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid ""
+"Selected scene '%s' is not a scene file, select a valid one?\n"
+"You can change it later in \"Project Settings\" under the 'application' "
+"category."
msgstr ""
#: tools/editor/editor_node.cpp
@@ -1517,6 +1565,10 @@ msgid ""
"(Unsaved changes will be lost)"
msgstr ""
+#: tools/editor/editor_node.cpp
+msgid "Pick a Manu Scene"
+msgstr ""
+
#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
msgid "Ugh"
msgstr ""
@@ -1540,7 +1592,7 @@ msgid "Save Layout"
msgstr ""
#: tools/editor/editor_node.cpp
-msgid "Load Layout"
+msgid "Delete Layout"
msgstr ""
#: tools/editor/editor_node.cpp tools/editor/project_export.cpp
@@ -1548,10 +1600,6 @@ msgid "Default"
msgstr ""
#: tools/editor/editor_node.cpp
-msgid "Delete Layout"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
msgid "Switch Scene Tab"
msgstr ""
@@ -1581,6 +1629,14 @@ msgid "Distraction Free Mode"
msgstr ""
#: tools/editor/editor_node.cpp
+msgid "Next tab"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Previous tab"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
msgid "Operations with scene files."
msgstr ""
@@ -2026,7 +2082,7 @@ msgstr ""
#: tools/editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
-msgstr ""
+msgstr "Selektiere Node(s) zum Importieren aus"
#: tools/editor/editor_sub_scene.cpp
msgid "Scene Path:"
@@ -2034,7 +2090,7 @@ msgstr ""
#: tools/editor/editor_sub_scene.cpp
msgid "Import From Node:"
-msgstr ""
+msgstr "Importiere von folgendem Node:"
#: tools/editor/file_type_cache.cpp
msgid "Can't open file_type_cache.cch for writing, not saving file type cache!"
@@ -2123,6 +2179,12 @@ msgid "No target font resource!"
msgstr ""
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+msgid ""
+"Invalid file extension.\n"
+"Please use .fnt."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
msgid "Can't load/process source font."
msgstr ""
@@ -2199,7 +2261,7 @@ msgstr ""
#: tools/editor/io_plugins/editor_mesh_import_plugin.cpp
msgid "Surface %d"
-msgstr ""
+msgstr "Oberfläche %d"
#: tools/editor/io_plugins/editor_sample_import_plugin.cpp
msgid "No samples to import!"
@@ -2358,7 +2420,7 @@ msgid "Couldn't load post-import script:"
msgstr ""
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Invalid/broken script for post-import:"
+msgid "Invalid/broken script for post-import (check console):"
msgstr ""
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
@@ -2617,20 +2679,22 @@ msgid "Translation"
msgstr ""
#: tools/editor/multi_node_edit.cpp
+#, fuzzy
msgid "MultiNode Set"
-msgstr ""
+msgstr "MultiNode Set"
#: tools/editor/node_dock.cpp
msgid "Node"
-msgstr ""
+msgstr "Node"
#: tools/editor/node_dock.cpp
msgid "Groups"
msgstr ""
#: tools/editor/node_dock.cpp
+#, fuzzy
msgid "Select a Node to edit Signals and Groups."
-msgstr ""
+msgstr "Selektiere ein Node um deren Signale und Gruppen zu ändern."
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Toggle Autoplay"
@@ -2904,39 +2968,39 @@ msgstr ""
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Animation Node"
-msgstr ""
+msgstr "Animations-Node"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "OneShot Node"
-msgstr ""
+msgstr "OneShot-Node"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Mix Node"
-msgstr ""
+msgstr "Mix-Node"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Blend2 Node"
-msgstr ""
+msgstr "Blend2-Node"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Blend3 Node"
-msgstr ""
+msgstr "Blend3-Node"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Blend4 Node"
-msgstr ""
+msgstr "Blend4-Node"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "TimeScale Node"
-msgstr ""
+msgstr "TimeScale-Node"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "TimeSeek Node"
-msgstr ""
+msgstr "TimeSeek-Node"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Transition Node"
-msgstr ""
+msgstr "Transition-Node"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Import Animations.."
@@ -2944,7 +3008,7 @@ msgstr ""
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Edit Node Filters"
-msgstr ""
+msgstr "Node Filter editieren"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Filters.."
@@ -3021,13 +3085,11 @@ msgstr ""
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid Offset:"
msgstr ""
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid Step:"
msgstr ""
@@ -3143,7 +3205,6 @@ msgstr ""
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Show Grid"
msgstr ""
@@ -3396,6 +3457,10 @@ msgid "MeshInstance lacks a Mesh!"
msgstr ""
#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Mesh has not surface to create outlines from!"
+msgstr ""
+
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Could not create outline!"
msgstr ""
@@ -3453,19 +3518,20 @@ msgstr ""
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "No surface source specified."
-msgstr ""
+msgstr "Keine Oberflächen Quelle spezifiziert."
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "Surface source is invalid (invalid path)."
-msgstr ""
+msgstr "Oberflächen Quelle is invalid (invalider Pfad)."
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "Surface source is invalid (no geometry)."
-msgstr ""
+msgstr "Oberflächen Quelle is invalid (keine Form)."
#: tools/editor/plugins/multimesh_editor_plugin.cpp
+#, fuzzy
msgid "Surface source is invalid (no faces)."
-msgstr ""
+msgstr "Oberflächen Quelle is invalid (kein Face)"
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "Parent has no solid faces to populate."
@@ -3481,7 +3547,7 @@ msgstr ""
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "Select a Target Surface:"
-msgstr ""
+msgstr "Wähle eine Ziel Oberfläche aus:"
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "Populate Surface"
@@ -3493,7 +3559,7 @@ msgstr ""
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "Target Surface:"
-msgstr ""
+msgstr "Ziel Oberfläche:"
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "Source Mesh:"
@@ -3549,15 +3615,16 @@ msgstr ""
#: tools/editor/plugins/particles_2d_editor_plugin.cpp
msgid "Set Emission Mask"
-msgstr ""
+msgstr "Emissions-Maske setzen"
#: tools/editor/plugins/particles_2d_editor_plugin.cpp
+#, fuzzy
msgid "Clear Emission Mask"
-msgstr ""
+msgstr "Inhalt der Emissions-Masken löschen"
#: tools/editor/plugins/particles_2d_editor_plugin.cpp
msgid "Load Emission Mask"
-msgstr ""
+msgstr "Emissions-Maske laden"
#: tools/editor/plugins/particles_2d_editor_plugin.cpp
msgid "Generated Point Count:"
@@ -3569,15 +3636,15 @@ msgstr ""
#: tools/editor/plugins/particles_editor_plugin.cpp
msgid "Node does not contain geometry (faces)."
-msgstr ""
+msgstr "Node enthält keine Geometrie (Flächen)."
#: tools/editor/plugins/particles_editor_plugin.cpp
msgid "Faces contain no area!"
-msgstr ""
+msgstr "Flächen enthalten keinen Bereich!"
#: tools/editor/plugins/particles_editor_plugin.cpp
msgid "No faces!"
-msgstr ""
+msgstr "Keine Flächen!"
#: tools/editor/plugins/particles_editor_plugin.cpp
msgid "Generate AABB"
@@ -3609,7 +3676,7 @@ msgstr ""
#: tools/editor/plugins/particles_editor_plugin.cpp
msgid "Surface"
-msgstr ""
+msgstr "Oberfläche"
#: tools/editor/plugins/particles_editor_plugin.cpp
msgid "Volume"
@@ -3757,17 +3824,14 @@ msgid "Clear UV"
msgstr ""
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Snap"
msgstr ""
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Enable Snap"
msgstr ""
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid"
msgstr ""
@@ -4528,7 +4592,7 @@ msgstr ""
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Type"
-msgstr ""
+msgstr "Transformationstyp"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Pre"
@@ -4603,17 +4667,43 @@ msgid "StyleBox Preview:"
msgstr ""
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid "Texture Region Editor"
+msgid "Snap Mode:"
msgstr ""
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid "Scale Region Editor"
+msgid "<None>"
msgstr ""
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid ""
-"No texture in this node.\n"
-"Set a texture to be able to edit region."
+msgid "Pixel Snap"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Grid Snap"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Auto Slice"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Offset:"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Step:"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Separation:"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Texture Region"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Texture Region Editor"
msgstr ""
#: tools/editor/plugins/theme_editor_plugin.cpp
@@ -5588,7 +5678,7 @@ msgstr ""
#: tools/editor/scene_tree_dock.cpp
msgid "Error instancing scene from %s"
-msgstr ""
+msgstr "Fehler beim Instanzieren der %s Szene"
#: tools/editor/scene_tree_dock.cpp
msgid "Ok"
@@ -5602,11 +5692,12 @@ msgstr ""
#: tools/editor/scene_tree_dock.cpp
msgid "Instance Scene(s)"
-msgstr ""
+msgstr "Instanziere Szene(n)"
#: tools/editor/scene_tree_dock.cpp
+#, fuzzy
msgid "This operation can't be done on the tree root."
-msgstr ""
+msgstr "Das funktioniert nicht beim obersten Node. (tree root)"
#: tools/editor/scene_tree_dock.cpp
msgid "Move Node In Parent"
@@ -5618,27 +5709,27 @@ msgstr ""
#: tools/editor/scene_tree_dock.cpp
msgid "Duplicate Node(s)"
-msgstr ""
+msgstr "Node(s) duplizieren"
#: tools/editor/scene_tree_dock.cpp
msgid "Delete Node(s)?"
-msgstr ""
+msgstr "Node(s) löschen?"
#: tools/editor/scene_tree_dock.cpp
msgid "This operation can't be done without a scene."
-msgstr ""
+msgstr "Ohne eine Szene kann das nicht funktionieren."
#: tools/editor/scene_tree_dock.cpp
msgid "This operation requires a single selected node."
-msgstr ""
+msgstr "Bitte nur ein Node selektieren."
#: tools/editor/scene_tree_dock.cpp
msgid "This operation can't be done on instanced scenes."
-msgstr ""
+msgstr "Das funktioniert nicht bei einer instanzierten Szene."
#: tools/editor/scene_tree_dock.cpp
msgid "Save New Scene As.."
-msgstr ""
+msgstr "Neue Szene speichern als..."
#: tools/editor/scene_tree_dock.cpp
msgid "Makes Sense!"
@@ -5654,11 +5745,11 @@ msgstr ""
#: tools/editor/scene_tree_dock.cpp
msgid "Remove Node(s)"
-msgstr ""
+msgstr "Node(s) entfernen"
#: tools/editor/scene_tree_dock.cpp
msgid "Create Node"
-msgstr ""
+msgstr "Node erstellen"
#: tools/editor/scene_tree_dock.cpp
msgid ""
@@ -5668,19 +5759,23 @@ msgstr ""
#: tools/editor/scene_tree_dock.cpp
msgid "Error saving scene."
-msgstr ""
+msgstr "Szene kann nicht gespeichert werden."
#: tools/editor/scene_tree_dock.cpp
msgid "Error duplicating scene to save it."
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "New Scene Root"
+msgid "Edit Groups"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Inherit Scene"
-msgstr ""
+msgid "Edit Connections"
+msgstr "Connections editieren"
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Delete Node(s)"
+msgstr "Node(s) löschen"
#: tools/editor/scene_tree_dock.cpp
msgid "Add Child Node"
@@ -5692,19 +5787,11 @@ msgstr ""
#: tools/editor/scene_tree_dock.cpp
msgid "Change Type"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Edit Groups"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Edit Connections"
-msgstr ""
+msgstr "Typ ändern"
#: tools/editor/scene_tree_dock.cpp
msgid "Add Script"
-msgstr ""
+msgstr "Script hinzufügen"
#: tools/editor/scene_tree_dock.cpp
msgid "Merge From Scene"
@@ -5715,10 +5802,6 @@ msgid "Save Branch as Scene"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Delete Node(s)"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "Add/Create a New Node"
msgstr ""
diff --git a/tools/translations/es.po b/tools/translations/es.po
index 3f727d18c3..d43e181f46 100644
--- a/tools/translations/es.po
+++ b/tools/translations/es.po
@@ -699,10 +699,6 @@ msgid "Change Anim Loop"
msgstr "Cambiar Loop de Anim"
#: tools/editor/animation_editor.cpp
-msgid "Change Anim Loop Interpolation"
-msgstr "Cambiar Interpolación de Loop de Anim"
-
-#: tools/editor/animation_editor.cpp
msgid "Anim Create Typed Value Key"
msgstr "Crear Clave de Valor Tipado para Anim"
@@ -743,10 +739,6 @@ msgid "Enable/Disable looping in animation."
msgstr "Activar/Desactivar loopeo en la animación."
#: tools/editor/animation_editor.cpp
-msgid "Enable/Disable interpolation when looping animation."
-msgstr "Activar/Desactivar interpolación al loopear animación."
-
-#: tools/editor/animation_editor.cpp
msgid "Add new tracks."
msgstr "Agregar nuevos tracks."
@@ -1011,7 +1003,8 @@ msgid "Method in target Node must be specified!"
msgstr "El método en el Nodo objetivo debe ser especificado!"
#: tools/editor/connections_dialog.cpp
-msgid "Conect To Node:"
+#, fuzzy
+msgid "Connect To Node:"
msgstr "Conectar a Nodo:"
#: tools/editor/connections_dialog.cpp tools/editor/groups_editor.cpp
@@ -1230,6 +1223,51 @@ msgstr "Elegí un Directorio"
msgid "Choose"
msgstr "Elegir"
+#: tools/editor/editor_file_dialog.cpp
+msgid "Go Back"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Go Forward"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Go Up"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Toggle Hidden Files"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+#, fuzzy
+msgid "Toggle Favorite"
+msgstr "Act/Desact. Breakpoint"
+
+#: tools/editor/editor_file_dialog.cpp
+#, fuzzy
+msgid "Toggle Mode"
+msgstr "Act/Desact. Comentario"
+
+#: tools/editor/editor_file_dialog.cpp
+#, fuzzy
+msgid "Focus Path"
+msgstr "Copiar Ruta"
+
+#: tools/editor/editor_file_dialog.cpp
+#, fuzzy
+msgid "Mode Favorite Up"
+msgstr "Favoritos:"
+
+#: tools/editor/editor_file_dialog.cpp
+#, fuzzy
+msgid "Mode Favorite Down"
+msgstr "Bajar"
+
#: tools/editor/editor_file_dialog.cpp tools/editor/scenes_dock.cpp
msgid "Favorites:"
msgstr "Favoritos:"
@@ -1484,16 +1522,39 @@ msgid "There is no defined scene to run."
msgstr "No hay escena definida para ejecutar."
#: tools/editor/editor_node.cpp
+#, fuzzy
+msgid ""
+"No main scene has ever been defined, select one?\n"
+"You can change it later in later in \"Project Settings\" under the "
+"'application' category."
+msgstr ""
+"No se ha definido ninguna escena principal.\n"
+"Seleccioná una de \"Ajustes del Proyecto\" bajo la categoria 'aplicacion'."
+
+#: tools/editor/editor_node.cpp
+#, fuzzy
+msgid ""
+"Selected scene '%s' does not exist, select a valid one?\n"
+"You can change it later in \"Project Settings\" under the 'application' "
+"category."
+msgstr ""
+"No se ha definido ninguna escena principal.\n"
+"Seleccioná una de \"Ajustes del Proyecto\" bajo la categoria 'aplicacion'."
+
+#: tools/editor/editor_node.cpp
+#, fuzzy
msgid ""
-"No main scene has ever been defined.\n"
-"Select one from \"Project Settings\" under the 'application' category."
+"Selected scene '%s' is not a scene file, select a valid one?\n"
+"You can change it later in \"Project Settings\" under the 'application' "
+"category."
msgstr ""
"No se ha definido ninguna escena principal.\n"
"Seleccioná una de \"Ajustes del Proyecto\" bajo la categoria 'aplicacion'."
#: tools/editor/editor_node.cpp
msgid "Current scene was never saved, please save it prior to running."
-msgstr "La escena actual nunca se guardó. Favor de guardarla antes de ejecutar."
+msgstr ""
+"La escena actual nunca se guardó. Favor de guardarla antes de ejecutar."
#: tools/editor/editor_node.cpp
msgid "Could not start subprocess!"
@@ -1581,6 +1642,11 @@ msgid ""
"(Unsaved changes will be lost)"
msgstr "Abrir el Gestor de Proyectos? (Los cambios sin guardar se perderán)"
+#: tools/editor/editor_node.cpp
+#, fuzzy
+msgid "Pick a Manu Scene"
+msgstr "Escena Principal"
+
#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
msgid "Ugh"
msgstr "Ugh"
@@ -1607,18 +1673,14 @@ msgid "Save Layout"
msgstr "Guardar Layout"
#: tools/editor/editor_node.cpp
-msgid "Load Layout"
-msgstr "Cargar Layout"
+msgid "Delete Layout"
+msgstr "Eliminar Layout"
#: tools/editor/editor_node.cpp tools/editor/project_export.cpp
msgid "Default"
msgstr "Por Defecto"
#: tools/editor/editor_node.cpp
-msgid "Delete Layout"
-msgstr "Eliminar Layout"
-
-#: tools/editor/editor_node.cpp
msgid "Switch Scene Tab"
msgstr "Cambiar Pestaña de Escena"
@@ -1648,6 +1710,16 @@ msgid "Distraction Free Mode"
msgstr "Modo Sin Distracciones"
#: tools/editor/editor_node.cpp
+#, fuzzy
+msgid "Next tab"
+msgstr "Siguiente"
+
+#: tools/editor/editor_node.cpp
+#, fuzzy
+msgid "Previous tab"
+msgstr "Directorio Previo"
+
+#: tools/editor/editor_node.cpp
msgid "Operations with scene files."
msgstr "Operaciones con archivos de escena."
@@ -2212,6 +2284,12 @@ msgid "No target font resource!"
msgstr "Sin recurso de tipografías de destino!"
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+msgid ""
+"Invalid file extension.\n"
+"Please use .fnt."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
msgid "Can't load/process source font."
msgstr "No se puede cargar/procesar la tipografía de origen."
@@ -2451,7 +2529,8 @@ msgid "Couldn't load post-import script:"
msgstr "No se pudo cargar el script post importación:"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Invalid/broken script for post-import:"
+#, fuzzy
+msgid "Invalid/broken script for post-import (check console):"
msgstr "Script para post importación inválido/roto:"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
@@ -3119,13 +3198,11 @@ msgstr "Configurar Snap"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid Offset:"
msgstr "Offset de Grilla:"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid Step:"
msgstr "Setp de Grilla:"
@@ -3245,7 +3322,6 @@ msgstr "Usar Snap"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Show Grid"
msgstr "Mostrar la Grilla"
@@ -3498,6 +3574,10 @@ msgid "MeshInstance lacks a Mesh!"
msgstr "A MeshInstance le falta un Mesh!"
#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Mesh has not surface to create outlines from!"
+msgstr ""
+
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Could not create outline!"
msgstr "No se pudo crear el outline!"
@@ -3860,17 +3940,14 @@ msgid "Clear UV"
msgstr "Limpiar UV"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Snap"
msgstr "Esnapear"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Enable Snap"
msgstr "Activar Snap"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid"
msgstr "Grilla"
@@ -4708,20 +4785,51 @@ msgid "StyleBox Preview:"
msgstr "Vista Previa de StyleBox:"
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid "Texture Region Editor"
-msgstr "Editor de Regiones de Texturas"
+#, fuzzy
+msgid "Snap Mode:"
+msgstr "Modo de Ejecución:"
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid "Scale Region Editor"
-msgstr "Editor de Regiones de Escalado"
+msgid "<None>"
+msgstr ""
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid ""
-"No texture in this node.\n"
-"Set a texture to be able to edit region."
+#, fuzzy
+msgid "Pixel Snap"
+msgstr "Usar Pixel Snap"
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+#, fuzzy
+msgid "Grid Snap"
+msgstr "Setp de Grilla:"
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Auto Slice"
msgstr ""
-"Sin textura en este nodo.\n"
-"Asigná una textura para poder editar la región."
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+#, fuzzy
+msgid "Offset:"
+msgstr "Offset de Grilla:"
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+#, fuzzy
+msgid "Step:"
+msgstr "Paso (s):"
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+#, fuzzy
+msgid "Separation:"
+msgstr "Selecciones:"
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+#, fuzzy
+msgid "Texture Region"
+msgstr "Editor de Regiones de Texturas"
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Texture Region Editor"
+msgstr "Editor de Regiones de Texturas"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Can't save theme to file:"
@@ -5018,8 +5126,8 @@ msgstr ""
#: tools/editor/project_export.cpp
msgid "Filters to exclude from export (comma-separated, e.g.: *.json, *.txt):"
msgstr ""
-"Filtros para excluir de la exportación (separados por comas, ej: *.json, "
-"*.txt):"
+"Filtros para excluir de la exportación (separados por comas, ej: *.json, *."
+"txt):"
#: tools/editor/project_export.cpp
msgid "Convert text scenes to binary on export."
@@ -5772,7 +5880,8 @@ msgstr "No se puede operar sobre los nodos de una escena externa!"
#: tools/editor/scene_tree_dock.cpp
msgid "Can't operate on nodes the current scene inherits from!"
-msgstr "No se puede operar sobre los nodos de los cual hereda la escena actual!"
+msgstr ""
+"No se puede operar sobre los nodos de los cual hereda la escena actual!"
#: tools/editor/scene_tree_dock.cpp
msgid "Remove Node(s)"
@@ -5799,12 +5908,16 @@ msgid "Error duplicating scene to save it."
msgstr "Error al duplicar escena para guardarla."
#: tools/editor/scene_tree_dock.cpp
-msgid "New Scene Root"
-msgstr "Nueva Raíz de Escena"
+msgid "Edit Groups"
+msgstr "Editar Grupos"
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Edit Connections"
+msgstr "Editar Conexiones"
#: tools/editor/scene_tree_dock.cpp
-msgid "Inherit Scene"
-msgstr "Heredar Escena"
+msgid "Delete Node(s)"
+msgstr "Eliminar Nodo(s)"
#: tools/editor/scene_tree_dock.cpp
msgid "Add Child Node"
@@ -5819,14 +5932,6 @@ msgid "Change Type"
msgstr "Cambiar Tipo"
#: tools/editor/scene_tree_dock.cpp
-msgid "Edit Groups"
-msgstr "Editar Grupos"
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Edit Connections"
-msgstr "Editar Conexiones"
-
-#: tools/editor/scene_tree_dock.cpp
msgid "Add Script"
msgstr "Agregar Script"
@@ -5839,10 +5944,6 @@ msgid "Save Branch as Scene"
msgstr "Guardar Rama como Escena"
#: tools/editor/scene_tree_dock.cpp
-msgid "Delete Node(s)"
-msgstr "Eliminar Nodo(s)"
-
-#: tools/editor/scene_tree_dock.cpp
msgid "Add/Create a New Node"
msgstr "Agregar/Crear un Nuevo Nodo"
@@ -6235,6 +6336,31 @@ msgstr "Cambiar Largo de Shape Rayo"
msgid "Change Notifier Extents"
msgstr "Cambiar Alcances de Notificadores"
+#~ msgid "Change Anim Loop Interpolation"
+#~ msgstr "Cambiar Interpolación de Loop de Anim"
+
+#~ msgid "Enable/Disable interpolation when looping animation."
+#~ msgstr "Activar/Desactivar interpolación al loopear animación."
+
+#~ msgid "Load Layout"
+#~ msgstr "Cargar Layout"
+
+#~ msgid "Scale Region Editor"
+#~ msgstr "Editor de Regiones de Escalado"
+
+#~ msgid ""
+#~ "No texture in this node.\n"
+#~ "Set a texture to be able to edit region."
+#~ msgstr ""
+#~ "Sin textura en este nodo.\n"
+#~ "Asigná una textura para poder editar la región."
+
+#~ msgid "New Scene Root"
+#~ msgstr "Nueva Raíz de Escena"
+
+#~ msgid "Inherit Scene"
+#~ msgstr "Heredar Escena"
+
#~ msgid "Binds (Extra Params):"
#~ msgstr "Binds (Parametros Extra):"
diff --git a/tools/translations/es_AR.po b/tools/translations/es_AR.po
index e9dc591b98..cca5745688 100644
--- a/tools/translations/es_AR.po
+++ b/tools/translations/es_AR.po
@@ -10,8 +10,8 @@ msgstr ""
"POT-Creation-Date: \n"
"PO-Revision-Date: 2016-06-19 12:39+0000\n"
"Last-Translator: Lisandro Lorea <lisandrolorea@gmail.com>\n"
-"Language-Team: Spanish (Argentina) <https://hosted.weblate.org/projects"
-"/godot-engine/godot/es_AR/>\n"
+"Language-Team: Spanish (Argentina) <https://hosted.weblate.org/projects/"
+"godot-engine/godot/es_AR/>\n"
"Language: es_AR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -699,10 +699,6 @@ msgid "Change Anim Loop"
msgstr "Cambiar Loop de Anim"
#: tools/editor/animation_editor.cpp
-msgid "Change Anim Loop Interpolation"
-msgstr "Cambiar Interpolación de Loop de Anim"
-
-#: tools/editor/animation_editor.cpp
msgid "Anim Create Typed Value Key"
msgstr "Crear Clave de Valor Tipado para Anim"
@@ -743,10 +739,6 @@ msgid "Enable/Disable looping in animation."
msgstr "Activar/Desactivar loopeo en la animación."
#: tools/editor/animation_editor.cpp
-msgid "Enable/Disable interpolation when looping animation."
-msgstr "Activar/Desactivar interpolación al loopear animación."
-
-#: tools/editor/animation_editor.cpp
msgid "Add new tracks."
msgstr "Agregar nuevos tracks."
@@ -1011,7 +1003,8 @@ msgid "Method in target Node must be specified!"
msgstr "El método en el Nodo objetivo debe ser especificado!"
#: tools/editor/connections_dialog.cpp
-msgid "Conect To Node:"
+#, fuzzy
+msgid "Connect To Node:"
msgstr "Conectar a Nodo:"
#: tools/editor/connections_dialog.cpp tools/editor/groups_editor.cpp
@@ -1230,6 +1223,51 @@ msgstr "Elegí un Directorio"
msgid "Choose"
msgstr "Elegir"
+#: tools/editor/editor_file_dialog.cpp
+msgid "Go Back"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Go Forward"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Go Up"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Toggle Hidden Files"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+#, fuzzy
+msgid "Toggle Favorite"
+msgstr "Act/Desact. Breakpoint"
+
+#: tools/editor/editor_file_dialog.cpp
+#, fuzzy
+msgid "Toggle Mode"
+msgstr "Act/Desact. Comentario"
+
+#: tools/editor/editor_file_dialog.cpp
+#, fuzzy
+msgid "Focus Path"
+msgstr "Copiar Ruta"
+
+#: tools/editor/editor_file_dialog.cpp
+#, fuzzy
+msgid "Mode Favorite Up"
+msgstr "Favoritos:"
+
+#: tools/editor/editor_file_dialog.cpp
+#, fuzzy
+msgid "Mode Favorite Down"
+msgstr "Bajar"
+
#: tools/editor/editor_file_dialog.cpp tools/editor/scenes_dock.cpp
msgid "Favorites:"
msgstr "Favoritos:"
@@ -1484,9 +1522,31 @@ msgid "There is no defined scene to run."
msgstr "No hay escena definida para ejecutar."
#: tools/editor/editor_node.cpp
+#, fuzzy
+msgid ""
+"No main scene has ever been defined, select one?\n"
+"You can change it later in later in \"Project Settings\" under the "
+"'application' category."
+msgstr ""
+"No se ha definido ninguna escena principal.\n"
+"Seleccioná una de \"Ajustes del Proyecto\" bajo la categoria 'aplicacion'."
+
+#: tools/editor/editor_node.cpp
+#, fuzzy
msgid ""
-"No main scene has ever been defined.\n"
-"Select one from \"Project Settings\" under the 'application' category."
+"Selected scene '%s' does not exist, select a valid one?\n"
+"You can change it later in \"Project Settings\" under the 'application' "
+"category."
+msgstr ""
+"No se ha definido ninguna escena principal.\n"
+"Seleccioná una de \"Ajustes del Proyecto\" bajo la categoria 'aplicacion'."
+
+#: tools/editor/editor_node.cpp
+#, fuzzy
+msgid ""
+"Selected scene '%s' is not a scene file, select a valid one?\n"
+"You can change it later in \"Project Settings\" under the 'application' "
+"category."
msgstr ""
"No se ha definido ninguna escena principal.\n"
"Seleccioná una de \"Ajustes del Proyecto\" bajo la categoria 'aplicacion'."
@@ -1582,6 +1642,11 @@ msgid ""
"(Unsaved changes will be lost)"
msgstr "Abrir el Gestor de Proyectos? (Los cambios sin guardar se perderán)"
+#: tools/editor/editor_node.cpp
+#, fuzzy
+msgid "Pick a Manu Scene"
+msgstr "Escena Principal"
+
#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
msgid "Ugh"
msgstr "Ugh"
@@ -1608,18 +1673,14 @@ msgid "Save Layout"
msgstr "Guardar Layout"
#: tools/editor/editor_node.cpp
-msgid "Load Layout"
-msgstr "Cargar Layout"
+msgid "Delete Layout"
+msgstr "Eliminar Layout"
#: tools/editor/editor_node.cpp tools/editor/project_export.cpp
msgid "Default"
msgstr "Por Defecto"
#: tools/editor/editor_node.cpp
-msgid "Delete Layout"
-msgstr "Eliminar Layout"
-
-#: tools/editor/editor_node.cpp
msgid "Switch Scene Tab"
msgstr "Cambiar Pestaña de Escena"
@@ -1649,6 +1710,16 @@ msgid "Distraction Free Mode"
msgstr "Modo Sin Distracciones"
#: tools/editor/editor_node.cpp
+#, fuzzy
+msgid "Next tab"
+msgstr "Siguiente"
+
+#: tools/editor/editor_node.cpp
+#, fuzzy
+msgid "Previous tab"
+msgstr "Directorio Previo"
+
+#: tools/editor/editor_node.cpp
msgid "Operations with scene files."
msgstr "Operaciones con archivos de escena."
@@ -2213,6 +2284,12 @@ msgid "No target font resource!"
msgstr "Sin recurso de tipografías de destino!"
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+msgid ""
+"Invalid file extension.\n"
+"Please use .fnt."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
msgid "Can't load/process source font."
msgstr "No se puede cargar/procesar la tipografía de origen."
@@ -2452,7 +2529,8 @@ msgid "Couldn't load post-import script:"
msgstr "No se pudo cargar el script post importación:"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Invalid/broken script for post-import:"
+#, fuzzy
+msgid "Invalid/broken script for post-import (check console):"
msgstr "Script para post importación inválido/roto:"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
@@ -3120,13 +3198,11 @@ msgstr "Configurar Snap"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid Offset:"
msgstr "Offset de Grilla:"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid Step:"
msgstr "Setp de Grilla:"
@@ -3246,7 +3322,6 @@ msgstr "Usar Snap"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Show Grid"
msgstr "Mostrar la Grilla"
@@ -3499,6 +3574,10 @@ msgid "MeshInstance lacks a Mesh!"
msgstr "A MeshInstance le falta un Mesh!"
#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Mesh has not surface to create outlines from!"
+msgstr ""
+
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Could not create outline!"
msgstr "No se pudo crear el outline!"
@@ -3861,17 +3940,14 @@ msgid "Clear UV"
msgstr "Limpiar UV"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Snap"
msgstr "Esnapear"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Enable Snap"
msgstr "Activar Snap"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid"
msgstr "Grilla"
@@ -4709,20 +4785,51 @@ msgid "StyleBox Preview:"
msgstr "Vista Previa de StyleBox:"
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid "Texture Region Editor"
-msgstr "Editor de Regiones de Texturas"
+#, fuzzy
+msgid "Snap Mode:"
+msgstr "Modo de Ejecución:"
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid "Scale Region Editor"
-msgstr "Editor de Regiones de Escalado"
+msgid "<None>"
+msgstr ""
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid ""
-"No texture in this node.\n"
-"Set a texture to be able to edit region."
+#, fuzzy
+msgid "Pixel Snap"
+msgstr "Usar Pixel Snap"
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+#, fuzzy
+msgid "Grid Snap"
+msgstr "Setp de Grilla:"
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Auto Slice"
msgstr ""
-"Sin textura en este nodo.\n"
-"Asigná una textura para poder editar la región."
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+#, fuzzy
+msgid "Offset:"
+msgstr "Offset de Grilla:"
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+#, fuzzy
+msgid "Step:"
+msgstr "Paso (s):"
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+#, fuzzy
+msgid "Separation:"
+msgstr "Selecciones:"
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+#, fuzzy
+msgid "Texture Region"
+msgstr "Editor de Regiones de Texturas"
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Texture Region Editor"
+msgstr "Editor de Regiones de Texturas"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Can't save theme to file:"
@@ -5801,12 +5908,16 @@ msgid "Error duplicating scene to save it."
msgstr "Error al duplicar escena para guardarla."
#: tools/editor/scene_tree_dock.cpp
-msgid "New Scene Root"
-msgstr "Nueva Raíz de Escena"
+msgid "Edit Groups"
+msgstr "Editar Grupos"
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Edit Connections"
+msgstr "Editar Conexiones"
#: tools/editor/scene_tree_dock.cpp
-msgid "Inherit Scene"
-msgstr "Heredar Escena"
+msgid "Delete Node(s)"
+msgstr "Eliminar Nodo(s)"
#: tools/editor/scene_tree_dock.cpp
msgid "Add Child Node"
@@ -5821,14 +5932,6 @@ msgid "Change Type"
msgstr "Cambiar Tipo"
#: tools/editor/scene_tree_dock.cpp
-msgid "Edit Groups"
-msgstr "Editar Grupos"
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Edit Connections"
-msgstr "Editar Conexiones"
-
-#: tools/editor/scene_tree_dock.cpp
msgid "Add Script"
msgstr "Agregar Script"
@@ -5841,10 +5944,6 @@ msgid "Save Branch as Scene"
msgstr "Guardar Rama como Escena"
#: tools/editor/scene_tree_dock.cpp
-msgid "Delete Node(s)"
-msgstr "Eliminar Nodo(s)"
-
-#: tools/editor/scene_tree_dock.cpp
msgid "Add/Create a New Node"
msgstr "Agregar/Crear un Nuevo Nodo"
@@ -6237,6 +6336,31 @@ msgstr "Cambiar Largo de Shape Rayo"
msgid "Change Notifier Extents"
msgstr "Cambiar Alcances de Notificadores"
+#~ msgid "Change Anim Loop Interpolation"
+#~ msgstr "Cambiar Interpolación de Loop de Anim"
+
+#~ msgid "Enable/Disable interpolation when looping animation."
+#~ msgstr "Activar/Desactivar interpolación al loopear animación."
+
+#~ msgid "Load Layout"
+#~ msgstr "Cargar Layout"
+
+#~ msgid "Scale Region Editor"
+#~ msgstr "Editor de Regiones de Escalado"
+
+#~ msgid ""
+#~ "No texture in this node.\n"
+#~ "Set a texture to be able to edit region."
+#~ msgstr ""
+#~ "Sin textura en este nodo.\n"
+#~ "Asigná una textura para poder editar la región."
+
+#~ msgid "New Scene Root"
+#~ msgstr "Nueva Raíz de Escena"
+
+#~ msgid "Inherit Scene"
+#~ msgstr "Heredar Escena"
+
#~ msgid "Binds (Extra Params):"
#~ msgstr "Binds (Parametros Extra):"
diff --git a/tools/translations/fr.po b/tools/translations/fr.po
index 386a7e6170..24a8790ca0 100644
--- a/tools/translations/fr.po
+++ b/tools/translations/fr.po
@@ -2,6 +2,7 @@
# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community
# This file is distributed under the same license as the Godot source code.
#
+# Chenebel Dorian <LoubiTek54@gmail.com>, 2016.
# derderder77 <derderder77380@gmail.com>, 2016.
# finkiki <specialpopol@gmx.fr>, 2016.
# Hugo Locurcio <hugo.l@openmailbox.org>, 2016.
@@ -11,10 +12,10 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2016-06-19 13:17+0000\n"
-"Last-Translator: Rémi Verschelde <akien@godotengine.org>\n"
-"Language-Team: French <https://hosted.weblate.org/projects/godot-"
-"engine/godot/fr/>\n"
+"PO-Revision-Date: 2016-06-25 18:35+0000\n"
+"Last-Translator: Chenebel Dorian <LoubiTek54@gmail.com>\n"
+"Language-Team: French <https://hosted.weblate.org/projects/godot-engine/"
+"godot/fr/>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -24,11 +25,11 @@ msgstr ""
#: modules/gdscript/gd_functions.cpp
msgid "Invalid type argument to convert(), use TYPE_* constants."
-msgstr ""
+msgstr "Argument invalide de type convertir(), utiliser le TYPE * constantes."
#: modules/gdscript/gd_functions.cpp
msgid "Not enough bytes for decoding bytes, or invalid format."
-msgstr ""
+msgstr "Pas assez d'octets pour les octets de décodage, ou format non valide."
#: modules/gdscript/gd_functions.cpp
msgid "step argument is zero!"
@@ -523,43 +524,43 @@ msgstr "Toute la sélection"
#: tools/editor/animation_editor.cpp
msgid "Move Add Key"
-msgstr "Déplacer Ajouter Clé"
+msgstr "Mouvement Ajouter une clé"
#: tools/editor/animation_editor.cpp
msgid "Anim Change Transition"
-msgstr "Anim Modifier Transition"
+msgstr "Animation Changer la transition"
#: tools/editor/animation_editor.cpp
msgid "Anim Change Transform"
-msgstr "Anim Modifier Transform"
+msgstr "Animation Changer la transformation"
#: tools/editor/animation_editor.cpp
msgid "Anim Change Value"
-msgstr "Anim Modifier Valeur"
+msgstr "Animation Changer la valeur"
#: tools/editor/animation_editor.cpp
msgid "Anim Change Call"
-msgstr "Anim Modifier Appel"
+msgstr "Animation Changer l'appel"
#: tools/editor/animation_editor.cpp
msgid "Anim Add Track"
-msgstr "Anim Ajouter Piste"
+msgstr "Animation Ajouter une piste"
#: tools/editor/animation_editor.cpp
msgid "Move Anim Track Up"
-msgstr "Monter Piste Anim"
+msgstr "Monter la piste d'animation"
#: tools/editor/animation_editor.cpp
msgid "Move Anim Track Down"
-msgstr "Descendre Piste Anim"
+msgstr "Descendre la piste d'animation"
#: tools/editor/animation_editor.cpp
msgid "Remove Anim Track"
-msgstr "Supprimer Piste Anim"
+msgstr "Supprimer la piste d'animation"
#: tools/editor/animation_editor.cpp
msgid "Anim Duplicate Keys"
-msgstr "Anim Dupliquer Clés"
+msgstr "Animation Dupliquer les clés"
#: tools/editor/animation_editor.cpp
msgid "Set Transitions to:"
@@ -567,27 +568,27 @@ msgstr "Définir les transitions à :"
#: tools/editor/animation_editor.cpp
msgid "Anim Track Rename"
-msgstr ""
+msgstr "Renommer la piste d'animation"
#: tools/editor/animation_editor.cpp
msgid "Anim Track Change Interpolation"
-msgstr ""
+msgstr "Modifier l'interpolation de la piste d'animation"
#: tools/editor/animation_editor.cpp
msgid "Anim Track Change Value Mode"
-msgstr ""
+msgstr "Modifier le mode de valeur de la piste d'animation"
#: tools/editor/animation_editor.cpp
msgid "Edit Node Curve"
-msgstr ""
+msgstr "Modifier Courbe du Noeud"
#: tools/editor/animation_editor.cpp
msgid "Edit Selection Curve"
-msgstr ""
+msgstr "Modifier la courbe de sélection"
#: tools/editor/animation_editor.cpp
msgid "Anim Delete Keys"
-msgstr ""
+msgstr "Animation Supprimer les clés"
#: tools/editor/animation_editor.cpp
msgid "Continuous"
@@ -603,11 +604,11 @@ msgstr ""
#: tools/editor/animation_editor.cpp
msgid "Anim Add Key"
-msgstr ""
+msgstr "Animation Ajouter une clé"
#: tools/editor/animation_editor.cpp
msgid "Anim Move Keys"
-msgstr ""
+msgstr "Animation Déplacer les clés"
#: tools/editor/animation_editor.cpp
msgid "Scale Selection"
@@ -690,15 +691,15 @@ msgstr "Créer"
#: tools/editor/animation_editor.cpp
msgid "Anim Create & Insert"
-msgstr ""
+msgstr "Animation Créer et insérer"
#: tools/editor/animation_editor.cpp
msgid "Anim Insert Track & Key"
-msgstr ""
+msgstr "Animation Insérer une piste et une clé"
#: tools/editor/animation_editor.cpp
msgid "Anim Insert Key"
-msgstr ""
+msgstr "Animation Inserer une clé"
#: tools/editor/animation_editor.cpp
msgid "Change Anim Len"
@@ -706,20 +707,15 @@ msgstr ""
#: tools/editor/animation_editor.cpp
msgid "Change Anim Loop"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-#, fuzzy
-msgid "Change Anim Loop Interpolation"
-msgstr "Changer l'interpolation de l'animation bouclée"
+msgstr "Changer l'animation de la boucle"
#: tools/editor/animation_editor.cpp
msgid "Anim Create Typed Value Key"
-msgstr ""
+msgstr "Animation Créer une clé pour une valeur typée"
#: tools/editor/animation_editor.cpp
msgid "Anim Insert"
-msgstr ""
+msgstr "Insérer une animation"
#: tools/editor/animation_editor.cpp
msgid "Anim Scale Keys"
@@ -727,7 +723,7 @@ msgstr ""
#: tools/editor/animation_editor.cpp
msgid "Anim Add Call Track"
-msgstr ""
+msgstr "Animation ajouter une piste d'appel"
#: tools/editor/animation_editor.cpp
msgid "Animation zoom."
@@ -747,15 +743,11 @@ msgstr "Pas (s) :"
#: tools/editor/animation_editor.cpp
msgid "Cursor step snap (in seconds)."
-msgstr ""
+msgstr "Pas du curseur (en secondes)."
#: tools/editor/animation_editor.cpp
msgid "Enable/Disable looping in animation."
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Enable/Disable interpolation when looping animation."
-msgstr ""
+msgstr "Activer/Désactiver le bouclage de l'animation."
#: tools/editor/animation_editor.cpp
msgid "Add new tracks."
@@ -883,11 +875,11 @@ msgstr "Support…"
#: tools/editor/asset_library_editor_plugin.cpp
msgid "Official"
-msgstr ""
+msgstr "Officiel"
#: tools/editor/asset_library_editor_plugin.cpp
msgid "Community"
-msgstr ""
+msgstr "Communauté"
#: tools/editor/asset_library_editor_plugin.cpp
msgid "Testing"
@@ -1022,7 +1014,8 @@ msgid "Method in target Node must be specified!"
msgstr "La méthode du nœud cible doit être spécifiée !"
#: tools/editor/connections_dialog.cpp
-msgid "Conect To Node:"
+#, fuzzy
+msgid "Connect To Node:"
msgstr "Connecter au nœud :"
#: tools/editor/connections_dialog.cpp tools/editor/groups_editor.cpp
@@ -1241,6 +1234,51 @@ msgstr "Choisir un répertoire"
msgid "Choose"
msgstr "Choisir"
+#: tools/editor/editor_file_dialog.cpp
+msgid "Go Back"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Go Forward"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Go Up"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Toggle Hidden Files"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+#, fuzzy
+msgid "Toggle Favorite"
+msgstr "Déplacer le favori vers le haut"
+
+#: tools/editor/editor_file_dialog.cpp
+#, fuzzy
+msgid "Toggle Mode"
+msgstr "Commenter/décommenter"
+
+#: tools/editor/editor_file_dialog.cpp
+#, fuzzy
+msgid "Focus Path"
+msgstr "Copier le chemin"
+
+#: tools/editor/editor_file_dialog.cpp
+#, fuzzy
+msgid "Mode Favorite Up"
+msgstr "Déplacer le favori vers le haut"
+
+#: tools/editor/editor_file_dialog.cpp
+#, fuzzy
+msgid "Mode Favorite Down"
+msgstr "Déplacer le favori vers le bas"
+
#: tools/editor/editor_file_dialog.cpp tools/editor/scenes_dock.cpp
msgid "Favorites:"
msgstr "Favoris :"
@@ -1496,8 +1534,23 @@ msgstr "Il n'y a pas de scène définie pour être lancée."
#: tools/editor/editor_node.cpp
msgid ""
-"No main scene has ever been defined.\n"
-"Select one from \"Project Settings\" under the 'application' category."
+"No main scene has ever been defined, select one?\n"
+"You can change it later in later in \"Project Settings\" under the "
+"'application' category."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid ""
+"Selected scene '%s' does not exist, select a valid one?\n"
+"You can change it later in \"Project Settings\" under the 'application' "
+"category."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid ""
+"Selected scene '%s' is not a scene file, select a valid one?\n"
+"You can change it later in \"Project Settings\" under the 'application' "
+"category."
msgstr ""
#: tools/editor/editor_node.cpp
@@ -1595,6 +1648,11 @@ msgstr ""
"Ouvrir le gestionnaire de projets ?\n"
"(les modifications non sauvegardées seront perdues)"
+#: tools/editor/editor_node.cpp
+#, fuzzy
+msgid "Pick a Manu Scene"
+msgstr "Scène principale"
+
#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
msgid "Ugh"
msgstr "Oups"
@@ -1621,18 +1679,14 @@ msgid "Save Layout"
msgstr "Enregistrer la disposition"
#: tools/editor/editor_node.cpp
-msgid "Load Layout"
-msgstr "Charger la disposition"
+msgid "Delete Layout"
+msgstr "Supprimer la disposition"
#: tools/editor/editor_node.cpp tools/editor/project_export.cpp
msgid "Default"
msgstr "Par défaut"
#: tools/editor/editor_node.cpp
-msgid "Delete Layout"
-msgstr "Supprimer la disposition"
-
-#: tools/editor/editor_node.cpp
msgid "Switch Scene Tab"
msgstr "Basculer entre les onglets de scène"
@@ -1662,6 +1716,16 @@ msgid "Distraction Free Mode"
msgstr ""
#: tools/editor/editor_node.cpp
+#, fuzzy
+msgid "Next tab"
+msgstr "Suivant"
+
+#: tools/editor/editor_node.cpp
+#, fuzzy
+msgid "Previous tab"
+msgstr "Répertoire précédent"
+
+#: tools/editor/editor_node.cpp
msgid "Operations with scene files."
msgstr "Opérations avec les fichiers de scène."
@@ -2207,6 +2271,12 @@ msgid "No target font resource!"
msgstr "Pas de ressource de police de destination !"
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+msgid ""
+"Invalid file extension.\n"
+"Please use .fnt."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
msgid "Can't load/process source font."
msgstr "Impossible de charger ou traiter la police source."
@@ -2446,7 +2516,8 @@ msgid "Couldn't load post-import script:"
msgstr "Impossible de charger le script de post-importation :"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Invalid/broken script for post-import:"
+#, fuzzy
+msgid "Invalid/broken script for post-import (check console):"
msgstr "Script de post-importation invalide ou cassé :"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
@@ -3111,13 +3182,11 @@ msgstr "Configurer la grille"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid Offset:"
msgstr "Décalage de la grille :"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid Step:"
msgstr "Pas de la grille :"
@@ -3233,7 +3302,6 @@ msgstr "Aligner sur la grille"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Show Grid"
msgstr "Afficher la grille"
@@ -3486,6 +3554,10 @@ msgid "MeshInstance lacks a Mesh!"
msgstr "Le MeshInstance n'a pas de maillage !"
#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Mesh has not surface to create outlines from!"
+msgstr ""
+
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Could not create outline!"
msgstr "Impossible de créer le contour !"
@@ -3847,17 +3919,14 @@ msgid "Clear UV"
msgstr "Effacer l'UV"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Snap"
msgstr "Aligner"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Enable Snap"
msgstr "Activer l'alignement"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid"
msgstr "Grille"
@@ -4054,7 +4123,7 @@ msgstr "Trouver le suivant"
#: tools/editor/plugins/script_editor_plugin.cpp
#: tools/editor/plugins/shader_editor_plugin.cpp
msgid "Find Previous"
-msgstr ""
+msgstr "trouver précédente"
#: tools/editor/plugins/script_editor_plugin.cpp
#: tools/editor/plugins/shader_editor_plugin.cpp
@@ -4696,19 +4765,52 @@ msgid "StyleBox Preview:"
msgstr "Aperçu de la StyleBox :"
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid "Texture Region Editor"
-msgstr "Éditeur de région de texture"
+#, fuzzy
+msgid "Snap Mode:"
+msgstr "Mode d'exécution :"
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid "Scale Region Editor"
+msgid "<None>"
msgstr ""
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid ""
-"No texture in this node.\n"
-"Set a texture to be able to edit region."
+#, fuzzy
+msgid "Pixel Snap"
+msgstr "Aligner au pixel près"
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+#, fuzzy
+msgid "Grid Snap"
+msgstr "Pas de la grille :"
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Auto Slice"
msgstr ""
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+#, fuzzy
+msgid "Offset:"
+msgstr "Décalage de la grille :"
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+#, fuzzy
+msgid "Step:"
+msgstr "Pas (s) :"
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+#, fuzzy
+msgid "Separation:"
+msgstr "Sections :"
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+#, fuzzy
+msgid "Texture Region"
+msgstr "Éditeur de région de texture"
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Texture Region Editor"
+msgstr "Éditeur de région de texture"
+
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Can't save theme to file:"
msgstr "Impossible d'enregistrer le thème dans le fichier :"
@@ -5783,12 +5885,16 @@ msgid "Error duplicating scene to save it."
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "New Scene Root"
-msgstr "Nouvelle racine de la scène"
+msgid "Edit Groups"
+msgstr "Modifier les groupes"
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Edit Connections"
+msgstr "Modifier les connexions"
#: tools/editor/scene_tree_dock.cpp
-msgid "Inherit Scene"
-msgstr "Hériter la scène"
+msgid "Delete Node(s)"
+msgstr "Supprimer nœud(s)"
#: tools/editor/scene_tree_dock.cpp
msgid "Add Child Node"
@@ -5803,14 +5909,6 @@ msgid "Change Type"
msgstr "Changer le type"
#: tools/editor/scene_tree_dock.cpp
-msgid "Edit Groups"
-msgstr "Modifier les groupes"
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Edit Connections"
-msgstr "Modifier les connexions"
-
-#: tools/editor/scene_tree_dock.cpp
msgid "Add Script"
msgstr "Ajouter un script"
@@ -5823,10 +5921,6 @@ msgid "Save Branch as Scene"
msgstr "Sauvegarder la branche comme scène"
#: tools/editor/scene_tree_dock.cpp
-msgid "Delete Node(s)"
-msgstr "Supprimer nœud(s)"
-
-#: tools/editor/scene_tree_dock.cpp
msgid "Add/Create a New Node"
msgstr "Ajouter un nouveau nœud"
@@ -6218,6 +6312,21 @@ msgstr "Changer la longueur d'une forme en rayon"
msgid "Change Notifier Extents"
msgstr "Changer les extents d'un notificateur"
+#~ msgid "Change Anim Loop Interpolation"
+#~ msgstr "Changer l'interpolation de la boucle d'animation"
+
+#~ msgid "Enable/Disable interpolation when looping animation."
+#~ msgstr "Activer/Désactiver l'interpolation lors de la boucle d'animation."
+
+#~ msgid "Load Layout"
+#~ msgstr "Charger la disposition"
+
+#~ msgid "New Scene Root"
+#~ msgstr "Nouvelle racine de la scène"
+
+#~ msgid "Inherit Scene"
+#~ msgstr "Hériter la scène"
+
#~ msgid "Method In Node:"
#~ msgstr "Méthode dans le nœud :"
@@ -6266,12 +6375,6 @@ msgstr "Changer les extents d'un notificateur"
#~ msgid "Next Time:"
#~ msgstr "Les prochaines fois :"
-#~ msgid "Move Favorite Up"
-#~ msgstr "Déplacer le favori vers le haut"
-
-#~ msgid "Move Favorite Down"
-#~ msgstr "Déplacer le favori vers le bas"
-
#~ msgid "%d frames"
#~ msgstr "%d images"
diff --git a/tools/translations/it.po b/tools/translations/it.po
index dfb0eb522a..f41289656c 100644
--- a/tools/translations/it.po
+++ b/tools/translations/it.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2016-06-19 09:39+0000\n"
+"PO-Revision-Date: 2016-06-22 15:28+0000\n"
"Last-Translator: Dario Bonfanti <bonfi.96@hotmail.it>\n"
"Language-Team: Italian <https://hosted.weblate.org/projects/godot-engine/"
"godot/it/>\n"
@@ -21,45 +21,46 @@ msgstr ""
#: modules/gdscript/gd_functions.cpp
msgid "Invalid type argument to convert(), use TYPE_* constants."
-msgstr ""
+msgstr "Argomento tipo invalido per convert(), usare le costanti TYPE_*."
#: modules/gdscript/gd_functions.cpp
msgid "Not enough bytes for decoding bytes, or invalid format."
msgstr ""
+"Non vi sono abbastanza bytes per i bytes di decodifica, oppure formato "
+"invalido."
#: modules/gdscript/gd_functions.cpp
msgid "step argument is zero!"
-msgstr ""
+msgstr "step argument è zero!"
#: modules/gdscript/gd_functions.cpp
-#, fuzzy
msgid "Not a script with an instance"
-msgstr "Nessuna scena da istanziare selezionata!"
+msgstr "Non è uno script con un istanza"
#: modules/gdscript/gd_functions.cpp
msgid "Not based on a script"
-msgstr ""
+msgstr "Non si basa su uno script"
#: modules/gdscript/gd_functions.cpp
-#, fuzzy
msgid "Not based on a resource file"
-msgstr "Nessuna risorsa font di destinazione!"
+msgstr "Non si basa su un file risorsa"
#: modules/gdscript/gd_functions.cpp
msgid "Invalid instance dictionary format (missing @path)"
-msgstr ""
+msgstr "Istanza invalida formato dizionario (manca @path)"
#: modules/gdscript/gd_functions.cpp
msgid "Invalid instance dictionary format (can't load script at @path)"
msgstr ""
+"Istanza invalida formato dizionario (impossibile caricare script in @path)"
#: modules/gdscript/gd_functions.cpp
msgid "Invalid instance dictionary format (invalid script at @path)"
-msgstr ""
+msgstr "Istanza invalida formato dizionario (script invalido in @path)"
#: modules/gdscript/gd_functions.cpp
msgid "Invalid instance dictionary (invalid subclasses)"
-msgstr ""
+msgstr "Istanza invalida formato dizionario (sottoclassi invalide)"
#: scene/2d/animated_sprite.cpp
msgid ""
@@ -589,18 +590,16 @@ msgid "Anim Delete Keys"
msgstr "Anim Elimina Key"
#: tools/editor/animation_editor.cpp
-#, fuzzy
msgid "Continuous"
-msgstr "Continua"
+msgstr "Continuo"
#: tools/editor/animation_editor.cpp
-#, fuzzy
msgid "Discrete"
-msgstr "Disconnetti"
+msgstr "Discreto"
#: tools/editor/animation_editor.cpp
msgid "Trigger"
-msgstr ""
+msgstr "Attivazione"
#: tools/editor/animation_editor.cpp
msgid "Anim Add Key"
@@ -710,11 +709,6 @@ msgid "Change Anim Loop"
msgstr "Cambia Loop Animazione"
#: tools/editor/animation_editor.cpp
-#, fuzzy
-msgid "Change Anim Loop Interpolation"
-msgstr "Cambia Loop Animazione"
-
-#: tools/editor/animation_editor.cpp
msgid "Anim Create Typed Value Key"
msgstr "Anim Crea Typed Value Key"
@@ -755,11 +749,6 @@ msgid "Enable/Disable looping in animation."
msgstr "Attiva/Disattiva loop animazione."
#: tools/editor/animation_editor.cpp
-#, fuzzy
-msgid "Enable/Disable interpolation when looping animation."
-msgstr "Attiva/Disattiva loop animazione."
-
-#: tools/editor/animation_editor.cpp
msgid "Add new tracks."
msgstr "Aggiungi nuova traccia."
@@ -1025,8 +1014,8 @@ msgstr "Il Metodo nel nodo di target deve essere specificato!"
#: tools/editor/connections_dialog.cpp
#, fuzzy
-msgid "Conect To Node:"
-msgstr "Collega A Nodo:"
+msgid "Connect To Node:"
+msgstr "Connetti A Nodo:"
#: tools/editor/connections_dialog.cpp tools/editor/groups_editor.cpp
#: tools/editor/plugins/item_list_editor_plugin.cpp
@@ -1044,17 +1033,15 @@ msgstr "Rimuovi"
#: tools/editor/connections_dialog.cpp
msgid "Add Extra Call Argument:"
-msgstr ""
+msgstr "Aggiungi Argomento Extra di Chiamata:"
#: tools/editor/connections_dialog.cpp
-#, fuzzy
msgid "Extra Call Arguments:"
-msgstr "Argomenti:"
+msgstr "Argomenti Chiamata Extra:"
#: tools/editor/connections_dialog.cpp
-#, fuzzy
msgid "Path to Node:"
-msgstr "Percorso Al Nodo:"
+msgstr "Percorso a Nodo:"
#: tools/editor/connections_dialog.cpp
msgid "Make Function"
@@ -1077,9 +1064,8 @@ msgid "Connect '%s' to '%s'"
msgstr "Connetti '%s' a '%s'"
#: tools/editor/connections_dialog.cpp
-#, fuzzy
msgid "Connecting Signal:"
-msgstr "Connessioni:"
+msgstr "Connessione Segnali:"
#: tools/editor/connections_dialog.cpp
msgid "Create Subscription"
@@ -1248,6 +1234,51 @@ msgstr "Scegli una Directory"
msgid "Choose"
msgstr "Scegli"
+#: tools/editor/editor_file_dialog.cpp
+msgid "Go Back"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Go Forward"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Go Up"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Toggle Hidden Files"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+#, fuzzy
+msgid "Toggle Favorite"
+msgstr "Sposta Preferito Su"
+
+#: tools/editor/editor_file_dialog.cpp
+#, fuzzy
+msgid "Toggle Mode"
+msgstr "Cambia a Commento"
+
+#: tools/editor/editor_file_dialog.cpp
+#, fuzzy
+msgid "Focus Path"
+msgstr "Copia Percorso"
+
+#: tools/editor/editor_file_dialog.cpp
+#, fuzzy
+msgid "Mode Favorite Up"
+msgstr "Sposta Preferito Su"
+
+#: tools/editor/editor_file_dialog.cpp
+#, fuzzy
+msgid "Mode Favorite Down"
+msgstr "Sposta Preferito Giù"
+
#: tools/editor/editor_file_dialog.cpp tools/editor/scenes_dock.cpp
msgid "Favorites:"
msgstr "Preferiti:"
@@ -1502,9 +1533,33 @@ msgid "There is no defined scene to run."
msgstr "Non c'è nessuna scena definita da eseguire."
#: tools/editor/editor_node.cpp
+#, fuzzy
+msgid ""
+"No main scene has ever been defined, select one?\n"
+"You can change it later in later in \"Project Settings\" under the "
+"'application' category."
+msgstr ""
+"Nessuna scena principale è mai stata definita.\n"
+"Selezionane una da \"Impostazioni Progetto\" sotto la categoria "
+"'applicazioni'."
+
+#: tools/editor/editor_node.cpp
+#, fuzzy
msgid ""
-"No main scene has ever been defined.\n"
-"Select one from \"Project Settings\" under the 'application' category."
+"Selected scene '%s' does not exist, select a valid one?\n"
+"You can change it later in \"Project Settings\" under the 'application' "
+"category."
+msgstr ""
+"Nessuna scena principale è mai stata definita.\n"
+"Selezionane una da \"Impostazioni Progetto\" sotto la categoria "
+"'applicazioni'."
+
+#: tools/editor/editor_node.cpp
+#, fuzzy
+msgid ""
+"Selected scene '%s' is not a scene file, select a valid one?\n"
+"You can change it later in \"Project Settings\" under the 'application' "
+"category."
msgstr ""
"Nessuna scena principale è mai stata definita.\n"
"Selezionane una da \"Impostazioni Progetto\" sotto la categoria "
@@ -1604,6 +1659,11 @@ msgstr ""
"Aprire la Gestione Progetti?\n"
"(I cambiamenti non salvati saranno persi)"
+#: tools/editor/editor_node.cpp
+#, fuzzy
+msgid "Pick a Manu Scene"
+msgstr "Scena Principale"
+
#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
msgid "Ugh"
msgstr "Ugh"
@@ -1630,18 +1690,14 @@ msgid "Save Layout"
msgstr "Salva layout"
#: tools/editor/editor_node.cpp
-msgid "Load Layout"
-msgstr "Carica Layout"
+msgid "Delete Layout"
+msgstr "Elimina Layout"
#: tools/editor/editor_node.cpp tools/editor/project_export.cpp
msgid "Default"
msgstr "Default"
#: tools/editor/editor_node.cpp
-msgid "Delete Layout"
-msgstr "Elimina Layout"
-
-#: tools/editor/editor_node.cpp
msgid "Switch Scene Tab"
msgstr "Cambia Tab di Scena"
@@ -1664,11 +1720,21 @@ msgstr "Vai alla scena precedentemente aperta."
#: tools/editor/editor_node.cpp
msgid "Fullscreen Mode"
-msgstr ""
+msgstr "Modalità Fullscreen"
#: tools/editor/editor_node.cpp
msgid "Distraction Free Mode"
-msgstr ""
+msgstr "Modalità Senza Distrazioni"
+
+#: tools/editor/editor_node.cpp
+#, fuzzy
+msgid "Next tab"
+msgstr "Successivo"
+
+#: tools/editor/editor_node.cpp
+#, fuzzy
+msgid "Previous tab"
+msgstr "Directory Precedente"
#: tools/editor/editor_node.cpp
msgid "Operations with scene files."
@@ -2235,6 +2301,12 @@ msgid "No target font resource!"
msgstr "Nessuna risorsa font di destinazione!"
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+msgid ""
+"Invalid file extension.\n"
+"Please use .fnt."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
msgid "Can't load/process source font."
msgstr "Impossibile caricare/processare il font sorgente."
@@ -2473,7 +2545,8 @@ msgid "Couldn't load post-import script:"
msgstr "Impossibile caricare lo script di post-import:"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Invalid/broken script for post-import:"
+#, fuzzy
+msgid "Invalid/broken script for post-import (check console):"
msgstr "Script di post-import invalido/non funzionante:"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
@@ -2858,9 +2931,8 @@ msgid "Create new animation in player."
msgstr "Crea nuova animazione nel player."
#: tools/editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Load animation from disk."
-msgstr "Carica un'animazione da disco."
+msgstr "Carica animazione da disco."
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Load an animation from disk."
@@ -2871,9 +2943,8 @@ msgid "Save the current animation"
msgstr "Salva l'animazione corrente"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Save As"
-msgstr "Salva Come.."
+msgstr "Salva Come"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Display list of animations in player."
@@ -3141,13 +3212,11 @@ msgstr "Configura Snap"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid Offset:"
msgstr "Offset Griglia:"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid Step:"
msgstr "Step Griglia:"
@@ -3267,7 +3336,6 @@ msgstr "Usa lo Snap"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Show Grid"
msgstr "Mostra Griglia"
@@ -3520,6 +3588,10 @@ msgid "MeshInstance lacks a Mesh!"
msgstr "MeshInstance manca di una Mesh!"
#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Mesh has not surface to create outlines from!"
+msgstr ""
+
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Could not create outline!"
msgstr "Impossiblile creare outline!"
@@ -3883,17 +3955,14 @@ msgid "Clear UV"
msgstr "Cancella UV"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Snap"
msgstr "Snap"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Enable Snap"
msgstr "Abilita Snap"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid"
msgstr "Griglia"
@@ -4073,9 +4142,8 @@ msgid "Auto Indent"
msgstr "Auto Indenta"
#: tools/editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Soft Reload Script"
-msgstr "Ricarica Tool Script"
+msgstr "Ricarica Script Soft"
#: tools/editor/plugins/script_editor_plugin.cpp
#: tools/editor/plugins/shader_editor_plugin.cpp
@@ -4167,9 +4235,8 @@ msgid "Help"
msgstr "Aiuto"
#: tools/editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Contextual Help"
-msgstr "Contestuale"
+msgstr "Aiuto Contestuale"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Tutorials"
@@ -4733,20 +4800,51 @@ msgid "StyleBox Preview:"
msgstr "Anteprima StyleBox:"
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid "Texture Region Editor"
-msgstr "Editor Regioni Texture"
+#, fuzzy
+msgid "Snap Mode:"
+msgstr "Modalità esecuzione:"
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid "Scale Region Editor"
-msgstr "Scala Editor Regioni"
+msgid "<None>"
+msgstr ""
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid ""
-"No texture in this node.\n"
-"Set a texture to be able to edit region."
+#, fuzzy
+msgid "Pixel Snap"
+msgstr "Usa Snap a Pixel"
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+#, fuzzy
+msgid "Grid Snap"
+msgstr "Step Griglia:"
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Auto Slice"
msgstr ""
-"Nessuna texture in questo nodo.\n"
-"Imposta una texture per poter modificare la regione."
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+#, fuzzy
+msgid "Offset:"
+msgstr "Offset Griglia:"
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+#, fuzzy
+msgid "Step:"
+msgstr "Step (s):"
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+#, fuzzy
+msgid "Separation:"
+msgstr "Sezioni:"
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+#, fuzzy
+msgid "Texture Region"
+msgstr "Editor Regioni Texture"
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Texture Region Editor"
+msgstr "Editor Regioni Texture"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Can't save theme to file:"
@@ -4774,14 +4872,12 @@ msgid "Remove Class Items"
msgstr "Rimuovi Elementi di Classe"
#: tools/editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Create Empty Template"
-msgstr "Crea Template"
+msgstr "Crea Template Vuota"
#: tools/editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Create Empty Editor Template"
-msgstr "Crea Template"
+msgstr "Crea Template Editor Vuota"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "CheckBox Radio1"
@@ -4867,28 +4963,24 @@ msgid "Erase TileMap"
msgstr "Cancella TileMap"
#: tools/editor/plugins/tile_map_editor_plugin.cpp
-#, fuzzy
msgid "Erase selection"
-msgstr "Elimina Selezione"
+msgstr "Cancella selezione"
#: tools/editor/plugins/tile_map_editor_plugin.cpp
-#, fuzzy
msgid "Find tile"
-msgstr "Trova Successivo"
+msgstr "Trova tile"
#: tools/editor/plugins/tile_map_editor_plugin.cpp
msgid "Transpose"
msgstr "Trasponi"
#: tools/editor/plugins/tile_map_editor_plugin.cpp
-#, fuzzy
msgid "Mirror X"
-msgstr "Specchia X (A)"
+msgstr "Specchia X"
#: tools/editor/plugins/tile_map_editor_plugin.cpp
-#, fuzzy
msgid "Mirror Y"
-msgstr "Specchia Y (A)"
+msgstr "Specchia Y"
#: tools/editor/plugins/tile_map_editor_plugin.cpp
msgid "Bucket"
@@ -5829,12 +5921,16 @@ msgid "Error duplicating scene to save it."
msgstr "Errore duplicando la scena per salvarla."
#: tools/editor/scene_tree_dock.cpp
-msgid "New Scene Root"
-msgstr "Nuova Scena di Root"
+msgid "Edit Groups"
+msgstr "Modifica Gruppi"
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Edit Connections"
+msgstr "Modifica Connessioni"
#: tools/editor/scene_tree_dock.cpp
-msgid "Inherit Scene"
-msgstr "Eredita Scena"
+msgid "Delete Node(s)"
+msgstr "Elimina Nodo(i)"
#: tools/editor/scene_tree_dock.cpp
msgid "Add Child Node"
@@ -5849,14 +5945,6 @@ msgid "Change Type"
msgstr "Cambia Tipo"
#: tools/editor/scene_tree_dock.cpp
-msgid "Edit Groups"
-msgstr "Modifica Gruppi"
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Edit Connections"
-msgstr "Modifica Connessioni"
-
-#: tools/editor/scene_tree_dock.cpp
msgid "Add Script"
msgstr "Aggiungi Script"
@@ -5869,10 +5957,6 @@ msgid "Save Branch as Scene"
msgstr "Salva Ramo come Scena"
#: tools/editor/scene_tree_dock.cpp
-msgid "Delete Node(s)"
-msgstr "Elimina Nodo(i)"
-
-#: tools/editor/scene_tree_dock.cpp
msgid "Add/Create a New Node"
msgstr "Aggiungi/Crea un Nuovo Nodo"
@@ -5926,7 +6010,7 @@ msgstr "Carica come placeholder"
#: tools/editor/scene_tree_editor.cpp
msgid "Discard Instancing"
-msgstr ""
+msgstr "Scarta Istanziamento"
#: tools/editor/scene_tree_editor.cpp
msgid "Open in Editor"
@@ -6266,6 +6350,31 @@ msgstr "Cambia lunghezza Ray Shape"
msgid "Change Notifier Extents"
msgstr "Cambia Estensione di Notifier"
+#~ msgid "Change Anim Loop Interpolation"
+#~ msgstr "Cambia Interpolazione Loop Animazione"
+
+#~ msgid "Enable/Disable interpolation when looping animation."
+#~ msgstr "Attiva/Disattiva interpolazione durante loop animazione."
+
+#~ msgid "Load Layout"
+#~ msgstr "Carica Layout"
+
+#~ msgid "Scale Region Editor"
+#~ msgstr "Scala Editor Regioni"
+
+#~ msgid ""
+#~ "No texture in this node.\n"
+#~ "Set a texture to be able to edit region."
+#~ msgstr ""
+#~ "Nessuna texture in questo nodo.\n"
+#~ "Imposta una texture per poter modificare la regione."
+
+#~ msgid "New Scene Root"
+#~ msgstr "Nuova Scena di Root"
+
+#~ msgid "Inherit Scene"
+#~ msgstr "Eredita Scena"
+
#~ msgid "Binds (Extra Params):"
#~ msgstr "Lega (Parametri Extra):"
@@ -6305,12 +6414,6 @@ msgstr "Cambia Estensione di Notifier"
#~ msgid "Plugin List:"
#~ msgstr "Lista Plugin:"
-#~ msgid "Move Favorite Up"
-#~ msgstr "Sposta Preferito Su"
-
-#~ msgid "Move Favorite Down"
-#~ msgstr "Sposta Preferito Giù"
-
#~ msgid "%d frames"
#~ msgstr "%d frames"
diff --git a/tools/translations/ja.po b/tools/translations/ja.po
new file mode 100644
index 0000000000..4b6a1c8a28
--- /dev/null
+++ b/tools/translations/ja.po
@@ -0,0 +1,6182 @@
+# Japanese translation of the Godot Engine editor
+# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community
+# This file is distributed under the same license as the Godot source code.
+#
+# hopping tappy (たっぴさん) <hopping.tappy@gmail.com>, 2016.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Godot Engine editor\n"
+"PO-Revision-Date: 2016-06-20 19:30+0000\n"
+"Last-Translator: hopping tappy (たっぴさん) <hopping.tappy@gmail.com>\n"
+"Language-Team: Japanese <https://hosted.weblate.org/projects/godot-engine/"
+"godot/ja/>\n"
+"Language: ja\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8-bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: Weblate 2.7-dev\n"
+
+#: modules/gdscript/gd_functions.cpp
+#, fuzzy
+msgid "Invalid type argument to convert(), use TYPE_* constants."
+msgstr "Convert()に対して無効な型の引数です。TYPE_* 定数を使ってください。"
+
+#: modules/gdscript/gd_functions.cpp
+#, fuzzy
+msgid "Not enough bytes for decoding bytes, or invalid format."
+msgstr "デコードバイトのバイトは十分ではありません。または無効な形式です。"
+
+#: modules/gdscript/gd_functions.cpp
+msgid "step argument is zero!"
+msgstr "ステップ引数はゼロです!"
+
+#: modules/gdscript/gd_functions.cpp
+msgid "Not a script with an instance"
+msgstr ""
+
+#: modules/gdscript/gd_functions.cpp
+msgid "Not based on a script"
+msgstr ""
+
+#: modules/gdscript/gd_functions.cpp
+msgid "Not based on a resource file"
+msgstr ""
+
+#: modules/gdscript/gd_functions.cpp
+#, fuzzy
+msgid "Invalid instance dictionary format (missing @path)"
+msgstr "無効なインスタンス辞書形式です ( @path が見つかりません)"
+
+#: modules/gdscript/gd_functions.cpp
+#, fuzzy
+msgid "Invalid instance dictionary format (can't load script at @path)"
+msgstr "無効なインスタンス辞書形式です (@path でスクリプトを読み込めません)"
+
+#: modules/gdscript/gd_functions.cpp
+#, fuzzy
+msgid "Invalid instance dictionary format (invalid script at @path)"
+msgstr "無効なインスタンス辞書形式です (@path で無効なスクリプト)"
+
+#: modules/gdscript/gd_functions.cpp
+#, fuzzy
+msgid "Invalid instance dictionary (invalid subclasses)"
+msgstr "無効なインスタンス辞書です (無効なサブクラス)"
+
+#: scene/2d/animated_sprite.cpp
+msgid ""
+"A SpriteFrames resource must be created or set in the 'Frames' property in "
+"order for AnimatedSprite to display frames."
+msgstr ""
+
+#: scene/2d/canvas_modulate.cpp
+msgid ""
+"Only one visible CanvasModulate is allowed per scene (or set of instanced "
+"scenes). The first created one will work, while the rest will be ignored."
+msgstr ""
+
+#: scene/2d/collision_polygon_2d.cpp
+msgid ""
+"CollisionPolygon2D only serves to provide a collision shape to a "
+"CollisionObject2D derived node. Please only use it as a child of Area2D, "
+"StaticBody2D, RigidBody2D, KinematicBody2D, etc. to give them a shape."
+msgstr ""
+
+#: scene/2d/collision_polygon_2d.cpp
+msgid "An empty CollisionPolygon2D has no effect on collision."
+msgstr ""
+
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"CollisionShape2D only serves to provide a collision shape to a "
+"CollisionObject2D derived node. Please only use it as a child of Area2D, "
+"StaticBody2D, RigidBody2D, KinematicBody2D, etc. to give them a shape."
+msgstr ""
+
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"A shape must be provided for CollisionShape2D to function. Please create a "
+"shape resource for it!"
+msgstr ""
+
+#: scene/2d/light_2d.cpp
+msgid ""
+"A texture with the shape of the light must be supplied to the 'texture' "
+"property."
+msgstr ""
+
+#: scene/2d/light_occluder_2d.cpp
+msgid ""
+"An occluder polygon must be set (or drawn) for this occluder to take effect."
+msgstr ""
+
+#: scene/2d/light_occluder_2d.cpp
+msgid "The occluder polygon for this occluder is empty. Please draw a polygon!"
+msgstr ""
+
+#: scene/2d/navigation_polygon.cpp
+msgid ""
+"A NavigationPolygon resource must be set or created for this node to work. "
+"Please set a property or draw a polygon."
+msgstr ""
+
+#: scene/2d/navigation_polygon.cpp
+msgid ""
+"NavigationPolygonInstance must be a child or grandchild to a Navigation2D "
+"node. It only provides navigation data."
+msgstr ""
+
+#: scene/2d/parallax_layer.cpp
+msgid ""
+"ParallaxLayer node only works when set as child of a ParallaxBackground node."
+msgstr ""
+
+#: scene/2d/particles_2d.cpp
+msgid "Path property must point to a valid Particles2D node to work."
+msgstr ""
+
+#: scene/2d/path_2d.cpp
+msgid "PathFollow2D only works when set as a child of a Path2D node."
+msgstr ""
+
+#: scene/2d/remote_transform_2d.cpp
+msgid "Path property must point to a valid Node2D node to work."
+msgstr ""
+
+#: scene/2d/sample_player_2d.cpp scene/audio/sample_player.cpp
+msgid ""
+"A SampleLibrary resource must be created or set in the 'samples' property in "
+"order for SamplePlayer to play sound."
+msgstr ""
+
+#: scene/2d/sprite.cpp
+msgid ""
+"Path property must point to a valid Viewport node to work. Such Viewport "
+"must be set to 'render target' mode."
+msgstr ""
+
+#: scene/2d/sprite.cpp
+msgid ""
+"The Viewport set in the path property must be set as 'render target' in "
+"order for this sprite to work."
+msgstr ""
+
+#: scene/2d/visibility_notifier_2d.cpp
+msgid ""
+"VisibilityEnable2D works best when used with the edited scene root directly "
+"as parent."
+msgstr ""
+
+#: scene/3d/body_shape.cpp
+msgid ""
+"CollisionShape only serves to provide a collision shape to a CollisionObject "
+"derived node. Please only use it as a child of Area, StaticBody, RigidBody, "
+"KinematicBody, etc. to give them a shape."
+msgstr ""
+
+#: scene/3d/body_shape.cpp
+msgid ""
+"A shape must be provided for CollisionShape to function. Please create a "
+"shape resource for it!"
+msgstr ""
+
+#: scene/3d/collision_polygon.cpp
+msgid ""
+"CollisionPolygon only serves to provide a collision shape to a "
+"CollisionObject derived node. Please only use it as a child of Area, "
+"StaticBody, RigidBody, KinematicBody, etc. to give them a shape."
+msgstr ""
+
+#: scene/3d/collision_polygon.cpp
+msgid "An empty CollisionPolygon has no effect on collision."
+msgstr ""
+
+#: scene/3d/navigation_mesh.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: scene/3d/navigation_mesh.cpp
+msgid ""
+"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
+"It only provides navigation data."
+msgstr ""
+
+#: scene/3d/scenario_fx.cpp
+msgid ""
+"Only one WorldEnvironment is allowed per scene (or set of instanced scenes)."
+msgstr ""
+
+#: scene/3d/spatial_sample_player.cpp
+msgid ""
+"A SampleLibrary resource must be created or set in the 'samples' property in "
+"order for SpatialSamplePlayer to play sound."
+msgstr ""
+
+#: scene/3d/sprite_3d.cpp
+msgid ""
+"A SpriteFrames resource must be created or set in the 'Frames' property in "
+"order for AnimatedSprite3D to display frames."
+msgstr ""
+
+#: scene/gui/dialogs.cpp tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Cancel"
+msgstr "キャンセル"
+
+#: scene/gui/dialogs.cpp
+msgid "OK"
+msgstr "決定"
+
+#: scene/gui/dialogs.cpp
+msgid "Alert!"
+msgstr "警告!"
+
+#: scene/gui/dialogs.cpp
+msgid "Please Confirm..."
+msgstr "確認してください。"
+
+#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
+msgid "File Exists, Overwrite?"
+msgstr "ファイルが既に存在します。上書きしますか?"
+
+#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
+msgid "All Recognized"
+msgstr ""
+
+#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
+msgid "All Files (*)"
+msgstr ""
+
+#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
+#: tools/editor/editor_help.cpp tools/editor/editor_node.cpp
+#: tools/editor/plugins/script_editor_plugin.cpp tools/editor/quick_open.cpp
+#: tools/editor/scenes_dock.cpp
+msgid "Open"
+msgstr "開く"
+
+#: scene/gui/file_dialog.cpp
+msgid "Open a File"
+msgstr "ファイルを開く"
+
+#: scene/gui/file_dialog.cpp
+msgid "Open File(s)"
+msgstr ""
+
+#: scene/gui/file_dialog.cpp
+msgid "Open a Directory"
+msgstr "ディレクトリを開く"
+
+#: scene/gui/file_dialog.cpp
+msgid "Open a File or Directory"
+msgstr "ファイルまたはディレクトリを開く"
+
+#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Save"
+msgstr "保存"
+
+#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
+msgid "Save a File"
+msgstr "ファイルを保存"
+
+#: scene/gui/file_dialog.cpp tools/editor/editor_dir_dialog.cpp
+#: tools/editor/editor_file_dialog.cpp
+msgid "Create Folder"
+msgstr ""
+
+#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+#: tools/editor/project_settings.cpp tools/editor/script_create_dialog.cpp
+msgid "Path:"
+msgstr ""
+
+#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
+msgid "Directories & Files:"
+msgstr ""
+
+#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
+#: tools/editor/script_editor_debugger.cpp
+msgid "File:"
+msgstr "ファイル:"
+
+#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
+msgid "Filter:"
+msgstr "フィルター:"
+
+#: scene/gui/file_dialog.cpp tools/editor/editor_dir_dialog.cpp
+#: tools/editor/editor_file_dialog.cpp tools/editor/editor_plugin_settings.cpp
+#: tools/editor/plugins/theme_editor_plugin.cpp
+msgid "Name:"
+msgstr "名前:"
+
+#: scene/gui/file_dialog.cpp tools/editor/editor_dir_dialog.cpp
+#: tools/editor/editor_file_dialog.cpp
+msgid "Could not create folder."
+msgstr "フォルダを作成できませんでした。"
+
+#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
+msgid "Must use a valid extension."
+msgstr "有効な拡張子を使用する必要があります。"
+
+#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
+#: tools/editor/settings_config_dialog.cpp
+msgid "Shift+"
+msgstr "Shift+"
+
+#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
+#: tools/editor/settings_config_dialog.cpp
+msgid "Alt+"
+msgstr "Alt+"
+
+#: scene/gui/input_action.cpp
+msgid "Ctrl+"
+msgstr "Ctrl+"
+
+#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
+#: tools/editor/settings_config_dialog.cpp
+msgid "Meta+"
+msgstr "Meta+"
+
+#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
+msgid "Device"
+msgstr "デバイス"
+
+#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
+msgid "Button"
+msgstr "ボタン"
+
+#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
+msgid "Left Button."
+msgstr "左クリック"
+
+#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
+msgid "Right Button."
+msgstr "右クリック"
+
+#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
+msgid "Middle Button."
+msgstr "中クリック"
+
+#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
+msgid "Wheel Up."
+msgstr "ホイール上"
+
+#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
+msgid "Wheel Down."
+msgstr "ホイール下"
+
+#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
+msgid "Axis"
+msgstr "アナログ"
+
+#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+#: tools/editor/plugins/script_editor_plugin.cpp
+#: tools/editor/plugins/shader_editor_plugin.cpp
+msgid "Cut"
+msgstr "切り取り"
+
+#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+#: tools/editor/plugins/script_editor_plugin.cpp
+#: tools/editor/plugins/shader_editor_plugin.cpp
+#: tools/editor/property_editor.cpp tools/editor/resources_dock.cpp
+msgid "Copy"
+msgstr "コピー"
+
+#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
+#: tools/editor/plugins/script_editor_plugin.cpp
+#: tools/editor/plugins/shader_editor_plugin.cpp
+#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
+#: tools/editor/property_editor.cpp tools/editor/resources_dock.cpp
+msgid "Paste"
+msgstr "貼り付け"
+
+#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+#: tools/editor/plugins/script_editor_plugin.cpp
+#: tools/editor/plugins/shader_editor_plugin.cpp
+#: tools/editor/project_export.cpp
+msgid "Select All"
+msgstr "すべて選択"
+
+#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp tools/editor/editor_log.cpp
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+#: tools/editor/plugins/rich_text_editor_plugin.cpp
+#: tools/editor/property_editor.cpp tools/editor/script_editor_debugger.cpp
+msgid "Clear"
+msgstr "削除"
+
+#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp tools/editor/editor_node.cpp
+#: tools/editor/plugins/script_editor_plugin.cpp
+#: tools/editor/plugins/shader_editor_plugin.cpp
+msgid "Undo"
+msgstr "元に戻す"
+
+#: scene/gui/popup.cpp
+msgid ""
+"Popups will hide by default unless you call popup() or any of the popup*() "
+"functions. Making them visible for editing is fine though, but they will "
+"hide upon running."
+msgstr ""
+
+#: scene/main/viewport.cpp
+msgid ""
+"This viewport is not set as render target. If you intend for it to display "
+"its contents directly to the screen, make it a child of a Control so it can "
+"obtain a size. Otherwise, make it a RenderTarget and assign its internal "
+"texture to some node for display."
+msgstr ""
+
+#: scene/resources/dynamic_font.cpp
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+msgid "Error initializing FreeType."
+msgstr ""
+
+#: scene/resources/dynamic_font.cpp
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+msgid "Unknown font format."
+msgstr "不明なフォント形式です。"
+
+#: scene/resources/dynamic_font.cpp
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+msgid "Error loading font."
+msgstr ""
+
+#: scene/resources/dynamic_font.cpp
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+msgid "Invalid font size."
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Disabled"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "All Selection"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Move Add Key"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Anim Change Transition"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Anim Change Transform"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Anim Change Value"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Anim Change Call"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Anim Add Track"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Move Anim Track Up"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Move Anim Track Down"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Remove Anim Track"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Anim Duplicate Keys"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Set Transitions to:"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Anim Track Rename"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Anim Track Change Interpolation"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Anim Track Change Value Mode"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Edit Node Curve"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Edit Selection Curve"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Anim Delete Keys"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Continuous"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Discrete"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Trigger"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Anim Add Key"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Anim Move Keys"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Scale Selection"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Scale From Cursor"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+#: tools/editor/plugins/tile_map_editor_plugin.cpp
+msgid "Duplicate Selection"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Duplicate Transposed"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Goto Next Step"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Goto Prev Step"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp tools/editor/property_editor.cpp
+msgid "Linear"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+#: tools/editor/plugins/theme_editor_plugin.cpp
+msgid "Constant"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "In"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Out"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "In-Out"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Out-In"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Transitions"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Optimize Animation"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Clean-Up Animation"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Create NEW track for %s and insert key?"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Create %d NEW tracks and insert keys?"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp tools/editor/create_dialog.cpp
+#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
+#: tools/editor/plugins/particles_editor_plugin.cpp
+#: tools/editor/project_manager.cpp tools/editor/script_create_dialog.cpp
+msgid "Create"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Anim Create & Insert"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Anim Insert Track & Key"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Anim Insert Key"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Change Anim Len"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Change Anim Loop"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Anim Create Typed Value Key"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Anim Insert"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Anim Scale Keys"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Anim Add Call Track"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Animation zoom."
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Length (s):"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Animation length (in seconds)."
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Step (s):"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Cursor step snap (in seconds)."
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Enable/Disable looping in animation."
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Add new tracks."
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Move current track up."
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Move current track down."
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Remove selected track."
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Track tools"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Enable editing of individual keys by clicking them."
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Anim. Optimizer"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Max. Linear Error:"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Max. Angular Error:"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Max Optimizable Angle:"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Optimize"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Key"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Transition"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Scale Ratio:"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Call Functions in Which Node?"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Remove invalid keys"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Remove unresolved and empty tracks"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Clean-up all animations"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Clean-Up Animation(s) (NO UNDO!)"
+msgstr ""
+
+#: tools/editor/animation_editor.cpp
+msgid "Clean-Up"
+msgstr ""
+
+#: tools/editor/array_property_edit.cpp
+msgid "Resize Array"
+msgstr ""
+
+#: tools/editor/array_property_edit.cpp
+msgid "Change Array Value Type"
+msgstr ""
+
+#: tools/editor/array_property_edit.cpp
+msgid "Change Array Value"
+msgstr ""
+
+#: tools/editor/asset_library_editor_plugin.cpp tools/editor/create_dialog.cpp
+#: tools/editor/editor_help.cpp tools/editor/editor_node.cpp
+#: tools/editor/plugins/script_editor_plugin.cpp tools/editor/quick_open.cpp
+#: tools/editor/settings_config_dialog.cpp
+msgid "Search:"
+msgstr ""
+
+#: tools/editor/asset_library_editor_plugin.cpp
+msgid "Sort:"
+msgstr ""
+
+#: tools/editor/asset_library_editor_plugin.cpp
+msgid "Reverse"
+msgstr ""
+
+#: tools/editor/asset_library_editor_plugin.cpp
+#: tools/editor/project_settings.cpp
+msgid "Category:"
+msgstr ""
+
+#: tools/editor/asset_library_editor_plugin.cpp
+msgid "All"
+msgstr ""
+
+#: tools/editor/asset_library_editor_plugin.cpp
+msgid "Site:"
+msgstr ""
+
+#: tools/editor/asset_library_editor_plugin.cpp
+msgid "Support.."
+msgstr ""
+
+#: tools/editor/asset_library_editor_plugin.cpp
+msgid "Official"
+msgstr ""
+
+#: tools/editor/asset_library_editor_plugin.cpp
+msgid "Community"
+msgstr ""
+
+#: tools/editor/asset_library_editor_plugin.cpp
+msgid "Testing"
+msgstr ""
+
+#: tools/editor/asset_library_editor_plugin.cpp
+msgid "Assets ZIP File"
+msgstr ""
+
+#: tools/editor/call_dialog.cpp
+msgid "Method List For '%s':"
+msgstr ""
+
+#: tools/editor/call_dialog.cpp
+msgid "Call"
+msgstr ""
+
+#: tools/editor/call_dialog.cpp tools/editor/connections_dialog.cpp
+#: tools/editor/import_settings.cpp
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
+#: tools/editor/plugins/sample_library_editor_plugin.cpp
+#: tools/editor/plugins/script_editor_plugin.cpp
+#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
+#: tools/editor/project_settings.cpp tools/editor/property_editor.cpp
+#: tools/editor/run_settings_dialog.cpp tools/editor/settings_config_dialog.cpp
+msgid "Close"
+msgstr ""
+
+#: tools/editor/call_dialog.cpp
+msgid "Method List:"
+msgstr ""
+
+#: tools/editor/call_dialog.cpp
+msgid "Arguments:"
+msgstr ""
+
+#: tools/editor/call_dialog.cpp
+msgid "Return:"
+msgstr ""
+
+#: tools/editor/code_editor.cpp
+msgid "Go to Line"
+msgstr ""
+
+#: tools/editor/code_editor.cpp
+msgid "Line Number:"
+msgstr ""
+
+#: tools/editor/code_editor.cpp
+msgid "No Matches"
+msgstr ""
+
+#: tools/editor/code_editor.cpp
+msgid "Replaced %d Ocurrence(s)."
+msgstr ""
+
+#: tools/editor/code_editor.cpp
+msgid "Replace"
+msgstr ""
+
+#: tools/editor/code_editor.cpp
+msgid "Replace All"
+msgstr ""
+
+#: tools/editor/code_editor.cpp
+msgid "Match Case"
+msgstr ""
+
+#: tools/editor/code_editor.cpp
+msgid "Whole Words"
+msgstr ""
+
+#: tools/editor/code_editor.cpp
+msgid "Selection Only"
+msgstr ""
+
+#: tools/editor/code_editor.cpp tools/editor/editor_help.cpp
+#: tools/editor/plugins/script_editor_plugin.cpp
+#: tools/editor/plugins/shader_editor_plugin.cpp
+#: tools/editor/project_settings.cpp
+msgid "Search"
+msgstr ""
+
+#: tools/editor/code_editor.cpp tools/editor/editor_help.cpp
+msgid "Find"
+msgstr ""
+
+#: tools/editor/code_editor.cpp
+msgid "Next"
+msgstr ""
+
+#: tools/editor/code_editor.cpp
+msgid "Replaced %d ocurrence(s)."
+msgstr ""
+
+#: tools/editor/code_editor.cpp
+msgid "Not found!"
+msgstr ""
+
+#: tools/editor/code_editor.cpp
+msgid "Replace By"
+msgstr ""
+
+#: tools/editor/code_editor.cpp
+msgid "Case Sensitive"
+msgstr ""
+
+#: tools/editor/code_editor.cpp
+msgid "Backwards"
+msgstr ""
+
+#: tools/editor/code_editor.cpp
+msgid "Prompt On Replace"
+msgstr ""
+
+#: tools/editor/code_editor.cpp
+msgid "Skip"
+msgstr ""
+
+#: tools/editor/code_editor.cpp tools/editor/script_editor_debugger.cpp
+msgid "Line:"
+msgstr ""
+
+#: tools/editor/code_editor.cpp
+msgid "Col:"
+msgstr ""
+
+#: tools/editor/connections_dialog.cpp
+msgid "Method in target Node must be specified!"
+msgstr ""
+
+#: tools/editor/connections_dialog.cpp
+msgid "Connect To Node:"
+msgstr ""
+
+#: tools/editor/connections_dialog.cpp tools/editor/groups_editor.cpp
+#: tools/editor/plugins/item_list_editor_plugin.cpp
+#: tools/editor/plugins/theme_editor_plugin.cpp
+#: tools/editor/project_settings.cpp
+msgid "Add"
+msgstr ""
+
+#: tools/editor/connections_dialog.cpp tools/editor/dependency_editor.cpp
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+#: tools/editor/plugins/theme_editor_plugin.cpp
+#: tools/editor/project_manager.cpp
+msgid "Remove"
+msgstr ""
+
+#: tools/editor/connections_dialog.cpp
+msgid "Add Extra Call Argument:"
+msgstr ""
+
+#: tools/editor/connections_dialog.cpp
+msgid "Extra Call Arguments:"
+msgstr ""
+
+#: tools/editor/connections_dialog.cpp
+msgid "Path to Node:"
+msgstr ""
+
+#: tools/editor/connections_dialog.cpp
+msgid "Make Function"
+msgstr ""
+
+#: tools/editor/connections_dialog.cpp
+msgid "Deferred"
+msgstr ""
+
+#: tools/editor/connections_dialog.cpp
+msgid "Oneshot"
+msgstr ""
+
+#: tools/editor/connections_dialog.cpp
+msgid "Connect"
+msgstr ""
+
+#: tools/editor/connections_dialog.cpp
+msgid "Connect '%s' to '%s'"
+msgstr ""
+
+#: tools/editor/connections_dialog.cpp
+msgid "Connecting Signal:"
+msgstr ""
+
+#: tools/editor/connections_dialog.cpp
+msgid "Create Subscription"
+msgstr ""
+
+#: tools/editor/connections_dialog.cpp
+msgid "Connect.."
+msgstr ""
+
+#: tools/editor/connections_dialog.cpp
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Disconnect"
+msgstr ""
+
+#: tools/editor/connections_dialog.cpp tools/editor/node_dock.cpp
+msgid "Signals"
+msgstr ""
+
+#: tools/editor/create_dialog.cpp
+msgid "Create New"
+msgstr ""
+
+#: tools/editor/create_dialog.cpp tools/editor/editor_help.cpp
+#: tools/editor/plugins/script_editor_plugin.cpp tools/editor/quick_open.cpp
+msgid "Matches:"
+msgstr ""
+
+#: tools/editor/dependency_editor.cpp
+msgid "Search Replacement For:"
+msgstr ""
+
+#: tools/editor/dependency_editor.cpp
+msgid "Dependencies For:"
+msgstr ""
+
+#: tools/editor/dependency_editor.cpp
+msgid ""
+"Scene '%s' is currently being edited.\n"
+"Changes will not take effect unless reloaded."
+msgstr ""
+
+#: tools/editor/dependency_editor.cpp
+msgid ""
+"Resource '%s' is in use.\n"
+"Changes will take effect when reloaded."
+msgstr ""
+
+#: tools/editor/dependency_editor.cpp
+msgid "Dependencies"
+msgstr ""
+
+#: tools/editor/dependency_editor.cpp
+msgid "Resource"
+msgstr ""
+
+#: tools/editor/dependency_editor.cpp tools/editor/project_manager.cpp
+#: tools/editor/project_settings.cpp
+msgid "Path"
+msgstr ""
+
+#: tools/editor/dependency_editor.cpp
+msgid "Dependencies:"
+msgstr ""
+
+#: tools/editor/dependency_editor.cpp
+msgid "Fix Broken"
+msgstr ""
+
+#: tools/editor/dependency_editor.cpp
+msgid "Dependency Editor"
+msgstr ""
+
+#: tools/editor/dependency_editor.cpp
+msgid "Search Replacement Resource:"
+msgstr ""
+
+#: tools/editor/dependency_editor.cpp
+msgid "Owners Of:"
+msgstr ""
+
+#: tools/editor/dependency_editor.cpp
+msgid ""
+"The files being removed are required by other resources in order for them to "
+"work.\n"
+"Remove them anyway? (no undo)"
+msgstr ""
+
+#: tools/editor/dependency_editor.cpp
+msgid "Remove selected files from the project? (no undo)"
+msgstr ""
+
+#: tools/editor/dependency_editor.cpp
+msgid "Error loading:"
+msgstr ""
+
+#: tools/editor/dependency_editor.cpp
+msgid "Scene failed to load due to missing dependencies:"
+msgstr ""
+
+#: tools/editor/dependency_editor.cpp
+msgid "Open Anyway"
+msgstr ""
+
+#: tools/editor/dependency_editor.cpp
+msgid "Which action should be taken?"
+msgstr ""
+
+#: tools/editor/dependency_editor.cpp
+msgid "Fix Dependencies"
+msgstr ""
+
+#: tools/editor/dependency_editor.cpp
+msgid "Errors loading!"
+msgstr ""
+
+#: tools/editor/dependency_editor.cpp
+msgid "Permanently delete %d item(s)? (No undo!)"
+msgstr ""
+
+#: tools/editor/dependency_editor.cpp
+msgid "Owns"
+msgstr ""
+
+#: tools/editor/dependency_editor.cpp
+msgid "Resources Without Explicit Ownership:"
+msgstr ""
+
+#: tools/editor/dependency_editor.cpp tools/editor/editor_node.cpp
+msgid "Orphan Resource Explorer"
+msgstr ""
+
+#: tools/editor/dependency_editor.cpp
+msgid "Delete selected files?"
+msgstr ""
+
+#: tools/editor/dependency_editor.cpp tools/editor/editor_node.cpp
+#: tools/editor/plugins/item_list_editor_plugin.cpp
+#: tools/editor/scenes_dock.cpp
+msgid "Delete"
+msgstr ""
+
+#: tools/editor/editor_data.cpp
+msgid "Updating Scene"
+msgstr ""
+
+#: tools/editor/editor_data.cpp
+msgid "Storing local changes.."
+msgstr ""
+
+#: tools/editor/editor_data.cpp
+msgid "Updating scene.."
+msgstr ""
+
+#: tools/editor/editor_dir_dialog.cpp
+msgid "Choose a Directory"
+msgstr ""
+
+#: tools/editor/editor_dir_dialog.cpp
+msgid "Choose"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Go Back"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Go Forward"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Go Up"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Toggle Hidden Files"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Toggle Favorite"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Toggle Mode"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Focus Path"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Mode Favorite Up"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Mode Favorite Down"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp tools/editor/scenes_dock.cpp
+msgid "Favorites:"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Recent:"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Preview:"
+msgstr ""
+
+#: tools/editor/editor_file_system.cpp
+msgid "Cannot go into subdir:"
+msgstr ""
+
+#: tools/editor/editor_file_system.cpp
+msgid "ScanSources"
+msgstr ""
+
+#: tools/editor/editor_help.cpp
+msgid "Search Classes"
+msgstr ""
+
+#: tools/editor/editor_help.cpp
+msgid "Class List:"
+msgstr ""
+
+#: tools/editor/editor_help.cpp tools/editor/property_editor.cpp
+msgid "Class:"
+msgstr ""
+
+#: tools/editor/editor_help.cpp tools/editor/scene_tree_editor.cpp
+#: tools/editor/script_create_dialog.cpp
+msgid "Inherits:"
+msgstr ""
+
+#: tools/editor/editor_help.cpp
+msgid "Inherited by:"
+msgstr ""
+
+#: tools/editor/editor_help.cpp
+msgid "Brief Description:"
+msgstr ""
+
+#: tools/editor/editor_help.cpp
+msgid "Public Methods:"
+msgstr ""
+
+#: tools/editor/editor_help.cpp
+msgid "Members:"
+msgstr ""
+
+#: tools/editor/editor_help.cpp
+msgid "GUI Theme Items:"
+msgstr ""
+
+#: tools/editor/editor_help.cpp
+msgid "Signals:"
+msgstr ""
+
+#: tools/editor/editor_help.cpp
+msgid "Constants:"
+msgstr ""
+
+#: tools/editor/editor_help.cpp tools/editor/script_editor_debugger.cpp
+msgid "Description:"
+msgstr ""
+
+#: tools/editor/editor_help.cpp
+msgid "Method Description:"
+msgstr ""
+
+#: tools/editor/editor_help.cpp
+msgid "Search Text"
+msgstr ""
+
+#: tools/editor/editor_import_export.cpp
+msgid "Added:"
+msgstr ""
+
+#: tools/editor/editor_import_export.cpp
+msgid "Removed:"
+msgstr ""
+
+#: tools/editor/editor_import_export.cpp tools/editor/project_export.cpp
+msgid "Error saving atlas:"
+msgstr ""
+
+#: tools/editor/editor_import_export.cpp
+msgid "Could not save atlas subtexture:"
+msgstr ""
+
+#: tools/editor/editor_import_export.cpp
+msgid "Storing File:"
+msgstr ""
+
+#: tools/editor/editor_import_export.cpp
+msgid "Packing"
+msgstr ""
+
+#: tools/editor/editor_import_export.cpp
+msgid "Exporting for %s"
+msgstr ""
+
+#: tools/editor/editor_import_export.cpp
+msgid "Setting Up.."
+msgstr ""
+
+#: tools/editor/editor_log.cpp
+msgid " Output:"
+msgstr ""
+
+#: tools/editor/editor_node.cpp tools/editor/editor_reimport_dialog.cpp
+msgid "Re-Importing"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Importing:"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Node From Scene"
+msgstr ""
+
+#: tools/editor/editor_node.cpp tools/editor/scenes_dock.cpp
+msgid "Re-Import.."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+#: tools/editor/resources_dock.cpp
+msgid "Error saving resource!"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+#: tools/editor/resources_dock.cpp
+msgid "Save Resource As.."
+msgstr ""
+
+#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+msgid "I see.."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Can't open file for writing:"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Requested file format unknown:"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Error while saving."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Saving Scene"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Analyzing"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Creating Thumbnail"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid ""
+"Couldn't save scene. Likely dependencies (instances) couldn't be satisfied."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Failed to load resource."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Can't load MeshLibrary for merging!"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Error saving MeshLibrary!"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Can't load TileSet for merging!"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Error saving TileSet!"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Can't open export templates zip."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Loading Export Templates"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Error trying to save layout!"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Default editor layout overridden."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Layout name not found!"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Restored default layout to base settings."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Copy Params"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Paste Params"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
+msgid "Paste Resource"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Copy Resource"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Make Built-In"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Make Sub-Resources Unique"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Open in Help"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "There is no defined scene to run."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid ""
+"No main scene has ever been defined, select one?\n"
+"You can change it later in later in \"Project Settings\" under the "
+"'application' category."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid ""
+"Selected scene '%s' does not exist, select a valid one?\n"
+"You can change it later in \"Project Settings\" under the 'application' "
+"category."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid ""
+"Selected scene '%s' is not a scene file, select a valid one?\n"
+"You can change it later in \"Project Settings\" under the 'application' "
+"category."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Current scene was never saved, please save it prior to running."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Could not start subprocess!"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Open Scene"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Open Base Scene"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Quick Open Scene.."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Quick Open Script.."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Yes"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Close scene? (Unsaved changes will be lost)"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Save Scene As.."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "This scene has never been saved. Save before running?"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Please save the scene first."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Save Translatable Strings"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Export Mesh Library"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Export Tile Set"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Quit"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Exit the editor?"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Current scene not saved. Open anyway?"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Can't reload a scene that was never saved."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Revert"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "This action cannot be undone. Revert anyway?"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Quick Run Scene.."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid ""
+"Open Project Manager? \n"
+"(Unsaved changes will be lost)"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Pick a Manu Scene"
+msgstr ""
+
+#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+msgid "Ugh"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid ""
+"Error loading scene, it must be inside the project path. Use 'Import' to "
+"open the scene, then save it inside the project path."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Error loading scene."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Scene '%s' has broken dependencies:"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Save Layout"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Delete Layout"
+msgstr ""
+
+#: tools/editor/editor_node.cpp tools/editor/project_export.cpp
+msgid "Default"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Switch Scene Tab"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "%d more file(s)"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "%d more file(s) or folder(s)"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Scene"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Go to previously opened scene."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Fullscreen Mode"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Distraction Free Mode"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Next tab"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Previous tab"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Operations with scene files."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "New Scene"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "New Inherited Scene.."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Open Scene.."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Save Scene"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Close Scene"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Close Goto Prev. Scene"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Open Recent"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Quick Filter Files.."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Convert To.."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Translatable Strings.."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "MeshLibrary.."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "TileSet.."
+msgstr ""
+
+#: tools/editor/editor_node.cpp tools/editor/plugins/script_editor_plugin.cpp
+#: tools/editor/plugins/shader_editor_plugin.cpp
+msgid "Redo"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Run Script"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Project Settings"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Revert Scene"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Quit to Project List"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Import assets to the project."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+#: tools/editor/io_plugins/editor_mesh_import_plugin.cpp
+#: tools/editor/io_plugins/editor_sample_import_plugin.cpp
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+#: tools/editor/project_manager.cpp
+msgid "Import"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Miscellaneous project or scene-wide tools."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Tools"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Export the project to many platforms."
+msgstr ""
+
+#: tools/editor/editor_node.cpp tools/editor/project_export.cpp
+msgid "Export"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Play the project."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/sample_library_editor_plugin.cpp
+msgid "Play"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Pause the scene"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Pause Scene"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Stop the scene."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/sample_library_editor_plugin.cpp
+msgid "Stop"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Play the edited scene."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Play Scene"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Play custom scene"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Debug options"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Deploy with Remote Debug"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid ""
+"When exporting or deploying, the resulting executable will attempt to "
+"connect to the IP of this computer in order to be debugged."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Small Deploy with Network FS"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid ""
+"When this option is enabled, export or deploy will produce a minimal "
+"executable.\n"
+"The filesystem will be provided from the project by the editor over the "
+"network.\n"
+"On Android, deploy will use the USB cable for faster performance. This "
+"option speeds up testing for games with a large footprint."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Visible Collision Shapes"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid ""
+"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
+"running game if this option is turned on."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Visible Navigation"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid ""
+"Navigation meshes and polygons will be visible on the running game if this "
+"option is turned on."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Sync Scene Changes"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid ""
+"When this option is turned on, any changes made to the scene in the editor "
+"will be replicated in the running game.\n"
+"When used remotely on a device, this is more efficient with network "
+"filesystem."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Sync Script Changes"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid ""
+"When this option is turned on, any script that is saved will be reloaded on "
+"the running game.\n"
+"When used remotely on a device, this is more efficient with network "
+"filesystem."
+msgstr ""
+
+#: tools/editor/editor_node.cpp tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Settings"
+msgstr ""
+
+#: tools/editor/editor_node.cpp tools/editor/settings_config_dialog.cpp
+msgid "Editor Settings"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Editor Layout"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Install Export Templates"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "About"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Alerts when an external resource has changed."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Spins when the editor window repaints!"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Update Always"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Update Changes"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Inspector"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Create a new resource in memory and edit it."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Load an existing resource from disk and edit it."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Save the currently edited resource."
+msgstr ""
+
+#: tools/editor/editor_node.cpp tools/editor/plugins/script_editor_plugin.cpp
+msgid "Save As.."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Go to the previous edited object in history."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Go to the next edited object in history."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "History of recently edited objects."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Object properties."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "FileSystem"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Output"
+msgstr ""
+
+#: tools/editor/editor_node.cpp tools/editor/editor_reimport_dialog.cpp
+#: tools/editor/import_settings.cpp
+msgid "Re-Import"
+msgstr ""
+
+#: tools/editor/editor_node.cpp tools/editor/editor_plugin_settings.cpp
+msgid "Update"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Thanks from the Godot community!"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Thanks!"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Import Templates From ZIP File"
+msgstr ""
+
+#: tools/editor/editor_node.cpp tools/editor/project_export.cpp
+msgid "Export Project"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Export Library"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Merge With Existing"
+msgstr ""
+
+#: tools/editor/editor_node.cpp tools/editor/project_export.cpp
+msgid "Password:"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Open & Run a Script"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Load Errors"
+msgstr ""
+
+#: tools/editor/editor_plugin_settings.cpp
+msgid "Installed Plugins:"
+msgstr ""
+
+#: tools/editor/editor_plugin_settings.cpp
+msgid "Version:"
+msgstr ""
+
+#: tools/editor/editor_plugin_settings.cpp
+msgid "Author:"
+msgstr ""
+
+#: tools/editor/editor_plugin_settings.cpp
+msgid "Status:"
+msgstr ""
+
+#: tools/editor/editor_profiler.cpp
+msgid "Stop Profiling"
+msgstr ""
+
+#: tools/editor/editor_profiler.cpp
+msgid "Start Profiling"
+msgstr ""
+
+#: tools/editor/editor_profiler.cpp
+msgid "Measure:"
+msgstr ""
+
+#: tools/editor/editor_profiler.cpp
+msgid "Frame Time (sec)"
+msgstr ""
+
+#: tools/editor/editor_profiler.cpp
+msgid "Average Time (sec)"
+msgstr ""
+
+#: tools/editor/editor_profiler.cpp
+msgid "Frame %"
+msgstr ""
+
+#: tools/editor/editor_profiler.cpp
+msgid "Fixed Frame %"
+msgstr ""
+
+#: tools/editor/editor_profiler.cpp tools/editor/script_editor_debugger.cpp
+msgid "Time:"
+msgstr ""
+
+#: tools/editor/editor_profiler.cpp
+msgid "Inclusive"
+msgstr ""
+
+#: tools/editor/editor_profiler.cpp
+msgid "Self"
+msgstr ""
+
+#: tools/editor/editor_profiler.cpp
+msgid "Frame #:"
+msgstr ""
+
+#: tools/editor/editor_reimport_dialog.cpp
+msgid "Please wait for scan to complete."
+msgstr ""
+
+#: tools/editor/editor_reimport_dialog.cpp
+msgid "Current scene must be saved to re-import."
+msgstr ""
+
+#: tools/editor/editor_reimport_dialog.cpp
+msgid "Save & Re-Import"
+msgstr ""
+
+#: tools/editor/editor_reimport_dialog.cpp
+msgid "Re-Import Changed Resources"
+msgstr ""
+
+#: tools/editor/editor_run_script.cpp
+msgid "Write your logic in the _run() method."
+msgstr ""
+
+#: tools/editor/editor_run_script.cpp
+msgid "There is an edited scene already."
+msgstr ""
+
+#: tools/editor/editor_run_script.cpp
+msgid "Couldn't instance script:"
+msgstr ""
+
+#: tools/editor/editor_run_script.cpp
+msgid "Did you forget the 'tool' keyword?"
+msgstr ""
+
+#: tools/editor/editor_run_script.cpp
+msgid "Couldn't run script:"
+msgstr ""
+
+#: tools/editor/editor_run_script.cpp
+msgid "Did you forget the '_run' method?"
+msgstr ""
+
+#: tools/editor/editor_settings.cpp
+msgid "Default (Same as Editor)"
+msgstr ""
+
+#: tools/editor/editor_sub_scene.cpp
+msgid "Select Node(s) to Import"
+msgstr ""
+
+#: tools/editor/editor_sub_scene.cpp
+msgid "Scene Path:"
+msgstr ""
+
+#: tools/editor/editor_sub_scene.cpp
+msgid "Import From Node:"
+msgstr ""
+
+#: tools/editor/file_type_cache.cpp
+msgid "Can't open file_type_cache.cch for writing, not saving file type cache!"
+msgstr ""
+
+#: tools/editor/groups_editor.cpp
+msgid "Add to Group"
+msgstr ""
+
+#: tools/editor/groups_editor.cpp
+msgid "Remove from Group"
+msgstr ""
+
+#: tools/editor/import_settings.cpp
+msgid "Imported Resources"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
+msgid "No bit masks to import!"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
+#: tools/editor/io_plugins/editor_sample_import_plugin.cpp
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Target path is empty."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
+#: tools/editor/io_plugins/editor_sample_import_plugin.cpp
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Target path must be a complete resource path."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
+#: tools/editor/io_plugins/editor_sample_import_plugin.cpp
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Target path must exist."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
+#: tools/editor/io_plugins/editor_mesh_import_plugin.cpp
+#: tools/editor/io_plugins/editor_sample_import_plugin.cpp
+msgid "Save path is empty!"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
+msgid "Import BitMasks"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Source Texture(s):"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
+#: tools/editor/io_plugins/editor_mesh_import_plugin.cpp
+#: tools/editor/io_plugins/editor_sample_import_plugin.cpp
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+msgid "Target Path:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+#: tools/editor/io_plugins/editor_sample_import_plugin.cpp
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+msgid "Accept"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
+msgid "Bit Mask"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+msgid "No source font file!"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+msgid "No target font resource!"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+msgid ""
+"Invalid file extension.\n"
+"Please use .fnt."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+msgid "Can't load/process source font."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+msgid "Couldn't save font."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+msgid "Source Font:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+msgid "Source Font Size:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+msgid "Dest Resource:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+msgid "The quick brown fox jumps over the lazy dog."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+msgid "Test:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+#: tools/editor/io_plugins/editor_mesh_import_plugin.cpp
+#: tools/editor/io_plugins/editor_sample_import_plugin.cpp
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Options:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+msgid "Font Import"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+msgid ""
+"This file is already a Godot font file, please supply a BMFont type file "
+"instead."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+msgid "Failed opening as BMFont file."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+msgid "Invalid font custom source."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+#: tools/editor/plugins/theme_editor_plugin.cpp
+msgid "Font"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_mesh_import_plugin.cpp
+msgid "No meshes to import!"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_mesh_import_plugin.cpp
+msgid "Single Mesh Import"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_mesh_import_plugin.cpp
+msgid "Source Mesh(es):"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_mesh_import_plugin.cpp
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Mesh"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_mesh_import_plugin.cpp
+msgid "Surface %d"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_sample_import_plugin.cpp
+msgid "No samples to import!"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_sample_import_plugin.cpp
+msgid "Import Audio Samples"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_sample_import_plugin.cpp
+msgid "Source Sample(s):"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_sample_import_plugin.cpp
+msgid "Audio Sample"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "New Clip"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Animation Options"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Flags"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Bake FPS:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Optimizer"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Max Linear Error"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Max Angular Error"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Max Angle"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Clips"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+#: tools/editor/plugins/sample_library_editor_plugin.cpp
+#: tools/editor/project_manager.cpp tools/editor/project_settings.cpp
+msgid "Name"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Start(s)"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "End(s)"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Loop"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Filters"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Source path is empty."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Couldn't load post-import script."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Invalid/broken script for post-import."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Error importing scene."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Import 3D Scene"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Source Scene:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Same as Target Scene"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Shared"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Target Texture Folder:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Post-Process Script:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Custom Root Node Type:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Auto"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "The Following Files are Missing:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Import Anyway"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Import & Open"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Edited scene has not been saved, open imported scene anyway?"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+#: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp
+msgid "Import Scene"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Importing Scene.."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Running Custom Script.."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Couldn't load post-import script:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Invalid/broken script for post-import (check console):"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Error running post-import script:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Import Image:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Can't import a file over itself:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Couldn't localize path: %s (already local)"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Saving.."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "3D Scene Animation"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Uncompressed"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Compress Lossless (PNG)"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Compress Lossy (WebP)"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Compress (VRAM)"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Texture Format"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Texture Compression Quality (WebP):"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Texture Options"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Please specify some files!"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "At least one file needed for Atlas."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Error importing:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Only one file is required for large texture."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Max Texture Size:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Import Textures for Atlas (2D)"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Cell Size:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Large Texture"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Import Large Textures (2D)"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Source Texture"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Base Atlas Texture"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Source Texture(s)"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Import Textures for 2D"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Import Textures for 3D"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Import Textures"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "2D Texture"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "3D Texture"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Atlas Texture"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid ""
+"NOTICE: Importing 2D textures is not mandatory. Just copy png/jpg files to "
+"the project."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Crop empty space."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Texture"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Import Large Texture"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Load Source Image"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Slicing"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Inserting"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Saving"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Couldn't save large texture:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Build Atlas For:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Loading Image:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Couldn't load image:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Converting Images"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Cropping Images"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Blitting Images"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Couldn't save atlas image:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
+msgid "Couldn't save converted texture:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+msgid "Invalid source!"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+msgid "Invalid translation source!"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+msgid "Column"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+#: tools/editor/script_create_dialog.cpp
+msgid "Language"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+msgid "No items to import!"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+msgid "No target path!"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+msgid "Import Translations"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+msgid "Couldn't import!"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+msgid "Import Translation"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+msgid "Source CSV:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+msgid "Ignore First Row"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+msgid "Compress"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+msgid "Add to Project (engine.cfg)"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+msgid "Import Languages:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+msgid "Translation"
+msgstr ""
+
+#: tools/editor/multi_node_edit.cpp
+msgid "MultiNode Set"
+msgstr ""
+
+#: tools/editor/node_dock.cpp
+msgid "Node"
+msgstr ""
+
+#: tools/editor/node_dock.cpp
+msgid "Groups"
+msgstr ""
+
+#: tools/editor/node_dock.cpp
+msgid "Select a Node to edit Signals and Groups."
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Toggle Autoplay"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "New Animation Name:"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "New Anim"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Change Animation Name:"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Remove Animation"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "ERROR: Invalid animation name!"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "ERROR: Animation name already exists!"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Rename Animation"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Add Animation"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Blend Next Changed"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Change Blend Time"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Load Animation"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Duplicate Animation"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "ERROR: No animation to copy!"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "ERROR: No animation resource on clipboard!"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Pasted Animation"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Paste Animation"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "ERROR: No animation to edit!"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Play selected animation backwards from current pos. (A)"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Play selected animation backwards from end. (Shift+A)"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Stop animation playback. (S)"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Play selected animation from start. (Shift+D)"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Play selected animation from current pos. (D)"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Animation position (in seconds)."
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Scale animation playback globally for the node."
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Create new animation in player."
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Load animation from disk."
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Load an animation from disk."
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Save the current animation"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Save As"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Display list of animations in player."
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Autoplay on Load"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Edit Target Blend Times"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Animation Tools"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Copy Animation"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Create New Animation"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Animation Name:"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
+#: tools/editor/plugins/sample_library_editor_plugin.cpp
+#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
+#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp
+msgid "Error!"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Blend Times:"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Next (Auto Queue):"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+msgid "Cross-Animation Blend Times"
+msgstr ""
+
+#: tools/editor/plugins/animation_player_editor_plugin.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Animation"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "New name:"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+#: tools/editor/plugins/multimesh_editor_plugin.cpp
+msgid "Scale:"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Fade In (s):"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Fade Out (s):"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Blend"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Mix"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Auto Restart:"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Restart (s):"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Random Restart (s):"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Start!"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+#: tools/editor/plugins/multimesh_editor_plugin.cpp
+msgid "Amount:"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Blend:"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Blend 0:"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Blend 1:"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "X-Fade Time (s):"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Current:"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Add Input"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Clear Auto-Advance"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Set Auto-Advance"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Delete Input"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Rename"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Animation tree is valid."
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Animation tree is invalid."
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Animation Node"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "OneShot Node"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Mix Node"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Blend2 Node"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Blend3 Node"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Blend4 Node"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "TimeScale Node"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "TimeSeek Node"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Transition Node"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Import Animations.."
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Edit Node Filters"
+msgstr ""
+
+#: tools/editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Filters.."
+msgstr ""
+
+#: tools/editor/plugins/baked_light_baker.cpp
+msgid "Parsing %d Triangles:"
+msgstr ""
+
+#: tools/editor/plugins/baked_light_baker.cpp
+msgid "Triangle #"
+msgstr ""
+
+#: tools/editor/plugins/baked_light_baker.cpp
+msgid "Light Baker Setup:"
+msgstr ""
+
+#: tools/editor/plugins/baked_light_baker.cpp
+msgid "Parsing Geometry"
+msgstr ""
+
+#: tools/editor/plugins/baked_light_baker.cpp
+msgid "Fixing Lights"
+msgstr ""
+
+#: tools/editor/plugins/baked_light_baker.cpp
+msgid "Making BVH"
+msgstr ""
+
+#: tools/editor/plugins/baked_light_baker.cpp
+msgid "Creating Light Octree"
+msgstr ""
+
+#: tools/editor/plugins/baked_light_baker.cpp
+msgid "Creating Octree Texture"
+msgstr ""
+
+#: tools/editor/plugins/baked_light_baker.cpp
+msgid "Transfer to Lightmaps:"
+msgstr ""
+
+#: tools/editor/plugins/baked_light_baker.cpp
+msgid "Allocating Texture #"
+msgstr ""
+
+#: tools/editor/plugins/baked_light_baker.cpp
+msgid "Baking Triangle #"
+msgstr ""
+
+#: tools/editor/plugins/baked_light_baker.cpp
+msgid "Post-Processing Texture #"
+msgstr ""
+
+#: tools/editor/plugins/baked_light_editor_plugin.cpp
+msgid "BakedLightInstance does not contain a BakedLight resource."
+msgstr ""
+
+#: tools/editor/plugins/baked_light_editor_plugin.cpp
+msgid "Bake!"
+msgstr ""
+
+#: tools/editor/plugins/baked_light_editor_plugin.cpp
+msgid "Reset the lightmap octree baking process (start over)."
+msgstr ""
+
+#: tools/editor/plugins/camera_editor_plugin.cpp
+#: tools/editor/plugins/sample_library_editor_plugin.cpp
+msgid "Preview"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Configure Snap"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Grid Offset:"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Grid Step:"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotation Offset:"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotation Step:"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move Pivot"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move Action"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Edit IK Chain"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Edit CanvasItem"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Change Anchors"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Zoom (%):"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Paste Pose"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Select Mode (Q)"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Drag: Rotate"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Alt+Drag: Move"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Press 'v' to Change Pivot, 'Shift+v' to Drag Pivot (while moving)."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Alt+RMB: Depth list selection"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Move Mode (W)"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Rotate Mode (E)"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Show a list of all objects at the position clicked\n"
+"(same as Alt+RMB in select mode)."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Click to change object's rotation pivot."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Pan Mode"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Lock the selected object in place (can't be moved)."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Unlock the selected object (can be moved)."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Makes sure the object's children are not selectable."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Restores the object's children's ability to be selected."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
+#: tools/editor/plugins/script_editor_plugin.cpp
+#: tools/editor/plugins/shader_editor_plugin.cpp
+#: tools/editor/project_manager.cpp
+msgid "Edit"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Use Snap"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Show Grid"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Use Rotation Snap"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Snap Relative"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Configure Snap.."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Use Pixel Snap"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Expand to Parent"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Skeleton.."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Make Bones"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Clear Bones"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Make IK Chain"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Clear IK Chain"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "View"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Zoom In"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Zoom Out"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Zoom Reset"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Zoom Set.."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Center Selection"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Frame Selection"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Anchor"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Insert Keys (Ins)"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Insert Key"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Insert Key (Existing Tracks)"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Copy Pose"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Clear Pose"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Set a Value"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Snap (Pixels):"
+msgstr ""
+
+#: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
+#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
+#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
+#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Create Poly"
+msgstr ""
+
+#: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
+#: tools/editor/plugins/collision_polygon_editor_plugin.cpp
+#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
+#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
+#: tools/editor/plugins/path_2d_editor_plugin.cpp
+#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Edit Poly"
+msgstr ""
+
+#: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
+#: tools/editor/plugins/collision_polygon_editor_plugin.cpp
+#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
+#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
+#: tools/editor/plugins/path_2d_editor_plugin.cpp
+#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Edit Poly (Remove Point)"
+msgstr ""
+
+#: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
+#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
+#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
+msgid "Create a new polygon from scratch."
+msgstr ""
+
+#: tools/editor/plugins/collision_polygon_editor_plugin.cpp
+msgid "Create Poly3D"
+msgstr ""
+
+#: tools/editor/plugins/collision_shape_2d_editor_plugin.cpp
+msgid "Set Handle"
+msgstr ""
+
+#: tools/editor/plugins/color_ramp_editor_plugin.cpp
+msgid "Add/Remove Color Ramp Point"
+msgstr ""
+
+#: tools/editor/plugins/color_ramp_editor_plugin.cpp
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Modify Color Ramp"
+msgstr ""
+
+#: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp
+msgid "Creating Mesh Library"
+msgstr ""
+
+#: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp
+msgid "Thumbnail.."
+msgstr ""
+
+#: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp
+msgid "Remove item %d?"
+msgstr ""
+
+#: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp
+#: tools/editor/plugins/theme_editor_plugin.cpp
+#: tools/editor/plugins/tile_set_editor_plugin.cpp
+msgid "Add Item"
+msgstr ""
+
+#: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp
+msgid "Remove Selected Item"
+msgstr ""
+
+#: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp
+msgid "Import from Scene"
+msgstr ""
+
+#: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp
+msgid "Update from Scene"
+msgstr ""
+
+#: tools/editor/plugins/item_list_editor_plugin.cpp
+msgid "Item %d"
+msgstr ""
+
+#: tools/editor/plugins/item_list_editor_plugin.cpp
+msgid "Items"
+msgstr ""
+
+#: tools/editor/plugins/item_list_editor_plugin.cpp
+msgid "Item List Editor"
+msgstr ""
+
+#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
+msgid "Create Occluder Polygon"
+msgstr ""
+
+#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
+#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
+msgid "Edit existing polygon:"
+msgstr ""
+
+#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
+#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
+msgid "LMB: Move Point."
+msgstr ""
+
+#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
+#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
+msgid "Ctrl+LMB: Split Segment."
+msgstr ""
+
+#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
+#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
+msgid "RMB: Erase Point."
+msgstr ""
+
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Mesh is empty!"
+msgstr ""
+
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Static Trimesh Body"
+msgstr ""
+
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Static Convex Body"
+msgstr ""
+
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "This doesn't work on scene root!"
+msgstr ""
+
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Trimesh Shape"
+msgstr ""
+
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Convex Shape"
+msgstr ""
+
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Navigation Mesh"
+msgstr ""
+
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "MeshInstance lacks a Mesh!"
+msgstr ""
+
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Mesh has not surface to create outlines from!"
+msgstr ""
+
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Could not create outline!"
+msgstr ""
+
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Outline"
+msgstr ""
+
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Trimesh Static Body"
+msgstr ""
+
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Convex Static Body"
+msgstr ""
+
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Trimesh Collision Sibling"
+msgstr ""
+
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Convex Collision Sibling"
+msgstr ""
+
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Outline Mesh.."
+msgstr ""
+
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Outline Mesh"
+msgstr ""
+
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Outline Size:"
+msgstr ""
+
+#: tools/editor/plugins/multimesh_editor_plugin.cpp
+msgid "No mesh source specified (and no MultiMesh set in node)."
+msgstr ""
+
+#: tools/editor/plugins/multimesh_editor_plugin.cpp
+msgid "No mesh source specified (and MultiMesh contains no Mesh)."
+msgstr ""
+
+#: tools/editor/plugins/multimesh_editor_plugin.cpp
+msgid "Mesh source is invalid (invalid path)."
+msgstr ""
+
+#: tools/editor/plugins/multimesh_editor_plugin.cpp
+msgid "Mesh source is invalid (not a MeshInstance)."
+msgstr ""
+
+#: tools/editor/plugins/multimesh_editor_plugin.cpp
+msgid "Mesh source is invalid (contains no Mesh resource)."
+msgstr ""
+
+#: tools/editor/plugins/multimesh_editor_plugin.cpp
+msgid "No surface source specified."
+msgstr ""
+
+#: tools/editor/plugins/multimesh_editor_plugin.cpp
+msgid "Surface source is invalid (invalid path)."
+msgstr ""
+
+#: tools/editor/plugins/multimesh_editor_plugin.cpp
+msgid "Surface source is invalid (no geometry)."
+msgstr ""
+
+#: tools/editor/plugins/multimesh_editor_plugin.cpp
+msgid "Surface source is invalid (no faces)."
+msgstr ""
+
+#: tools/editor/plugins/multimesh_editor_plugin.cpp
+msgid "Parent has no solid faces to populate."
+msgstr ""
+
+#: tools/editor/plugins/multimesh_editor_plugin.cpp
+msgid "Couldn't map area."
+msgstr ""
+
+#: tools/editor/plugins/multimesh_editor_plugin.cpp
+msgid "Select a Source Mesh:"
+msgstr ""
+
+#: tools/editor/plugins/multimesh_editor_plugin.cpp
+msgid "Select a Target Surface:"
+msgstr ""
+
+#: tools/editor/plugins/multimesh_editor_plugin.cpp
+msgid "Populate Surface"
+msgstr ""
+
+#: tools/editor/plugins/multimesh_editor_plugin.cpp
+msgid "Populate MultiMesh"
+msgstr ""
+
+#: tools/editor/plugins/multimesh_editor_plugin.cpp
+msgid "Target Surface:"
+msgstr ""
+
+#: tools/editor/plugins/multimesh_editor_plugin.cpp
+msgid "Source Mesh:"
+msgstr ""
+
+#: tools/editor/plugins/multimesh_editor_plugin.cpp
+msgid "X-Axis"
+msgstr ""
+
+#: tools/editor/plugins/multimesh_editor_plugin.cpp
+msgid "Y-Axis"
+msgstr ""
+
+#: tools/editor/plugins/multimesh_editor_plugin.cpp
+msgid "Z-Axis"
+msgstr ""
+
+#: tools/editor/plugins/multimesh_editor_plugin.cpp
+msgid "Mesh Up Axis:"
+msgstr ""
+
+#: tools/editor/plugins/multimesh_editor_plugin.cpp
+msgid "Random Rotation:"
+msgstr ""
+
+#: tools/editor/plugins/multimesh_editor_plugin.cpp
+msgid "Random Tilt:"
+msgstr ""
+
+#: tools/editor/plugins/multimesh_editor_plugin.cpp
+msgid "Random Scale:"
+msgstr ""
+
+#: tools/editor/plugins/multimesh_editor_plugin.cpp
+msgid "Populate"
+msgstr ""
+
+#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
+msgid "Create Navigation Polygon"
+msgstr ""
+
+#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
+msgid "Remove Poly And Point"
+msgstr ""
+
+#: tools/editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Error loading image:"
+msgstr ""
+
+#: tools/editor/plugins/particles_2d_editor_plugin.cpp
+msgid "No pixels with transparency > 128 in image.."
+msgstr ""
+
+#: tools/editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Set Emission Mask"
+msgstr ""
+
+#: tools/editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Clear Emission Mask"
+msgstr ""
+
+#: tools/editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Load Emission Mask"
+msgstr ""
+
+#: tools/editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Generated Point Count:"
+msgstr ""
+
+#: tools/editor/plugins/particles_editor_plugin.cpp
+msgid "Node does not contain geometry."
+msgstr ""
+
+#: tools/editor/plugins/particles_editor_plugin.cpp
+msgid "Node does not contain geometry (faces)."
+msgstr ""
+
+#: tools/editor/plugins/particles_editor_plugin.cpp
+msgid "Faces contain no area!"
+msgstr ""
+
+#: tools/editor/plugins/particles_editor_plugin.cpp
+msgid "No faces!"
+msgstr ""
+
+#: tools/editor/plugins/particles_editor_plugin.cpp
+msgid "Generate AABB"
+msgstr ""
+
+#: tools/editor/plugins/particles_editor_plugin.cpp
+msgid "Create Emitter From Mesh"
+msgstr ""
+
+#: tools/editor/plugins/particles_editor_plugin.cpp
+msgid "Create Emitter From Node"
+msgstr ""
+
+#: tools/editor/plugins/particles_editor_plugin.cpp
+msgid "Clear Emitter"
+msgstr ""
+
+#: tools/editor/plugins/particles_editor_plugin.cpp
+msgid "Create Emitter"
+msgstr ""
+
+#: tools/editor/plugins/particles_editor_plugin.cpp
+msgid "Emission Positions:"
+msgstr ""
+
+#: tools/editor/plugins/particles_editor_plugin.cpp
+msgid "Emission Fill:"
+msgstr ""
+
+#: tools/editor/plugins/particles_editor_plugin.cpp
+msgid "Surface"
+msgstr ""
+
+#: tools/editor/plugins/particles_editor_plugin.cpp
+msgid "Volume"
+msgstr ""
+
+#: tools/editor/plugins/path_2d_editor_plugin.cpp
+msgid "Remove Point from Curve"
+msgstr ""
+
+#: tools/editor/plugins/path_2d_editor_plugin.cpp
+#: tools/editor/plugins/path_editor_plugin.cpp
+msgid "Add Point to Curve"
+msgstr ""
+
+#: tools/editor/plugins/path_2d_editor_plugin.cpp
+msgid "Move Point in Curve"
+msgstr ""
+
+#: tools/editor/plugins/path_2d_editor_plugin.cpp
+msgid "Move In-Control in Curve"
+msgstr ""
+
+#: tools/editor/plugins/path_2d_editor_plugin.cpp
+msgid "Move Out-Control in Curve"
+msgstr ""
+
+#: tools/editor/plugins/path_2d_editor_plugin.cpp
+#: tools/editor/plugins/path_editor_plugin.cpp
+msgid "Select Points"
+msgstr ""
+
+#: tools/editor/plugins/path_2d_editor_plugin.cpp
+#: tools/editor/plugins/path_editor_plugin.cpp
+msgid "Shift+Drag: Select Control Points"
+msgstr ""
+
+#: tools/editor/plugins/path_2d_editor_plugin.cpp
+#: tools/editor/plugins/path_editor_plugin.cpp
+msgid "Click: Add Point"
+msgstr ""
+
+#: tools/editor/plugins/path_2d_editor_plugin.cpp
+#: tools/editor/plugins/path_editor_plugin.cpp
+msgid "Right Click: Delete Point"
+msgstr ""
+
+#: tools/editor/plugins/path_2d_editor_plugin.cpp
+msgid "Select Control Points (Shift+Drag)"
+msgstr ""
+
+#: tools/editor/plugins/path_2d_editor_plugin.cpp
+#: tools/editor/plugins/path_editor_plugin.cpp
+msgid "Add Point (in empty space)"
+msgstr ""
+
+#: tools/editor/plugins/path_2d_editor_plugin.cpp
+#: tools/editor/plugins/path_editor_plugin.cpp
+msgid "Split Segment (in curve)"
+msgstr ""
+
+#: tools/editor/plugins/path_2d_editor_plugin.cpp
+#: tools/editor/plugins/path_editor_plugin.cpp
+msgid "Delete Point"
+msgstr ""
+
+#: tools/editor/plugins/path_2d_editor_plugin.cpp
+#: tools/editor/plugins/path_editor_plugin.cpp
+msgid "Close Curve"
+msgstr ""
+
+#: tools/editor/plugins/path_editor_plugin.cpp
+msgid "Curve Point #"
+msgstr ""
+
+#: tools/editor/plugins/path_editor_plugin.cpp
+msgid "Set Curve Point Pos"
+msgstr ""
+
+#: tools/editor/plugins/path_editor_plugin.cpp
+msgid "Set Curve In Pos"
+msgstr ""
+
+#: tools/editor/plugins/path_editor_plugin.cpp
+msgid "Set Curve Out Pos"
+msgstr ""
+
+#: tools/editor/plugins/path_editor_plugin.cpp
+msgid "Split Path"
+msgstr ""
+
+#: tools/editor/plugins/path_editor_plugin.cpp
+msgid "Remove Path Point"
+msgstr ""
+
+#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Create UV Map"
+msgstr ""
+
+#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Transform UV Map"
+msgstr ""
+
+#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Polygon 2D UV Editor"
+msgstr ""
+
+#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Move Point"
+msgstr ""
+
+#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr ""
+
+#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Shift: Move All"
+msgstr ""
+
+#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Shift+Ctrl: Scale"
+msgstr ""
+
+#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Move Polygon"
+msgstr ""
+
+#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Rotate Polygon"
+msgstr ""
+
+#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Scale Polygon"
+msgstr ""
+
+#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Polygon->UV"
+msgstr ""
+
+#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "UV->Polygon"
+msgstr ""
+
+#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Clear UV"
+msgstr ""
+
+#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Snap"
+msgstr ""
+
+#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Enable Snap"
+msgstr ""
+
+#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Grid"
+msgstr ""
+
+#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
+msgid "ERROR: Couldn't load resource!"
+msgstr ""
+
+#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
+msgid "Add Resource"
+msgstr ""
+
+#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
+msgid "Rename Resource"
+msgstr ""
+
+#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
+#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Delete Resource"
+msgstr ""
+
+#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
+msgid "Resource clipboard is empty!"
+msgstr ""
+
+#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
+#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Load Resource"
+msgstr ""
+
+#: tools/editor/plugins/rich_text_editor_plugin.cpp
+msgid "Parse BBCode"
+msgstr ""
+
+#: tools/editor/plugins/sample_editor_plugin.cpp
+msgid "Length:"
+msgstr ""
+
+#: tools/editor/plugins/sample_library_editor_plugin.cpp
+msgid "Open Sample File(s)"
+msgstr ""
+
+#: tools/editor/plugins/sample_library_editor_plugin.cpp
+msgid "ERROR: Couldn't load sample!"
+msgstr ""
+
+#: tools/editor/plugins/sample_library_editor_plugin.cpp
+msgid "Add Sample"
+msgstr ""
+
+#: tools/editor/plugins/sample_library_editor_plugin.cpp
+msgid "Rename Sample"
+msgstr ""
+
+#: tools/editor/plugins/sample_library_editor_plugin.cpp
+msgid "Delete Sample"
+msgstr ""
+
+#: tools/editor/plugins/sample_library_editor_plugin.cpp
+msgid "16 Bits"
+msgstr ""
+
+#: tools/editor/plugins/sample_library_editor_plugin.cpp
+msgid "8 Bits"
+msgstr ""
+
+#: tools/editor/plugins/sample_library_editor_plugin.cpp
+msgid "Stereo"
+msgstr ""
+
+#: tools/editor/plugins/sample_library_editor_plugin.cpp
+msgid "Mono"
+msgstr ""
+
+#: tools/editor/plugins/sample_library_editor_plugin.cpp
+#: tools/editor/script_editor_debugger.cpp
+msgid "Format"
+msgstr ""
+
+#: tools/editor/plugins/sample_library_editor_plugin.cpp
+msgid "Pitch"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Error while saving theme"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Error saving"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Error importing theme"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Error importing"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Import Theme"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Save Theme As.."
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+#: tools/editor/project_export.cpp
+msgid "File"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+#: tools/editor/property_editor.cpp
+msgid "New"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Save All"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "History Prev"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "History Next"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Reload Theme"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Save Theme"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Save Theme As"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Move Up"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Move Down"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Indent Left"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Indent Right"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Toggle Comment"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Clone Down"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Complete Symbol"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Trim Trailing Whitespace"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Auto Indent"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Soft Reload Script"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+#: tools/editor/plugins/shader_editor_plugin.cpp
+msgid "Find.."
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+#: tools/editor/plugins/shader_editor_plugin.cpp
+msgid "Find Next"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+#: tools/editor/plugins/shader_editor_plugin.cpp
+msgid "Find Previous"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+#: tools/editor/plugins/shader_editor_plugin.cpp
+msgid "Replace.."
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Goto Function.."
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+#: tools/editor/plugins/shader_editor_plugin.cpp
+msgid "Goto Line.."
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Debug"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Toggle Breakpoint"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Remove All Breakpoints"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Goto Next Breakpoint"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Goto Previous Breakpoint"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+#: tools/editor/script_editor_debugger.cpp
+msgid "Step Over"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+#: tools/editor/script_editor_debugger.cpp
+msgid "Step Into"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+#: tools/editor/script_editor_debugger.cpp
+msgid "Break"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+#: tools/editor/script_editor_debugger.cpp
+msgid "Continue"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Keep Debugger Open"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Window"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Move Left"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Move Right"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Help"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Contextual Help"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Tutorials"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Open https://godotengine.org at tutorials section."
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Classes"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Search the class hierarchy."
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Search Help"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Search the reference documentation."
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Go to previous edited document."
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Go to next edited document."
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Create Script"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid ""
+"The following files are newer on disk.\n"
+"What action should be taken?:"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Reload"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+msgid "Resave"
+msgstr ""
+
+#: tools/editor/plugins/script_editor_plugin.cpp
+#: tools/editor/script_editor_debugger.cpp
+msgid "Debugger"
+msgstr ""
+
+#: tools/editor/plugins/shader_editor_plugin.cpp
+msgid "Vertex"
+msgstr ""
+
+#: tools/editor/plugins/shader_editor_plugin.cpp
+msgid "Fragment"
+msgstr ""
+
+#: tools/editor/plugins/shader_editor_plugin.cpp
+msgid "Lighting"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Scalar Constant"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Vec Constant"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change RGB Constant"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Scalar Operator"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Vec Operator"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Vec Scalar Operator"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change RGB Operator"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Toggle Rot Only"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Scalar Function"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Vec Function"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Scalar Uniform"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Vec Uniform"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change RGB Uniform"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Default Value"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change XForm Uniform"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Texture Uniform"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Cubemap Uniform"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Comment"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Add/Remove to Color Ramp"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Add/Remove to Curve Map"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Modify Curve Map"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Input Name"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Connect Graph Nodes"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Disconnect Graph Nodes"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Remove Shader Graph Node"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Move Shader Graph Node"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Duplicate Graph Node(s)"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Delete Shader Graph Node(s)"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Error: Cyclic Connection Link"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Error: Missing Input Connections"
+msgstr ""
+
+#: tools/editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Add Shader Graph Node"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Orthogonal"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Perspective"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Transform Aborted."
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "X-Axis Transform."
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Y-Axis Transform."
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Z-Axis Transform."
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "View Plane Transform."
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Scaling to %s%%."
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Rotating %s degrees."
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom View."
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Top View."
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Top"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear View."
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Front View."
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Front"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Left View."
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Left"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Right View."
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Right"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Keying is disabled (no key inserted)."
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Animation Key Inserted."
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Align with view"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Top (Num7)"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom (Shift+Num7)"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Left (Num3)"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Right (Shift+Num3)"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Front (Num1)"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear (Shift+Num1)"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Perspective (Num5)"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Orthogonal (Num5)"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Environment"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Audio Listener"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Gizmos"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Selection (F)"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Align with view (Ctrl+Shift+F)"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "XForm Dialog"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "No scene selected to instance!"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Instance at Cursor"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Could not instance scene!"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Scale Mode (R)"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Transform"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Coords"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Transform Dialog.."
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Use Default Light"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Use Default sRGB"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "1 Viewport"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "2 Viewports"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "2 Viewports (Alt)"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "3 Viewports"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "3 Viewports (Alt)"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "4 Viewports"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Display Normal"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Display Wireframe"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Display Overdraw"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Display Shadeless"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "View Origin"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "View Grid"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Snap Settings"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Translate Snap:"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Rotate Snap (deg.):"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Scale Snap (%):"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Viewport Settings"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Default Light Normal:"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Ambient Light Color:"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Perspective FOV (deg.):"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "View Z-Near:"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "View Z-Far:"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Transform Change"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Translate:"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Rotate (deg.):"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Scale (ratio):"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Transform Type"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Pre"
+msgstr ""
+
+#: tools/editor/plugins/spatial_editor_plugin.cpp
+msgid "Post"
+msgstr ""
+
+#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "ERROR: Couldn't load frame resource!"
+msgstr ""
+
+#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Add Frame"
+msgstr ""
+
+#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Resource clipboard is empty or not a texture!"
+msgstr ""
+
+#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Paste Frame"
+msgstr ""
+
+#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Add Empty"
+msgstr ""
+
+#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Change Animation Loop"
+msgstr ""
+
+#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Change Animation FPS"
+msgstr ""
+
+#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "(empty)"
+msgstr ""
+
+#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Animations"
+msgstr ""
+
+#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Speed (FPS):"
+msgstr ""
+
+#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Animation Frames"
+msgstr ""
+
+#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Insert Empty (Before)"
+msgstr ""
+
+#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Insert Empty (After)"
+msgstr ""
+
+#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Up"
+msgstr ""
+
+#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Down"
+msgstr ""
+
+#: tools/editor/plugins/style_box_editor_plugin.cpp
+msgid "StyleBox Preview:"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Snap Mode:"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "<None>"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Pixel Snap"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Grid Snap"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Auto Slice"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Offset:"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Step:"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Separation:"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Texture Region"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Texture Region Editor"
+msgstr ""
+
+#: tools/editor/plugins/theme_editor_plugin.cpp
+msgid "Can't save theme to file:"
+msgstr ""
+
+#: tools/editor/plugins/theme_editor_plugin.cpp
+msgid "Add All Items"
+msgstr ""
+
+#: tools/editor/plugins/theme_editor_plugin.cpp
+msgid "Add All"
+msgstr ""
+
+#: tools/editor/plugins/theme_editor_plugin.cpp
+#: tools/editor/plugins/tile_set_editor_plugin.cpp
+msgid "Remove Item"
+msgstr ""
+
+#: tools/editor/plugins/theme_editor_plugin.cpp
+msgid "Add Class Items"
+msgstr ""
+
+#: tools/editor/plugins/theme_editor_plugin.cpp
+msgid "Remove Class Items"
+msgstr ""
+
+#: tools/editor/plugins/theme_editor_plugin.cpp
+msgid "Create Empty Template"
+msgstr ""
+
+#: tools/editor/plugins/theme_editor_plugin.cpp
+msgid "Create Empty Editor Template"
+msgstr ""
+
+#: tools/editor/plugins/theme_editor_plugin.cpp
+msgid "CheckBox Radio1"
+msgstr ""
+
+#: tools/editor/plugins/theme_editor_plugin.cpp
+msgid "CheckBox Radio2"
+msgstr ""
+
+#: tools/editor/plugins/theme_editor_plugin.cpp
+msgid "Item"
+msgstr ""
+
+#: tools/editor/plugins/theme_editor_plugin.cpp
+msgid "Check Item"
+msgstr ""
+
+#: tools/editor/plugins/theme_editor_plugin.cpp
+msgid "Checked Item"
+msgstr ""
+
+#: tools/editor/plugins/theme_editor_plugin.cpp
+msgid "Has"
+msgstr ""
+
+#: tools/editor/plugins/theme_editor_plugin.cpp
+msgid "Many"
+msgstr ""
+
+#: tools/editor/plugins/theme_editor_plugin.cpp tools/editor/project_export.cpp
+msgid "Options"
+msgstr ""
+
+#: tools/editor/plugins/theme_editor_plugin.cpp
+msgid "Have,Many,Several,Options!"
+msgstr ""
+
+#: tools/editor/plugins/theme_editor_plugin.cpp
+msgid "Tab 1"
+msgstr ""
+
+#: tools/editor/plugins/theme_editor_plugin.cpp
+msgid "Tab 2"
+msgstr ""
+
+#: tools/editor/plugins/theme_editor_plugin.cpp
+msgid "Tab 3"
+msgstr ""
+
+#: tools/editor/plugins/theme_editor_plugin.cpp
+#: tools/editor/project_settings.cpp tools/editor/scene_tree_editor.cpp
+#: tools/editor/script_editor_debugger.cpp
+msgid "Type:"
+msgstr ""
+
+#: tools/editor/plugins/theme_editor_plugin.cpp
+msgid "Data Type:"
+msgstr ""
+
+#: tools/editor/plugins/theme_editor_plugin.cpp
+msgid "Icon"
+msgstr ""
+
+#: tools/editor/plugins/theme_editor_plugin.cpp
+msgid "Style"
+msgstr ""
+
+#: tools/editor/plugins/theme_editor_plugin.cpp
+msgid "Color"
+msgstr ""
+
+#: tools/editor/plugins/tile_map_editor_plugin.cpp
+msgid "Paint TileMap"
+msgstr ""
+
+#: tools/editor/plugins/tile_map_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Duplicate"
+msgstr ""
+
+#: tools/editor/plugins/tile_map_editor_plugin.cpp
+msgid "Erase TileMap"
+msgstr ""
+
+#: tools/editor/plugins/tile_map_editor_plugin.cpp
+msgid "Erase selection"
+msgstr ""
+
+#: tools/editor/plugins/tile_map_editor_plugin.cpp
+msgid "Find tile"
+msgstr ""
+
+#: tools/editor/plugins/tile_map_editor_plugin.cpp
+msgid "Transpose"
+msgstr ""
+
+#: tools/editor/plugins/tile_map_editor_plugin.cpp
+msgid "Mirror X"
+msgstr ""
+
+#: tools/editor/plugins/tile_map_editor_plugin.cpp
+msgid "Mirror Y"
+msgstr ""
+
+#: tools/editor/plugins/tile_map_editor_plugin.cpp
+msgid "Bucket"
+msgstr ""
+
+#: tools/editor/plugins/tile_map_editor_plugin.cpp
+msgid "Pick Tile"
+msgstr ""
+
+#: tools/editor/plugins/tile_map_editor_plugin.cpp
+msgid "Select"
+msgstr ""
+
+#: tools/editor/plugins/tile_map_editor_plugin.cpp
+msgid "Rotate 0 degrees"
+msgstr ""
+
+#: tools/editor/plugins/tile_map_editor_plugin.cpp
+msgid "Rotate 90 degrees"
+msgstr ""
+
+#: tools/editor/plugins/tile_map_editor_plugin.cpp
+msgid "Rotate 180 degrees"
+msgstr ""
+
+#: tools/editor/plugins/tile_map_editor_plugin.cpp
+msgid "Rotate 270 degrees"
+msgstr ""
+
+#: tools/editor/plugins/tile_set_editor_plugin.cpp
+msgid "Could not find tile:"
+msgstr ""
+
+#: tools/editor/plugins/tile_set_editor_plugin.cpp
+msgid "Item name or ID:"
+msgstr ""
+
+#: tools/editor/plugins/tile_set_editor_plugin.cpp
+msgid "Create from scene?"
+msgstr ""
+
+#: tools/editor/plugins/tile_set_editor_plugin.cpp
+msgid "Merge from scene?"
+msgstr ""
+
+#: tools/editor/plugins/tile_set_editor_plugin.cpp
+msgid "Create from Scene"
+msgstr ""
+
+#: tools/editor/plugins/tile_set_editor_plugin.cpp
+msgid "Merge from Scene"
+msgstr ""
+
+#: tools/editor/plugins/tile_set_editor_plugin.cpp
+#: tools/editor/script_editor_debugger.cpp
+msgid "Error"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Edit Script Options"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Please export outside the project folder!"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Error exporting project!"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Error writing the project PCK!"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "No exporter for platform '%s' yet."
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Include"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Change Image Group"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Group name can't be empty!"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Invalid character in group name!"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Group name already exists!"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Add Image Group"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Delete Image Group"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Atlas Preview"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Project Export Settings"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Target"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Export to Platform"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Resources"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Export selected resources (including dependencies)."
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Export all resources in the project."
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Export all files in the project directory."
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Export Mode:"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Resources to Export:"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Action"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid ""
+"Filters to export non-resource files (comma-separated, e.g.: *.json, *.txt):"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Filters to exclude from export (comma-separated, e.g.: *.json, *.txt):"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Convert text scenes to binary on export."
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Images"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Keep Original"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Compress for Disk (Lossy, WebP)"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Compress for RAM (BC/PVRTC/ETC)"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Convert Images (*.png):"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Compress for Disk (Lossy) Quality:"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Shrink All Images:"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Compress Formats:"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Image Groups"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Groups:"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Compress Disk"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Compress RAM"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Compress Mode:"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Lossy Quality:"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Atlas:"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Shrink By:"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Preview Atlas"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Image Filter:"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Images:"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Select None"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Group"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Samples"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Sample Conversion Mode: (.wav files):"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Keep"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Compress (RAM - IMA-ADPCM)"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Sampling Rate Limit (Hz):"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Trim"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Trailing Silence:"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Script"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Script Export Mode:"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Text"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Compiled"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Encrypted (Provide Key Below)"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Script Encryption Key (256-bits as hex):"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Export PCK/Zip"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Export Project PCK"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Export.."
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Project Export"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Export Preset:"
+msgstr ""
+
+#: tools/editor/project_manager.cpp
+msgid "Invalid project path, the path must exist!"
+msgstr ""
+
+#: tools/editor/project_manager.cpp
+msgid "Invalid project path, engine.cfg must not exist."
+msgstr ""
+
+#: tools/editor/project_manager.cpp
+msgid "Invalid project path, engine.cfg must exist."
+msgstr ""
+
+#: tools/editor/project_manager.cpp
+msgid "Imported Project"
+msgstr ""
+
+#: tools/editor/project_manager.cpp
+msgid "Invalid project path (changed anything?)."
+msgstr ""
+
+#: tools/editor/project_manager.cpp
+msgid "Couldn't create engine.cfg in project path."
+msgstr ""
+
+#: tools/editor/project_manager.cpp
+msgid "Import Existing Project"
+msgstr ""
+
+#: tools/editor/project_manager.cpp
+msgid "Project Path (Must Exist):"
+msgstr ""
+
+#: tools/editor/project_manager.cpp
+msgid "Project Name:"
+msgstr ""
+
+#: tools/editor/project_manager.cpp
+msgid "Create New Project"
+msgstr ""
+
+#: tools/editor/project_manager.cpp
+msgid "Project Path:"
+msgstr ""
+
+#: tools/editor/project_manager.cpp
+msgid "Browse"
+msgstr ""
+
+#: tools/editor/project_manager.cpp
+msgid "New Game Project"
+msgstr ""
+
+#: tools/editor/project_manager.cpp
+msgid "That's a BINGO!"
+msgstr ""
+
+#: tools/editor/project_manager.cpp
+msgid "Unnamed Project"
+msgstr ""
+
+#: tools/editor/project_manager.cpp
+msgid "Are you sure to open more than one projects?"
+msgstr ""
+
+#: tools/editor/project_manager.cpp
+msgid "Are you sure to run more than one projects?"
+msgstr ""
+
+#: tools/editor/project_manager.cpp
+msgid "Remove project from the list? (Folder contents will not be modified)"
+msgstr ""
+
+#: tools/editor/project_manager.cpp
+msgid "Project Manager"
+msgstr ""
+
+#: tools/editor/project_manager.cpp
+msgid "Project List"
+msgstr ""
+
+#: tools/editor/project_manager.cpp
+msgid "Run"
+msgstr ""
+
+#: tools/editor/project_manager.cpp
+msgid "Scan"
+msgstr ""
+
+#: tools/editor/project_manager.cpp
+msgid "New Project"
+msgstr ""
+
+#: tools/editor/project_manager.cpp
+msgid "Exit"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Key "
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Joy Button"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Joy Axis"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Mouse Button"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Invalid action (anything goes but '/' or ':')."
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Action '%s' already exists!"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Rename Input Action Event"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Add Input Action Event"
+msgstr ""
+
+#: tools/editor/project_settings.cpp tools/editor/settings_config_dialog.cpp
+msgid "Control+"
+msgstr ""
+
+#: tools/editor/project_settings.cpp tools/editor/settings_config_dialog.cpp
+msgid "Press a Key.."
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Mouse Button Index:"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Left Button"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Right Button"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Middle Button"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Wheel Up Button"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Wheel Down Button"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Button 6"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Button 7"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Button 8"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Button 9"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Joystick Axis Index:"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Joystick Button Index:"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Add Input Action"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Erase Input Action Event"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Toggle Persisting"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Error saving settings."
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Settings saved OK."
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Add Translation"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Invalid name."
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Valid characters:"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Invalid name. Must not collide with an existing engine class name."
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Invalid name. Must not collide with an existing buit-in type name."
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Invalid name. Must not collide with an existing global constant name."
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Autoload '%s' already exists!"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Rename Autoload"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Toggle AutoLoad Globals"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Add Autoload"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Remove Autoload"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Move Autoload"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Remove Translation"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Add Remapped Path"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Resource Remap Add Remap"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Change Resource Remap Language"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Remove Resource Remap"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Remove Resource Remap Option"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Enable"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Project Settings (engine.cfg)"
+msgstr ""
+
+#: tools/editor/project_settings.cpp tools/editor/settings_config_dialog.cpp
+msgid "General"
+msgstr ""
+
+#: tools/editor/project_settings.cpp tools/editor/property_editor.cpp
+msgid "Property:"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Del"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Copy To Platform.."
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Input Map"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Action:"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Device:"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Index:"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Localization"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Translations"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Translations:"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Add.."
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Remaps"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Resources:"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Remaps by Locale:"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Locale"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "AutoLoad"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Node Name:"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "List:"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Singleton"
+msgstr ""
+
+#: tools/editor/project_settings.cpp
+msgid "Plugins"
+msgstr ""
+
+#: tools/editor/property_editor.cpp
+msgid "Preset.."
+msgstr ""
+
+#: tools/editor/property_editor.cpp
+msgid "Ease In"
+msgstr ""
+
+#: tools/editor/property_editor.cpp
+msgid "Ease Out"
+msgstr ""
+
+#: tools/editor/property_editor.cpp
+msgid "Zero"
+msgstr ""
+
+#: tools/editor/property_editor.cpp
+msgid "Easing In-Out"
+msgstr ""
+
+#: tools/editor/property_editor.cpp
+msgid "Easing Out-In"
+msgstr ""
+
+#: tools/editor/property_editor.cpp
+msgid "File.."
+msgstr ""
+
+#: tools/editor/property_editor.cpp
+msgid "Dir.."
+msgstr ""
+
+#: tools/editor/property_editor.cpp
+msgid "Load"
+msgstr ""
+
+#: tools/editor/property_editor.cpp
+msgid "Assign"
+msgstr ""
+
+#: tools/editor/property_editor.cpp
+msgid "Error loading file: Not a resource!"
+msgstr ""
+
+#: tools/editor/property_editor.cpp
+msgid "Couldn't load image"
+msgstr ""
+
+#: tools/editor/property_editor.cpp
+msgid "Bit %d, val %d."
+msgstr ""
+
+#: tools/editor/property_editor.cpp
+msgid "On"
+msgstr ""
+
+#: tools/editor/property_editor.cpp
+msgid "Set"
+msgstr ""
+
+#: tools/editor/property_editor.cpp
+msgid "Properties:"
+msgstr ""
+
+#: tools/editor/property_editor.cpp
+msgid "Global"
+msgstr ""
+
+#: tools/editor/property_editor.cpp
+msgid "Sections:"
+msgstr ""
+
+#: tools/editor/pvrtc_compress.cpp
+msgid "Could not execute PVRTC tool:"
+msgstr ""
+
+#: tools/editor/pvrtc_compress.cpp
+msgid "Can't load back converted image using PVRTC tool:"
+msgstr ""
+
+#: tools/editor/reparent_dialog.cpp tools/editor/scene_tree_dock.cpp
+msgid "Reparent Node"
+msgstr ""
+
+#: tools/editor/reparent_dialog.cpp
+msgid "Reparent Location (Select new Parent):"
+msgstr ""
+
+#: tools/editor/reparent_dialog.cpp
+msgid "Keep Global Transform"
+msgstr ""
+
+#: tools/editor/reparent_dialog.cpp tools/editor/scene_tree_dock.cpp
+msgid "Reparent"
+msgstr ""
+
+#: tools/editor/resources_dock.cpp
+msgid "Create New Resource"
+msgstr ""
+
+#: tools/editor/resources_dock.cpp
+msgid "Open Resource"
+msgstr ""
+
+#: tools/editor/resources_dock.cpp
+msgid "Save Resource"
+msgstr ""
+
+#: tools/editor/resources_dock.cpp
+msgid "Resource Tools"
+msgstr ""
+
+#: tools/editor/resources_dock.cpp
+msgid "Make Local"
+msgstr ""
+
+#: tools/editor/run_settings_dialog.cpp
+msgid "Run Mode:"
+msgstr ""
+
+#: tools/editor/run_settings_dialog.cpp
+msgid "Current Scene"
+msgstr ""
+
+#: tools/editor/run_settings_dialog.cpp
+msgid "Main Scene"
+msgstr ""
+
+#: tools/editor/run_settings_dialog.cpp
+msgid "Main Scene Arguments:"
+msgstr ""
+
+#: tools/editor/run_settings_dialog.cpp
+msgid "Scene Run Settings"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Error loading scene from %s"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Error instancing scene from %s"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Ok"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid ""
+"Cannot instance the scene '%s' because the current scene exists within one "
+"of its nodes."
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Instance Scene(s)"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "This operation can't be done on the tree root."
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Move Node In Parent"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Move Nodes In Parent"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Duplicate Node(s)"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Delete Node(s)?"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "This operation can't be done without a scene."
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "This operation requires a single selected node."
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "This operation can't be done on instanced scenes."
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Save New Scene As.."
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Makes Sense!"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Can't operate on nodes from a foreign scene!"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Can't operate on nodes the current scene inherits from!"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Remove Node(s)"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Create Node"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid ""
+"Couldn't save new scene. Likely dependencies (instances) couldn't be "
+"satisfied."
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Error saving scene."
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Error duplicating scene to save it."
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Edit Groups"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Edit Connections"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Delete Node(s)"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Add Child Node"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Instance Child Scene"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Change Type"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Add Script"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Merge From Scene"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Save Branch as Scene"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Add/Create a New Node"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid ""
+"Instance a scene file as a Node. Creates an inherited scene if no root node "
+"exists."
+msgstr ""
+
+#: tools/editor/scene_tree_editor.cpp
+msgid ""
+"This item cannot be made visible because the parent is hidden. Unhide the "
+"parent first."
+msgstr ""
+
+#: tools/editor/scene_tree_editor.cpp
+msgid "Toggle Spatial Visible"
+msgstr ""
+
+#: tools/editor/scene_tree_editor.cpp
+msgid "Toggle CanvasItem Visible"
+msgstr ""
+
+#: tools/editor/scene_tree_editor.cpp
+msgid "Instance:"
+msgstr ""
+
+#: tools/editor/scene_tree_editor.cpp
+msgid "Invalid node name, the following characters are not allowed:"
+msgstr ""
+
+#: tools/editor/scene_tree_editor.cpp
+msgid "Rename Node"
+msgstr ""
+
+#: tools/editor/scene_tree_editor.cpp
+msgid "Scene Tree (Nodes):"
+msgstr ""
+
+#: tools/editor/scene_tree_editor.cpp
+msgid "Editable Children"
+msgstr ""
+
+#: tools/editor/scene_tree_editor.cpp
+msgid "Load As Placeholder"
+msgstr ""
+
+#: tools/editor/scene_tree_editor.cpp
+msgid "Discard Instancing"
+msgstr ""
+
+#: tools/editor/scene_tree_editor.cpp
+msgid "Open in Editor"
+msgstr ""
+
+#: tools/editor/scene_tree_editor.cpp
+msgid "Clear Inheritance"
+msgstr ""
+
+#: tools/editor/scene_tree_editor.cpp
+msgid "Clear Inheritance? (No Undo!)"
+msgstr ""
+
+#: tools/editor/scene_tree_editor.cpp
+msgid "Clear!"
+msgstr ""
+
+#: tools/editor/scene_tree_editor.cpp
+msgid "Select a Node"
+msgstr ""
+
+#: tools/editor/scenes_dock.cpp
+msgid "Same source and destination files, doing nothing."
+msgstr ""
+
+#: tools/editor/scenes_dock.cpp
+msgid "Same source and destination paths, doing nothing."
+msgstr ""
+
+#: tools/editor/scenes_dock.cpp
+msgid "Can't move directories to within themselves."
+msgstr ""
+
+#: tools/editor/scenes_dock.cpp
+msgid "Can't operate on '..'"
+msgstr ""
+
+#: tools/editor/scenes_dock.cpp
+msgid "Pick New Name and Location For:"
+msgstr ""
+
+#: tools/editor/scenes_dock.cpp
+msgid "No files selected!"
+msgstr ""
+
+#: tools/editor/scenes_dock.cpp
+msgid "Instance"
+msgstr ""
+
+#: tools/editor/scenes_dock.cpp
+msgid "Edit Dependencies.."
+msgstr ""
+
+#: tools/editor/scenes_dock.cpp
+msgid "View Owners.."
+msgstr ""
+
+#: tools/editor/scenes_dock.cpp
+msgid "Copy Path"
+msgstr ""
+
+#: tools/editor/scenes_dock.cpp
+msgid "Rename or Move.."
+msgstr ""
+
+#: tools/editor/scenes_dock.cpp
+msgid "Move To.."
+msgstr ""
+
+#: tools/editor/scenes_dock.cpp
+msgid "Info"
+msgstr ""
+
+#: tools/editor/scenes_dock.cpp
+msgid "Show In File Manager"
+msgstr ""
+
+#: tools/editor/scenes_dock.cpp
+msgid "Previous Directory"
+msgstr ""
+
+#: tools/editor/scenes_dock.cpp
+msgid "Next Directory"
+msgstr ""
+
+#: tools/editor/scenes_dock.cpp
+msgid "Re-Scan Filesystem"
+msgstr ""
+
+#: tools/editor/scenes_dock.cpp
+msgid "Toggle folder status as Favorite"
+msgstr ""
+
+#: tools/editor/scenes_dock.cpp
+msgid "Instance the selected scene(s) as child of the selected node."
+msgstr ""
+
+#: tools/editor/scenes_dock.cpp
+msgid "Move"
+msgstr ""
+
+#: tools/editor/script_create_dialog.cpp
+msgid "Invalid parent class name"
+msgstr ""
+
+#: tools/editor/script_create_dialog.cpp
+msgid "Valid chars:"
+msgstr ""
+
+#: tools/editor/script_create_dialog.cpp
+msgid "Invalid class name"
+msgstr ""
+
+#: tools/editor/script_create_dialog.cpp
+msgid "Valid name"
+msgstr ""
+
+#: tools/editor/script_create_dialog.cpp
+msgid "N/A"
+msgstr ""
+
+#: tools/editor/script_create_dialog.cpp
+msgid "Class name is invalid!"
+msgstr ""
+
+#: tools/editor/script_create_dialog.cpp
+msgid "Parent class name is invalid!"
+msgstr ""
+
+#: tools/editor/script_create_dialog.cpp
+msgid "Invalid path!"
+msgstr ""
+
+#: tools/editor/script_create_dialog.cpp
+msgid "Could not create script in filesystem."
+msgstr ""
+
+#: tools/editor/script_create_dialog.cpp
+msgid "Path is empty"
+msgstr ""
+
+#: tools/editor/script_create_dialog.cpp
+msgid "Path is not local"
+msgstr ""
+
+#: tools/editor/script_create_dialog.cpp
+msgid "Invalid base path"
+msgstr ""
+
+#: tools/editor/script_create_dialog.cpp
+msgid "File exists"
+msgstr ""
+
+#: tools/editor/script_create_dialog.cpp
+msgid "Invalid extension"
+msgstr ""
+
+#: tools/editor/script_create_dialog.cpp
+msgid "Valid path"
+msgstr ""
+
+#: tools/editor/script_create_dialog.cpp
+msgid "Class Name:"
+msgstr ""
+
+#: tools/editor/script_create_dialog.cpp
+msgid "Built-In Script"
+msgstr ""
+
+#: tools/editor/script_create_dialog.cpp
+msgid "Create Node Script"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Bytes:"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Warning"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Error:"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Source:"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Function:"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Errors"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Child Process Connected"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Inspect Previous Instance"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Inspect Next Instance"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Stack Frames"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Variable"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Errors:"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Stack Trace (if applicable):"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Remote Inspector"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Live Scene Tree:"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Remote Object Properties: "
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Profiler"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Monitor"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Value"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Monitors"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "List of Video Memory Usage by Resource:"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Total:"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Video Mem"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Resource Path"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Type"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Usage"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Misc"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Clicked Control:"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Clicked Control Type:"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Live Edit Root:"
+msgstr ""
+
+#: tools/editor/script_editor_debugger.cpp
+msgid "Set From Tree"
+msgstr ""
+
+#: tools/editor/settings_config_dialog.cpp
+msgid "Shortcuts"
+msgstr ""
+
+#: tools/editor/spatial_editor_gizmos.cpp
+msgid "Change Light Radius"
+msgstr ""
+
+#: tools/editor/spatial_editor_gizmos.cpp
+msgid "Change Camera FOV"
+msgstr ""
+
+#: tools/editor/spatial_editor_gizmos.cpp
+msgid "Change Camera Size"
+msgstr ""
+
+#: tools/editor/spatial_editor_gizmos.cpp
+msgid "Change Sphere Shape Radius"
+msgstr ""
+
+#: tools/editor/spatial_editor_gizmos.cpp
+msgid "Change Box Shape Extents"
+msgstr ""
+
+#: tools/editor/spatial_editor_gizmos.cpp
+msgid "Change Capsule Shape Radius"
+msgstr ""
+
+#: tools/editor/spatial_editor_gizmos.cpp
+msgid "Change Capsule Shape Height"
+msgstr ""
+
+#: tools/editor/spatial_editor_gizmos.cpp
+msgid "Change Ray Shape Length"
+msgstr ""
+
+#: tools/editor/spatial_editor_gizmos.cpp
+msgid "Change Notifier Extents"
+msgstr ""
diff --git a/tools/translations/ko.po b/tools/translations/ko.po
index 990a9aba82..07c68ef992 100644
--- a/tools/translations/ko.po
+++ b/tools/translations/ko.po
@@ -10,8 +10,8 @@ msgstr ""
"POT-Creation-Date: \n"
"PO-Revision-Date: 2016-06-19 13:30+0000\n"
"Last-Translator: 박한얼 <volzhs@gmail.com>\n"
-"Language-Team: Korean <https://hosted.weblate.org/projects/godot-"
-"engine/godot/ko/>\n"
+"Language-Team: Korean <https://hosted.weblate.org/projects/godot-engine/"
+"godot/ko/>\n"
"Language: ko\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -21,7 +21,8 @@ msgstr ""
#: modules/gdscript/gd_functions.cpp
msgid "Invalid type argument to convert(), use TYPE_* constants."
-msgstr "convert()하기 위한 인자 타입이 유효하지 않습니다, TYPE_* 상수를 사용하세요."
+msgstr ""
+"convert()하기 위한 인자 타입이 유효하지 않습니다, TYPE_* 상수를 사용하세요."
#: modules/gdscript/gd_functions.cpp
msgid "Not enough bytes for decoding bytes, or invalid format."
@@ -49,11 +50,13 @@ msgstr "유효하지 않은 인스턴스 Dictionary 형식 (@path 없음)"
#: modules/gdscript/gd_functions.cpp
msgid "Invalid instance dictionary format (can't load script at @path)"
-msgstr "유효하지 않은 인스턴스 Dictionary 형식 (@path 에서 스크립트를 로드할 수 없음)"
+msgstr ""
+"유효하지 않은 인스턴스 Dictionary 형식 (@path 에서 스크립트를 로드할 수 없음)"
#: modules/gdscript/gd_functions.cpp
msgid "Invalid instance dictionary format (invalid script at @path)"
-msgstr "유효하지 않은 인스턴스 Dictionary 형식 (@path의 스크립트가 유효하지 않음)"
+msgstr ""
+"유효하지 않은 인스턴스 Dictionary 형식 (@path의 스크립트가 유효하지 않음)"
#: modules/gdscript/gd_functions.cpp
msgid "Invalid instance dictionary (invalid subclasses)"
@@ -687,10 +690,6 @@ msgid "Change Anim Loop"
msgstr "애니메이션 루프 변경"
#: tools/editor/animation_editor.cpp
-msgid "Change Anim Loop Interpolation"
-msgstr "애니메이션 루프 보간 변경"
-
-#: tools/editor/animation_editor.cpp
msgid "Anim Create Typed Value Key"
msgstr "애니메이션 타입지정 값 키 만들기"
@@ -731,10 +730,6 @@ msgid "Enable/Disable looping in animation."
msgstr "애니메이션 루프 활성화/비활성화."
#: tools/editor/animation_editor.cpp
-msgid "Enable/Disable interpolation when looping animation."
-msgstr "애니메이션 루프 시 보간 활성화/비활성화."
-
-#: tools/editor/animation_editor.cpp
msgid "Add new tracks."
msgstr "새 트랙 추가."
@@ -999,7 +994,8 @@ msgid "Method in target Node must be specified!"
msgstr "대상 노드의 함수를 명시해야합니다!"
#: tools/editor/connections_dialog.cpp
-msgid "Conect To Node:"
+#, fuzzy
+msgid "Connect To Node:"
msgstr "연결할 노드:"
#: tools/editor/connections_dialog.cpp tools/editor/groups_editor.cpp
@@ -1218,6 +1214,51 @@ msgstr "디렉토리 선택"
msgid "Choose"
msgstr "선택"
+#: tools/editor/editor_file_dialog.cpp
+msgid "Go Back"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Go Forward"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Go Up"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Toggle Hidden Files"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+#, fuzzy
+msgid "Toggle Favorite"
+msgstr "중단점 토글"
+
+#: tools/editor/editor_file_dialog.cpp
+#, fuzzy
+msgid "Toggle Mode"
+msgstr "주석 토글"
+
+#: tools/editor/editor_file_dialog.cpp
+#, fuzzy
+msgid "Focus Path"
+msgstr "경로 복사"
+
+#: tools/editor/editor_file_dialog.cpp
+#, fuzzy
+msgid "Mode Favorite Up"
+msgstr "즐겨찾기:"
+
+#: tools/editor/editor_file_dialog.cpp
+#, fuzzy
+msgid "Mode Favorite Down"
+msgstr "아래로 이동"
+
#: tools/editor/editor_file_dialog.cpp tools/editor/scenes_dock.cpp
msgid "Favorites:"
msgstr "즐겨찾기:"
@@ -1471,9 +1512,31 @@ msgid "There is no defined scene to run."
msgstr "실행하기 위해 정의된 씬이 없습니다."
#: tools/editor/editor_node.cpp
+#, fuzzy
+msgid ""
+"No main scene has ever been defined, select one?\n"
+"You can change it later in later in \"Project Settings\" under the "
+"'application' category."
+msgstr ""
+"메인 씬이 지정되지 않았습니다.\n"
+"\"프로젝트 설정\"의 'Application' 항목에서 씬을 하나 선택해 주세요."
+
+#: tools/editor/editor_node.cpp
+#, fuzzy
+msgid ""
+"Selected scene '%s' does not exist, select a valid one?\n"
+"You can change it later in \"Project Settings\" under the 'application' "
+"category."
+msgstr ""
+"메인 씬이 지정되지 않았습니다.\n"
+"\"프로젝트 설정\"의 'Application' 항목에서 씬을 하나 선택해 주세요."
+
+#: tools/editor/editor_node.cpp
+#, fuzzy
msgid ""
-"No main scene has ever been defined.\n"
-"Select one from \"Project Settings\" under the 'application' category."
+"Selected scene '%s' is not a scene file, select a valid one?\n"
+"You can change it later in \"Project Settings\" under the 'application' "
+"category."
msgstr ""
"메인 씬이 지정되지 않았습니다.\n"
"\"프로젝트 설정\"의 'Application' 항목에서 씬을 하나 선택해 주세요."
@@ -1570,6 +1633,11 @@ msgstr ""
"프로젝트 매니저를 실행하시겠습니까?\n"
"(저장하지 않은 변경사항은 사라집니다.)"
+#: tools/editor/editor_node.cpp
+#, fuzzy
+msgid "Pick a Manu Scene"
+msgstr "메인 씬"
+
#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
msgid "Ugh"
msgstr "오우"
@@ -1595,18 +1663,14 @@ msgid "Save Layout"
msgstr "레이아웃 저장"
#: tools/editor/editor_node.cpp
-msgid "Load Layout"
-msgstr "레이아웃 로드"
+msgid "Delete Layout"
+msgstr "레이아웃 삭제"
#: tools/editor/editor_node.cpp tools/editor/project_export.cpp
msgid "Default"
msgstr "Default"
#: tools/editor/editor_node.cpp
-msgid "Delete Layout"
-msgstr "레이아웃 삭제"
-
-#: tools/editor/editor_node.cpp
msgid "Switch Scene Tab"
msgstr "씬 탭 전환"
@@ -1636,6 +1700,16 @@ msgid "Distraction Free Mode"
msgstr "초집중 모드"
#: tools/editor/editor_node.cpp
+#, fuzzy
+msgid "Next tab"
+msgstr "다음"
+
+#: tools/editor/editor_node.cpp
+#, fuzzy
+msgid "Previous tab"
+msgstr "이전 디렉토리"
+
+#: tools/editor/editor_node.cpp
msgid "Operations with scene files."
msgstr "씬 파일 동작."
@@ -2198,6 +2272,12 @@ msgid "No target font resource!"
msgstr "폰트 리소스 경로가 없습니다!"
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+msgid ""
+"Invalid file extension.\n"
+"Please use .fnt."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
msgid "Can't load/process source font."
msgstr "소스 폰트를 로드/처리할 수 없습니다."
@@ -2433,7 +2513,8 @@ msgid "Couldn't load post-import script:"
msgstr "가져오기 후 실행할 스크립트를 로드할 수 없습니다:"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Invalid/broken script for post-import:"
+#, fuzzy
+msgid "Invalid/broken script for post-import (check console):"
msgstr "가져오기 후 실행할 스크립트가 유효하지 않거나 깨져있습니다:"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
@@ -3098,13 +3179,11 @@ msgstr "스냅 설정"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid Offset:"
msgstr "그리드 오프셋:"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid Step:"
msgstr "그리드 스텝:"
@@ -3222,7 +3301,6 @@ msgstr "스냅 사용"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Show Grid"
msgstr "그리드 보이기"
@@ -3475,6 +3553,10 @@ msgid "MeshInstance lacks a Mesh!"
msgstr "MeshInstance에 메쉬가 없습니다!"
#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Mesh has not surface to create outlines from!"
+msgstr ""
+
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Could not create outline!"
msgstr "외곽선을 만들수 없습니다!"
@@ -3836,17 +3918,14 @@ msgid "Clear UV"
msgstr "UV 정리"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Snap"
msgstr "스냅"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Enable Snap"
msgstr "스냅 활성화"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid"
msgstr "그리드"
@@ -4685,20 +4764,51 @@ msgid "StyleBox Preview:"
msgstr "StyleBox 미리보기:"
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid "Texture Region Editor"
-msgstr "텍스쳐 구역 편집기"
+#, fuzzy
+msgid "Snap Mode:"
+msgstr "실행 모드:"
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "<None>"
+msgstr ""
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid "Scale Region Editor"
-msgstr "스케일 구역 편집기"
+#, fuzzy
+msgid "Pixel Snap"
+msgstr "픽셀 스냅 사용"
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid ""
-"No texture in this node.\n"
-"Set a texture to be able to edit region."
+#, fuzzy
+msgid "Grid Snap"
+msgstr "그리드 스텝:"
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Auto Slice"
msgstr ""
-"이 노드에 텍스쳐가 없습니다.\n"
-"구역을 편집하기 위해서는 텍스쳐를 지정해야합니다."
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+#, fuzzy
+msgid "Offset:"
+msgstr "그리드 오프셋:"
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+#, fuzzy
+msgid "Step:"
+msgstr "단계 (초):"
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+#, fuzzy
+msgid "Separation:"
+msgstr "부문:"
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+#, fuzzy
+msgid "Texture Region"
+msgstr "텍스쳐 구역 편집기"
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Texture Region Editor"
+msgstr "텍스쳐 구역 편집기"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Can't save theme to file:"
@@ -5763,12 +5873,16 @@ msgid "Error duplicating scene to save it."
msgstr "저장하기 위해 씬을 복제하는 중에 에러가 발생했습니다."
#: tools/editor/scene_tree_dock.cpp
-msgid "New Scene Root"
-msgstr "새로운 씬 루트"
+msgid "Edit Groups"
+msgstr "그룹 편집"
#: tools/editor/scene_tree_dock.cpp
-msgid "Inherit Scene"
-msgstr "상속 씬"
+msgid "Edit Connections"
+msgstr "연결 편집"
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Delete Node(s)"
+msgstr "노드 삭제"
#: tools/editor/scene_tree_dock.cpp
msgid "Add Child Node"
@@ -5783,14 +5897,6 @@ msgid "Change Type"
msgstr "타입 변경"
#: tools/editor/scene_tree_dock.cpp
-msgid "Edit Groups"
-msgstr "그룹 편집"
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Edit Connections"
-msgstr "연결 편집"
-
-#: tools/editor/scene_tree_dock.cpp
msgid "Add Script"
msgstr "스크립트 추가"
@@ -5803,10 +5909,6 @@ msgid "Save Branch as Scene"
msgstr "선택 노드를 다른 씬으로 저장"
#: tools/editor/scene_tree_dock.cpp
-msgid "Delete Node(s)"
-msgstr "노드 삭제"
-
-#: tools/editor/scene_tree_dock.cpp
msgid "Add/Create a New Node"
msgstr "새 노드 추가/생성"
@@ -6197,6 +6299,31 @@ msgstr "Ray Shape 길이 변경"
msgid "Change Notifier Extents"
msgstr "Notifier 범위 변경"
+#~ msgid "Change Anim Loop Interpolation"
+#~ msgstr "애니메이션 루프 보간 변경"
+
+#~ msgid "Enable/Disable interpolation when looping animation."
+#~ msgstr "애니메이션 루프 시 보간 활성화/비활성화."
+
+#~ msgid "Load Layout"
+#~ msgstr "레이아웃 로드"
+
+#~ msgid "Scale Region Editor"
+#~ msgstr "스케일 구역 편집기"
+
+#~ msgid ""
+#~ "No texture in this node.\n"
+#~ "Set a texture to be able to edit region."
+#~ msgstr ""
+#~ "이 노드에 텍스쳐가 없습니다.\n"
+#~ "구역을 편집하기 위해서는 텍스쳐를 지정해야합니다."
+
+#~ msgid "New Scene Root"
+#~ msgstr "새로운 씬 루트"
+
+#~ msgid "Inherit Scene"
+#~ msgstr "상속 씬"
+
#~ msgid "Binds (Extra Params):"
#~ msgstr "바인드 (추가 파라미터):"
diff --git a/tools/translations/pt_BR.po b/tools/translations/pt_BR.po
index dadd54d273..24c42d350a 100644
--- a/tools/translations/pt_BR.po
+++ b/tools/translations/pt_BR.po
@@ -11,8 +11,8 @@ msgstr ""
"POT-Creation-Date: 2016-05-30\n"
"PO-Revision-Date: 2016-06-20 01:48+0000\n"
"Last-Translator: George Marques <georgemjesus@gmail.com>\n"
-"Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects"
-"/godot-engine/godot/pt_BR/>\n"
+"Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/"
+"godot-engine/godot/pt_BR/>\n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -701,10 +701,6 @@ msgid "Change Anim Loop"
msgstr "Mudar Loop da Animação"
#: tools/editor/animation_editor.cpp
-msgid "Change Anim Loop Interpolation"
-msgstr "Mudar Interpolação do Loop da Animação"
-
-#: tools/editor/animation_editor.cpp
msgid "Anim Create Typed Value Key"
msgstr "Criar Chave com Valor Definido"
@@ -745,10 +741,6 @@ msgid "Enable/Disable looping in animation."
msgstr "Habilitar/Desabilitar loop de animação."
#: tools/editor/animation_editor.cpp
-msgid "Enable/Disable interpolation when looping animation."
-msgstr "Habilitar/Desabilitar interpolação quando repetindo a animação."
-
-#: tools/editor/animation_editor.cpp
msgid "Add new tracks."
msgstr "Adicionar novas trilhas."
@@ -1013,7 +1005,8 @@ msgid "Method in target Node must be specified!"
msgstr "O método no Nó destino precisa ser especificado!"
#: tools/editor/connections_dialog.cpp
-msgid "Conect To Node:"
+#, fuzzy
+msgid "Connect To Node:"
msgstr "Conectar ao Nó:"
#: tools/editor/connections_dialog.cpp tools/editor/groups_editor.cpp
@@ -1233,6 +1226,51 @@ msgstr "Escolha um Diretório"
msgid "Choose"
msgstr "Escolher"
+#: tools/editor/editor_file_dialog.cpp
+msgid "Go Back"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Go Forward"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Go Up"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Toggle Hidden Files"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+#, fuzzy
+msgid "Toggle Favorite"
+msgstr "Mover Favorito Acima"
+
+#: tools/editor/editor_file_dialog.cpp
+#, fuzzy
+msgid "Toggle Mode"
+msgstr "Alternar Comentário"
+
+#: tools/editor/editor_file_dialog.cpp
+#, fuzzy
+msgid "Focus Path"
+msgstr "Copiar Caminho"
+
+#: tools/editor/editor_file_dialog.cpp
+#, fuzzy
+msgid "Mode Favorite Up"
+msgstr "Mover Favorito Acima"
+
+#: tools/editor/editor_file_dialog.cpp
+#, fuzzy
+msgid "Mode Favorite Down"
+msgstr "Mover Favorito Abaixo"
+
#: tools/editor/editor_file_dialog.cpp tools/editor/scenes_dock.cpp
msgid "Favorites:"
msgstr "Favoritos:"
@@ -1487,9 +1525,31 @@ msgid "There is no defined scene to run."
msgstr "Não há cena definida para rodar."
#: tools/editor/editor_node.cpp
+#, fuzzy
msgid ""
-"No main scene has ever been defined.\n"
-"Select one from \"Project Settings\" under the 'application' category."
+"No main scene has ever been defined, select one?\n"
+"You can change it later in later in \"Project Settings\" under the "
+"'application' category."
+msgstr ""
+"A cena principal não foi definida.\n"
+"Selecione uma nas \"Configurações do Projeto\" na categoria \"application\"."
+
+#: tools/editor/editor_node.cpp
+#, fuzzy
+msgid ""
+"Selected scene '%s' does not exist, select a valid one?\n"
+"You can change it later in \"Project Settings\" under the 'application' "
+"category."
+msgstr ""
+"A cena principal não foi definida.\n"
+"Selecione uma nas \"Configurações do Projeto\" na categoria \"application\"."
+
+#: tools/editor/editor_node.cpp
+#, fuzzy
+msgid ""
+"Selected scene '%s' is not a scene file, select a valid one?\n"
+"You can change it later in \"Project Settings\" under the 'application' "
+"category."
msgstr ""
"A cena principal não foi definida.\n"
"Selecione uma nas \"Configurações do Projeto\" na categoria \"application\"."
@@ -1586,6 +1646,11 @@ msgstr ""
"Abrir Gerenciador de Projetos?\n"
"(Mudanças não salvas serão perdidas)"
+#: tools/editor/editor_node.cpp
+#, fuzzy
+msgid "Pick a Manu Scene"
+msgstr "Cena Principal"
+
#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
msgid "Ugh"
msgstr "Ugh"
@@ -1611,18 +1676,14 @@ msgid "Save Layout"
msgstr "Salvar Layout"
#: tools/editor/editor_node.cpp
-msgid "Load Layout"
-msgstr "Carregar Layout"
+msgid "Delete Layout"
+msgstr "Excluir Layout"
#: tools/editor/editor_node.cpp tools/editor/project_export.cpp
msgid "Default"
msgstr "Padrão"
#: tools/editor/editor_node.cpp
-msgid "Delete Layout"
-msgstr "Excluir Layout"
-
-#: tools/editor/editor_node.cpp
msgid "Switch Scene Tab"
msgstr "Trocar Guia de Cena"
@@ -1652,6 +1713,16 @@ msgid "Distraction Free Mode"
msgstr "Modo Sem Distrações"
#: tools/editor/editor_node.cpp
+#, fuzzy
+msgid "Next tab"
+msgstr "Próximo"
+
+#: tools/editor/editor_node.cpp
+#, fuzzy
+msgid "Previous tab"
+msgstr "Diretório Anterior"
+
+#: tools/editor/editor_node.cpp
msgid "Operations with scene files."
msgstr "Operações com arquivos de cena."
@@ -2215,6 +2286,12 @@ msgid "No target font resource!"
msgstr "Falta recurso de fonte destino!"
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+msgid ""
+"Invalid file extension.\n"
+"Please use .fnt."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
msgid "Can't load/process source font."
msgstr "Não se pôde carregar/processar fonte de origem."
@@ -2454,7 +2531,8 @@ msgid "Couldn't load post-import script:"
msgstr "Não se pôde carregar script pós-importação:"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Invalid/broken script for post-import:"
+#, fuzzy
+msgid "Invalid/broken script for post-import (check console):"
msgstr "Script pós-importação inválido/quebrado:"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
@@ -3122,13 +3200,11 @@ msgstr "Configurar o Snap"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid Offset:"
msgstr "Deslocamento da grade:"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid Step:"
msgstr "Passo de grade:"
@@ -3248,7 +3324,6 @@ msgstr "Usar Snap"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Show Grid"
msgstr "Mostrar Grade"
@@ -3501,6 +3576,10 @@ msgid "MeshInstance lacks a Mesh!"
msgstr "Falta uma MeshInstance na Mesh!"
#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Mesh has not surface to create outlines from!"
+msgstr ""
+
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Could not create outline!"
msgstr "Não se pôde criar contorno!"
@@ -3863,17 +3942,14 @@ msgid "Clear UV"
msgstr "Limpar UV"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Snap"
msgstr "Snap"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Enable Snap"
msgstr "Ativar Snap"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid"
msgstr "Grade"
@@ -4711,20 +4787,51 @@ msgid "StyleBox Preview:"
msgstr "Pré-Visualização do StyleBox:"
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid "Texture Region Editor"
-msgstr "Editor de Região da Textura"
+#, fuzzy
+msgid "Snap Mode:"
+msgstr "Modo de Início:"
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid "Scale Region Editor"
-msgstr "Editor de Região de Escala"
+msgid "<None>"
+msgstr ""
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid ""
-"No texture in this node.\n"
-"Set a texture to be able to edit region."
+#, fuzzy
+msgid "Pixel Snap"
+msgstr "Usar Snap de Pixel"
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+#, fuzzy
+msgid "Grid Snap"
+msgstr "Passo de grade:"
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Auto Slice"
msgstr ""
-"Sem textura nesse nó.\n"
-"Defina uma textura para poder editar essa região."
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+#, fuzzy
+msgid "Offset:"
+msgstr "Deslocamento da grade:"
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+#, fuzzy
+msgid "Step:"
+msgstr "Passo (s):"
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+#, fuzzy
+msgid "Separation:"
+msgstr "Seções:"
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+#, fuzzy
+msgid "Texture Region"
+msgstr "Editor de Região da Textura"
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Texture Region Editor"
+msgstr "Editor de Região da Textura"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Can't save theme to file:"
@@ -5796,12 +5903,16 @@ msgid "Error duplicating scene to save it."
msgstr "Erro duplicando cena ao salvar."
#: tools/editor/scene_tree_dock.cpp
-msgid "New Scene Root"
-msgstr "Nova Raiz de Cena"
+msgid "Edit Groups"
+msgstr "Editar Grupos"
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Edit Connections"
+msgstr "Editar Conexões"
#: tools/editor/scene_tree_dock.cpp
-msgid "Inherit Scene"
-msgstr "Herdar Cena"
+msgid "Delete Node(s)"
+msgstr "Excluir Nó(s)"
#: tools/editor/scene_tree_dock.cpp
msgid "Add Child Node"
@@ -5816,14 +5927,6 @@ msgid "Change Type"
msgstr "Alterar Tipo"
#: tools/editor/scene_tree_dock.cpp
-msgid "Edit Groups"
-msgstr "Editar Grupos"
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Edit Connections"
-msgstr "Editar Conexões"
-
-#: tools/editor/scene_tree_dock.cpp
msgid "Add Script"
msgstr "Adicionar Script"
@@ -5836,10 +5939,6 @@ msgid "Save Branch as Scene"
msgstr "Salvar Ramo como Cena"
#: tools/editor/scene_tree_dock.cpp
-msgid "Delete Node(s)"
-msgstr "Excluir Nó(s)"
-
-#: tools/editor/scene_tree_dock.cpp
msgid "Add/Create a New Node"
msgstr "Adicionar/Criar um Novo Nó"
@@ -6231,6 +6330,31 @@ msgstr "Mudar o tamanho do Shape Ray"
msgid "Change Notifier Extents"
msgstr "Alterar a Extensão do Notificador"
+#~ msgid "Change Anim Loop Interpolation"
+#~ msgstr "Mudar Interpolação do Loop da Animação"
+
+#~ msgid "Enable/Disable interpolation when looping animation."
+#~ msgstr "Habilitar/Desabilitar interpolação quando repetindo a animação."
+
+#~ msgid "Load Layout"
+#~ msgstr "Carregar Layout"
+
+#~ msgid "Scale Region Editor"
+#~ msgstr "Editor de Região de Escala"
+
+#~ msgid ""
+#~ "No texture in this node.\n"
+#~ "Set a texture to be able to edit region."
+#~ msgstr ""
+#~ "Sem textura nesse nó.\n"
+#~ "Defina uma textura para poder editar essa região."
+
+#~ msgid "New Scene Root"
+#~ msgstr "Nova Raiz de Cena"
+
+#~ msgid "Inherit Scene"
+#~ msgstr "Herdar Cena"
+
#~ msgid "Binds (Extra Params):"
#~ msgstr "Ligações (Parâmetros Extra):"
@@ -6288,12 +6412,6 @@ msgstr "Alterar a Extensão do Notificador"
#~ msgid "Next Time:"
#~ msgstr "Next Time:"
-#~ msgid "Move Favorite Up"
-#~ msgstr "Mover Favorito Acima"
-
-#~ msgid "Move Favorite Down"
-#~ msgstr "Mover Favorito Abaixo"
-
#~ msgid "%d frames"
#~ msgstr "%d quadros"
diff --git a/tools/translations/ru.po b/tools/translations/ru.po
index 63fb6c4177..97ac24c5b7 100644
--- a/tools/translations/ru.po
+++ b/tools/translations/ru.po
@@ -3,23 +3,24 @@
# This file is distributed under the same license as the Godot source code.
#
# DimOkGamer <dimokgamer@gmail.com>, 2016.
+# Maxim Kim <habamax@gmail.com>, 2016.
# Maxim toby3d Lebedev <mail@toby3d.ru>, 2016.
#
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2016-06-19 17:29+0300\n"
-"Last-Translator: DimOkGamer <dimokgamer@gmail.com>\n"
-"Language-Team: Russian <https://hosted.weblate.org/projects/godot-"
-"engine/godot/ru/>\n"
+"PO-Revision-Date: 2016-06-27 12:43+0000\n"
+"Last-Translator: Maxim Kim <habamax@gmail.com>\n"
+"Language-Team: Russian <https://hosted.weblate.org/projects/godot-engine/"
+"godot/ru/>\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<="
-"4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
-"X-Generator: Poedit 1.8.8\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 2.7-dev\n"
#: modules/gdscript/gd_functions.cpp
msgid "Invalid type argument to convert(), use TYPE_* constants."
@@ -136,7 +137,7 @@ msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
"Please set a property or draw a polygon."
msgstr ""
-"Ресурс NavigationPolygon должен быть установлен или создан для этого нода. "
+"Ресурс NavigationPolygon должен быть установлен или создан для этого узла. "
"Пожалуйста, установите свойство или нарисуйте многоугольник."
#: scene/2d/navigation_polygon.cpp
@@ -144,20 +145,21 @@ msgid ""
"NavigationPolygonInstance must be a child or grandchild to a Navigation2D "
"node. It only provides navigation data."
msgstr ""
-"NavigationPolygonInstance должен быть ребёнком или внуком нода Navigation2D. "
-"Он обеспечивает только навигационные данные."
+"NavigationPolygonInstance должен быть ребёнком или внуком узла Navigation2D. "
+"Он предоставляет только навигационные данные."
#: scene/2d/parallax_layer.cpp
msgid ""
"ParallaxLayer node only works when set as child of a ParallaxBackground node."
msgstr ""
-"Нод ParallaxLayer работает только при установке его в качестве дочернего "
+"Узел ParallaxLayer работает только при установке его в качестве дочернего "
"узла ParallaxBackground."
#: scene/2d/particles_2d.cpp
msgid "Path property must point to a valid Particles2D node to work."
msgstr ""
-"Свойство Path должен указывать на действительный нод Particles2D для работы."
+"Для корректной работы свойство Path должно указывать на действующий узел "
+"Particles2D."
#: scene/2d/path_2d.cpp
msgid "PathFollow2D only works when set as a child of a Path2D node."
@@ -167,7 +169,9 @@ msgstr ""
#: scene/2d/remote_transform_2d.cpp
msgid "Path property must point to a valid Node2D node to work."
-msgstr "Свойство Path должен указывать на действительный нод Node2D для работы."
+msgstr ""
+"Для корректной работы свойство Path должно указывать на действующий узел "
+"Node2D."
#: scene/2d/sample_player_2d.cpp scene/audio/sample_player.cpp
msgid ""
@@ -182,24 +186,24 @@ msgid ""
"Path property must point to a valid Viewport node to work. Such Viewport "
"must be set to 'render target' mode."
msgstr ""
-"Для работы, параметр Path должен указывать на действительный Нод Viewport. "
-"Такой Viewport должен быть установлен в качестве цели рендеринга."
+"Для корректной работы свойство Path должно указывать на действующий узел "
+"Viewport. Такой Viewport должен быть установлен в режим 'цель рендеринга'."
#: scene/2d/sprite.cpp
msgid ""
"The Viewport set in the path property must be set as 'render target' in "
"order for this sprite to work."
msgstr ""
-"Области просмотра установленная в свойстве path должна быть назначена \""
-"целью визуализации\" для того, чтобы этот спрайт работал."
+"Области просмотра установленная в свойстве path должна быть назначена "
+"\"целью визуализации\" для того, чтобы этот спрайт работал."
#: scene/2d/visibility_notifier_2d.cpp
msgid ""
"VisibilityEnable2D works best when used with the edited scene root directly "
"as parent."
msgstr ""
-"VisibilityEnable2D работает лучше, когда используется, как дочерний нод "
-"корня."
+"VisibilityEnable2D работает наилучшим образом при использовании корня "
+"редактируемой сцены, как прямого родителя."
#: scene/3d/body_shape.cpp
msgid ""
@@ -235,15 +239,16 @@ msgstr "Пустой CollisionPolygon не влияет на столкнове
#: scene/3d/navigation_mesh.cpp
msgid "A NavigationMesh resource must be set or created for this node to work."
-msgstr "Ресурс NavigationMesh должен быть установлен или создан для этого нода."
+msgstr ""
+"Ресурс NavigationMesh должен быть установлен или создан для этого узла."
#: scene/3d/navigation_mesh.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
-"NavigationMeshInstance должен быть ребёнком или внуком нода Navigation. Он "
-"обеспечивает только навигационные данные."
+"NavigationMeshInstance должен быть дочерним или под-дочерним узлом "
+"Navigation. Он предоставляет только навигационные данные."
#: scene/3d/scenario_fx.cpp
msgid ""
@@ -483,7 +488,7 @@ msgstr ""
"использовать его, чтобы отобразить его содержимое прямо на экране, сделать "
"его потомком Control'а, чтобы он мог получить размер. В противном случае, "
"сделайте его целью рендеринга и передайте его внутренние текстуры какому-то "
-"другому Ноду для отображения."
+"другому узлу для отображения."
#: scene/resources/dynamic_font.cpp
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
@@ -701,10 +706,6 @@ msgid "Change Anim Loop"
msgstr "Изменено зацикливание анимации"
#: tools/editor/animation_editor.cpp
-msgid "Change Anim Loop Interpolation"
-msgstr "Изменена интерполяция анимации"
-
-#: tools/editor/animation_editor.cpp
msgid "Anim Create Typed Value Key"
msgstr "Создан ключ с вводимым значением"
@@ -745,10 +746,6 @@ msgid "Enable/Disable looping in animation."
msgstr "Включить/отключить зацикливание в анимации."
#: tools/editor/animation_editor.cpp
-msgid "Enable/Disable interpolation when looping animation."
-msgstr "Включить/отключить интерполяцию при зацикливании анимации."
-
-#: tools/editor/animation_editor.cpp
msgid "Add new tracks."
msgstr "Добавить новые дорожки."
@@ -806,7 +803,7 @@ msgstr "Коэффициент масштабирования:"
#: tools/editor/animation_editor.cpp
msgid "Call Functions in Which Node?"
-msgstr "Вызвать функцию в каком ноде?"
+msgstr "Вызвать функции в каком узле?"
#: tools/editor/animation_editor.cpp
msgid "Remove invalid keys"
@@ -1010,11 +1007,12 @@ msgstr "Стлб:"
#: tools/editor/connections_dialog.cpp
msgid "Method in target Node must be specified!"
-msgstr "Метод должен быть указан в целевом Ноде!"
+msgstr "Метод должен быть указан в целевом Узле!"
#: tools/editor/connections_dialog.cpp
-msgid "Conect To Node:"
-msgstr "Присоединить к ноду:"
+#, fuzzy
+msgid "Connect To Node:"
+msgstr "Присоединить к узлу:"
#: tools/editor/connections_dialog.cpp tools/editor/groups_editor.cpp
#: tools/editor/plugins/item_list_editor_plugin.cpp
@@ -1040,7 +1038,7 @@ msgstr "Дополнительные параметры вызова:"
#: tools/editor/connections_dialog.cpp
msgid "Path to Node:"
-msgstr "Путь к ноду:"
+msgstr "Путь к Узлу:"
#: tools/editor/connections_dialog.cpp
msgid "Make Function"
@@ -1232,6 +1230,51 @@ msgstr "Выбрать каталог"
msgid "Choose"
msgstr "Выбрать"
+#: tools/editor/editor_file_dialog.cpp
+msgid "Go Back"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Go Forward"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Go Up"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Toggle Hidden Files"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+#, fuzzy
+msgid "Toggle Favorite"
+msgstr "Точка остановки"
+
+#: tools/editor/editor_file_dialog.cpp
+#, fuzzy
+msgid "Toggle Mode"
+msgstr "Переключить комментарий"
+
+#: tools/editor/editor_file_dialog.cpp
+#, fuzzy
+msgid "Focus Path"
+msgstr "Копировать путь"
+
+#: tools/editor/editor_file_dialog.cpp
+#, fuzzy
+msgid "Mode Favorite Up"
+msgstr "Избранное:"
+
+#: tools/editor/editor_file_dialog.cpp
+#, fuzzy
+msgid "Mode Favorite Down"
+msgstr "Переместить вниз"
+
#: tools/editor/editor_file_dialog.cpp tools/editor/scenes_dock.cpp
msgid "Favorites:"
msgstr "Избранное:"
@@ -1355,7 +1398,7 @@ msgstr "Импортируется:"
#: tools/editor/editor_node.cpp
msgid "Node From Scene"
-msgstr "Нод со сцены"
+msgstr "Узел со сцены"
#: tools/editor/editor_node.cpp tools/editor/scenes_dock.cpp
msgid "Re-Import.."
@@ -1486,9 +1529,33 @@ msgid "There is no defined scene to run."
msgstr "Нет определённой сцены, чтобы работать."
#: tools/editor/editor_node.cpp
+#, fuzzy
+msgid ""
+"No main scene has ever been defined, select one?\n"
+"You can change it later in later in \"Project Settings\" under the "
+"'application' category."
+msgstr ""
+"Не назначена главная сцена.\n"
+"Укажите её в параметре \"main_scene\" расположенном\n"
+"в \"Настройки проекта - Основное - application\"."
+
+#: tools/editor/editor_node.cpp
+#, fuzzy
+msgid ""
+"Selected scene '%s' does not exist, select a valid one?\n"
+"You can change it later in \"Project Settings\" under the 'application' "
+"category."
+msgstr ""
+"Не назначена главная сцена.\n"
+"Укажите её в параметре \"main_scene\" расположенном\n"
+"в \"Настройки проекта - Основное - application\"."
+
+#: tools/editor/editor_node.cpp
+#, fuzzy
msgid ""
-"No main scene has ever been defined.\n"
-"Select one from \"Project Settings\" under the 'application' category."
+"Selected scene '%s' is not a scene file, select a valid one?\n"
+"You can change it later in \"Project Settings\" under the 'application' "
+"category."
msgstr ""
"Не назначена главная сцена.\n"
"Укажите её в параметре \"main_scene\" расположенном\n"
@@ -1586,6 +1653,11 @@ msgstr ""
"Открыть менеджер проектов? \n"
"(Несохранённые изменения будут потеряны.)"
+#: tools/editor/editor_node.cpp
+#, fuzzy
+msgid "Pick a Manu Scene"
+msgstr "Главная сцена"
+
#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
msgid "Ugh"
msgstr "Ясно"
@@ -1612,18 +1684,14 @@ msgid "Save Layout"
msgstr "Сохранить макет"
#: tools/editor/editor_node.cpp
-msgid "Load Layout"
-msgstr "Загрузить макет"
+msgid "Delete Layout"
+msgstr "Удалить макет"
#: tools/editor/editor_node.cpp tools/editor/project_export.cpp
msgid "Default"
msgstr "По-умолчанию"
#: tools/editor/editor_node.cpp
-msgid "Delete Layout"
-msgstr "Удалить макет"
-
-#: tools/editor/editor_node.cpp
msgid "Switch Scene Tab"
msgstr "Смена вкладки со сценой"
@@ -1653,6 +1721,16 @@ msgid "Distraction Free Mode"
msgstr "Свободный режим"
#: tools/editor/editor_node.cpp
+#, fuzzy
+msgid "Next tab"
+msgstr "Следующий"
+
+#: tools/editor/editor_node.cpp
+#, fuzzy
+msgid "Previous tab"
+msgstr "Предыдущий каталог"
+
+#: tools/editor/editor_node.cpp
msgid "Operations with scene files."
msgstr "Операции с файлами сцены."
@@ -1839,7 +1917,7 @@ msgid ""
"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
"running game if this option is turned on."
msgstr ""
-"Когда эта опция включена, области соприкосновений и ноды Raycast(в 2D и 3D) "
+"Когда эта опция включена, области соприкосновений и узлы Raycast(в 2D и 3D) "
"будут видимыми в запущенной игре."
#: tools/editor/editor_node.cpp
@@ -2117,7 +2195,7 @@ msgstr "По-умолчанию (как редактор)"
#: tools/editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
-msgstr "Выберите нод(ы) для импорта"
+msgstr "Выберите Узлы(ы) для импорта"
#: tools/editor/editor_sub_scene.cpp
msgid "Scene Path:"
@@ -2125,7 +2203,7 @@ msgstr "Путь к сцене:"
#: tools/editor/editor_sub_scene.cpp
msgid "Import From Node:"
-msgstr "Импортировать из нода:"
+msgstr "Импортировать из Узла:"
#: tools/editor/file_type_cache.cpp
msgid "Can't open file_type_cache.cch for writing, not saving file type cache!"
@@ -2216,6 +2294,12 @@ msgid "No target font resource!"
msgstr "Нет целевого ресурса шрифта!"
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+msgid ""
+"Invalid file extension.\n"
+"Please use .fnt."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
msgid "Can't load/process source font."
msgstr "Не удалось загрузить/исполнить исходный шрифт."
@@ -2415,7 +2499,7 @@ msgstr "Скрипт пост-процесса:"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Custom Root Node Type:"
-msgstr "Настраиваемый тип корневого нода:"
+msgstr "Настраиваемый тип корневого узла:"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Auto"
@@ -2457,7 +2541,8 @@ msgid "Couldn't load post-import script:"
msgstr "Не могу загрузить скрипт для пост-импорта:"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Invalid/broken script for post-import:"
+#, fuzzy
+msgid "Invalid/broken script for post-import (check console):"
msgstr "Повреждённый/сломанный скрипт для пост-импорта:"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
@@ -2719,11 +2804,11 @@ msgstr "Перевод"
#: tools/editor/multi_node_edit.cpp
msgid "MultiNode Set"
-msgstr "Мульти нодовый набор"
+msgstr "Мульти-узловый набор"
#: tools/editor/node_dock.cpp
msgid "Node"
-msgstr "Нод"
+msgstr "Узел"
#: tools/editor/node_dock.cpp
msgid "Groups"
@@ -2731,9 +2816,7 @@ msgstr "Группы"
#: tools/editor/node_dock.cpp
msgid "Select a Node to edit Signals and Groups."
-msgstr ""
-"Выберите нод для редактирования\n"
-"сигналов и групп."
+msgstr "Выберите узел для редактирования сигналов и групп."
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Toggle Autoplay"
@@ -3010,39 +3093,39 @@ msgstr "Дерево анимации не действительно."
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Animation Node"
-msgstr "Animation нод"
+msgstr "Animation узел"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "OneShot Node"
-msgstr "OneShot нод"
+msgstr "OneShot узел"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Mix Node"
-msgstr "Mix нод"
+msgstr "Mix узел"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Blend2 Node"
-msgstr "Blend2 нод"
+msgstr "Blend2 узел"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Blend3 Node"
-msgstr "Blend3 нод"
+msgstr "Blend3 узел"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Blend4 Node"
-msgstr "Blend4 нод"
+msgstr "Blend4 узел"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "TimeScale Node"
-msgstr "TimeScale нод"
+msgstr "TimeScale узел"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "TimeSeek Node"
-msgstr "TimeSeek нод"
+msgstr "TimeSeek узел"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Transition Node"
-msgstr "Transition нод"
+msgstr "Transition узел"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Import Animations.."
@@ -3050,7 +3133,7 @@ msgstr "Импортировать анимации.."
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Edit Node Filters"
-msgstr "Редактировать фильтры нода"
+msgstr "Редактировать фильтры узла"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Filters.."
@@ -3127,13 +3210,11 @@ msgstr "Настроить привязку"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid Offset:"
msgstr "Отступ сетку:"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid Step:"
msgstr "Шаг сетки:"
@@ -3253,7 +3334,6 @@ msgstr "Использовать привязку"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Show Grid"
msgstr "Показать сетку"
@@ -3506,6 +3586,10 @@ msgid "MeshInstance lacks a Mesh!"
msgstr "В MeshInstance нет полисетки!"
#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Mesh has not surface to create outlines from!"
+msgstr ""
+
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Could not create outline!"
msgstr "Невозможно создать контур!"
@@ -3543,7 +3627,7 @@ msgstr "Размер обводки:"
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "No mesh source specified (and no MultiMesh set in node)."
-msgstr "Не указана исходная полисетка (и мульти полисетка не указана в ноде)."
+msgstr "Не указан источник полисетки (и мульти полисетка не указана в узле)."
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "No mesh source specified (and MultiMesh contains no Mesh)."
@@ -3675,11 +3759,11 @@ msgstr "Количество создаваемых точек:"
#: tools/editor/plugins/particles_editor_plugin.cpp
msgid "Node does not contain geometry."
-msgstr "Нод не содержит геометрии."
+msgstr "Узел не содержит геометрии."
#: tools/editor/plugins/particles_editor_plugin.cpp
msgid "Node does not contain geometry (faces)."
-msgstr "Нод не содержит геометрии (грани)."
+msgstr "Узел не содержит геометрии (грани)."
#: tools/editor/plugins/particles_editor_plugin.cpp
msgid "Faces contain no area!"
@@ -3699,7 +3783,7 @@ msgstr "Создать излучатель из полисетки"
#: tools/editor/plugins/particles_editor_plugin.cpp
msgid "Create Emitter From Node"
-msgstr "Создать излучатель из нода"
+msgstr "Создать излучатель из узла"
#: tools/editor/plugins/particles_editor_plugin.cpp
msgid "Clear Emitter"
@@ -3867,17 +3951,14 @@ msgid "Clear UV"
msgstr "Очистить UV"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Snap"
msgstr "Привязка"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Enable Snap"
msgstr "Активировать привязку"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid"
msgstr "Сетка"
@@ -4488,7 +4569,7 @@ msgstr "Вещицы"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Selection (F)"
-msgstr "Показать выбранный нод (F)"
+msgstr "Показать выбранный узел (F)"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Align with view (Ctrl+Shift+F)"
@@ -4715,20 +4796,51 @@ msgid "StyleBox Preview:"
msgstr "StyleBox предпросмотр:"
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid "Texture Region Editor"
-msgstr "Редактор области текстуры"
+#, fuzzy
+msgid "Snap Mode:"
+msgstr "Режим запуска:"
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid "Scale Region Editor"
-msgstr "Редактор масштабируемой области текстуры"
+msgid "<None>"
+msgstr ""
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid ""
-"No texture in this node.\n"
-"Set a texture to be able to edit region."
+#, fuzzy
+msgid "Pixel Snap"
+msgstr "Использовать попиксельную привязку"
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+#, fuzzy
+msgid "Grid Snap"
+msgstr "Шаг сетки:"
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Auto Slice"
msgstr ""
-"В этом ноде нет текстуры.\n"
-"Выберите текстуру, чтобы редактировать область."
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+#, fuzzy
+msgid "Offset:"
+msgstr "Отступ сетку:"
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+#, fuzzy
+msgid "Step:"
+msgstr "Шаг (сек.):"
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+#, fuzzy
+msgid "Separation:"
+msgstr "Разделы:"
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+#, fuzzy
+msgid "Texture Region"
+msgstr "Редактор области текстуры"
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Texture Region Editor"
+msgstr "Редактор области текстуры"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Can't save theme to file:"
@@ -5019,8 +5131,8 @@ msgstr "Действие"
msgid ""
"Filters to export non-resource files (comma-separated, e.g.: *.json, *.txt):"
msgstr ""
-"Фильтр для экспорта не ресурсных файлов (через запятую, например: *.json, "
-"*.txt):"
+"Фильтр для экспорта не ресурсных файлов (через запятую, например: *.json, *."
+"txt):"
#: tools/editor/project_export.cpp
msgid "Filters to exclude from export (comma-separated, e.g.: *.json, *.txt):"
@@ -5546,7 +5658,7 @@ msgstr "Автозагрузка"
#: tools/editor/project_settings.cpp
msgid "Node Name:"
-msgstr "Имя Нода:"
+msgstr "Имя Узла:"
#: tools/editor/project_settings.cpp
msgid "List:"
@@ -5644,7 +5756,7 @@ msgstr ""
#: tools/editor/reparent_dialog.cpp tools/editor/scene_tree_dock.cpp
msgid "Reparent Node"
-msgstr "Переподчинить нод"
+msgstr "Переподчинить узел"
#: tools/editor/reparent_dialog.cpp
msgid "Reparent Location (Select new Parent):"
@@ -5724,7 +5836,7 @@ msgid ""
"of its nodes."
msgstr ""
"Невозможно добавить сцену %s, потому что текущая сцена существует в одном из "
-"его нодов."
+"его узлов."
#: tools/editor/scene_tree_dock.cpp
msgid "Instance Scene(s)"
@@ -5736,19 +5848,19 @@ msgstr "Эта операция не может быть произведена
#: tools/editor/scene_tree_dock.cpp
msgid "Move Node In Parent"
-msgstr "Перемещение нода в Родительский"
+msgstr "Перемещение узла в Родительский"
#: tools/editor/scene_tree_dock.cpp
msgid "Move Nodes In Parent"
-msgstr "Перемещение нодов в родительский"
+msgstr "Перемещение узлов в Родительский"
#: tools/editor/scene_tree_dock.cpp
msgid "Duplicate Node(s)"
-msgstr "Дублирован нод(ы)"
+msgstr "Дублировать узел(узлы)"
#: tools/editor/scene_tree_dock.cpp
msgid "Delete Node(s)?"
-msgstr "Удалить нод(ы)?"
+msgstr "Удалить узел(узлы)?"
#: tools/editor/scene_tree_dock.cpp
msgid "This operation can't be done without a scene."
@@ -5756,7 +5868,7 @@ msgstr "Эта операция не может быть выполнена бе
#: tools/editor/scene_tree_dock.cpp
msgid "This operation requires a single selected node."
-msgstr "Эта операция требует одного выбранного нода."
+msgstr "Эта операция требует одного выбранного узла."
#: tools/editor/scene_tree_dock.cpp
msgid "This operation can't be done on instanced scenes."
@@ -5772,19 +5884,19 @@ msgstr "Уууу круто!"
#: tools/editor/scene_tree_dock.cpp
msgid "Can't operate on nodes from a foreign scene!"
-msgstr "Не могу работать с нодами из внешней сцены!"
+msgstr "Не могу работать с узлами из внешней сцены!"
#: tools/editor/scene_tree_dock.cpp
msgid "Can't operate on nodes the current scene inherits from!"
-msgstr "Невозможно работать с нодами текущей сцены, наследуемой откуда-то!"
+msgstr "Невозможно работать с узлами, от которых унаследована текущая сцена!"
#: tools/editor/scene_tree_dock.cpp
msgid "Remove Node(s)"
-msgstr "Удалён нод(ы)"
+msgstr "Удалить узел(узлы)"
#: tools/editor/scene_tree_dock.cpp
msgid "Create Node"
-msgstr "Создан нод"
+msgstr "Создать узел"
#: tools/editor/scene_tree_dock.cpp
msgid ""
@@ -5803,16 +5915,20 @@ msgid "Error duplicating scene to save it."
msgstr "Ошибка дублирования сцены, чтобы сохранить её."
#: tools/editor/scene_tree_dock.cpp
-msgid "New Scene Root"
-msgstr "Новый корень сцены"
+msgid "Edit Groups"
+msgstr "Редактировать группы"
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Edit Connections"
+msgstr "Редактировать связи"
#: tools/editor/scene_tree_dock.cpp
-msgid "Inherit Scene"
-msgstr "Унаследовать сцену"
+msgid "Delete Node(s)"
+msgstr "Удалить узел(узлы)"
#: tools/editor/scene_tree_dock.cpp
msgid "Add Child Node"
-msgstr "Добавить дочерний нод"
+msgstr "Добавить дочерний узел"
#: tools/editor/scene_tree_dock.cpp
msgid "Instance Child Scene"
@@ -5823,14 +5939,6 @@ msgid "Change Type"
msgstr "Изменить тип"
#: tools/editor/scene_tree_dock.cpp
-msgid "Edit Groups"
-msgstr "Редактировать группы"
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Edit Connections"
-msgstr "Редактировать связи"
-
-#: tools/editor/scene_tree_dock.cpp
msgid "Add Script"
msgstr "Добавить скрипт"
@@ -5843,10 +5951,6 @@ msgid "Save Branch as Scene"
msgstr "Сохранить ветку, как сцену"
#: tools/editor/scene_tree_dock.cpp
-msgid "Delete Node(s)"
-msgstr "Удалить нод(ы)"
-
-#: tools/editor/scene_tree_dock.cpp
msgid "Add/Create a New Node"
msgstr "Добавить/создать новый узел"
@@ -5855,7 +5959,7 @@ msgid ""
"Instance a scene file as a Node. Creates an inherited scene if no root node "
"exists."
msgstr ""
-"Добавить файл сцены как нод. Создаёт наследуемую сцену, если корневой узел "
+"Добавить файл сцены как узел. Создаёт наследуемую сцену, если корневой узел "
"не существует."
#: tools/editor/scene_tree_editor.cpp
@@ -5864,7 +5968,7 @@ msgid ""
"parent first."
msgstr ""
"Этот объект не может быть отображён, потому что его родитель скрыт. "
-"Отобразите сначала родительский нод."
+"Отобразите сначала родительский узел."
#: tools/editor/scene_tree_editor.cpp
msgid "Toggle Spatial Visible"
@@ -5880,15 +5984,15 @@ msgstr "Экземпляр:"
#: tools/editor/scene_tree_editor.cpp
msgid "Invalid node name, the following characters are not allowed:"
-msgstr "Недопустимые символы в названии нода:"
+msgstr "Некорректное имя узла, следующие символы недопустимы:"
#: tools/editor/scene_tree_editor.cpp
msgid "Rename Node"
-msgstr "Нод переименован"
+msgstr "Переименовать узел"
#: tools/editor/scene_tree_editor.cpp
msgid "Scene Tree (Nodes):"
-msgstr "Дерево сцены (ноды):"
+msgstr "Дерево сцены (Узлы):"
#: tools/editor/scene_tree_editor.cpp
msgid "Editable Children"
@@ -5920,7 +6024,7 @@ msgstr "Очистить!"
#: tools/editor/scene_tree_editor.cpp
msgid "Select a Node"
-msgstr "Выберете нод"
+msgstr "Выбрать узел"
#: tools/editor/scenes_dock.cpp
msgid "Same source and destination files, doing nothing."
@@ -5996,7 +6100,7 @@ msgstr "Переключить статус папки как избранной
#: tools/editor/scenes_dock.cpp
msgid "Instance the selected scene(s) as child of the selected node."
-msgstr "Добавить выбранную сцену(сцены), как потомка выбранного нода."
+msgstr "Добавить выбранную сцену(сцены), как потомка выбранного узла."
#: tools/editor/scenes_dock.cpp
msgid "Move"
@@ -6072,7 +6176,7 @@ msgstr "Встроенный Скрипт"
#: tools/editor/script_create_dialog.cpp
msgid "Create Node Script"
-msgstr "Создать скрипт для нода"
+msgstr "Создать скрипт для узла"
#: tools/editor/script_editor_debugger.cpp
msgid "Bytes:"
@@ -6184,11 +6288,11 @@ msgstr "Прочее"
#: tools/editor/script_editor_debugger.cpp
msgid "Clicked Control:"
-msgstr "Нажатый нод:"
+msgstr "Нажатый элемент управления:"
#: tools/editor/script_editor_debugger.cpp
msgid "Clicked Control Type:"
-msgstr "Тип нажатого нода:"
+msgstr "Тип нажатого элемента управления:"
#: tools/editor/script_editor_debugger.cpp
msgid "Live Edit Root:"
@@ -6196,7 +6300,7 @@ msgstr "Редактирование корня в реальном времен
#: tools/editor/script_editor_debugger.cpp
msgid "Set From Tree"
-msgstr "Установить из дерева нодов"
+msgstr "Установить из дерева"
#: tools/editor/settings_config_dialog.cpp
msgid "Shortcuts"
@@ -6238,6 +6342,31 @@ msgstr "Изменена длинна луча"
msgid "Change Notifier Extents"
msgstr "Изменены границы уведомителя"
+#~ msgid "Change Anim Loop Interpolation"
+#~ msgstr "Изменена интерполяция анимации"
+
+#~ msgid "Enable/Disable interpolation when looping animation."
+#~ msgstr "Включить/отключить интерполяцию при зацикливании анимации."
+
+#~ msgid "Load Layout"
+#~ msgstr "Загрузить макет"
+
+#~ msgid "Scale Region Editor"
+#~ msgstr "Редактор масштабируемой области текстуры"
+
+#~ msgid ""
+#~ "No texture in this node.\n"
+#~ "Set a texture to be able to edit region."
+#~ msgstr ""
+#~ "В этом узле нет текстуры.\n"
+#~ "Выберите текстуру, чтобы редактировать область."
+
+#~ msgid "New Scene Root"
+#~ msgstr "Новый корень сцены"
+
+#~ msgid "Inherit Scene"
+#~ msgstr "Унаследовать сцену"
+
#~ msgid "Binds (Extra Params):"
#~ msgstr "Связи (необязательные параметры):"
diff --git a/tools/translations/sk.po b/tools/translations/sk.po
index b21333b7f8..94ce24b46c 100644
--- a/tools/translations/sk.po
+++ b/tools/translations/sk.po
@@ -2,13 +2,13 @@
# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community
# This file is distributed under the same license as the Godot source code.
#
-# lablazer <avojtus@centrum.sk>, 2016.
+# J08nY <johnenter@gmail.com>, 2016.
#
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
-"PO-Revision-Date: 2016-06-11 11:23+0000\n"
-"Last-Translator: lablazer <avojtus@centrum.sk>\n"
+"PO-Revision-Date: 2016-06-25 14:16+0000\n"
+"Last-Translator: J08nY <johnenter@gmail.com>\n"
"Language-Team: Slovak <https://hosted.weblate.org/projects/godot-engine/"
"godot/sk/>\n"
"Language: sk\n"
@@ -19,15 +19,15 @@ msgstr ""
#: modules/gdscript/gd_functions.cpp
msgid "Invalid type argument to convert(), use TYPE_* constants."
-msgstr ""
+msgstr "Chybný argument convert(), použite TYPE_* konštanty."
#: modules/gdscript/gd_functions.cpp
msgid "Not enough bytes for decoding bytes, or invalid format."
-msgstr ""
+msgstr "Nedostatok bajtov na dekódovanie, možný chybný formát."
#: modules/gdscript/gd_functions.cpp
msgid "step argument is zero!"
-msgstr ""
+msgstr "argument \"step\"/krok je nulový!"
#: modules/gdscript/gd_functions.cpp
msgid "Not a script with an instance"
@@ -241,7 +241,7 @@ msgstr ""
#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
msgid "All Recognized"
-msgstr ""
+msgstr "Všetko rozpoznané"
#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
msgid "All Files (*)"
@@ -252,64 +252,64 @@ msgstr ""
#: tools/editor/plugins/script_editor_plugin.cpp tools/editor/quick_open.cpp
#: tools/editor/scenes_dock.cpp
msgid "Open"
-msgstr ""
+msgstr "Otvoriť"
#: scene/gui/file_dialog.cpp
msgid "Open a File"
-msgstr ""
+msgstr "Otvoriť súbor"
#: scene/gui/file_dialog.cpp
msgid "Open File(s)"
-msgstr ""
+msgstr "Otvoriť súbor(y)"
#: scene/gui/file_dialog.cpp
msgid "Open a Directory"
-msgstr ""
+msgstr "Otvorit priečinok"
#: scene/gui/file_dialog.cpp
msgid "Open a File or Directory"
-msgstr ""
+msgstr "Otvoriť súbor / priečinok"
#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
#: tools/editor/editor_node.cpp
#: tools/editor/plugins/animation_player_editor_plugin.cpp
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Save"
-msgstr ""
+msgstr "Uložiť"
#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
msgid "Save a File"
-msgstr ""
+msgstr "Uložiť súbor"
#: scene/gui/file_dialog.cpp tools/editor/editor_dir_dialog.cpp
#: tools/editor/editor_file_dialog.cpp
msgid "Create Folder"
-msgstr ""
+msgstr "Vytvoriť adresár"
#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
#: tools/editor/project_settings.cpp tools/editor/script_create_dialog.cpp
msgid "Path:"
-msgstr ""
+msgstr "Cesta:"
#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
msgid "Directories & Files:"
-msgstr ""
+msgstr "Priečinky a Súbory:"
#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
#: tools/editor/script_editor_debugger.cpp
msgid "File:"
-msgstr ""
+msgstr "Súbor:"
#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
msgid "Filter:"
-msgstr ""
+msgstr "Filter:"
#: scene/gui/file_dialog.cpp tools/editor/editor_dir_dialog.cpp
#: tools/editor/editor_file_dialog.cpp tools/editor/editor_plugin_settings.cpp
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Name:"
-msgstr ""
+msgstr "Meno:"
#: scene/gui/file_dialog.cpp tools/editor/editor_dir_dialog.cpp
#: tools/editor/editor_file_dialog.cpp
@@ -323,29 +323,29 @@ msgstr ""
#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
#: tools/editor/settings_config_dialog.cpp
msgid "Shift+"
-msgstr ""
+msgstr "Shift+"
#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
#: tools/editor/settings_config_dialog.cpp
msgid "Alt+"
-msgstr ""
+msgstr "Alt+"
#: scene/gui/input_action.cpp
msgid "Ctrl+"
-msgstr ""
+msgstr "Ctrl+"
#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
#: tools/editor/settings_config_dialog.cpp
msgid "Meta+"
-msgstr ""
+msgstr "Meta+"
#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
msgid "Device"
-msgstr ""
+msgstr "Zariadenie"
#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
msgid "Button"
-msgstr ""
+msgstr "Tlačidlo"
#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
msgid "Left Button."
@@ -369,7 +369,7 @@ msgstr ""
#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
msgid "Axis"
-msgstr ""
+msgstr "Os"
#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
#: tools/editor/plugins/script_editor_plugin.cpp
@@ -382,7 +382,7 @@ msgstr ""
#: tools/editor/plugins/shader_editor_plugin.cpp
#: tools/editor/property_editor.cpp tools/editor/resources_dock.cpp
msgid "Copy"
-msgstr ""
+msgstr "Kopírovať"
#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
@@ -391,7 +391,7 @@ msgstr ""
#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
#: tools/editor/property_editor.cpp tools/editor/resources_dock.cpp
msgid "Paste"
-msgstr ""
+msgstr "Vložiť"
#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
#: tools/editor/plugins/script_editor_plugin.cpp
@@ -411,7 +411,7 @@ msgstr ""
#: tools/editor/plugins/script_editor_plugin.cpp
#: tools/editor/plugins/shader_editor_plugin.cpp
msgid "Undo"
-msgstr ""
+msgstr "Späť"
#: scene/gui/popup.cpp
msgid ""
@@ -454,7 +454,7 @@ msgstr ""
#: tools/editor/animation_editor.cpp
msgid "All Selection"
-msgstr ""
+msgstr "Všetky vybrané"
#: tools/editor/animation_editor.cpp
msgid "Move Add Key"
@@ -644,10 +644,6 @@ msgid "Change Anim Loop"
msgstr ""
#: tools/editor/animation_editor.cpp
-msgid "Change Anim Loop Interpolation"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
msgid "Anim Create Typed Value Key"
msgstr ""
@@ -688,10 +684,6 @@ msgid "Enable/Disable looping in animation."
msgstr ""
#: tools/editor/animation_editor.cpp
-msgid "Enable/Disable interpolation when looping animation."
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
msgid "Add new tracks."
msgstr ""
@@ -809,7 +801,7 @@ msgstr ""
#: tools/editor/asset_library_editor_plugin.cpp
msgid "Site:"
-msgstr ""
+msgstr "Stránka:"
#: tools/editor/asset_library_editor_plugin.cpp
msgid "Support.."
@@ -821,7 +813,7 @@ msgstr ""
#: tools/editor/asset_library_editor_plugin.cpp
msgid "Community"
-msgstr ""
+msgstr "Komunita"
#: tools/editor/asset_library_editor_plugin.cpp
msgid "Testing"
@@ -956,7 +948,7 @@ msgid "Method in target Node must be specified!"
msgstr ""
#: tools/editor/connections_dialog.cpp
-msgid "Conect To Node:"
+msgid "Connect To Node:"
msgstr ""
#: tools/editor/connections_dialog.cpp tools/editor/groups_editor.cpp
@@ -1169,6 +1161,46 @@ msgstr ""
msgid "Choose"
msgstr ""
+#: tools/editor/editor_file_dialog.cpp
+msgid "Go Back"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Go Forward"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Go Up"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Toggle Hidden Files"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Toggle Favorite"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Toggle Mode"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Focus Path"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Mode Favorite Up"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Mode Favorite Down"
+msgstr ""
+
#: tools/editor/editor_file_dialog.cpp tools/editor/scenes_dock.cpp
msgid "Favorites:"
msgstr ""
@@ -1195,11 +1227,11 @@ msgstr ""
#: tools/editor/editor_help.cpp
msgid "Class List:"
-msgstr ""
+msgstr "Zoznam tried:"
#: tools/editor/editor_help.cpp tools/editor/property_editor.cpp
msgid "Class:"
-msgstr ""
+msgstr "Trieda:"
#: tools/editor/editor_help.cpp tools/editor/scene_tree_editor.cpp
#: tools/editor/script_create_dialog.cpp
@@ -1228,15 +1260,15 @@ msgstr ""
#: tools/editor/editor_help.cpp
msgid "Signals:"
-msgstr ""
+msgstr "Signály:"
#: tools/editor/editor_help.cpp
msgid "Constants:"
-msgstr ""
+msgstr "Konštanty:"
#: tools/editor/editor_help.cpp tools/editor/script_editor_debugger.cpp
msgid "Description:"
-msgstr ""
+msgstr "Popis:"
#: tools/editor/editor_help.cpp
msgid "Method Description:"
@@ -1422,8 +1454,23 @@ msgstr ""
#: tools/editor/editor_node.cpp
msgid ""
-"No main scene has ever been defined.\n"
-"Select one from \"Project Settings\" under the 'application' category."
+"No main scene has ever been defined, select one?\n"
+"You can change it later in later in \"Project Settings\" under the "
+"'application' category."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid ""
+"Selected scene '%s' does not exist, select a valid one?\n"
+"You can change it later in \"Project Settings\" under the 'application' "
+"category."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid ""
+"Selected scene '%s' is not a scene file, select a valid one?\n"
+"You can change it later in \"Project Settings\" under the 'application' "
+"category."
msgstr ""
#: tools/editor/editor_node.cpp
@@ -1516,6 +1563,10 @@ msgid ""
"(Unsaved changes will be lost)"
msgstr ""
+#: tools/editor/editor_node.cpp
+msgid "Pick a Manu Scene"
+msgstr ""
+
#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
msgid "Ugh"
msgstr ""
@@ -1539,7 +1590,7 @@ msgid "Save Layout"
msgstr ""
#: tools/editor/editor_node.cpp
-msgid "Load Layout"
+msgid "Delete Layout"
msgstr ""
#: tools/editor/editor_node.cpp tools/editor/project_export.cpp
@@ -1547,10 +1598,6 @@ msgid "Default"
msgstr ""
#: tools/editor/editor_node.cpp
-msgid "Delete Layout"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
msgid "Switch Scene Tab"
msgstr ""
@@ -1580,6 +1627,14 @@ msgid "Distraction Free Mode"
msgstr ""
#: tools/editor/editor_node.cpp
+msgid "Next tab"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Previous tab"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
msgid "Operations with scene files."
msgstr ""
@@ -2122,6 +2177,12 @@ msgid "No target font resource!"
msgstr ""
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+msgid ""
+"Invalid file extension.\n"
+"Please use .fnt."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
msgid "Can't load/process source font."
msgstr ""
@@ -2357,7 +2418,7 @@ msgid "Couldn't load post-import script:"
msgstr ""
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Invalid/broken script for post-import:"
+msgid "Invalid/broken script for post-import (check console):"
msgstr ""
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
@@ -3020,13 +3081,11 @@ msgstr ""
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid Offset:"
msgstr ""
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid Step:"
msgstr ""
@@ -3142,7 +3201,6 @@ msgstr ""
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Show Grid"
msgstr ""
@@ -3395,6 +3453,10 @@ msgid "MeshInstance lacks a Mesh!"
msgstr ""
#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Mesh has not surface to create outlines from!"
+msgstr ""
+
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Could not create outline!"
msgstr ""
@@ -3756,17 +3818,14 @@ msgid "Clear UV"
msgstr ""
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Snap"
msgstr ""
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Enable Snap"
msgstr ""
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid"
msgstr ""
@@ -4602,17 +4661,44 @@ msgid "StyleBox Preview:"
msgstr ""
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid "Texture Region Editor"
+msgid "Snap Mode:"
msgstr ""
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid "Scale Region Editor"
+msgid "<None>"
msgstr ""
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid ""
-"No texture in this node.\n"
-"Set a texture to be able to edit region."
+msgid "Pixel Snap"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Grid Snap"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Auto Slice"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Offset:"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Step:"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+#, fuzzy
+msgid "Separation:"
+msgstr "Popis:"
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Texture Region"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Texture Region Editor"
msgstr ""
#: tools/editor/plugins/theme_editor_plugin.cpp
@@ -5674,31 +5760,27 @@ msgid "Error duplicating scene to save it."
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "New Scene Root"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Inherit Scene"
+msgid "Edit Groups"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Add Child Node"
+msgid "Edit Connections"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Instance Child Scene"
+msgid "Delete Node(s)"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Change Type"
+msgid "Add Child Node"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Edit Groups"
+msgid "Instance Child Scene"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Edit Connections"
+msgid "Change Type"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
@@ -5714,10 +5796,6 @@ msgid "Save Branch as Scene"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Delete Node(s)"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "Add/Create a New Node"
msgstr ""
diff --git a/tools/translations/tools.pot b/tools/translations/tools.pot
index 854f8fef78..a5385f3bad 100644
--- a/tools/translations/tools.pot
+++ b/tools/translations/tools.pot
@@ -631,10 +631,6 @@ msgid "Change Anim Loop"
msgstr ""
#: tools/editor/animation_editor.cpp
-msgid "Change Anim Loop Interpolation"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
msgid "Anim Create Typed Value Key"
msgstr ""
@@ -675,10 +671,6 @@ msgid "Enable/Disable looping in animation."
msgstr ""
#: tools/editor/animation_editor.cpp
-msgid "Enable/Disable interpolation when looping animation."
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
msgid "Add new tracks."
msgstr ""
@@ -1156,6 +1148,46 @@ msgstr ""
msgid "Choose"
msgstr ""
+#: tools/editor/editor_file_dialog.cpp
+msgid "Go Back"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Go Forward"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Go Up"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Toggle Hidden Files"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Toggle Favorite"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Toggle Mode"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Focus Path"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Move Favorite Up"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Move Favorite Down"
+msgstr ""
+
#: tools/editor/editor_file_dialog.cpp tools/editor/scenes_dock.cpp
msgid "Favorites:"
msgstr ""
@@ -1409,8 +1441,23 @@ msgstr ""
#: tools/editor/editor_node.cpp
msgid ""
-"No main scene has ever been defined.\n"
-"Select one from \"Project Settings\" under the 'application' category."
+"No main scene has ever been defined, select one?\n"
+"You can change it later in later in \"Project Settings\" under the "
+"'application' category."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid ""
+"Selected scene '%s' does not exist, select a valid one?\n"
+"You can change it later in \"Project Settings\" under the 'application' "
+"category."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid ""
+"Selected scene '%s' is not a scene file, select a valid one?\n"
+"You can change it later in \"Project Settings\" under the 'application' "
+"category."
msgstr ""
#: tools/editor/editor_node.cpp
@@ -1503,6 +1550,10 @@ msgid ""
"(Unsaved changes will be lost)"
msgstr ""
+#: tools/editor/editor_node.cpp
+msgid "Pick a Manu Scene"
+msgstr ""
+
#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
msgid "Ugh"
msgstr ""
@@ -1563,6 +1614,14 @@ msgid "Distraction Free Mode"
msgstr ""
#: tools/editor/editor_node.cpp
+msgid "Next tab"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Previous tab"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
msgid "Operations with scene files."
msgstr ""
@@ -2346,7 +2405,7 @@ msgid "Couldn't load post-import script:"
msgstr ""
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Invalid/broken script for post-import:"
+msgid "Invalid/broken script for post-import (check console):"
msgstr ""
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
@@ -3009,13 +3068,11 @@ msgstr ""
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid Offset:"
msgstr ""
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid Step:"
msgstr ""
@@ -3131,7 +3188,6 @@ msgstr ""
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Show Grid"
msgstr ""
@@ -3384,6 +3440,10 @@ msgid "MeshInstance lacks a Mesh!"
msgstr ""
#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Mesh has not surface to create outlines from!"
+msgstr ""
+
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Could not create outline!"
msgstr ""
@@ -3745,17 +3805,14 @@ msgid "Clear UV"
msgstr ""
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Snap"
msgstr ""
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Enable Snap"
msgstr ""
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid"
msgstr ""
@@ -4591,17 +4648,43 @@ msgid "StyleBox Preview:"
msgstr ""
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid "Texture Region Editor"
+msgid "Snap Mode:"
msgstr ""
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid "Scale Region Editor"
+msgid "<None>"
msgstr ""
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid ""
-"No texture in this node.\n"
-"Set a texture to be able to edit region."
+msgid "Pixel Snap"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Grid Snap"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Auto Slice"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Offset:"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Step:"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Separation:"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Texture Region"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Texture Region Editor"
msgstr ""
#: tools/editor/plugins/theme_editor_plugin.cpp
diff --git a/tools/translations/zh_CN.po b/tools/translations/zh_CN.po
index 70b7845f9d..87d58db19e 100644
--- a/tools/translations/zh_CN.po
+++ b/tools/translations/zh_CN.po
@@ -3,13 +3,14 @@
# This file is distributed under the same license as the Godot source code.
#
# Geequlim <geequlim@gmail.com>, 2016.
+# 纯洁的坏蛋 <tqj.zyy@gmail.com>, 2016.
#
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2016-06-11 11:37+0000\n"
-"Last-Translator: Geequlim <geequlim@gmail.com>\n"
+"PO-Revision-Date: 2016-06-25 17:02+0000\n"
+"Last-Translator: 纯洁的坏蛋 <tqj.zyy@gmail.com>\n"
"Language-Team: Chinese (China) <https://hosted.weblate.org/projects/godot-"
"engine/godot/zh_CN/>\n"
"Language: zh_CN\n"
@@ -29,29 +30,28 @@ msgstr ""
#: modules/gdscript/gd_functions.cpp
msgid "step argument is zero!"
-msgstr ""
+msgstr "step参数为0!"
#: modules/gdscript/gd_functions.cpp
-#, fuzzy
msgid "Not a script with an instance"
-msgstr "没有选用要实例化的场景!"
+msgstr "脚本没有实例化"
#: modules/gdscript/gd_functions.cpp
msgid "Not based on a script"
-msgstr ""
+msgstr "没有基于脚本"
#: modules/gdscript/gd_functions.cpp
-#, fuzzy
msgid "Not based on a resource file"
-msgstr "请设置目标字体资源!"
+msgstr "不是一个资源文件"
#: modules/gdscript/gd_functions.cpp
msgid "Invalid instance dictionary format (missing @path)"
-msgstr ""
+msgstr "实例字典格式不正确(缺少@path)"
#: modules/gdscript/gd_functions.cpp
+#, fuzzy
msgid "Invalid instance dictionary format (can't load script at @path)"
-msgstr ""
+msgstr "实例字典格式不正确(无法加载脚本@path)"
#: modules/gdscript/gd_functions.cpp
msgid "Invalid instance dictionary format (invalid script at @path)"
@@ -676,11 +676,6 @@ msgid "Change Anim Loop"
msgstr "修改动画循环"
#: tools/editor/animation_editor.cpp
-#, fuzzy
-msgid "Change Anim Loop Interpolation"
-msgstr "修改动画循环"
-
-#: tools/editor/animation_editor.cpp
msgid "Anim Create Typed Value Key"
msgstr ""
@@ -721,11 +716,6 @@ msgid "Enable/Disable looping in animation."
msgstr "启用/禁用循环"
#: tools/editor/animation_editor.cpp
-#, fuzzy
-msgid "Enable/Disable interpolation when looping animation."
-msgstr "启用/禁用循环"
-
-#: tools/editor/animation_editor.cpp
msgid "Add new tracks."
msgstr "新建轨道"
@@ -991,7 +981,7 @@ msgstr "必须设置方法的对象节点!"
#: tools/editor/connections_dialog.cpp
#, fuzzy
-msgid "Conect To Node:"
+msgid "Connect To Node:"
msgstr "连接到节点:"
#: tools/editor/connections_dialog.cpp tools/editor/groups_editor.cpp
@@ -1207,6 +1197,51 @@ msgstr "选择目录"
msgid "Choose"
msgstr "选择"
+#: tools/editor/editor_file_dialog.cpp
+msgid "Go Back"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Go Forward"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Go Up"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Toggle Hidden Files"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+#, fuzzy
+msgid "Toggle Favorite"
+msgstr "切换断点"
+
+#: tools/editor/editor_file_dialog.cpp
+#, fuzzy
+msgid "Toggle Mode"
+msgstr "切换注释"
+
+#: tools/editor/editor_file_dialog.cpp
+#, fuzzy
+msgid "Focus Path"
+msgstr "拷贝路径"
+
+#: tools/editor/editor_file_dialog.cpp
+#, fuzzy
+msgid "Mode Favorite Up"
+msgstr "收藏:"
+
+#: tools/editor/editor_file_dialog.cpp
+#, fuzzy
+msgid "Mode Favorite Down"
+msgstr "向下移动"
+
#: tools/editor/editor_file_dialog.cpp tools/editor/scenes_dock.cpp
msgid "Favorites:"
msgstr "收藏:"
@@ -1459,9 +1494,31 @@ msgid "There is no defined scene to run."
msgstr "没有设置要执行的场景。"
#: tools/editor/editor_node.cpp
+#, fuzzy
+msgid ""
+"No main scene has ever been defined, select one?\n"
+"You can change it later in later in \"Project Settings\" under the "
+"'application' category."
+msgstr ""
+"尚未定义主场景。\n"
+"请在项目设置的application分类下设置选择主场景。"
+
+#: tools/editor/editor_node.cpp
+#, fuzzy
+msgid ""
+"Selected scene '%s' does not exist, select a valid one?\n"
+"You can change it later in \"Project Settings\" under the 'application' "
+"category."
+msgstr ""
+"尚未定义主场景。\n"
+"请在项目设置的application分类下设置选择主场景。"
+
+#: tools/editor/editor_node.cpp
+#, fuzzy
msgid ""
-"No main scene has ever been defined.\n"
-"Select one from \"Project Settings\" under the 'application' category."
+"Selected scene '%s' is not a scene file, select a valid one?\n"
+"You can change it later in \"Project Settings\" under the 'application' "
+"category."
msgstr ""
"尚未定义主场景。\n"
"请在项目设置的application分类下设置选择主场景。"
@@ -1556,6 +1613,11 @@ msgid ""
"(Unsaved changes will be lost)"
msgstr "退出到项目管理窗口(未保存的修改将丢失)?"
+#: tools/editor/editor_node.cpp
+#, fuzzy
+msgid "Pick a Manu Scene"
+msgstr "主场景"
+
#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
msgid "Ugh"
msgstr "额"
@@ -1580,18 +1642,14 @@ msgid "Save Layout"
msgstr "保存布局"
#: tools/editor/editor_node.cpp
-msgid "Load Layout"
-msgstr "加载布局"
+msgid "Delete Layout"
+msgstr "删除布局"
#: tools/editor/editor_node.cpp tools/editor/project_export.cpp
msgid "Default"
msgstr "默认"
#: tools/editor/editor_node.cpp
-msgid "Delete Layout"
-msgstr "删除布局"
-
-#: tools/editor/editor_node.cpp
msgid "Switch Scene Tab"
msgstr "切换场景标签页"
@@ -1621,6 +1679,16 @@ msgid "Distraction Free Mode"
msgstr ""
#: tools/editor/editor_node.cpp
+#, fuzzy
+msgid "Next tab"
+msgstr "下一项"
+
+#: tools/editor/editor_node.cpp
+#, fuzzy
+msgid "Previous tab"
+msgstr "上一个目录:"
+
+#: tools/editor/editor_node.cpp
msgid "Operations with scene files."
msgstr "操作场景文件。"
@@ -2172,6 +2240,12 @@ msgid "No target font resource!"
msgstr "请设置目标字体资源!"
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+msgid ""
+"Invalid file extension.\n"
+"Please use .fnt."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
msgid "Can't load/process source font."
msgstr "无法加载/处理源字体。"
@@ -2409,7 +2483,7 @@ msgid "Couldn't load post-import script:"
msgstr ""
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Invalid/broken script for post-import:"
+msgid "Invalid/broken script for post-import (check console):"
msgstr ""
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
@@ -3075,13 +3149,11 @@ msgstr ""
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid Offset:"
msgstr "网格偏移量:"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid Step:"
msgstr "网格大小:"
@@ -3197,7 +3269,6 @@ msgstr ""
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Show Grid"
msgstr "显示网格"
@@ -3450,6 +3521,10 @@ msgid "MeshInstance lacks a Mesh!"
msgstr ""
#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Mesh has not surface to create outlines from!"
+msgstr ""
+
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Could not create outline!"
msgstr ""
@@ -3811,17 +3886,14 @@ msgid "Clear UV"
msgstr "清除UV"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Snap"
msgstr "吸附"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Enable Snap"
msgstr "启用吸附"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid"
msgstr "网格"
@@ -4661,18 +4733,50 @@ msgid "StyleBox Preview:"
msgstr "StyleBox预览:"
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid "Texture Region Editor"
-msgstr "纹理区域编辑"
+#, fuzzy
+msgid "Snap Mode:"
+msgstr "运行模式:"
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid "Scale Region Editor"
-msgstr "缩放区域编辑"
+msgid "<None>"
+msgstr ""
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid ""
-"No texture in this node.\n"
-"Set a texture to be able to edit region."
-msgstr "此节点没有贴图,请先为它设置贴图后再试。"
+msgid "Pixel Snap"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+#, fuzzy
+msgid "Grid Snap"
+msgstr "网格大小:"
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Auto Slice"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+#, fuzzy
+msgid "Offset:"
+msgstr "网格偏移量:"
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+#, fuzzy
+msgid "Step:"
+msgstr "步长(秒)"
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+#, fuzzy
+msgid "Separation:"
+msgstr "选项:"
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+#, fuzzy
+msgid "Texture Region"
+msgstr "纹理区域编辑"
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Texture Region Editor"
+msgstr "纹理区域编辑"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Can't save theme to file:"
@@ -5739,12 +5843,16 @@ msgid "Error duplicating scene to save it."
msgstr "复制场景出错。"
#: tools/editor/scene_tree_dock.cpp
-msgid "New Scene Root"
-msgstr "创建场景根节点"
+msgid "Edit Groups"
+msgstr "编辑分组"
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Edit Connections"
+msgstr "编辑事件连接"
#: tools/editor/scene_tree_dock.cpp
-msgid "Inherit Scene"
-msgstr "继承场景"
+msgid "Delete Node(s)"
+msgstr "删除节点"
#: tools/editor/scene_tree_dock.cpp
msgid "Add Child Node"
@@ -5759,14 +5867,6 @@ msgid "Change Type"
msgstr "更改类型"
#: tools/editor/scene_tree_dock.cpp
-msgid "Edit Groups"
-msgstr "编辑分组"
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Edit Connections"
-msgstr "编辑事件连接"
-
-#: tools/editor/scene_tree_dock.cpp
msgid "Add Script"
msgstr "添加脚本"
@@ -5779,10 +5879,6 @@ msgid "Save Branch as Scene"
msgstr "将分支保存为场景"
#: tools/editor/scene_tree_dock.cpp
-msgid "Delete Node(s)"
-msgstr "删除节点"
-
-#: tools/editor/scene_tree_dock.cpp
msgid "Add/Create a New Node"
msgstr "添加/创建节点"
@@ -6170,6 +6266,31 @@ msgstr ""
msgid "Change Notifier Extents"
msgstr ""
+#, fuzzy
+#~ msgid "Change Anim Loop Interpolation"
+#~ msgstr "修改动画循环"
+
+#, fuzzy
+#~ msgid "Enable/Disable interpolation when looping animation."
+#~ msgstr "启用/禁用循环"
+
+#~ msgid "Load Layout"
+#~ msgstr "加载布局"
+
+#~ msgid "Scale Region Editor"
+#~ msgstr "缩放区域编辑"
+
+#~ msgid ""
+#~ "No texture in this node.\n"
+#~ "Set a texture to be able to edit region."
+#~ msgstr "此节点没有贴图,请先为它设置贴图后再试。"
+
+#~ msgid "New Scene Root"
+#~ msgstr "创建场景根节点"
+
+#~ msgid "Inherit Scene"
+#~ msgstr "继承场景"
+
#~ msgid "Binds (Extra Params):"
#~ msgstr "绑定(附加参数):"
diff --git a/tools/translations/zh_HK.po b/tools/translations/zh_HK.po
index 8f6476594b..e675cf53eb 100644
--- a/tools/translations/zh_HK.po
+++ b/tools/translations/zh_HK.po
@@ -639,10 +639,6 @@ msgid "Change Anim Loop"
msgstr ""
#: tools/editor/animation_editor.cpp
-msgid "Change Anim Loop Interpolation"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
msgid "Anim Create Typed Value Key"
msgstr ""
@@ -683,10 +679,6 @@ msgid "Enable/Disable looping in animation."
msgstr ""
#: tools/editor/animation_editor.cpp
-msgid "Enable/Disable interpolation when looping animation."
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
msgid "Add new tracks."
msgstr ""
@@ -952,8 +944,9 @@ msgid "Method in target Node must be specified!"
msgstr ""
#: tools/editor/connections_dialog.cpp
-msgid "Conect To Node:"
-msgstr ""
+#, fuzzy
+msgid "Connect To Node:"
+msgstr "連到"
#: tools/editor/connections_dialog.cpp tools/editor/groups_editor.cpp
#: tools/editor/plugins/item_list_editor_plugin.cpp
@@ -1166,6 +1159,49 @@ msgstr "選擇資料夾"
msgid "Choose"
msgstr "選擇"
+#: tools/editor/editor_file_dialog.cpp
+msgid "Go Back"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Go Forward"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Go Up"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Toggle Hidden Files"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Toggle Favorite"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Toggle Mode"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+#, fuzzy
+msgid "Focus Path"
+msgstr "複製"
+
+#: tools/editor/editor_file_dialog.cpp
+#, fuzzy
+msgid "Mode Favorite Up"
+msgstr "上移"
+
+#: tools/editor/editor_file_dialog.cpp
+#, fuzzy
+msgid "Mode Favorite Down"
+msgstr "下移"
+
#: tools/editor/editor_file_dialog.cpp tools/editor/scenes_dock.cpp
msgid "Favorites:"
msgstr ""
@@ -1420,8 +1456,23 @@ msgstr ""
#: tools/editor/editor_node.cpp
msgid ""
-"No main scene has ever been defined.\n"
-"Select one from \"Project Settings\" under the 'application' category."
+"No main scene has ever been defined, select one?\n"
+"You can change it later in later in \"Project Settings\" under the "
+"'application' category."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid ""
+"Selected scene '%s' does not exist, select a valid one?\n"
+"You can change it later in \"Project Settings\" under the 'application' "
+"category."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid ""
+"Selected scene '%s' is not a scene file, select a valid one?\n"
+"You can change it later in \"Project Settings\" under the 'application' "
+"category."
msgstr ""
#: tools/editor/editor_node.cpp
@@ -1514,6 +1565,11 @@ msgid ""
"(Unsaved changes will be lost)"
msgstr ""
+#: tools/editor/editor_node.cpp
+#, fuzzy
+msgid "Pick a Manu Scene"
+msgstr "儲存場景"
+
#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
msgid "Ugh"
msgstr ""
@@ -1537,7 +1593,7 @@ msgid "Save Layout"
msgstr ""
#: tools/editor/editor_node.cpp
-msgid "Load Layout"
+msgid "Delete Layout"
msgstr ""
#: tools/editor/editor_node.cpp tools/editor/project_export.cpp
@@ -1545,10 +1601,6 @@ msgid "Default"
msgstr "預設"
#: tools/editor/editor_node.cpp
-msgid "Delete Layout"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
msgid "Switch Scene Tab"
msgstr ""
@@ -1578,6 +1630,15 @@ msgid "Distraction Free Mode"
msgstr ""
#: tools/editor/editor_node.cpp
+#, fuzzy
+msgid "Next tab"
+msgstr "下一個"
+
+#: tools/editor/editor_node.cpp
+msgid "Previous tab"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
msgid "Operations with scene files."
msgstr ""
@@ -2124,6 +2185,12 @@ msgid "No target font resource!"
msgstr ""
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+msgid ""
+"Invalid file extension.\n"
+"Please use .fnt."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
msgid "Can't load/process source font."
msgstr ""
@@ -2359,7 +2426,7 @@ msgid "Couldn't load post-import script:"
msgstr ""
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Invalid/broken script for post-import:"
+msgid "Invalid/broken script for post-import (check console):"
msgstr ""
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
@@ -3023,13 +3090,11 @@ msgstr ""
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid Offset:"
msgstr ""
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid Step:"
msgstr ""
@@ -3145,7 +3210,6 @@ msgstr ""
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Show Grid"
msgstr ""
@@ -3398,6 +3462,10 @@ msgid "MeshInstance lacks a Mesh!"
msgstr ""
#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Mesh has not surface to create outlines from!"
+msgstr ""
+
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Could not create outline!"
msgstr ""
@@ -3759,17 +3827,14 @@ msgid "Clear UV"
msgstr ""
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Snap"
msgstr ""
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Enable Snap"
msgstr ""
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid"
msgstr ""
@@ -4605,17 +4670,43 @@ msgid "StyleBox Preview:"
msgstr ""
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid "Texture Region Editor"
+msgid "Snap Mode:"
msgstr ""
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid "Scale Region Editor"
+msgid "<None>"
msgstr ""
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid ""
-"No texture in this node.\n"
-"Set a texture to be able to edit region."
+msgid "Pixel Snap"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Grid Snap"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Auto Slice"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Offset:"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Step:"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Separation:"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Texture Region"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Texture Region Editor"
msgstr ""
#: tools/editor/plugins/theme_editor_plugin.cpp
@@ -5677,31 +5768,27 @@ msgid "Error duplicating scene to save it."
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "New Scene Root"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Inherit Scene"
+msgid "Edit Groups"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Add Child Node"
+msgid "Edit Connections"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Instance Child Scene"
+msgid "Delete Node(s)"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Change Type"
+msgid "Add Child Node"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Edit Groups"
+msgid "Instance Child Scene"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Edit Connections"
+msgid "Change Type"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
@@ -5717,10 +5804,6 @@ msgid "Save Branch as Scene"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Delete Node(s)"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "Add/Create a New Node"
msgstr ""
diff --git a/tools/translations/zh_TW.po b/tools/translations/zh_TW.po
index 64399c4826..f2d1b44987 100644
--- a/tools/translations/zh_TW.po
+++ b/tools/translations/zh_TW.po
@@ -643,10 +643,6 @@ msgid "Change Anim Loop"
msgstr ""
#: tools/editor/animation_editor.cpp
-msgid "Change Anim Loop Interpolation"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
msgid "Anim Create Typed Value Key"
msgstr ""
@@ -687,10 +683,6 @@ msgid "Enable/Disable looping in animation."
msgstr ""
#: tools/editor/animation_editor.cpp
-msgid "Enable/Disable interpolation when looping animation."
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
msgid "Add new tracks."
msgstr ""
@@ -955,7 +947,7 @@ msgid "Method in target Node must be specified!"
msgstr ""
#: tools/editor/connections_dialog.cpp
-msgid "Conect To Node:"
+msgid "Connect To Node:"
msgstr ""
#: tools/editor/connections_dialog.cpp tools/editor/groups_editor.cpp
@@ -1168,6 +1160,46 @@ msgstr ""
msgid "Choose"
msgstr ""
+#: tools/editor/editor_file_dialog.cpp
+msgid "Go Back"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Go Forward"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Go Up"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Toggle Hidden Files"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Toggle Favorite"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Toggle Mode"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Focus Path"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Mode Favorite Up"
+msgstr ""
+
+#: tools/editor/editor_file_dialog.cpp
+msgid "Mode Favorite Down"
+msgstr ""
+
#: tools/editor/editor_file_dialog.cpp tools/editor/scenes_dock.cpp
msgid "Favorites:"
msgstr ""
@@ -1421,8 +1453,23 @@ msgstr ""
#: tools/editor/editor_node.cpp
msgid ""
-"No main scene has ever been defined.\n"
-"Select one from \"Project Settings\" under the 'application' category."
+"No main scene has ever been defined, select one?\n"
+"You can change it later in later in \"Project Settings\" under the "
+"'application' category."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid ""
+"Selected scene '%s' does not exist, select a valid one?\n"
+"You can change it later in \"Project Settings\" under the 'application' "
+"category."
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid ""
+"Selected scene '%s' is not a scene file, select a valid one?\n"
+"You can change it later in \"Project Settings\" under the 'application' "
+"category."
msgstr ""
#: tools/editor/editor_node.cpp
@@ -1515,6 +1562,10 @@ msgid ""
"(Unsaved changes will be lost)"
msgstr ""
+#: tools/editor/editor_node.cpp
+msgid "Pick a Manu Scene"
+msgstr ""
+
#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
msgid "Ugh"
msgstr ""
@@ -1538,7 +1589,7 @@ msgid "Save Layout"
msgstr ""
#: tools/editor/editor_node.cpp
-msgid "Load Layout"
+msgid "Delete Layout"
msgstr ""
#: tools/editor/editor_node.cpp tools/editor/project_export.cpp
@@ -1546,10 +1597,6 @@ msgid "Default"
msgstr ""
#: tools/editor/editor_node.cpp
-msgid "Delete Layout"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
msgid "Switch Scene Tab"
msgstr ""
@@ -1579,6 +1626,14 @@ msgid "Distraction Free Mode"
msgstr ""
#: tools/editor/editor_node.cpp
+msgid "Next tab"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
+msgid "Previous tab"
+msgstr ""
+
+#: tools/editor/editor_node.cpp
msgid "Operations with scene files."
msgstr ""
@@ -2121,6 +2176,12 @@ msgid "No target font resource!"
msgstr ""
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
+msgid ""
+"Invalid file extension.\n"
+"Please use .fnt."
+msgstr ""
+
+#: tools/editor/io_plugins/editor_font_import_plugin.cpp
msgid "Can't load/process source font."
msgstr ""
@@ -2356,7 +2417,7 @@ msgid "Couldn't load post-import script:"
msgstr ""
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Invalid/broken script for post-import:"
+msgid "Invalid/broken script for post-import (check console):"
msgstr ""
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
@@ -3019,13 +3080,11 @@ msgstr ""
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid Offset:"
msgstr ""
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid Step:"
msgstr ""
@@ -3141,7 +3200,6 @@ msgstr ""
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Show Grid"
msgstr ""
@@ -3394,6 +3452,10 @@ msgid "MeshInstance lacks a Mesh!"
msgstr ""
#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Mesh has not surface to create outlines from!"
+msgstr ""
+
+#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Could not create outline!"
msgstr ""
@@ -3755,17 +3817,14 @@ msgid "Clear UV"
msgstr ""
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Snap"
msgstr ""
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Enable Snap"
msgstr ""
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid"
msgstr ""
@@ -4601,17 +4660,43 @@ msgid "StyleBox Preview:"
msgstr ""
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid "Texture Region Editor"
+msgid "Snap Mode:"
msgstr ""
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid "Scale Region Editor"
+msgid "<None>"
msgstr ""
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid ""
-"No texture in this node.\n"
-"Set a texture to be able to edit region."
+msgid "Pixel Snap"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Grid Snap"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Auto Slice"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Offset:"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Step:"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Separation:"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Texture Region"
+msgstr ""
+
+#: tools/editor/plugins/texture_region_editor_plugin.cpp
+msgid "Texture Region Editor"
msgstr ""
#: tools/editor/plugins/theme_editor_plugin.cpp
@@ -5673,31 +5758,27 @@ msgid "Error duplicating scene to save it."
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "New Scene Root"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Inherit Scene"
+msgid "Edit Groups"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Add Child Node"
+msgid "Edit Connections"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Instance Child Scene"
+msgid "Delete Node(s)"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Change Type"
+msgid "Add Child Node"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Edit Groups"
+msgid "Instance Child Scene"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Edit Connections"
+msgid "Change Type"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
@@ -5713,10 +5794,6 @@ msgid "Save Branch as Scene"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Delete Node(s)"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "Add/Create a New Node"
msgstr ""