diff options
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 Binary files differnew file mode 100644 index 0000000000..d483db55ce --- /dev/null +++ b/tools/editor/icons/2x/icon_zoom_less.png diff --git a/tools/editor/icons/2x/icon_zoom_more.png b/tools/editor/icons/2x/icon_zoom_more.png Binary files differnew file mode 100644 index 0000000000..8f9ef77849 --- /dev/null +++ b/tools/editor/icons/2x/icon_zoom_more.png diff --git a/tools/editor/icons/2x/icon_zoom_reset.png b/tools/editor/icons/2x/icon_zoom_reset.png Binary files differnew file mode 100644 index 0000000000..092215b3e2 --- /dev/null +++ b/tools/editor/icons/2x/icon_zoom_reset.png diff --git a/tools/editor/icons/icon_loop_interpolation.png b/tools/editor/icons/icon_loop_interpolation.png Binary files differdeleted file mode 100644 index 488b33316e..0000000000 --- a/tools/editor/icons/icon_loop_interpolation.png +++ /dev/null diff --git a/tools/editor/icons/icon_zoom_less.png b/tools/editor/icons/icon_zoom_less.png Binary files differnew file mode 100644 index 0000000000..fd8ef9075e --- /dev/null +++ b/tools/editor/icons/icon_zoom_less.png diff --git a/tools/editor/icons/icon_zoom_more.png b/tools/editor/icons/icon_zoom_more.png Binary files differnew file mode 100644 index 0000000000..8e818db1ee --- /dev/null +++ b/tools/editor/icons/icon_zoom_more.png diff --git a/tools/editor/icons/icon_zoom_reset.png b/tools/editor/icons/icon_zoom_reset.png Binary files differnew file mode 100644 index 0000000000..fa8a9d197e --- /dev/null +++ b/tools/editor/icons/icon_zoom_reset.png 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 "" |