diff options
232 files changed, 29441 insertions, 11922 deletions
diff --git a/SConstruct b/SConstruct index 856994ef15..61edb1233b 100644 --- a/SConstruct +++ b/SConstruct @@ -326,6 +326,8 @@ if selected_platform in platform_list: env.Append(CCFLAGS=['/W2'] + disable_nonessential_warnings) else: # 'no' env.Append(CCFLAGS=['/w']) + # Set exception handling model to avoid warnings caused by Windows system headers. + env.Append(CCFLAGS=['/EHsc']) else: # Rest of the world if (env["warnings"] == 'extra'): env.Append(CCFLAGS=['-Wall', '-Wextra']) diff --git a/core/array.cpp b/core/array.cpp index 171c11776c..b7d4ae413a 100644 --- a/core/array.cpp +++ b/core/array.cpp @@ -265,6 +265,49 @@ Array &Array::sort_custom(Object *p_obj, const StringName &p_function) { return *this; } +template <typename Less> +_FORCE_INLINE_ int bisect(const Vector<Variant> &p_array, const Variant &p_value, bool p_before, const Less &p_less) { + + int lo = 0; + int hi = p_array.size(); + if (p_before) { + while (lo < hi) { + const int mid = (lo + hi) / 2; + if (p_less(p_array.get(mid), p_value)) { + lo = mid + 1; + } else { + hi = mid; + } + } + } else { + while (lo < hi) { + const int mid = (lo + hi) / 2; + if (p_less(p_value, p_array.get(mid))) { + hi = mid; + } else { + lo = mid + 1; + } + } + } + return lo; +} + +int Array::bsearch(const Variant &p_value, bool p_before) { + + return bisect(_p->array, p_value, p_before, _ArrayVariantSort()); +} + +int Array::bsearch_custom(const Variant &p_value, Object *p_obj, const StringName &p_function, bool p_before) { + + ERR_FAIL_NULL_V(p_obj, 0); + + _ArrayVariantSortCustom less; + less.obj = p_obj; + less.func = p_function; + + return bisect(_p->array, p_value, p_before, less); +} + Array &Array::invert() { _p->array.invert(); diff --git a/core/array.h b/core/array.h index 2c29103108..3d70a31d2f 100644 --- a/core/array.h +++ b/core/array.h @@ -70,6 +70,8 @@ public: Array &sort(); Array &sort_custom(Object *p_obj, const StringName &p_function); + int bsearch(const Variant &p_value, bool p_before = true); + int bsearch_custom(const Variant &p_value, Object *p_obj, const StringName &p_function, bool p_before = true); Array &invert(); int find(const Variant &p_value, int p_from = 0) const; diff --git a/core/color.h b/core/color.h index 972b6a1b33..da2bfdcd98 100644 --- a/core/color.h +++ b/core/color.h @@ -101,6 +101,24 @@ struct Color { return res; } + _FORCE_INLINE_ Color darkened(float p_amount) const { + + Color res = *this; + res.r = CLAMP(res.r * (1.0f - p_amount), 0.0, 1.0); + res.g = CLAMP(res.g * (1.0f - p_amount), 0.0, 1.0); + res.b = CLAMP(res.b * (1.0f - p_amount), 0.0, 1.0); + return res; + } + + _FORCE_INLINE_ Color lightened(float p_amount) const { + + Color res = *this; + res.r = CLAMP(res.r + (1.0f - res.r) * p_amount, 0.0, 1.0); + res.g = CLAMP(res.g + (1.0f - res.g) * p_amount, 0.0, 1.0); + res.b = CLAMP(res.b + (1.0f - res.b) * p_amount, 0.0, 1.0); + return res; + } + _FORCE_INLINE_ uint32_t to_rgbe9995() const { const float pow2to9 = 512.0f; diff --git a/core/command_queue_mt.cpp b/core/command_queue_mt.cpp index 8e2aa24c22..2028a18a06 100644 --- a/core/command_queue_mt.cpp +++ b/core/command_queue_mt.cpp @@ -76,6 +76,30 @@ CommandQueueMT::SyncSemaphore *CommandQueueMT::_alloc_sync_sem() { return &sync_sems[idx]; } +bool CommandQueueMT::dealloc_one() { +tryagain: + if (dealloc_ptr == write_ptr) { + // The queue is empty + return false; + } + + uint32_t size = *(uint32_t *)&command_mem[dealloc_ptr]; + + if (size == 0) { + // End of command buffer wrap down + dealloc_ptr = 0; + goto tryagain; + } + + if (size & 1) { + // Still used, nothing can be deallocated + return false; + } + + dealloc_ptr += (size >> 1) + sizeof(uint32_t); + return true; +} + CommandQueueMT::CommandQueueMT(bool p_sync) { read_ptr = 0; diff --git a/core/command_queue_mt.h b/core/command_queue_mt.h index e37d593f9f..697fec3fc4 100644 --- a/core/command_queue_mt.h +++ b/core/command_queue_mt.h @@ -39,6 +39,230 @@ @author Juan Linietsky <reduzio@gmail.com> */ +#define COMMA(N) _COMMA_##N +#define _COMMA_0 +#define _COMMA_1 , +#define _COMMA_2 , +#define _COMMA_3 , +#define _COMMA_4 , +#define _COMMA_5 , +#define _COMMA_6 , +#define _COMMA_7 , +#define _COMMA_8 , +#define _COMMA_9 , +#define _COMMA_10 , +#define _COMMA_11 , +#define _COMMA_12 , + +// 1-based comma separed list of ITEMs +#define COMMA_SEP_LIST(ITEM, LENGTH) _COMMA_SEP_LIST_##LENGTH(ITEM) +#define _COMMA_SEP_LIST_12(ITEM) \ + _COMMA_SEP_LIST_11(ITEM) \ + , ITEM(12) +#define _COMMA_SEP_LIST_11(ITEM) \ + _COMMA_SEP_LIST_10(ITEM) \ + , ITEM(11) +#define _COMMA_SEP_LIST_10(ITEM) \ + _COMMA_SEP_LIST_9(ITEM) \ + , ITEM(10) +#define _COMMA_SEP_LIST_9(ITEM) \ + _COMMA_SEP_LIST_8(ITEM) \ + , ITEM(9) +#define _COMMA_SEP_LIST_8(ITEM) \ + _COMMA_SEP_LIST_7(ITEM) \ + , ITEM(8) +#define _COMMA_SEP_LIST_7(ITEM) \ + _COMMA_SEP_LIST_6(ITEM) \ + , ITEM(7) +#define _COMMA_SEP_LIST_6(ITEM) \ + _COMMA_SEP_LIST_5(ITEM) \ + , ITEM(6) +#define _COMMA_SEP_LIST_5(ITEM) \ + _COMMA_SEP_LIST_4(ITEM) \ + , ITEM(5) +#define _COMMA_SEP_LIST_4(ITEM) \ + _COMMA_SEP_LIST_3(ITEM) \ + , ITEM(4) +#define _COMMA_SEP_LIST_3(ITEM) \ + _COMMA_SEP_LIST_2(ITEM) \ + , ITEM(3) +#define _COMMA_SEP_LIST_2(ITEM) \ + _COMMA_SEP_LIST_1(ITEM) \ + , ITEM(2) +#define _COMMA_SEP_LIST_1(ITEM) \ + _COMMA_SEP_LIST_0(ITEM) \ + ITEM(1) +#define _COMMA_SEP_LIST_0(ITEM) + +// 1-based semicolon separed list of ITEMs +#define SEMIC_SEP_LIST(ITEM, LENGTH) _SEMIC_SEP_LIST_##LENGTH(ITEM) +#define _SEMIC_SEP_LIST_12(ITEM) \ + _SEMIC_SEP_LIST_11(ITEM); \ + ITEM(12) +#define _SEMIC_SEP_LIST_11(ITEM) \ + _SEMIC_SEP_LIST_10(ITEM); \ + ITEM(11) +#define _SEMIC_SEP_LIST_10(ITEM) \ + _SEMIC_SEP_LIST_9(ITEM); \ + ITEM(10) +#define _SEMIC_SEP_LIST_9(ITEM) \ + _SEMIC_SEP_LIST_8(ITEM); \ + ITEM(9) +#define _SEMIC_SEP_LIST_8(ITEM) \ + _SEMIC_SEP_LIST_7(ITEM); \ + ITEM(8) +#define _SEMIC_SEP_LIST_7(ITEM) \ + _SEMIC_SEP_LIST_6(ITEM); \ + ITEM(7) +#define _SEMIC_SEP_LIST_6(ITEM) \ + _SEMIC_SEP_LIST_5(ITEM); \ + ITEM(6) +#define _SEMIC_SEP_LIST_5(ITEM) \ + _SEMIC_SEP_LIST_4(ITEM); \ + ITEM(5) +#define _SEMIC_SEP_LIST_4(ITEM) \ + _SEMIC_SEP_LIST_3(ITEM); \ + ITEM(4) +#define _SEMIC_SEP_LIST_3(ITEM) \ + _SEMIC_SEP_LIST_2(ITEM); \ + ITEM(3) +#define _SEMIC_SEP_LIST_2(ITEM) \ + _SEMIC_SEP_LIST_1(ITEM); \ + ITEM(2) +#define _SEMIC_SEP_LIST_1(ITEM) \ + _SEMIC_SEP_LIST_0(ITEM) \ + ITEM(1) +#define _SEMIC_SEP_LIST_0(ITEM) + +// 1-based space separed list of ITEMs +#define SPACE_SEP_LIST(ITEM, LENGTH) _SPACE_SEP_LIST_##LENGTH(ITEM) +#define _SPACE_SEP_LIST_12(ITEM) \ + _SPACE_SEP_LIST_11(ITEM) \ + ITEM(12) +#define _SPACE_SEP_LIST_11(ITEM) \ + _SPACE_SEP_LIST_10(ITEM) \ + ITEM(11) +#define _SPACE_SEP_LIST_10(ITEM) \ + _SPACE_SEP_LIST_9(ITEM) \ + ITEM(10) +#define _SPACE_SEP_LIST_9(ITEM) \ + _SPACE_SEP_LIST_8(ITEM) \ + ITEM(9) +#define _SPACE_SEP_LIST_8(ITEM) \ + _SPACE_SEP_LIST_7(ITEM) \ + ITEM(8) +#define _SPACE_SEP_LIST_7(ITEM) \ + _SPACE_SEP_LIST_6(ITEM) \ + ITEM(7) +#define _SPACE_SEP_LIST_6(ITEM) \ + _SPACE_SEP_LIST_5(ITEM) \ + ITEM(6) +#define _SPACE_SEP_LIST_5(ITEM) \ + _SPACE_SEP_LIST_4(ITEM) \ + ITEM(5) +#define _SPACE_SEP_LIST_4(ITEM) \ + _SPACE_SEP_LIST_3(ITEM) \ + ITEM(4) +#define _SPACE_SEP_LIST_3(ITEM) \ + _SPACE_SEP_LIST_2(ITEM) \ + ITEM(3) +#define _SPACE_SEP_LIST_2(ITEM) \ + _SPACE_SEP_LIST_1(ITEM) \ + ITEM(2) +#define _SPACE_SEP_LIST_1(ITEM) \ + _SPACE_SEP_LIST_0(ITEM) \ + ITEM(1) +#define _SPACE_SEP_LIST_0(ITEM) + +#define ARG(N) p##N +#define PARAM(N) P##N p##N +#define TYPE_PARAM(N) class P##N +#define PARAM_DECL(N) typename GetSimpleTypeT<P##N>::type_t p##N + +#define DECL_CMD(N) \ + template <class T, class M COMMA(N) COMMA_SEP_LIST(TYPE_PARAM, N)> \ + struct Command##N : public CommandBase { \ + T *instance; \ + M method; \ + SEMIC_SEP_LIST(PARAM_DECL, N); \ + virtual void call() { \ + (instance->*method)(COMMA_SEP_LIST(ARG, N)); \ + } \ + }; + +#define DECL_CMD_RET(N) \ + template <class T, class M, COMMA_SEP_LIST(TYPE_PARAM, N) COMMA(N) class R> \ + struct CommandRet##N : public SyncCommand { \ + R *ret; \ + T *instance; \ + M method; \ + SEMIC_SEP_LIST(PARAM_DECL, N); \ + virtual void call() { \ + *ret = (instance->*method)(COMMA_SEP_LIST(ARG, N)); \ + } \ + }; + +#define DECL_CMD_SYNC(N) \ + template <class T, class M COMMA(N) COMMA_SEP_LIST(TYPE_PARAM, N)> \ + struct CommandSync##N : public SyncCommand { \ + T *instance; \ + M method; \ + SEMIC_SEP_LIST(PARAM_DECL, N); \ + virtual void call() { \ + (instance->*method)(COMMA_SEP_LIST(ARG, N)); \ + } \ + }; + +#define TYPE_ARG(N) P##N +#define CMD_TYPE(N) Command##N<T, M COMMA(N) COMMA_SEP_LIST(TYPE_ARG, N)> +#define CMD_ASSIGN_PARAM(N) cmd->p##N = p##N + +#define DECL_PUSH(N) \ + template <class T, class M COMMA(N) COMMA_SEP_LIST(TYPE_PARAM, N)> \ + void push(T *p_instance, M p_method COMMA(N) COMMA_SEP_LIST(PARAM, N)) { \ + CMD_TYPE(N) *cmd = allocate_and_lock<CMD_TYPE(N)>(); \ + cmd->instance = p_instance; \ + cmd->method = p_method; \ + SEMIC_SEP_LIST(CMD_ASSIGN_PARAM, N); \ + unlock(); \ + if (sync) sync->post(); \ + } + +#define CMD_RET_TYPE(N) CommandRet##N<T, M, COMMA_SEP_LIST(TYPE_ARG, N) COMMA(N) R> + +#define DECL_PUSH_AND_RET(N) \ + template <class T, class M, COMMA_SEP_LIST(TYPE_PARAM, N) COMMA(N) class R> \ + void push_and_ret(T *p_instance, M p_method, COMMA_SEP_LIST(PARAM, N) COMMA(N) R *r_ret) { \ + SyncSemaphore *ss = _alloc_sync_sem(); \ + CMD_RET_TYPE(N) *cmd = allocate_and_lock<CMD_RET_TYPE(N)>(); \ + cmd->instance = p_instance; \ + cmd->method = p_method; \ + SEMIC_SEP_LIST(CMD_ASSIGN_PARAM, N); \ + cmd->ret = r_ret; \ + cmd->sync_sem = ss; \ + unlock(); \ + if (sync) sync->post(); \ + ss->sem->wait(); \ + } + +#define CMD_SYNC_TYPE(N) CommandSync##N<T, M COMMA(N) COMMA_SEP_LIST(TYPE_ARG, N)> + +#define DECL_PUSH_AND_SYNC(N) \ + template <class T, class M COMMA(N) COMMA_SEP_LIST(TYPE_PARAM, N)> \ + void push_and_sync(T *p_instance, M p_method COMMA(N) COMMA_SEP_LIST(PARAM, N)) { \ + SyncSemaphore *ss = _alloc_sync_sem(); \ + CMD_SYNC_TYPE(N) *cmd = allocate_and_lock<CMD_SYNC_TYPE(N)>(); \ + cmd->instance = p_instance; \ + cmd->method = p_method; \ + SEMIC_SEP_LIST(CMD_ASSIGN_PARAM, N); \ + cmd->sync_sem = ss; \ + unlock(); \ + if (sync) sync->post(); \ + ss->sem->wait(); \ + } + +#define MAX_CMD_PARAMS 12 + class CommandQueueMT { struct SyncSemaphore { @@ -50,556 +274,35 @@ class CommandQueueMT { struct CommandBase { virtual void call() = 0; + virtual void post(){}; virtual ~CommandBase(){}; }; - template <class T, class M> - struct Command0 : public CommandBase { - - T *instance; - M method; - - virtual void call() { (instance->*method)(); } - }; - - template <class T, class M, class P1> - struct Command1 : public CommandBase { - - T *instance; - M method; - typename GetSimpleTypeT<P1>::type_t p1; - - virtual void call() { (instance->*method)(p1); } - }; - - template <class T, class M, class P1, class P2> - struct Command2 : public CommandBase { - - T *instance; - M method; - typename GetSimpleTypeT<P1>::type_t p1; - typename GetSimpleTypeT<P2>::type_t p2; - - virtual void call() { (instance->*method)(p1, p2); } - }; - - template <class T, class M, class P1, class P2, class P3> - struct Command3 : public CommandBase { - - T *instance; - M method; - typename GetSimpleTypeT<P1>::type_t p1; - typename GetSimpleTypeT<P2>::type_t p2; - typename GetSimpleTypeT<P3>::type_t p3; - - virtual void call() { (instance->*method)(p1, p2, p3); } - }; - - template <class T, class M, class P1, class P2, class P3, class P4> - struct Command4 : public CommandBase { - - T *instance; - M method; - typename GetSimpleTypeT<P1>::type_t p1; - typename GetSimpleTypeT<P2>::type_t p2; - typename GetSimpleTypeT<P3>::type_t p3; - typename GetSimpleTypeT<P4>::type_t p4; - - virtual void call() { (instance->*method)(p1, p2, p3, p4); } - }; - - template <class T, class M, class P1, class P2, class P3, class P4, class P5> - struct Command5 : public CommandBase { - - T *instance; - M method; - typename GetSimpleTypeT<P1>::type_t p1; - typename GetSimpleTypeT<P2>::type_t p2; - typename GetSimpleTypeT<P3>::type_t p3; - typename GetSimpleTypeT<P4>::type_t p4; - typename GetSimpleTypeT<P5>::type_t p5; - - virtual void call() { (instance->*method)(p1, p2, p3, p4, p5); } - }; - - template <class T, class M, class P1, class P2, class P3, class P4, class P5, class P6> - struct Command6 : public CommandBase { - - T *instance; - M method; - typename GetSimpleTypeT<P1>::type_t p1; - typename GetSimpleTypeT<P2>::type_t p2; - typename GetSimpleTypeT<P3>::type_t p3; - typename GetSimpleTypeT<P4>::type_t p4; - typename GetSimpleTypeT<P5>::type_t p5; - typename GetSimpleTypeT<P6>::type_t p6; - - virtual void call() { (instance->*method)(p1, p2, p3, p4, p5, p6); } - }; - - template <class T, class M, class P1, class P2, class P3, class P4, class P5, class P6, class P7> - struct Command7 : public CommandBase { - - T *instance; - M method; - typename GetSimpleTypeT<P1>::type_t p1; - typename GetSimpleTypeT<P2>::type_t p2; - typename GetSimpleTypeT<P3>::type_t p3; - typename GetSimpleTypeT<P4>::type_t p4; - typename GetSimpleTypeT<P5>::type_t p5; - typename GetSimpleTypeT<P6>::type_t p6; - typename GetSimpleTypeT<P7>::type_t p7; - - virtual void call() { (instance->*method)(p1, p2, p3, p4, p5, p6, p7); } - }; - - template <class T, class M, class P1, class P2, class P3, class P4, class P5, class P6, class P7, class P8> - struct Command8 : public CommandBase { - - T *instance; - M method; - typename GetSimpleTypeT<P1>::type_t p1; - typename GetSimpleTypeT<P2>::type_t p2; - typename GetSimpleTypeT<P3>::type_t p3; - typename GetSimpleTypeT<P4>::type_t p4; - typename GetSimpleTypeT<P5>::type_t p5; - typename GetSimpleTypeT<P6>::type_t p6; - typename GetSimpleTypeT<P7>::type_t p7; - typename GetSimpleTypeT<P8>::type_t p8; - - virtual void call() { (instance->*method)(p1, p2, p3, p4, p5, p6, p7, p8); } - }; - - template <class T, class M, class P1, class P2, class P3, class P4, class P5, class P6, class P7, class P8, class P9> - struct Command9 : public CommandBase { - - T *instance; - M method; - typename GetSimpleTypeT<P1>::type_t p1; - typename GetSimpleTypeT<P2>::type_t p2; - typename GetSimpleTypeT<P3>::type_t p3; - typename GetSimpleTypeT<P4>::type_t p4; - typename GetSimpleTypeT<P5>::type_t p5; - typename GetSimpleTypeT<P6>::type_t p6; - typename GetSimpleTypeT<P7>::type_t p7; - typename GetSimpleTypeT<P8>::type_t p8; - typename GetSimpleTypeT<P9>::type_t p9; - - virtual void call() { (instance->*method)(p1, p2, p3, p4, p5, p6, p7, p8, p9); } - }; - - template <class T, class M, class P1, class P2, class P3, class P4, class P5, class P6, class P7, class P8, class P9, class P10> - struct Command10 : public CommandBase { - - T *instance; - M method; - typename GetSimpleTypeT<P1>::type_t p1; - typename GetSimpleTypeT<P2>::type_t p2; - typename GetSimpleTypeT<P3>::type_t p3; - typename GetSimpleTypeT<P4>::type_t p4; - typename GetSimpleTypeT<P5>::type_t p5; - typename GetSimpleTypeT<P6>::type_t p6; - typename GetSimpleTypeT<P7>::type_t p7; - typename GetSimpleTypeT<P8>::type_t p8; - typename GetSimpleTypeT<P9>::type_t p9; - typename GetSimpleTypeT<P10>::type_t p10; - - virtual void call() { (instance->*method)(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10); } - }; - - template <class T, class M, class P1, class P2, class P3, class P4, class P5, class P6, class P7, class P8, class P9, class P10, class P11> - struct Command11 : public CommandBase { - - T *instance; - M method; - typename GetSimpleTypeT<P1>::type_t p1; - typename GetSimpleTypeT<P2>::type_t p2; - typename GetSimpleTypeT<P3>::type_t p3; - typename GetSimpleTypeT<P4>::type_t p4; - typename GetSimpleTypeT<P5>::type_t p5; - typename GetSimpleTypeT<P6>::type_t p6; - typename GetSimpleTypeT<P7>::type_t p7; - typename GetSimpleTypeT<P8>::type_t p8; - typename GetSimpleTypeT<P9>::type_t p9; - typename GetSimpleTypeT<P10>::type_t p10; - typename GetSimpleTypeT<P11>::type_t p11; - - virtual void call() { (instance->*method)(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11); } - }; - - template <class T, class M, class P1, class P2, class P3, class P4, class P5, class P6, class P7, class P8, class P9, class P10, class P11, class P12> - struct Command12 : public CommandBase { - - T *instance; - M method; - typename GetSimpleTypeT<P1>::type_t p1; - typename GetSimpleTypeT<P2>::type_t p2; - typename GetSimpleTypeT<P3>::type_t p3; - typename GetSimpleTypeT<P4>::type_t p4; - typename GetSimpleTypeT<P5>::type_t p5; - typename GetSimpleTypeT<P6>::type_t p6; - typename GetSimpleTypeT<P7>::type_t p7; - typename GetSimpleTypeT<P8>::type_t p8; - typename GetSimpleTypeT<P9>::type_t p9; - typename GetSimpleTypeT<P10>::type_t p10; - typename GetSimpleTypeT<P11>::type_t p11; - typename GetSimpleTypeT<P12>::type_t p12; - - virtual void call() { (instance->*method)(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12); } - }; - - /* comands that return */ - - template <class T, class M, class R> - struct CommandRet0 : public CommandBase { - - T *instance; - M method; - R *ret; - SyncSemaphore *sync; - - virtual void call() { - *ret = (instance->*method)(); - sync->sem->post(); - sync->in_use = false; - } - }; - - template <class T, class M, class P1, class R> - struct CommandRet1 : public CommandBase { - - T *instance; - M method; - typename GetSimpleTypeT<P1>::type_t p1; - R *ret; - SyncSemaphore *sync; - - virtual void call() { - *ret = (instance->*method)(p1); - sync->sem->post(); - sync->in_use = false; - } - }; - - template <class T, class M, class P1, class P2, class R> - struct CommandRet2 : public CommandBase { - - T *instance; - M method; - typename GetSimpleTypeT<P1>::type_t p1; - typename GetSimpleTypeT<P2>::type_t p2; - R *ret; - SyncSemaphore *sync; - - virtual void call() { - *ret = (instance->*method)(p1, p2); - sync->sem->post(); - sync->in_use = false; - } - }; - - template <class T, class M, class P1, class P2, class P3, class R> - struct CommandRet3 : public CommandBase { - - T *instance; - M method; - typename GetSimpleTypeT<P1>::type_t p1; - typename GetSimpleTypeT<P2>::type_t p2; - typename GetSimpleTypeT<P3>::type_t p3; - R *ret; - SyncSemaphore *sync; - - virtual void call() { - *ret = (instance->*method)(p1, p2, p3); - sync->sem->post(); - sync->in_use = false; - } - }; - - template <class T, class M, class P1, class P2, class P3, class P4, class R> - struct CommandRet4 : public CommandBase { - - T *instance; - M method; - typename GetSimpleTypeT<P1>::type_t p1; - typename GetSimpleTypeT<P2>::type_t p2; - typename GetSimpleTypeT<P3>::type_t p3; - typename GetSimpleTypeT<P4>::type_t p4; - R *ret; - SyncSemaphore *sync; - - virtual void call() { - *ret = (instance->*method)(p1, p2, p3, p4); - sync->sem->post(); - sync->in_use = false; - } - }; - - template <class T, class M, class P1, class P2, class P3, class P4, class P5, class R> - struct CommandRet5 : public CommandBase { - - T *instance; - M method; - typename GetSimpleTypeT<P1>::type_t p1; - typename GetSimpleTypeT<P2>::type_t p2; - typename GetSimpleTypeT<P3>::type_t p3; - typename GetSimpleTypeT<P4>::type_t p4; - typename GetSimpleTypeT<P5>::type_t p5; - R *ret; - SyncSemaphore *sync; - - virtual void call() { - *ret = (instance->*method)(p1, p2, p3, p4, p5); - sync->sem->post(); - sync->in_use = false; - } - }; - - template <class T, class M, class P1, class P2, class P3, class P4, class P5, class P6, class R> - struct CommandRet6 : public CommandBase { - - T *instance; - M method; - typename GetSimpleTypeT<P1>::type_t p1; - typename GetSimpleTypeT<P2>::type_t p2; - typename GetSimpleTypeT<P3>::type_t p3; - typename GetSimpleTypeT<P4>::type_t p4; - typename GetSimpleTypeT<P5>::type_t p5; - typename GetSimpleTypeT<P6>::type_t p6; - R *ret; - SyncSemaphore *sync; - - virtual void call() { - *ret = (instance->*method)(p1, p2, p3, p4, p5, p6); - sync->sem->post(); - sync->in_use = false; - } - }; + struct SyncCommand : public CommandBase { - template <class T, class M, class P1, class P2, class P3, class P4, class P5, class P6, class P7, class R> - struct CommandRet7 : public CommandBase { - - T *instance; - M method; - typename GetSimpleTypeT<P1>::type_t p1; - typename GetSimpleTypeT<P2>::type_t p2; - typename GetSimpleTypeT<P3>::type_t p3; - typename GetSimpleTypeT<P4>::type_t p4; - typename GetSimpleTypeT<P5>::type_t p5; - typename GetSimpleTypeT<P6>::type_t p6; - typename GetSimpleTypeT<P7>::type_t p7; - R *ret; - SyncSemaphore *sync; - - virtual void call() { - *ret = (instance->*method)(p1, p2, p3, p4, p5, p6, p7); - sync->sem->post(); - sync->in_use = false; - } - }; + SyncSemaphore *sync_sem; - template <class T, class M, class P1, class P2, class P3, class P4, class P5, class P6, class P7, class P8, class R> - struct CommandRet8 : public CommandBase { - - T *instance; - M method; - typename GetSimpleTypeT<P1>::type_t p1; - typename GetSimpleTypeT<P2>::type_t p2; - typename GetSimpleTypeT<P3>::type_t p3; - typename GetSimpleTypeT<P4>::type_t p4; - typename GetSimpleTypeT<P5>::type_t p5; - typename GetSimpleTypeT<P6>::type_t p6; - typename GetSimpleTypeT<P7>::type_t p7; - typename GetSimpleTypeT<P8>::type_t p8; - R *ret; - SyncSemaphore *sync; - - virtual void call() { - *ret = (instance->*method)(p1, p2, p3, p4, p5, p6, p7, p8); - sync->sem->post(); - sync->in_use = false; + virtual void post() { + sync_sem->sem->post(); + sync_sem->in_use = false; } }; - /** commands that don't return but sync */ + DECL_CMD(0) + SPACE_SEP_LIST(DECL_CMD, 12) /* comands that return */ + DECL_CMD_RET(0) + SPACE_SEP_LIST(DECL_CMD_RET, 12) - template <class T, class M> - struct CommandSync0 : public CommandBase { - - T *instance; - M method; - - SyncSemaphore *sync; - - virtual void call() { - (instance->*method)(); - sync->sem->post(); - sync->in_use = false; - } - }; - - template <class T, class M, class P1> - struct CommandSync1 : public CommandBase { - - T *instance; - M method; - typename GetSimpleTypeT<P1>::type_t p1; - - SyncSemaphore *sync; - - virtual void call() { - (instance->*method)(p1); - sync->sem->post(); - sync->in_use = false; - } - }; - - template <class T, class M, class P1, class P2> - struct CommandSync2 : public CommandBase { - - T *instance; - M method; - typename GetSimpleTypeT<P1>::type_t p1; - typename GetSimpleTypeT<P2>::type_t p2; - - SyncSemaphore *sync; - - virtual void call() { - (instance->*method)(p1, p2); - sync->sem->post(); - sync->in_use = false; - } - }; - - template <class T, class M, class P1, class P2, class P3> - struct CommandSync3 : public CommandBase { - - T *instance; - M method; - typename GetSimpleTypeT<P1>::type_t p1; - typename GetSimpleTypeT<P2>::type_t p2; - typename GetSimpleTypeT<P3>::type_t p3; - - SyncSemaphore *sync; - - virtual void call() { - (instance->*method)(p1, p2, p3); - sync->sem->post(); - sync->in_use = false; - } - }; - - template <class T, class M, class P1, class P2, class P3, class P4> - struct CommandSync4 : public CommandBase { - - T *instance; - M method; - typename GetSimpleTypeT<P1>::type_t p1; - typename GetSimpleTypeT<P2>::type_t p2; - typename GetSimpleTypeT<P3>::type_t p3; - typename GetSimpleTypeT<P4>::type_t p4; - - SyncSemaphore *sync; - - virtual void call() { - (instance->*method)(p1, p2, p3, p4); - sync->sem->post(); - sync->in_use = false; - } - }; - - template <class T, class M, class P1, class P2, class P3, class P4, class P5> - struct CommandSync5 : public CommandBase { - - T *instance; - M method; - typename GetSimpleTypeT<P1>::type_t p1; - typename GetSimpleTypeT<P2>::type_t p2; - typename GetSimpleTypeT<P3>::type_t p3; - typename GetSimpleTypeT<P4>::type_t p4; - typename GetSimpleTypeT<P5>::type_t p5; - - SyncSemaphore *sync; - - virtual void call() { - (instance->*method)(p1, p2, p3, p4, p5); - sync->sem->post(); - sync->in_use = false; - } - }; - - template <class T, class M, class P1, class P2, class P3, class P4, class P5, class P6> - struct CommandSync6 : public CommandBase { - - T *instance; - M method; - typename GetSimpleTypeT<P1>::type_t p1; - typename GetSimpleTypeT<P2>::type_t p2; - typename GetSimpleTypeT<P3>::type_t p3; - typename GetSimpleTypeT<P4>::type_t p4; - typename GetSimpleTypeT<P5>::type_t p5; - typename GetSimpleTypeT<P6>::type_t p6; - - SyncSemaphore *sync; - - virtual void call() { - (instance->*method)(p1, p2, p3, p4, p5, p6); - sync->sem->post(); - sync->in_use = false; - } - }; - - template <class T, class M, class P1, class P2, class P3, class P4, class P5, class P6, class P7> - struct CommandSync7 : public CommandBase { - - T *instance; - M method; - typename GetSimpleTypeT<P1>::type_t p1; - typename GetSimpleTypeT<P2>::type_t p2; - typename GetSimpleTypeT<P3>::type_t p3; - typename GetSimpleTypeT<P4>::type_t p4; - typename GetSimpleTypeT<P5>::type_t p5; - typename GetSimpleTypeT<P6>::type_t p6; - typename GetSimpleTypeT<P7>::type_t p7; - - SyncSemaphore *sync; - - virtual void call() { - (instance->*method)(p1, p2, p3, p4, p5, p6, p7); - sync->sem->post(); - sync->in_use = false; - } - }; - - template <class T, class M, class P1, class P2, class P3, class P4, class P5, class P6, class P7, class P8> - struct CommandSync8 : public CommandBase { - - T *instance; - M method; - typename GetSimpleTypeT<P1>::type_t p1; - typename GetSimpleTypeT<P2>::type_t p2; - typename GetSimpleTypeT<P3>::type_t p3; - typename GetSimpleTypeT<P4>::type_t p4; - typename GetSimpleTypeT<P5>::type_t p5; - typename GetSimpleTypeT<P6>::type_t p6; - typename GetSimpleTypeT<P7>::type_t p7; - typename GetSimpleTypeT<P8>::type_t p8; - - SyncSemaphore *sync; - - virtual void call() { - (instance->*method)(p1, p2, p3, p4, p5, p6, p7, p8); - sync->sem->post(); - sync->in_use = false; - } - }; + /* commands that don't return but sync */ + DECL_CMD_SYNC(0) + SPACE_SEP_LIST(DECL_CMD_SYNC, 12) /***** BASE *******/ enum { - COMMAND_MEM_SIZE_KB = 256, + COMMAND_MEM_SIZE_KB = 256 * 1024, COMMAND_MEM_SIZE = COMMAND_MEM_SIZE_KB * 1024, SYNC_SEMAPHORES = 8 }; @@ -607,6 +310,7 @@ class CommandQueueMT { uint8_t command_mem[COMMAND_MEM_SIZE]; uint32_t read_ptr; uint32_t write_ptr; + uint32_t dealloc_ptr; SyncSemaphore sync_sems[SYNC_SEMAPHORES]; Mutex *mutex; Semaphore *sync; @@ -619,18 +323,30 @@ class CommandQueueMT { tryagain: - if (write_ptr < read_ptr) { - // behind read_ptr, check that there is room - if ((read_ptr - write_ptr) <= alloc_size) + if (write_ptr < dealloc_ptr) { + // behind dealloc_ptr, check that there is room + if ((dealloc_ptr - write_ptr) <= alloc_size) { + + // There is no more room, try to deallocate something + if (dealloc_one()) { + goto tryagain; + } return NULL; - } else if (write_ptr >= read_ptr) { - // ahead of read_ptr, check that there is room + } + } else if (write_ptr >= dealloc_ptr) { + // ahead of dealloc_ptr, check that there is room - if ((COMMAND_MEM_SIZE - write_ptr) < alloc_size + 4) { + if ((COMMAND_MEM_SIZE - write_ptr) < alloc_size + sizeof(uint32_t)) { // no room at the end, wrap down; - if (read_ptr == 0) // don't want write_ptr to become read_ptr + if (dealloc_ptr == 0) { // don't want write_ptr to become dealloc_ptr + + // There is no more room, try to deallocate something + if (dealloc_one()) { + goto tryagain; + } return NULL; + } // if this happens, it's a bug ERR_FAIL_COND_V((COMMAND_MEM_SIZE - write_ptr) < sizeof(uint32_t), NULL); @@ -642,9 +358,11 @@ class CommandQueueMT { goto tryagain; } } - // allocate the size + // Allocate the size and the 'in use' bit. + // First bit used to mark if command is still in use (1) + // or if it has been destroyed and can be deallocated (0). uint32_t *p = (uint32_t *)&command_mem[write_ptr]; - *p = sizeof(T); + *p = (sizeof(T) << 1) | 1; write_ptr += sizeof(uint32_t); // allocate the command T *cmd = memnew_placement(&command_mem[write_ptr], T); @@ -669,15 +387,16 @@ class CommandQueueMT { return ret; } - bool flush_one() { - + bool flush_one(bool p_lock = true) { + if (p_lock) lock(); tryagain: // tried to read an empty queue if (read_ptr == write_ptr) return false; - uint32_t size = *(uint32_t *)(&command_mem[read_ptr]); + uint32_t size_ptr = read_ptr; + uint32_t size = *(uint32_t *)&command_mem[read_ptr] >> 1; if (size == 0) { //end of ringbuffer, wrap @@ -689,11 +408,17 @@ class CommandQueueMT { CommandBase *cmd = reinterpret_cast<CommandBase *>(&command_mem[read_ptr]); + read_ptr += size; + + if (p_lock) unlock(); cmd->call(); - cmd->~CommandBase(); + if (p_lock) lock(); - read_ptr += size; + cmd->post(); + cmd->~CommandBase(); + *(uint32_t *)&command_mem[size_ptr] &= ~1; + if (p_lock) unlock(); return true; } @@ -701,681 +426,33 @@ class CommandQueueMT { void unlock(); void wait_for_flush(); SyncSemaphore *_alloc_sync_sem(); + bool dealloc_one(); public: /* NORMAL PUSH COMMANDS */ + DECL_PUSH(0) + SPACE_SEP_LIST(DECL_PUSH, 12) - template <class T, class M> - void push(T *p_instance, M p_method) { - - Command0<T, M> *cmd = allocate_and_lock<Command0<T, M> >(); - - cmd->instance = p_instance; - cmd->method = p_method; - - unlock(); - - if (sync) sync->post(); - } - - template <class T, class M, class P1> - void push(T *p_instance, M p_method, P1 p1) { - - Command1<T, M, P1> *cmd = allocate_and_lock<Command1<T, M, P1> >(); - - cmd->instance = p_instance; - cmd->method = p_method; - cmd->p1 = p1; - - unlock(); - - if (sync) sync->post(); - } - - template <class T, class M, class P1, class P2> - void push(T *p_instance, M p_method, P1 p1, P2 p2) { - - Command2<T, M, P1, P2> *cmd = allocate_and_lock<Command2<T, M, P1, P2> >(); - - cmd->instance = p_instance; - cmd->method = p_method; - cmd->p1 = p1; - cmd->p2 = p2; - - unlock(); - - if (sync) sync->post(); - } - - template <class T, class M, class P1, class P2, class P3> - void push(T *p_instance, M p_method, P1 p1, P2 p2, P3 p3) { - - Command3<T, M, P1, P2, P3> *cmd = allocate_and_lock<Command3<T, M, P1, P2, P3> >(); - - cmd->instance = p_instance; - cmd->method = p_method; - cmd->p1 = p1; - cmd->p2 = p2; - cmd->p3 = p3; - - unlock(); - - if (sync) sync->post(); - } - - template <class T, class M, class P1, class P2, class P3, class P4> - void push(T *p_instance, M p_method, P1 p1, P2 p2, P3 p3, P4 p4) { - - Command4<T, M, P1, P2, P3, P4> *cmd = allocate_and_lock<Command4<T, M, P1, P2, P3, P4> >(); - - cmd->instance = p_instance; - cmd->method = p_method; - cmd->p1 = p1; - cmd->p2 = p2; - cmd->p3 = p3; - cmd->p4 = p4; - - unlock(); - - if (sync) sync->post(); - } - - template <class T, class M, class P1, class P2, class P3, class P4, class P5> - void push(T *p_instance, M p_method, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5) { - - Command5<T, M, P1, P2, P3, P4, P5> *cmd = allocate_and_lock<Command5<T, M, P1, P2, P3, P4, P5> >(); - - cmd->instance = p_instance; - cmd->method = p_method; - cmd->p1 = p1; - cmd->p2 = p2; - cmd->p3 = p3; - cmd->p4 = p4; - cmd->p5 = p5; - - unlock(); - - if (sync) sync->post(); - } - - template <class T, class M, class P1, class P2, class P3, class P4, class P5, class P6> - void push(T *p_instance, M p_method, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6) { - - Command6<T, M, P1, P2, P3, P4, P5, P6> *cmd = allocate_and_lock<Command6<T, M, P1, P2, P3, P4, P5, P6> >(); - - cmd->instance = p_instance; - cmd->method = p_method; - cmd->p1 = p1; - cmd->p2 = p2; - cmd->p3 = p3; - cmd->p4 = p4; - cmd->p5 = p5; - cmd->p6 = p6; - - unlock(); - - if (sync) sync->post(); - } - - template <class T, class M, class P1, class P2, class P3, class P4, class P5, class P6, class P7> - void push(T *p_instance, M p_method, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7) { - - Command7<T, M, P1, P2, P3, P4, P5, P6, P7> *cmd = allocate_and_lock<Command7<T, M, P1, P2, P3, P4, P5, P6, P7> >(); - - cmd->instance = p_instance; - cmd->method = p_method; - cmd->p1 = p1; - cmd->p2 = p2; - cmd->p3 = p3; - cmd->p4 = p4; - cmd->p5 = p5; - cmd->p6 = p6; - cmd->p7 = p7; - - unlock(); - - if (sync) sync->post(); - } - - template <class T, class M, class P1, class P2, class P3, class P4, class P5, class P6, class P7, class P8> - void push(T *p_instance, M p_method, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8) { - - Command8<T, M, P1, P2, P3, P4, P5, P6, P7, P8> *cmd = allocate_and_lock<Command8<T, M, P1, P2, P3, P4, P5, P6, P7, P8> >(); - - cmd->instance = p_instance; - cmd->method = p_method; - cmd->p1 = p1; - cmd->p2 = p2; - cmd->p3 = p3; - cmd->p4 = p4; - cmd->p5 = p5; - cmd->p6 = p6; - cmd->p7 = p7; - cmd->p8 = p8; - - unlock(); - - if (sync) sync->post(); - } + /* PUSH AND RET COMMANDS */ + DECL_PUSH_AND_RET(0) + SPACE_SEP_LIST(DECL_PUSH_AND_RET, 12) - template <class T, class M, class P1, class P2, class P3, class P4, class P5, class P6, class P7, class P8, class P9> - void push(T *p_instance, M p_method, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9) { - - Command9<T, M, P1, P2, P3, P4, P5, P6, P7, P8, P9> *cmd = allocate_and_lock<Command9<T, M, P1, P2, P3, P4, P5, P6, P7, P8, P9> >(); - - cmd->instance = p_instance; - cmd->method = p_method; - cmd->p1 = p1; - cmd->p2 = p2; - cmd->p3 = p3; - cmd->p4 = p4; - cmd->p5 = p5; - cmd->p6 = p6; - cmd->p7 = p7; - cmd->p8 = p8; - cmd->p9 = p9; - - unlock(); - - if (sync) sync->post(); - } - - template <class T, class M, class P1, class P2, class P3, class P4, class P5, class P6, class P7, class P8, class P9, class P10> - void push(T *p_instance, M p_method, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10) { - - Command10<T, M, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10> *cmd = allocate_and_lock<Command10<T, M, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10> >(); - - cmd->instance = p_instance; - cmd->method = p_method; - cmd->p1 = p1; - cmd->p2 = p2; - cmd->p3 = p3; - cmd->p4 = p4; - cmd->p5 = p5; - cmd->p6 = p6; - cmd->p7 = p7; - cmd->p8 = p8; - cmd->p9 = p9; - cmd->p10 = p10; - - unlock(); - - if (sync) sync->post(); - } - - template <class T, class M, class P1, class P2, class P3, class P4, class P5, class P6, class P7, class P8, class P9, class P10, class P11> - void push(T *p_instance, M p_method, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11) { - - Command11<T, M, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11> *cmd = allocate_and_lock<Command11<T, M, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11> >(); - - cmd->instance = p_instance; - cmd->method = p_method; - cmd->p1 = p1; - cmd->p2 = p2; - cmd->p3 = p3; - cmd->p4 = p4; - cmd->p5 = p5; - cmd->p6 = p6; - cmd->p7 = p7; - cmd->p8 = p8; - cmd->p9 = p9; - cmd->p10 = p10; - cmd->p11 = p11; - - unlock(); - - if (sync) sync->post(); - } - - template <class T, class M, class P1, class P2, class P3, class P4, class P5, class P6, class P7, class P8, class P9, class P10, class P11, class P12> - void push(T *p_instance, M p_method, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12) { - - Command12<T, M, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12> *cmd = allocate_and_lock<Command12<T, M, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12> >(); - - cmd->instance = p_instance; - cmd->method = p_method; - cmd->p1 = p1; - cmd->p2 = p2; - cmd->p3 = p3; - cmd->p4 = p4; - cmd->p5 = p5; - cmd->p6 = p6; - cmd->p7 = p7; - cmd->p8 = p8; - cmd->p9 = p9; - cmd->p10 = p10; - cmd->p11 = p11; - cmd->p12 = p12; - - unlock(); - - if (sync) sync->post(); - } - - /*** PUSH AND RET COMMANDS ***/ - - template <class T, class M, class R> - void push_and_ret(T *p_instance, M p_method, R *r_ret) { - - SyncSemaphore *ss = _alloc_sync_sem(); - - CommandRet0<T, M, R> *cmd = allocate_and_lock<CommandRet0<T, M, R> >(); - - cmd->instance = p_instance; - cmd->method = p_method; - cmd->ret = r_ret; - - cmd->sync = ss; - - unlock(); - - if (sync) sync->post(); - ss->sem->wait(); - } - - template <class T, class M, class P1, class R> - void push_and_ret(T *p_instance, M p_method, P1 p1, R *r_ret) { - - SyncSemaphore *ss = _alloc_sync_sem(); - - CommandRet1<T, M, P1, R> *cmd = allocate_and_lock<CommandRet1<T, M, P1, R> >(); - - cmd->instance = p_instance; - cmd->method = p_method; - cmd->p1 = p1; - cmd->ret = r_ret; - - cmd->sync = ss; - - unlock(); - - if (sync) sync->post(); - ss->sem->wait(); - } - - template <class T, class M, class P1, class P2, class R> - void push_and_ret(T *p_instance, M p_method, P1 p1, P2 p2, R *r_ret) { - - SyncSemaphore *ss = _alloc_sync_sem(); - - CommandRet2<T, M, P1, P2, R> *cmd = allocate_and_lock<CommandRet2<T, M, P1, P2, R> >(); - - cmd->instance = p_instance; - cmd->method = p_method; - cmd->p1 = p1; - cmd->p2 = p2; - cmd->ret = r_ret; - - cmd->sync = ss; - - unlock(); - - if (sync) sync->post(); - ss->sem->wait(); - } - - template <class T, class M, class P1, class P2, class P3, class R> - void push_and_ret(T *p_instance, M p_method, P1 p1, P2 p2, P3 p3, R *r_ret) { - - SyncSemaphore *ss = _alloc_sync_sem(); - - CommandRet3<T, M, P1, P2, P3, R> *cmd = allocate_and_lock<CommandRet3<T, M, P1, P2, P3, R> >(); - - cmd->instance = p_instance; - cmd->method = p_method; - cmd->p1 = p1; - cmd->p2 = p2; - cmd->p3 = p3; - cmd->ret = r_ret; - - cmd->sync = ss; - - unlock(); - - if (sync) sync->post(); - ss->sem->wait(); - } - - template <class T, class M, class P1, class P2, class P3, class P4, class R> - void push_and_ret(T *p_instance, M p_method, P1 p1, P2 p2, P3 p3, P4 p4, R *r_ret) { - - SyncSemaphore *ss = _alloc_sync_sem(); - - CommandRet4<T, M, P1, P2, P3, P4, R> *cmd = allocate_and_lock<CommandRet4<T, M, P1, P2, P3, P4, R> >(); - - cmd->instance = p_instance; - cmd->method = p_method; - cmd->p1 = p1; - cmd->p2 = p2; - cmd->p3 = p3; - cmd->p4 = p4; - cmd->ret = r_ret; - - cmd->sync = ss; - - unlock(); - - if (sync) sync->post(); - ss->sem->wait(); - } - - template <class T, class M, class P1, class P2, class P3, class P4, class P5, class R> - void push_and_ret(T *p_instance, M p_method, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, R *r_ret) { - - SyncSemaphore *ss = _alloc_sync_sem(); - - CommandRet5<T, M, P1, P2, P3, P4, P5, R> *cmd = allocate_and_lock<CommandRet5<T, M, P1, P2, P3, P4, P5, R> >(); - - cmd->instance = p_instance; - cmd->method = p_method; - cmd->p1 = p1; - cmd->p2 = p2; - cmd->p3 = p3; - cmd->p4 = p4; - cmd->p5 = p5; - cmd->ret = r_ret; - - cmd->sync = ss; - - unlock(); - - if (sync) sync->post(); - ss->sem->wait(); - } - - template <class T, class M, class P1, class P2, class P3, class P4, class P5, class P6, class R> - void push_and_ret(T *p_instance, M p_method, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, R *r_ret) { - - SyncSemaphore *ss = _alloc_sync_sem(); - - CommandRet6<T, M, P1, P2, P3, P4, P5, P6, R> *cmd = allocate_and_lock<CommandRet6<T, M, P1, P2, P3, P4, P5, P6, R> >(); - - cmd->instance = p_instance; - cmd->method = p_method; - cmd->p1 = p1; - cmd->p2 = p2; - cmd->p3 = p3; - cmd->p4 = p4; - cmd->p5 = p5; - cmd->p6 = p6; - cmd->ret = r_ret; - - cmd->sync = ss; - - unlock(); - - if (sync) sync->post(); - ss->sem->wait(); - } - - template <class T, class M, class P1, class P2, class P3, class P4, class P5, class P6, class P7, class R> - void push_and_ret(T *p_instance, M p_method, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, R *r_ret) { - - SyncSemaphore *ss = _alloc_sync_sem(); - - CommandRet7<T, M, P1, P2, P3, P4, P5, P6, P7, R> *cmd = allocate_and_lock<CommandRet7<T, M, P1, P2, P3, P4, P5, P6, P7, R> >(); - - cmd->instance = p_instance; - cmd->method = p_method; - cmd->p1 = p1; - cmd->p2 = p2; - cmd->p3 = p3; - cmd->p4 = p4; - cmd->p5 = p5; - cmd->p6 = p6; - cmd->p7 = p7; - cmd->ret = r_ret; - - cmd->sync = ss; - - unlock(); - - if (sync) sync->post(); - ss->sem->wait(); - } - - template <class T, class M, class P1, class P2, class P3, class P4, class P5, class P6, class P7, class P8, class R> - void push_and_ret(T *p_instance, M p_method, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, R *r_ret) { - - SyncSemaphore *ss = _alloc_sync_sem(); - - CommandRet8<T, M, P1, P2, P3, P4, P5, P6, P7, P8, R> *cmd = allocate_and_lock<CommandRet8<T, M, P1, P2, P3, P4, P5, P6, P7, P8, R> >(); - - cmd->instance = p_instance; - cmd->method = p_method; - cmd->p1 = p1; - cmd->p2 = p2; - cmd->p3 = p3; - cmd->p4 = p4; - cmd->p5 = p5; - cmd->p6 = p6; - cmd->p7 = p7; - cmd->p8 = p8; - cmd->ret = r_ret; - - cmd->sync = ss; - - unlock(); - - if (sync) sync->post(); - ss->sem->wait(); - } - - template <class T, class M> - void push_and_sync(T *p_instance, M p_method) { - - SyncSemaphore *ss = _alloc_sync_sem(); - - CommandSync0<T, M> *cmd = allocate_and_lock<CommandSync0<T, M> >(); - - cmd->instance = p_instance; - cmd->method = p_method; - - cmd->sync = ss; - - unlock(); - - if (sync) sync->post(); - ss->sem->wait(); - } - - template <class T, class M, class P1> - void push_and_sync(T *p_instance, M p_method, P1 p1) { - - SyncSemaphore *ss = _alloc_sync_sem(); - - CommandSync1<T, M, P1> *cmd = allocate_and_lock<CommandSync1<T, M, P1> >(); - - cmd->instance = p_instance; - cmd->method = p_method; - cmd->p1 = p1; - - cmd->sync = ss; - - unlock(); - - if (sync) sync->post(); - ss->sem->wait(); - } - - template <class T, class M, class P1, class P2> - void push_and_sync(T *p_instance, M p_method, P1 p1, P2 p2) { - - SyncSemaphore *ss = _alloc_sync_sem(); - - CommandSync2<T, M, P1, P2> *cmd = allocate_and_lock<CommandSync2<T, M, P1, P2> >(); - - cmd->instance = p_instance; - cmd->method = p_method; - cmd->p1 = p1; - cmd->p2 = p2; - - cmd->sync = ss; - - unlock(); - - if (sync) sync->post(); - ss->sem->wait(); - } - - template <class T, class M, class P1, class P2, class P3> - void push_and_sync(T *p_instance, M p_method, P1 p1, P2 p2, P3 p3) { - - SyncSemaphore *ss = _alloc_sync_sem(); - - CommandSync3<T, M, P1, P2, P3> *cmd = allocate_and_lock<CommandSync3<T, M, P1, P2, P3> >(); - - cmd->instance = p_instance; - cmd->method = p_method; - cmd->p1 = p1; - cmd->p2 = p2; - cmd->p3 = p3; - - cmd->sync = ss; - - unlock(); - - if (sync) sync->post(); - ss->sem->wait(); - } - - template <class T, class M, class P1, class P2, class P3, class P4> - void push_and_sync(T *p_instance, M p_method, P1 p1, P2 p2, P3 p3, P4 p4) { - - SyncSemaphore *ss = _alloc_sync_sem(); - - CommandSync4<T, M, P1, P2, P3, P4> *cmd = allocate_and_lock<CommandSync4<T, M, P1, P2, P3, P4> >(); - - cmd->instance = p_instance; - cmd->method = p_method; - cmd->p1 = p1; - cmd->p2 = p2; - cmd->p3 = p3; - cmd->p4 = p4; - - cmd->sync = ss; - - unlock(); - - if (sync) sync->post(); - ss->sem->wait(); - } - - template <class T, class M, class P1, class P2, class P3, class P4, class P5> - void push_and_sync(T *p_instance, M p_method, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5) { - - SyncSemaphore *ss = _alloc_sync_sem(); - - CommandSync5<T, M, P1, P2, P3, P4, P5> *cmd = allocate_and_lock<CommandSync5<T, M, P1, P2, P3, P4, P5> >(); - - cmd->instance = p_instance; - cmd->method = p_method; - cmd->p1 = p1; - cmd->p2 = p2; - cmd->p3 = p3; - cmd->p4 = p4; - cmd->p5 = p5; - - cmd->sync = ss; - - unlock(); - - if (sync) sync->post(); - ss->sem->wait(); - } - - template <class T, class M, class P1, class P2, class P3, class P4, class P5, class P6> - void push_and_sync(T *p_instance, M p_method, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6) { - - SyncSemaphore *ss = _alloc_sync_sem(); - - CommandSync6<T, M, P1, P2, P3, P4, P5, P6> *cmd = allocate_and_lock<CommandSync6<T, M, P1, P2, P3, P4, P5, P6> >(); - - cmd->instance = p_instance; - cmd->method = p_method; - cmd->p1 = p1; - cmd->p2 = p2; - cmd->p3 = p3; - cmd->p4 = p4; - cmd->p5 = p5; - cmd->p6 = p6; - - cmd->sync = ss; - - unlock(); - - if (sync) sync->post(); - ss->sem->wait(); - } - - template <class T, class M, class P1, class P2, class P3, class P4, class P5, class P6, class P7> - void push_and_sync(T *p_instance, M p_method, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7) { - - SyncSemaphore *ss = _alloc_sync_sem(); - - CommandSync7<T, M, P1, P2, P3, P4, P5, P6, P7> *cmd = allocate_and_lock<CommandSync7<T, M, P1, P2, P3, P4, P5, P6, P7> >(); - - cmd->instance = p_instance; - cmd->method = p_method; - cmd->p1 = p1; - cmd->p2 = p2; - cmd->p3 = p3; - cmd->p4 = p4; - cmd->p5 = p5; - cmd->p6 = p6; - cmd->p7 = p7; - - cmd->sync = ss; - - unlock(); - - if (sync) sync->post(); - ss->sem->wait(); - } - - template <class T, class M, class P1, class P2, class P3, class P4, class P5, class P6, class P7, class P8> - void push_and_sync(T *p_instance, M p_method, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8) { - - SyncSemaphore *ss = _alloc_sync_sem(); - - CommandSync8<T, M, P1, P2, P3, P4, P5, P6, P7, P8> *cmd = allocate_and_lock<CommandSync8<T, M, P1, P2, P3, P4, P5, P6, P7, P8> >(); - - cmd->instance = p_instance; - cmd->method = p_method; - cmd->p1 = p1; - cmd->p2 = p2; - cmd->p3 = p3; - cmd->p4 = p4; - cmd->p5 = p5; - cmd->p6 = p6; - cmd->p7 = p7; - cmd->p8 = p8; - - cmd->sync = ss; - - unlock(); - - if (sync) sync->post(); - ss->sem->wait(); - } + /* PUSH AND RET SYNC COMMANDS*/ + DECL_PUSH_AND_SYNC(0) + SPACE_SEP_LIST(DECL_PUSH_AND_SYNC, 12) void wait_and_flush_one() { ERR_FAIL_COND(!sync); sync->wait(); - lock(); flush_one(); - unlock(); } void flush_all() { //ERR_FAIL_COND(sync); lock(); - while (true) { - bool exit = !flush_one(); - if (exit) - break; - } + while (flush_one(false)) + ; unlock(); } @@ -1383,4 +460,20 @@ public: ~CommandQueueMT(); }; +#undef ARG +#undef PARAM +#undef TYPE_PARAM +#undef PARAM_DECL +#undef DECL_CMD +#undef DECL_CMD_RET +#undef DECL_CMD_SYNC +#undef TYPE_ARG +#undef CMD_TYPE +#undef CMD_ASSIGN_PARAM +#undef DECL_PUSH +#undef CMD_RET_TYPE +#undef DECL_PUSH_AND_RET +#undef CMD_SYNC_TYPE +#undef DECL_CMD_SYNC + #endif diff --git a/core/io/logger.cpp b/core/io/logger.cpp index ce2ce44b1d..7177359c8a 100644 --- a/core/io/logger.cpp +++ b/core/io/logger.cpp @@ -29,6 +29,7 @@ /*************************************************************************/ #include "logger.h" + #include "os/dir_access.h" #include "os/os.h" #include "print_string.h" @@ -259,6 +260,10 @@ void CompositeLogger::log_error(const char *p_function, const char *p_file, int } } +void CompositeLogger::add_logger(Logger *p_logger) { + loggers.push_back(p_logger); +} + CompositeLogger::~CompositeLogger() { for (int i = 0; i < loggers.size(); ++i) { memdelete(loggers[i]); diff --git a/core/io/logger.h b/core/io/logger.h index cf0cc7699f..f8a394193f 100644 --- a/core/io/logger.h +++ b/core/io/logger.h @@ -101,6 +101,8 @@ public: virtual void logv(const char *p_format, va_list p_list, bool p_err); virtual void log_error(const char *p_function, const char *p_file, int p_line, const char *p_code, const char *p_rationale, ErrorType p_type = ERR_ERROR); + void add_logger(Logger *p_logger); + virtual ~CompositeLogger(); }; diff --git a/core/io/marshalls.cpp b/core/io/marshalls.cpp index 1d9d2dd959..37320d7a77 100644 --- a/core/io/marshalls.cpp +++ b/core/io/marshalls.cpp @@ -324,7 +324,6 @@ Error decode_variant(Variant &r_variant, const uint8_t *p_buffer, int p_len, int ERR_FAIL_COND_V(len < 12, ERR_INVALID_DATA); Vector<StringName> names; Vector<StringName> subnames; - StringName prop; uint32_t namecount = strlen &= 0x7FFFFFFF; uint32_t subnamecount = decode_uint32(buf + 4); @@ -333,9 +332,10 @@ Error decode_variant(Variant &r_variant, const uint8_t *p_buffer, int p_len, int len -= 12; buf += 12; + if (flags & 2) // Obsolete format with property seperate from subpath + subnamecount++; + uint32_t total = namecount + subnamecount; - if (flags & 2) - total++; if (r_len) (*r_len) += 12; @@ -359,10 +359,8 @@ Error decode_variant(Variant &r_variant, const uint8_t *p_buffer, int p_len, int if (i < namecount) names.push_back(str); - else if (i < namecount + subnamecount) - subnames.push_back(str); else - prop = str; + subnames.push_back(str); buf += strlen + pad; len -= strlen + pad; @@ -371,7 +369,7 @@ Error decode_variant(Variant &r_variant, const uint8_t *p_buffer, int p_len, int (*r_len) += 4 + strlen + pad; } - r_variant = NodePath(names, subnames, flags & 1, prop); + r_variant = NodePath(names, subnames, flags & 1); } else { //old format, just a string @@ -919,8 +917,6 @@ Error encode_variant(const Variant &p_variant, uint8_t *r_buffer, int &r_len, bo uint32_t flags = 0; if (np.is_absolute()) flags |= 1; - if (np.get_property() != StringName()) - flags |= 2; encode_uint32(flags, buf + 8); @@ -930,8 +926,6 @@ Error encode_variant(const Variant &p_variant, uint8_t *r_buffer, int &r_len, bo r_len += 12; int total = np.get_name_count() + np.get_subname_count(); - if (np.get_property() != StringName()) - total++; for (int i = 0; i < total; i++) { @@ -939,10 +933,8 @@ Error encode_variant(const Variant &p_variant, uint8_t *r_buffer, int &r_len, bo if (i < np.get_name_count()) str = np.get_name(i); - else if (i < np.get_name_count() + np.get_subname_count()) - str = np.get_subname(i - np.get_subname_count()); else - str = np.get_property(); + str = np.get_subname(i - np.get_name_count()); CharString utf8 = str.utf8(); diff --git a/core/io/resource_format_binary.cpp b/core/io/resource_format_binary.cpp index 8dc396c362..df0d41ea9d 100644 --- a/core/io/resource_format_binary.cpp +++ b/core/io/resource_format_binary.cpp @@ -84,8 +84,10 @@ enum { OBJECT_INTERNAL_RESOURCE = 2, OBJECT_EXTERNAL_RESOURCE_INDEX = 3, //version 2: added 64 bits support for float and int - FORMAT_VERSION = 2, - FORMAT_VERSION_CAN_RENAME_DEPS = 1 + //version 3: changed nodepath encoding + FORMAT_VERSION = 3, + FORMAT_VERSION_CAN_RENAME_DEPS = 1, + FORMAT_VERSION_NO_NODEPATH_PROPERTY = 3, }; @@ -267,21 +269,22 @@ Error ResourceInteractiveLoaderBinary::parse_variant(Variant &r_v) { Vector<StringName> names; Vector<StringName> subnames; - StringName property; bool absolute; int name_count = f->get_16(); uint32_t subname_count = f->get_16(); absolute = subname_count & 0x8000; subname_count &= 0x7FFF; + if (ver_format < FORMAT_VERSION_NO_NODEPATH_PROPERTY) { + subname_count += 1; // has a property field, so we should count it as well + } for (int i = 0; i < name_count; i++) names.push_back(_get_string()); for (uint32_t i = 0; i < subname_count; i++) subnames.push_back(_get_string()); - property = _get_string(); - NodePath np = NodePath(names, subnames, absolute, property); + NodePath np = NodePath(names, subnames, absolute); r_v = np; @@ -856,7 +859,7 @@ void ResourceInteractiveLoaderBinary::open(FileAccess *p_f) { uint32_t ver_major = f->get_32(); uint32_t ver_minor = f->get_32(); - uint32_t ver_format = f->get_32(); + ver_format = f->get_32(); print_bl("big endian: " + itos(big_endian)); #ifdef BIG_ENDIAN_ENABLED @@ -1454,7 +1457,6 @@ void ResourceFormatSaverBinaryInstance::write_variant(const Variant &p_property, f->store_32(get_string_index(np.get_name(i))); for (int i = 0; i < np.get_subname_count(); i++) f->store_32(get_string_index(np.get_subname(i))); - f->store_32(get_string_index(np.get_property())); } break; case Variant::_RID: { @@ -1685,7 +1687,6 @@ void ResourceFormatSaverBinaryInstance::_find_resources(const Variant &p_variant get_string_index(np.get_name(i)); for (int i = 0; i < np.get_subname_count(); i++) get_string_index(np.get_subname(i)); - get_string_index(np.get_property()); } break; default: {} diff --git a/core/io/resource_format_binary.h b/core/io/resource_format_binary.h index 2316f05b3c..687da0a9b4 100644 --- a/core/io/resource_format_binary.h +++ b/core/io/resource_format_binary.h @@ -41,6 +41,7 @@ class ResourceInteractiveLoaderBinary : public ResourceInteractiveLoader { String res_path; String type; Ref<Resource> resource; + uint32_t ver_format; FileAccess *f; diff --git a/core/node_path.cpp b/core/node_path.cpp index 15f950f605..a12152aca6 100644 --- a/core/node_path.cpp +++ b/core/node_path.cpp @@ -48,8 +48,6 @@ uint32_t NodePath::hash() const { h = h ^ ssn[i].hash(); } - h = h ^ data->property.hash(); - return h; } @@ -81,13 +79,6 @@ StringName NodePath::get_name(int p_idx) const { return data->path[p_idx]; } -StringName NodePath::get_property() const { - - if (!data) - return StringName(); - return data->property; -} - int NodePath::get_subname_count() const { if (!data) @@ -128,9 +119,6 @@ bool NodePath::operator==(const NodePath &p_path) const { if (data->subpath.size() != p_path.data->subpath.size()) return false; - if (data->property != p_path.data->property) - return false; - for (int i = 0; i < data->path.size(); i++) { if (data->path[i] != p_path.data->path[i]) @@ -184,8 +172,6 @@ NodePath::operator String() const { ret += ":" + data->subpath[i].operator String(); } - if (data->property.operator String() != "") - ret += ":" + String(data->property); return ret; } @@ -205,6 +191,7 @@ Vector<StringName> NodePath::get_names() const { return data->path; return Vector<StringName>(); } + Vector<StringName> NodePath::get_subnames() const { if (data) @@ -212,6 +199,21 @@ Vector<StringName> NodePath::get_subnames() const { return Vector<StringName>(); } +StringName NodePath::get_concatenated_subnames() const { + ERR_FAIL_COND_V(!data, StringName()); + + if (!data->concatenated_subpath) { + int spc = data->subpath.size(); + String concatenated; + const StringName *ssn = data->subpath.ptr(); + for (int i = 0; i < spc; i++) { + concatenated += i == 0 ? ssn[i].operator String() : ":" + ssn[i]; + } + data->concatenated_subpath = concatenated; + } + return data->concatenated_subpath; +} + NodePath NodePath::rel_path_to(const NodePath &p_np) const { ERR_FAIL_COND_V(!is_absolute(), NodePath()); @@ -250,10 +252,27 @@ NodePath NodePath::rel_path_to(const NodePath &p_np) const { if (relpath.size() == 0) relpath.push_back("."); - return NodePath(relpath, p_np.get_subnames(), false, p_np.get_property()); + return NodePath(relpath, p_np.get_subnames(), false); } -NodePath::NodePath(const Vector<StringName> &p_path, bool p_absolute, const String &p_property) { +NodePath NodePath::get_as_property_path() const { + + if (!data->path.size()) { + return *this; + } else { + Vector<StringName> new_path = data->subpath; + + String initial_subname = data->path[0]; + for (size_t i = 1; i < data->path.size(); i++) { + initial_subname += i == 0 ? data->path[i].operator String() : "/" + data->path[i]; + } + new_path.insert(0, initial_subname); + + return NodePath(Vector<StringName>(), new_path, false); + } +} + +NodePath::NodePath(const Vector<StringName> &p_path, bool p_absolute) { data = NULL; @@ -264,14 +283,14 @@ NodePath::NodePath(const Vector<StringName> &p_path, bool p_absolute, const Stri data->refcount.init(); data->absolute = p_absolute; data->path = p_path; - data->property = p_property; + data->has_slashes = true; } -NodePath::NodePath(const Vector<StringName> &p_path, const Vector<StringName> &p_subpath, bool p_absolute, const String &p_property) { +NodePath::NodePath(const Vector<StringName> &p_path, const Vector<StringName> &p_subpath, bool p_absolute) { data = NULL; - if (p_path.size() == 0) + if (p_path.size() == 0 && p_subpath.size() == 0) return; data = memnew(Data); @@ -279,7 +298,7 @@ NodePath::NodePath(const Vector<StringName> &p_path, const Vector<StringName> &p data->absolute = p_absolute; data->path = p_path; data->subpath = p_subpath; - data->property = p_property; + data->has_slashes = true; } void NodePath::simplify() { @@ -320,11 +339,11 @@ NodePath::NodePath(const String &p_path) { return; String path = p_path; - StringName property; Vector<StringName> subpath; int absolute = (path[0] == '/') ? 1 : 0; bool last_is_slash = true; + bool has_slashes = false; int slices = 0; int subpath_pos = path.find(":"); @@ -337,16 +356,13 @@ NodePath::NodePath(const String &p_path) { if (path[i] == ':' || path[i] == 0) { String str = path.substr(from, i - from); - if (path[i] == ':') { - if (str == "") { - ERR_EXPLAIN("Invalid NodePath: " + p_path); - ERR_FAIL(); - } - subpath.push_back(str); - } else { - //property can be empty - property = str; + if (str == "") { + if (path[i] == 0) continue; // Allow end-of-path : + + ERR_EXPLAIN("Invalid NodePath: " + p_path); + ERR_FAIL(); } + subpath.push_back(str); from = i + 1; } @@ -360,6 +376,7 @@ NodePath::NodePath(const String &p_path) { if (path[i] == '/') { last_is_slash = true; + has_slashes = true; } else { if (last_is_slash) @@ -369,13 +386,13 @@ NodePath::NodePath(const String &p_path) { } } - if (slices == 0 && !absolute && !property) + if (slices == 0 && !absolute && !subpath.size()) return; data = memnew(Data); data->refcount.init(); data->absolute = absolute ? true : false; - data->property = property; + data->has_slashes = has_slashes; data->subpath = subpath; if (slices == 0) diff --git a/core/node_path.h b/core/node_path.h index eb5b9eb6cf..063c4f62db 100644 --- a/core/node_path.h +++ b/core/node_path.h @@ -41,10 +41,11 @@ class NodePath { struct Data { SafeRefCount refcount; - StringName property; Vector<StringName> path; Vector<StringName> subpath; + StringName concatenated_subpath; bool absolute; + bool has_slashes; }; Data *data; @@ -53,7 +54,7 @@ class NodePath { public: _FORCE_INLINE_ StringName get_sname() const { - if (data && data->path.size() == 1 && data->subpath.empty() && !data->property) { + if (data && data->path.size() == 1 && data->subpath.empty()) { return data->path[0]; } else { return operator String(); @@ -67,13 +68,13 @@ public: StringName get_subname(int p_idx) const; Vector<StringName> get_names() const; Vector<StringName> get_subnames() const; + StringName get_concatenated_subnames() const; NodePath rel_path_to(const NodePath &p_np) const; + NodePath get_as_property_path() const; void prepend_period(); - StringName get_property() const; - NodePath get_parent() const; uint32_t hash() const; @@ -88,8 +89,8 @@ public: void simplify(); NodePath simplified() const; - NodePath(const Vector<StringName> &p_path, bool p_absolute, const String &p_property = ""); - NodePath(const Vector<StringName> &p_path, const Vector<StringName> &p_subpath, bool p_absolute, const String &p_property = ""); + NodePath(const Vector<StringName> &p_path, bool p_absolute); + NodePath(const Vector<StringName> &p_path, const Vector<StringName> &p_subpath, bool p_absolute); NodePath(const NodePath &p_path); NodePath(const String &p_path); NodePath(); diff --git a/core/object.cpp b/core/object.cpp index 823cbe14d4..631676d827 100644 --- a/core/object.cpp +++ b/core/object.cpp @@ -517,6 +517,80 @@ Variant Object::get(const StringName &p_name, bool *r_valid) const { } } +void Object::set_indexed(const Vector<StringName> &p_names, const Variant &p_value, bool *r_valid) { + if (p_names.empty()) { + if (r_valid) + *r_valid = false; + return; + } + if (p_names.size() == 1) { + set(p_names[0], p_value, r_valid); + return; + } + + bool valid = false; + if (!r_valid) r_valid = &valid; + + List<Variant> value_stack; + + value_stack.push_back(get(p_names[0], r_valid)); + + if (!*r_valid) { + value_stack.clear(); + return; + } + + for (int i = 1; i < p_names.size() - 1; i++) { + value_stack.push_back(value_stack.back()->get().get_named(p_names[i], r_valid)); + + if (!*r_valid) { + value_stack.clear(); + return; + } + } + + value_stack.push_back(p_value); // p_names[p_names.size() - 1] + + for (int i = p_names.size() - 1; i > 0; i--) { + + value_stack.back()->prev()->get().set_named(p_names[i], value_stack.back()->get(), r_valid); + value_stack.pop_back(); + + if (!*r_valid) { + value_stack.clear(); + return; + } + } + + set(p_names[0], value_stack.back()->get(), r_valid); + value_stack.pop_back(); + + ERR_FAIL_COND(!value_stack.empty()); +} + +Variant Object::get_indexed(const Vector<StringName> &p_names, bool *r_valid) const { + if (p_names.empty()) { + if (r_valid) + *r_valid = false; + return Variant(); + } + bool valid = false; + + Variant current_value = get(p_names[0]); + for (int i = 1; i < p_names.size(); i++) { + current_value = current_value.get_named(p_names[i], &valid); + + if (!valid) { + if (r_valid) + *r_valid = false; + return Variant(); + } + } + if (r_valid) + *r_valid = true; + return current_value; +} + void Object::get_property_list(List<PropertyInfo> *p_list, bool p_reversed) const { if (script_instance && p_reversed) { @@ -1416,6 +1490,16 @@ Variant Object::_get_bind(const String &p_name) const { return get(p_name); } +void Object::_set_indexed_bind(const NodePath &p_name, const Variant &p_value) { + + set_indexed(p_name.get_as_property_path().get_subnames(), p_value); +} + +Variant Object::_get_indexed_bind(const NodePath &p_name) const { + + return get_indexed(p_name.get_as_property_path().get_subnames()); +} + void Object::initialize_class() { static bool initialized = false; @@ -1513,6 +1597,8 @@ void Object::_bind_methods() { ClassDB::bind_method(D_METHOD("is_class", "type"), &Object::is_class); ClassDB::bind_method(D_METHOD("set", "property", "value"), &Object::_set_bind); ClassDB::bind_method(D_METHOD("get", "property"), &Object::_get_bind); + ClassDB::bind_method(D_METHOD("set_indexed", "property", "value"), &Object::_set_indexed_bind); + ClassDB::bind_method(D_METHOD("get_indexed", "property"), &Object::_get_indexed_bind); ClassDB::bind_method(D_METHOD("get_property_list"), &Object::_get_property_list_bind); ClassDB::bind_method(D_METHOD("get_method_list"), &Object::_get_method_list_bind); ClassDB::bind_method(D_METHOD("notification", "what", "reversed"), &Object::notification, DEFVAL(false)); @@ -1661,6 +1747,43 @@ Variant::Type Object::get_static_property_type(const StringName &p_property, boo return Variant::NIL; } +Variant::Type Object::get_static_property_type_indexed(const Vector<StringName> &p_path, bool *r_valid) const { + + bool valid = false; + Variant::Type t = get_static_property_type(p_path[0], &valid); + if (!valid) { + if (r_valid) + *r_valid = false; + + return Variant::NIL; + } + + Variant::CallError ce; + Variant check = Variant::construct(t, NULL, 0, ce); + + for (int i = 1; i < p_path.size(); i++) { + if (check.get_type() == Variant::OBJECT || check.get_type() == Variant::DICTIONARY || check.get_type() == Variant::ARRAY) { + // We cannot be sure about the type of properties this types can have + if (r_valid) + *r_valid = false; + return Variant::NIL; + } + + check = check.get_named(p_path[i], &valid); + + if (!valid) { + if (r_valid) + *r_valid = false; + return Variant::NIL; + } + } + + if (r_valid) + *r_valid = true; + + return check.get_type(); +} + bool Object::is_queued_for_deletion() const { return _is_queued_for_deletion; } diff --git a/core/object.h b/core/object.h index 7af2c78fc3..3ac699f978 100644 --- a/core/object.h +++ b/core/object.h @@ -477,6 +477,8 @@ private: Array _get_incoming_connections() const; void _set_bind(const String &p_set, const Variant &p_value); Variant _get_bind(const String &p_name) const; + void _set_indexed_bind(const NodePath &p_name, const Variant &p_value); + Variant _get_indexed_bind(const NodePath &p_name) const; void *_script_instance_bindings[MAX_SCRIPT_INSTANCE_BINDINGS]; @@ -627,6 +629,8 @@ public: void set(const StringName &p_name, const Variant &p_value, bool *r_valid = NULL); Variant get(const StringName &p_name, bool *r_valid = NULL) const; + void set_indexed(const Vector<StringName> &p_names, const Variant &p_value, bool *r_valid = NULL); + Variant get_indexed(const Vector<StringName> &p_names, bool *r_valid = NULL) const; void get_property_list(List<PropertyInfo> *p_list, bool p_reversed = false) const; @@ -687,6 +691,7 @@ public: bool is_blocking_signals() const; Variant::Type get_static_property_type(const StringName &p_property, bool *r_valid = NULL) const; + Variant::Type get_static_property_type_indexed(const Vector<StringName> &p_path, bool *r_valid = NULL) const; virtual void get_translatable_strings(List<String> *p_strings) const; diff --git a/core/os/dir_access.cpp b/core/os/dir_access.cpp index 35e4443f2a..6d4b46f4da 100644 --- a/core/os/dir_access.cpp +++ b/core/os/dir_access.cpp @@ -98,6 +98,7 @@ static Error _erase_recursive(DirAccess *da) { err = _erase_recursive(da); if (err) { print_line("err recurso " + E->get()); + da->change_dir(".."); return err; } err = da->change_dir(".."); @@ -340,6 +341,102 @@ Error DirAccess::copy(String p_from, String p_to, int chmod_flags) { return err; } +// Changes dir for the current scope, returning back to the original dir +// when scope exits +class DirChanger { + DirAccess *da; + String original_dir; + +public: + DirChanger(DirAccess *p_da, String p_dir) { + da = p_da; + original_dir = p_da->get_current_dir(); + p_da->change_dir(p_dir); + } + + ~DirChanger() { + da->change_dir(original_dir); + } +}; + +Error DirAccess::_copy_dir(DirAccess *p_target_da, String p_to, int p_chmod_flags) { + List<String> dirs; + + String curdir = get_current_dir(); + list_dir_begin(); + String n = get_next(); + while (n != String()) { + + if (n != "." && n != "..") { + + if (current_is_dir()) + dirs.push_back(n); + else { + String rel_path = n; + if (!n.is_rel_path()) { + list_dir_end(); + return ERR_BUG; + } + Error err = copy(get_current_dir() + "/" + n, p_to + rel_path, p_chmod_flags); + if (err) { + list_dir_end(); + return err; + } + } + } + + n = get_next(); + } + + list_dir_end(); + + for (List<String>::Element *E = dirs.front(); E; E = E->next()) { + String rel_path = E->get(); + String target_dir = p_to + rel_path; + if (!p_target_da->dir_exists(target_dir)) { + Error err = p_target_da->make_dir(target_dir); + ERR_FAIL_COND_V(err, err); + } + + Error err = change_dir(E->get()); + ERR_FAIL_COND_V(err, err); + err = _copy_dir(p_target_da, p_to + rel_path + "/", p_chmod_flags); + if (err) { + change_dir(".."); + ERR_PRINT("Failed to copy recursively"); + return err; + } + err = change_dir(".."); + if (err) { + ERR_PRINT("Failed to go back"); + return err; + } + } + + return OK; +} + +Error DirAccess::copy_dir(String p_from, String p_to, int p_chmod_flags) { + ERR_FAIL_COND_V(!dir_exists(p_from), ERR_FILE_NOT_FOUND); + + DirAccess *target_da = DirAccess::create_for_path(p_to); + ERR_FAIL_COND_V(!target_da, ERR_CANT_CREATE); + + if (!target_da->dir_exists(p_to)) { + Error err = target_da->make_dir_recursive(p_to); + if (err) { + memdelete(target_da); + } + ERR_FAIL_COND_V(err, err); + } + + DirChanger dir_changer(this, p_from); + Error err = _copy_dir(target_da, p_to + "/", p_chmod_flags); + memdelete(target_da); + + return err; +} + bool DirAccess::exists(String p_dir) { DirAccess *da = DirAccess::create_for_path(p_dir); diff --git a/core/os/dir_access.h b/core/os/dir_access.h index 7fa3ce5cf1..f3d1320041 100644 --- a/core/os/dir_access.h +++ b/core/os/dir_access.h @@ -52,6 +52,9 @@ public: private: AccessType _access_type; static CreateFunc create_func[ACCESS_MAX]; ///< set this to instance a filesystem object + + Error _copy_dir(DirAccess *p_target_da, String p_to, int p_chmod_flags); + protected: String _get_root_path() const; String _get_root_string() const; @@ -89,6 +92,7 @@ public: static bool exists(String p_dir); virtual size_t get_space_left() = 0; + Error copy_dir(String p_from, String p_to, int chmod_flags = -1); virtual Error copy(String p_from, String p_to, int chmod_flags = -1); virtual Error rename(String p_from, String p_to) = 0; virtual Error remove(String p_name) = 0; diff --git a/core/os/input_event.cpp b/core/os/input_event.cpp index 6b43f2c63b..3cdd9ae0e0 100644 --- a/core/os/input_event.cpp +++ b/core/os/input_event.cpp @@ -177,6 +177,14 @@ bool InputEventWithModifiers::get_command() const { return command; } +void InputEventWithModifiers::set_modifiers_from_event(const InputEventWithModifiers *event) { + + set_alt(event->get_alt()); + set_shift(event->get_shift()); + set_control(event->get_control()); + set_metakey(event->get_metakey()); +} + void InputEventWithModifiers::_bind_methods() { ClassDB::bind_method(D_METHOD("set_alt", "enable"), &InputEventWithModifiers::set_alt); @@ -270,16 +278,16 @@ String InputEventKey::as_text() const { return kc; if (get_metakey()) { - kc = "Meta+" + kc; + kc = find_keycode_name(KEY_META) + ("+" + kc); } if (get_alt()) { - kc = "Alt+" + kc; + kc = find_keycode_name(KEY_ALT) + ("+" + kc); } if (get_shift()) { - kc = "Shift+" + kc; + kc = find_keycode_name(KEY_SHIFT) + ("+" + kc); } if (get_control()) { - kc = "Ctrl+" + kc; + kc = find_keycode_name(KEY_CONTROL) + ("+" + kc); } return kc; } @@ -436,10 +444,7 @@ Ref<InputEvent> InputEventMouseButton::xformed_by(const Transform2D &p_xform, co mb->set_id(get_id()); mb->set_device(get_device()); - mb->set_alt(get_alt()); - mb->set_shift(get_shift()); - mb->set_control(get_control()); - mb->set_metakey(get_metakey()); + mb->set_modifiers_from_event(this); mb->set_position(l); mb->set_global_position(g); @@ -555,10 +560,7 @@ Ref<InputEvent> InputEventMouseMotion::xformed_by(const Transform2D &p_xform, co mm->set_id(get_id()); mm->set_device(get_device()); - mm->set_alt(get_alt()); - mm->set_shift(get_shift()); - mm->set_control(get_control()); - mm->set_metakey(get_metakey()); + mm->set_modifiers_from_event(this); mm->set_position(l); mm->set_global_position(g); @@ -930,3 +932,75 @@ void InputEventAction::_bind_methods() { InputEventAction::InputEventAction() { pressed = false; } +///////////////////////////// + +void InputEventGesture::set_position(const Vector2 &p_pos) { + + pos = p_pos; +} + +Vector2 InputEventGesture::get_position() const { + + return pos; +} +///////////////////////////// + +void InputEventMagnifyGesture::set_factor(real_t p_factor) { + + factor = p_factor; +} + +real_t InputEventMagnifyGesture::get_factor() const { + + return factor; +} + +Ref<InputEvent> InputEventMagnifyGesture::xformed_by(const Transform2D &p_xform, const Vector2 &p_local_ofs) const { + + Ref<InputEventMagnifyGesture> ev; + ev.instance(); + + ev->set_id(get_id()); + ev->set_device(get_device()); + ev->set_modifiers_from_event(this); + + ev->set_position(p_xform.xform(get_position() + p_local_ofs)); + ev->set_factor(get_factor()); + + return ev; +} + +InputEventMagnifyGesture::InputEventMagnifyGesture() { + + factor = 1.0; +} +///////////////////////////// + +void InputEventPanGesture::set_delta(const Vector2 &p_delta) { + + delta = p_delta; +} + +Vector2 InputEventPanGesture::get_delta() const { + return delta; +} + +Ref<InputEvent> InputEventPanGesture::xformed_by(const Transform2D &p_xform, const Vector2 &p_local_ofs) const { + + Ref<InputEventPanGesture> ev; + ev.instance(); + + ev->set_id(get_id()); + ev->set_device(get_device()); + ev->set_modifiers_from_event(this); + + ev->set_position(p_xform.xform(get_position() + p_local_ofs)); + ev->set_delta(get_delta()); + + return ev; +} + +InputEventPanGesture::InputEventPanGesture() { + + delta = Vector2(0, 0); +} diff --git a/core/os/input_event.h b/core/os/input_event.h index de3c0232ff..2cba60bede 100644 --- a/core/os/input_event.h +++ b/core/os/input_event.h @@ -213,6 +213,8 @@ public: void set_command(bool p_enabled); bool get_command() const; + void set_modifiers_from_event(const InputEventWithModifiers *event); + InputEventWithModifiers(); }; @@ -468,4 +470,42 @@ public: InputEventAction(); }; +class InputEventGesture : public InputEventWithModifiers { + + GDCLASS(InputEventGesture, InputEventWithModifiers) + + Vector2 pos; + +public: + void set_position(const Vector2 &p_pos); + Vector2 get_position() const; +}; + +class InputEventMagnifyGesture : public InputEventGesture { + + GDCLASS(InputEventMagnifyGesture, InputEventGesture) + real_t factor; + +public: + void set_factor(real_t p_factor); + real_t get_factor() const; + + virtual Ref<InputEvent> xformed_by(const Transform2D &p_xform, const Vector2 &p_local_ofs = Vector2()) const; + + InputEventMagnifyGesture(); +}; + +class InputEventPanGesture : public InputEventGesture { + + GDCLASS(InputEventPanGesture, InputEventGesture) + Vector2 delta; + +public: + void set_delta(const Vector2 &p_delta); + Vector2 get_delta() const; + + virtual Ref<InputEvent> xformed_by(const Transform2D &p_xform, const Vector2 &p_local_ofs = Vector2()) const; + + InputEventPanGesture(); +}; #endif diff --git a/core/os/keyboard.cpp b/core/os/keyboard.cpp index edf4f3e2f9..dead3b6ac0 100644 --- a/core/os/keyboard.cpp +++ b/core/os/keyboard.cpp @@ -60,7 +60,11 @@ static const _KeyCodeText _keycodes[] = { {KEY_PAGEDOWN ,"PageDown"}, {KEY_SHIFT ,"Shift"}, {KEY_CONTROL ,"Control"}, +#ifdef OSX_ENABLED + {KEY_META ,"Command"}, +#else {KEY_META ,"Meta"}, +#endif {KEY_ALT ,"Alt"}, {KEY_CAPSLOCK ,"CapsLock"}, {KEY_NUMLOCK ,"NumLock"}, @@ -390,14 +394,22 @@ bool keycode_has_unicode(uint32_t p_keycode) { String keycode_get_string(uint32_t p_code) { String codestr; - if (p_code & KEY_MASK_SHIFT) - codestr += "Shift+"; - if (p_code & KEY_MASK_ALT) - codestr += "Alt+"; - if (p_code & KEY_MASK_CTRL) - codestr += "Ctrl+"; - if (p_code & KEY_MASK_META) - codestr += "Meta+"; + if (p_code & KEY_MASK_SHIFT) { + codestr += find_keycode_name(KEY_SHIFT); + codestr += "+"; + } + if (p_code & KEY_MASK_ALT) { + codestr += find_keycode_name(KEY_ALT); + codestr += "+"; + } + if (p_code & KEY_MASK_CTRL) { + codestr += find_keycode_name(KEY_CONTROL); + codestr += "+"; + } + if (p_code & KEY_MASK_META) { + codestr += find_keycode_name(KEY_META); + codestr += "+"; + } p_code &= KEY_CODE_MASK; @@ -433,6 +445,21 @@ int find_keycode(const String &p_code) { return 0; } +const char *find_keycode_name(int p_keycode) { + + const _KeyCodeText *kct = &_keycodes[0]; + + while (kct->text) { + + if (kct->code == p_keycode) { + return kct->text; + } + kct++; + } + + return ""; +} + struct _KeyCodeReplace { int from; int to; diff --git a/core/os/keyboard.h b/core/os/keyboard.h index 509ff23a93..f49cbc6b18 100644 --- a/core/os/keyboard.h +++ b/core/os/keyboard.h @@ -326,6 +326,7 @@ enum KeyModifierMask { String keycode_get_string(uint32_t p_code); bool keycode_has_unicode(uint32_t p_keycode); int find_keycode(const String &p_code); +const char *find_keycode_name(int p_keycode); int keycode_get_count(); int keycode_get_value_by_index(int p_index); const char *keycode_get_name_by_index(int p_index); diff --git a/core/os/memory.cpp b/core/os/memory.cpp index 74d5cbbea1..439951f711 100644 --- a/core/os/memory.cpp +++ b/core/os/memory.cpp @@ -44,6 +44,26 @@ void *operator new(size_t p_size, void *(*p_allocfunc)(size_t p_size)) { return p_allocfunc(p_size); } +#ifdef _MSC_VER +void operator delete(void *p_mem, const char *p_description) { + + ERR_EXPLAINC("Call to placement delete should not happen."); + CRASH_NOW(); +} + +void operator delete(void *p_mem, void *(*p_allocfunc)(size_t p_size)) { + + ERR_EXPLAINC("Call to placement delete should not happen."); + CRASH_NOW(); +} + +void operator delete(void *p_mem, void *p_pointer, size_t check, const char *p_description) { + + ERR_EXPLAINC("Call to placement delete should not happen."); + CRASH_NOW(); +} +#endif + #ifdef DEBUG_ENABLED uint64_t Memory::mem_usage = 0; uint64_t Memory::max_usage = 0; diff --git a/core/os/memory.h b/core/os/memory.h index f8b3da579b..7801d56837 100644 --- a/core/os/memory.h +++ b/core/os/memory.h @@ -72,6 +72,14 @@ void *operator new(size_t p_size, void *(*p_allocfunc)(size_t p_size)); ///< ope void *operator new(size_t p_size, void *p_pointer, size_t check, const char *p_description); ///< operator new that takes a description and uses a pointer to the preallocated memory +#ifdef _MSC_VER +// When compiling with VC++ 2017, the above declarations of placement new generate many irrelevant warnings (C4291). +// The purpose of the following definitions is to muffle these warnings, not to provide a usable implementation of placement delete. +void operator delete(void *p_mem, const char *p_description); +void operator delete(void *p_mem, void *(*p_allocfunc)(size_t p_size)); +void operator delete(void *p_mem, void *p_pointer, size_t check, const char *p_description); +#endif + #define memalloc(m_size) Memory::alloc_static(m_size) #define memrealloc(m_mem, m_size) Memory::realloc_static(m_mem, m_size) #define memfree(m_size) Memory::free_static(m_size) diff --git a/core/os/os.cpp b/core/os/os.cpp index 65d0b2e05d..84937c0e59 100644 --- a/core/os/os.cpp +++ b/core/os/os.cpp @@ -63,15 +63,21 @@ void OS::debug_break(){ // something }; -void OS::_set_logger(Logger *p_logger) { +void OS::_set_logger(CompositeLogger *p_logger) { if (_logger) { memdelete(_logger); } _logger = p_logger; } -void OS::initialize_logger() { - _set_logger(memnew(StdLogger)); +void OS::add_logger(Logger *p_logger) { + if (!_logger) { + Vector<Logger *> loggers; + loggers.push_back(p_logger); + _logger = memnew(CompositeLogger(loggers)); + } else { + _logger->add_logger(p_logger); + } } void OS::print_error(const char *p_function, const char *p_file, int p_line, const char *p_code, const char *p_rationale, Logger::ErrorType p_type) { @@ -548,6 +554,33 @@ bool OS::has_feature(const String &p_feature) { if (sizeof(void *) == 4 && p_feature == "32") { return true; } +#if defined(__x86_64) || defined(__x86_64__) || defined(__amd64__) + if (p_feature == "x86_64") { + return true; + } +#elif (defined(__i386) || defined(__i386__)) + if (p_feature == "x86") { + return true; + } +#elif defined(__aarch64__) + if (p_feature == "arm64") { + return true; + } +#elif defined(__arm__) +#if defined(__ARM_ARCH_7A__) + if (p_feature == "armv7a" || p_feature == "armv7") { + return true; + } +#endif +#if defined(__ARM_ARCH_7S__) + if (p_feature == "armv7s" || p_feature == "armv7") { + return true; + } +#endif + if (p_feature == "arm") { + return true; + } +#endif if (_check_internal_feature_support(p_feature)) return true; @@ -577,7 +610,10 @@ OS::OS() { _stack_bottom = (void *)(&stack_bottom); _logger = NULL; - _set_logger(memnew(StdLogger)); + + Vector<Logger *> loggers; + loggers.push_back(memnew(StdLogger)); + _set_logger(memnew(CompositeLogger(loggers))); } OS::~OS() { diff --git a/core/os/os.h b/core/os/os.h index 474cb60627..fe4ffb2922 100644 --- a/core/os/os.h +++ b/core/os/os.h @@ -62,10 +62,10 @@ class OS { void *_stack_bottom; - Logger *_logger; + CompositeLogger *_logger; protected: - void _set_logger(Logger *p_logger); + void _set_logger(CompositeLogger *p_logger); public: typedef void (*ImeCallback)(void *p_inp, String p_text, Point2 p_selection); @@ -90,13 +90,15 @@ public: bool fullscreen; bool resizable; bool borderless_window; + bool maximized; float get_aspect() const { return (float)width / (float)height; } - VideoMode(int p_width = 1024, int p_height = 600, bool p_fullscreen = false, bool p_resizable = true, bool p_borderless_window = false) { + VideoMode(int p_width = 1024, int p_height = 600, bool p_fullscreen = false, bool p_resizable = true, bool p_borderless_window = false, bool p_maximized = false) { width = p_width; height = p_height; fullscreen = p_fullscreen; resizable = p_resizable; borderless_window = p_borderless_window; + maximized = p_maximized; } }; @@ -112,7 +114,8 @@ protected: virtual int get_audio_driver_count() const = 0; virtual const char *get_audio_driver_name(int p_driver) const = 0; - virtual void initialize_logger(); + void add_logger(Logger *p_logger); + virtual void initialize_core() = 0; virtual void initialize(const VideoMode &p_desired, int p_video_driver, int p_audio_driver) = 0; diff --git a/core/script_debugger_remote.cpp b/core/script_debugger_remote.cpp index 5655a4d5e4..5e06339b9e 100644 --- a/core/script_debugger_remote.cpp +++ b/core/script_debugger_remote.cpp @@ -35,6 +35,8 @@ #include "os/input.h" #include "os/os.h" #include "project_settings.h" +#include "scene/main/node.h" + void ScriptDebuggerRemote::_send_video_memory() { List<ResourceUsage> usage; @@ -201,20 +203,39 @@ void ScriptDebuggerRemote::debug(ScriptLanguage *p_script, bool p_can_continue) List<String> members; List<Variant> member_vals; - + if (ScriptInstance *inst = p_script->debug_get_stack_level_instance(lv)) { + members.push_back("self"); + member_vals.push_back(inst->get_owner()); + } p_script->debug_get_stack_level_members(lv, &members, &member_vals); - ERR_CONTINUE(members.size() != member_vals.size()); List<String> locals; List<Variant> local_vals; - p_script->debug_get_stack_level_locals(lv, &locals, &local_vals); - ERR_CONTINUE(locals.size() != local_vals.size()); + List<String> globals; + List<Variant> globals_vals; + p_script->debug_get_globals(&globals, &globals_vals); + ERR_CONTINUE(globals.size() != globals_vals.size()); + packet_peer_stream->put_var("stack_frame_vars"); - packet_peer_stream->put_var(2 + locals.size() * 2 + members.size() * 2); + packet_peer_stream->put_var(3 + (locals.size() + members.size() + globals.size()) * 2); + + { //locals + packet_peer_stream->put_var(locals.size()); + + List<String>::Element *E = locals.front(); + List<Variant>::Element *F = local_vals.front(); + + while (E) { + _put_variable(E->get(), F->get()); + + E = E->next(); + F = F->next(); + } + } { //members packet_peer_stream->put_var(members.size()); @@ -231,11 +252,11 @@ void ScriptDebuggerRemote::debug(ScriptLanguage *p_script, bool p_can_continue) } } - { //locals - packet_peer_stream->put_var(locals.size()); + { //globals + packet_peer_stream->put_var(globals.size()); - List<String>::Element *E = locals.front(); - List<Variant>::Element *F = local_vals.front(); + List<String>::Element *E = globals.front(); + List<Variant>::Element *F = globals_vals.front(); while (E) { _put_variable(E->get(), F->get()); @@ -532,56 +553,88 @@ void ScriptDebuggerRemote::_send_object_id(ObjectID p_id) { if (!obj) return; - List<PropertyInfo> pinfo; - obj->get_property_list(&pinfo, true); + typedef Pair<PropertyInfo, Variant> PropertyDesc; + List<PropertyDesc> properties; - int props_to_send = 0; - for (List<PropertyInfo>::Element *E = pinfo.front(); E; E = E->next()) { + if (ScriptInstance *si = obj->get_script_instance()) { + if (!si->get_script().is_null()) { - if (E->get().usage & (PROPERTY_USAGE_EDITOR | PROPERTY_USAGE_CATEGORY)) { - props_to_send++; - } - } + Set<StringName> members; + si->get_script()->get_members(&members); + for (Set<StringName>::Element *E = members.front(); E; E = E->next()) { - packet_peer_stream->put_var("message:inspect_object"); - packet_peer_stream->put_var(props_to_send * 5 + 4); - packet_peer_stream->put_var(p_id); - packet_peer_stream->put_var(obj->get_class()); - if (obj->is_class("Resource") || obj->is_class("Node")) - packet_peer_stream->put_var(obj->call("get_path")); - else - packet_peer_stream->put_var(""); + Variant m; + if (si->get(E->get(), m)) { + PropertyInfo pi(m.get_type(), String("Members/") + E->get()); + properties.push_back(PropertyDesc(pi, m)); + } + } - packet_peer_stream->put_var(props_to_send); + Map<StringName, Variant> constants; + si->get_script()->get_constants(&constants); + for (Map<StringName, Variant>::Element *E = constants.front(); E; E = E->next()) { + PropertyInfo pi(E->value().get_type(), (String("Constants/") + E->key())); + properties.push_back(PropertyDesc(pi, E->value())); + } + } + } + if (Node *node = Object::cast_to<Node>(obj)) { + PropertyInfo pi(Variant::NODE_PATH, String("Node/path")); + properties.push_front(PropertyDesc(pi, node->get_path())); + } else if (Resource *res = Object::cast_to<Resource>(obj)) { + if (Script *s = Object::cast_to<Script>(res)) { + Map<StringName, Variant> constants; + s->get_constants(&constants); + for (Map<StringName, Variant>::Element *E = constants.front(); E; E = E->next()) { + PropertyInfo pi(E->value().get_type(), String("Constants/") + E->key()); + properties.push_front(PropertyDesc(pi, E->value())); + } + } + } + List<PropertyInfo> pinfo; + obj->get_property_list(&pinfo, true); for (List<PropertyInfo>::Element *E = pinfo.front(); E; E = E->next()) { - if (E->get().usage & (PROPERTY_USAGE_EDITOR | PROPERTY_USAGE_CATEGORY)) { + properties.push_back(PropertyDesc(E->get(), obj->get(E->get().name))); + } + } - if (E->get().usage & PROPERTY_USAGE_CATEGORY) { - packet_peer_stream->put_var("*" + E->get().name); - } else { - packet_peer_stream->put_var(E->get().name); - } - - Variant var = obj->get(E->get().name); - packet_peer_stream->put_var(E->get().type); - //only send information that can be sent.. - - int len = 0; //test how big is this to encode - encode_variant(var, NULL, len); - - if (len > packet_peer_stream->get_output_buffer_max_size()) { //limit to max size - packet_peer_stream->put_var(PROPERTY_HINT_OBJECT_TOO_BIG); - packet_peer_stream->put_var(""); - packet_peer_stream->put_var(Variant()); - } else { - packet_peer_stream->put_var(E->get().hint); - packet_peer_stream->put_var(E->get().hint_string); - packet_peer_stream->put_var(var); - } + Array send_props; + for (int i = 0; i < properties.size(); i++) { + const PropertyInfo &pi = properties[i].first; + const Variant &var = properties[i].second; + RES res = var; + + Array prop; + prop.push_back(pi.name); + prop.push_back(pi.type); + + //only send information that can be sent.. + int len = 0; //test how big is this to encode + encode_variant(var, NULL, len); + if (len > packet_peer_stream->get_output_buffer_max_size()) { //limit to max size + prop.push_back(PROPERTY_HINT_OBJECT_TOO_BIG); + prop.push_back(""); + prop.push_back(pi.usage); + prop.push_back(Variant()); + } else { + prop.push_back(pi.hint); + if (res.is_null()) + prop.push_back(pi.hint_string); + else + prop.push_back(String("RES:") + res->get_path()); + prop.push_back(pi.usage); + prop.push_back(var); } + send_props.push_back(prop); } + + packet_peer_stream->put_var("message:inspect_object"); + packet_peer_stream->put_var(3); + packet_peer_stream->put_var(p_id); + packet_peer_stream->put_var(obj->get_class()); + packet_peer_stream->put_var(send_props); } void ScriptDebuggerRemote::_set_object_property(ObjectID p_id, const String &p_property, const Variant &p_value) { @@ -590,7 +643,11 @@ void ScriptDebuggerRemote::_set_object_property(ObjectID p_id, const String &p_p if (!obj) return; - obj->set(p_property, p_value); + String prop_name = p_property; + if (p_property.begins_with("Members/")) + prop_name = p_property.substr(8, p_property.length()); + + obj->set(prop_name, p_value); } void ScriptDebuggerRemote::_poll_events() { diff --git a/core/script_language.h b/core/script_language.h index 5da72d0492..3d01381f3b 100644 --- a/core/script_language.h +++ b/core/script_language.h @@ -120,6 +120,9 @@ public: virtual int get_member_line(const StringName &p_member) const { return -1; } + virtual void get_constants(Map<StringName, Variant> *p_constants) {} + virtual void get_members(Set<StringName> *p_constants) {} + Script() {} }; @@ -130,6 +133,7 @@ public: virtual void get_property_list(List<PropertyInfo> *p_properties) const = 0; virtual Variant::Type get_property_type(const StringName &p_name, bool *r_is_valid = NULL) const = 0; + virtual Object *get_owner() { return NULL; } virtual void get_property_state(List<Pair<StringName, Variant> > &state); virtual void get_method_list(List<MethodInfo> *p_list) const = 0; @@ -244,7 +248,8 @@ public: virtual String debug_get_stack_level_source(int p_level) const = 0; virtual void debug_get_stack_level_locals(int p_level, List<String> *p_locals, List<Variant> *p_values, int p_max_subitems = -1, int p_max_depth = -1) = 0; virtual void debug_get_stack_level_members(int p_level, List<String> *p_members, List<Variant> *p_values, int p_max_subitems = -1, int p_max_depth = -1) = 0; - virtual void debug_get_globals(List<String> *p_locals, List<Variant> *p_values, int p_max_subitems = -1, int p_max_depth = -1) = 0; + virtual ScriptInstance *debug_get_stack_level_instance(int p_level) { return NULL; } + virtual void debug_get_globals(List<String> *p_globals, List<Variant> *p_values, int p_max_subitems = -1, int p_max_depth = -1) = 0; virtual String debug_parse_stack_level_expression(int p_level, const String &p_expression, int p_max_subitems = -1, int p_max_depth = -1) = 0; struct StackInfo { diff --git a/core/translation.cpp b/core/translation.cpp index 7e4d4feb89..dcca58692a 100644 --- a/core/translation.cpp +++ b/core/translation.cpp @@ -333,6 +333,7 @@ static const char *locale_list[] = { "sq_KV", // Albanian (Kosovo) "sq_MK", // Albanian (Macedonia) "sr", // Serbian + "sr_Cyrl", // Serbian (Cyrillic) "sr_ME", // Serbian (Montenegro) "sr_RS", // Serbian (Serbia) "ss_ZA", // Swati (South Africa) @@ -693,6 +694,7 @@ static const char *locale_names[] = { "Albanian (Kosovo)", "Albanian (Macedonia)", "Serbian", + "Serbian (Cyrillic)", "Serbian (Montenegro)", "Serbian (Serbia)", "Swati (South Africa)", diff --git a/core/ustring.cpp b/core/ustring.cpp index 7c3a784c5b..8d40f56386 100644 --- a/core/ustring.cpp +++ b/core/ustring.cpp @@ -862,6 +862,17 @@ Vector<int> String::split_ints_mk(const Vector<String> &p_splitters, bool p_allo return ret; } +String String::join(Vector<String> parts) { + String ret; + for (int i = 0; i < parts.size(); ++i) { + if (i > 0) { + ret += *this; + } + ret += parts[i]; + } + return ret; +} + CharType String::char_uppercase(CharType p_char) { return _find_upper(p_char); diff --git a/core/ustring.h b/core/ustring.h index 353c8e6c1d..9c24133b55 100644 --- a/core/ustring.h +++ b/core/ustring.h @@ -169,6 +169,8 @@ public: Vector<int> split_ints(const String &p_splitter, bool p_allow_empty = true) const; Vector<int> split_ints_mk(const Vector<String> &p_splitters, bool p_allow_empty = true) const; + String join(Vector<String> parts); + static CharType char_uppercase(CharType p_char); static CharType char_lowercase(CharType p_char); String to_upper() const; diff --git a/core/variant.cpp b/core/variant.cpp index d4143b8d84..0f97b98a6f 100644 --- a/core/variant.cpp +++ b/core/variant.cpp @@ -66,7 +66,7 @@ String Variant::get_type_name(Variant::Type p_type) { return "String"; } break; - // math types + // math types case VECTOR2: { @@ -513,6 +513,7 @@ bool Variant::can_convert_strict(Variant::Type p_type_from, Variant::Type p_type static const Type valid[] = { QUAT, + VECTOR3, NIL }; @@ -723,7 +724,7 @@ bool Variant::is_zero() const { } break; - // math types + // math types case VECTOR2: { @@ -932,7 +933,7 @@ void Variant::reference(const Variant &p_variant) { memnew_placement(_data._mem, String(*reinterpret_cast<const String *>(p_variant._data._mem))); } break; - // math types + // math types case VECTOR2: { @@ -1632,7 +1633,9 @@ Variant::operator Basis() const { return *_data._basis; else if (type == QUAT) return *reinterpret_cast<const Quat *>(_data._mem); - else if (type == TRANSFORM) + else if (type == VECTOR3) { + return Basis(*reinterpret_cast<const Vector3 *>(_data._mem)); + } else if (type == TRANSFORM) // unexposed in Variant::can_convert? return _data._transform->basis; else return Basis(); @@ -2502,7 +2505,7 @@ void Variant::operator=(const Variant &p_variant) { *reinterpret_cast<String *>(_data._mem) = *reinterpret_cast<const String *>(p_variant._data._mem); } break; - // math types + // math types case VECTOR2: { @@ -2642,7 +2645,7 @@ uint32_t Variant::hash() const { return reinterpret_cast<const String *>(_data._mem)->hash(); } break; - // math types + // math types case VECTOR2: { diff --git a/core/variant_call.cpp b/core/variant_call.cpp index 9e6aaeb911..4a140bdb99 100644 --- a/core/variant_call.cpp +++ b/core/variant_call.cpp @@ -437,6 +437,8 @@ struct _VariantCall { VCALL_LOCALMEM0R(Color, contrasted); VCALL_LOCALMEM2R(Color, linear_interpolate); VCALL_LOCALMEM1R(Color, blend); + VCALL_LOCALMEM1R(Color, lightened); + VCALL_LOCALMEM1R(Color, darkened); VCALL_LOCALMEM1R(Color, to_html); VCALL_LOCALMEM0R(RID, get_id); @@ -446,7 +448,8 @@ struct _VariantCall { VCALL_LOCALMEM1R(NodePath, get_name); VCALL_LOCALMEM0R(NodePath, get_subname_count); VCALL_LOCALMEM1R(NodePath, get_subname); - VCALL_LOCALMEM0R(NodePath, get_property); + VCALL_LOCALMEM0R(NodePath, get_concatenated_subnames); + VCALL_LOCALMEM0R(NodePath, get_as_property_path); VCALL_LOCALMEM0R(NodePath, is_empty); VCALL_LOCALMEM0R(Dictionary, size); @@ -483,6 +486,8 @@ struct _VariantCall { VCALL_LOCALMEM1(Array, erase); VCALL_LOCALMEM0(Array, sort); VCALL_LOCALMEM2(Array, sort_custom); + VCALL_LOCALMEM2R(Array, bsearch); + VCALL_LOCALMEM4R(Array, bsearch_custom); VCALL_LOCALMEM0R(Array, duplicate); VCALL_LOCALMEM0(Array, invert); @@ -897,11 +902,6 @@ struct _VariantCall { r_ret = Basis(p_args[0]->operator Vector3(), p_args[1]->operator real_t()); } - static void Basis_init3(Variant &r_ret, const Variant **p_args) { - - r_ret = Basis(p_args[0]->operator Vector3()); - } - static void Transform_init1(Variant &r_ret, const Variant **p_args) { Transform t; @@ -1581,6 +1581,8 @@ void register_variant_methods() { ADDFUNC0R(COLOR, COLOR, Color, contrasted, varray()); ADDFUNC2R(COLOR, COLOR, Color, linear_interpolate, COLOR, "b", REAL, "t", varray()); ADDFUNC1R(COLOR, COLOR, Color, blend, COLOR, "over", varray()); + ADDFUNC1R(COLOR, COLOR, Color, lightened, REAL, "amount", varray()); + ADDFUNC1R(COLOR, COLOR, Color, darkened, REAL, "amount", varray()); ADDFUNC1R(COLOR, STRING, Color, to_html, BOOL, "with_alpha", varray(true)); ADDFUNC0R(_RID, INT, RID, get_id, varray()); @@ -1590,7 +1592,8 @@ void register_variant_methods() { ADDFUNC1R(NODE_PATH, STRING, NodePath, get_name, INT, "idx", varray()); ADDFUNC0R(NODE_PATH, INT, NodePath, get_subname_count, varray()); ADDFUNC1R(NODE_PATH, STRING, NodePath, get_subname, INT, "idx", varray()); - ADDFUNC0R(NODE_PATH, STRING, NodePath, get_property, varray()); + ADDFUNC0R(NODE_PATH, STRING, NodePath, get_concatenated_subnames, varray()); + ADDFUNC0R(NODE_PATH, NODE_PATH, NodePath, get_as_property_path, varray()); ADDFUNC0R(NODE_PATH, BOOL, NodePath, is_empty, varray()); ADDFUNC0R(DICTIONARY, INT, Dictionary, size, varray()); @@ -1625,6 +1628,8 @@ void register_variant_methods() { ADDFUNC0RNC(ARRAY, NIL, Array, pop_front, varray()); ADDFUNC0NC(ARRAY, NIL, Array, sort, varray()); ADDFUNC2NC(ARRAY, NIL, Array, sort_custom, OBJECT, "obj", STRING, "func", varray()); + ADDFUNC2R(ARRAY, INT, Array, bsearch, NIL, "value", BOOL, "before", varray(true)); + ADDFUNC4R(ARRAY, INT, Array, bsearch_custom, NIL, "value", OBJECT, "obj", STRING, "func", BOOL, "before", varray(true)); ADDFUNC0NC(ARRAY, NIL, Array, invert, varray()); ADDFUNC0RNC(ARRAY, ARRAY, Array, duplicate, varray()); @@ -1795,7 +1800,6 @@ void register_variant_methods() { _VariantCall::add_constructor(_VariantCall::Basis_init1, Variant::BASIS, "x_axis", Variant::VECTOR3, "y_axis", Variant::VECTOR3, "z_axis", Variant::VECTOR3); _VariantCall::add_constructor(_VariantCall::Basis_init2, Variant::BASIS, "axis", Variant::VECTOR3, "phi", Variant::REAL); - _VariantCall::add_constructor(_VariantCall::Basis_init3, Variant::BASIS, "euler", Variant::VECTOR3); _VariantCall::add_constructor(_VariantCall::Transform_init1, Variant::TRANSFORM, "x_axis", Variant::VECTOR3, "y_axis", Variant::VECTOR3, "z_axis", Variant::VECTOR3, "origin", Variant::VECTOR3); _VariantCall::add_constructor(_VariantCall::Transform_init2, Variant::TRANSFORM, "basis", Variant::BASIS, "origin", Variant::VECTOR3); diff --git a/core/variant_parser.cpp b/core/variant_parser.cpp index 1552b62c64..1c02c627b5 100644 --- a/core/variant_parser.cpp +++ b/core/variant_parser.cpp @@ -595,7 +595,7 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream, value = Quat(args[0], args[1], args[2], args[3]); return OK; - } else if (id == "AABB") { + } else if (id == "AABB" || id == "Rect3") { Vector<float> args; Error err = _parse_construct<float>(p_stream, args, line, r_err_str); diff --git a/doc/classes/@GDScript.xml b/doc/classes/@GDScript.xml index 49ec412ba0..15ada7fdfa 100644 --- a/doc/classes/@GDScript.xml +++ b/doc/classes/@GDScript.xml @@ -138,6 +138,17 @@ Decodes a byte array back to a value. </description> </method> + <method name="cartesian2polar"> + <return type="Vector2"> + </return> + <argument index="0" name="x" type="float"> + </argument> + <argument index="1" name="y" type="float"> + </argument> + <description> + Converts a 2D point expressed in the cartesian coordinate system (x and y axis) to the polar coordinate system (a distance from the origin and an angle). + </description> + </method> <method name="ceil"> <return type="float"> </return> @@ -604,6 +615,17 @@ [/codeblock] </description> </method> + <method name="polar2cartesian"> + <return type="Vector2"> + </return> + <argument index="0" name="r" type="float"> + </argument> + <argument index="1" name="th" type="float"> + </argument> + <description> + Converts a 2D point expressed in the polar coordinate system (a distance from the origin [code]r[/code] and an angle [code]th[/code]) to the cartesian coordinate system (x and y axis). + </description> + </method> <method name="pow"> <return type="float"> </return> diff --git a/doc/classes/Array.xml b/doc/classes/Array.xml index 203c60e644..3bb40755a6 100644 --- a/doc/classes/Array.xml +++ b/doc/classes/Array.xml @@ -260,6 +260,32 @@ Sort the array using a custom method and return reference to the array. The arguments are an object that holds the method and the name of such method. The custom method receives two arguments (a pair of elements from the array) and must return true if the first argument is less than the second, and return false otherwise. Note: you cannot randomize the return value as the heapsort algorithm expects a deterministic result. Doing so will result in unexpected behavior. </description> </method> + <method name="bsearch"> + <return type="int"> + </return> + <argument index="0" name="value" type="var"> + </argument> + <argument index="1" name="before" type="bool" default="true"> + </argument> + <description> + Finds the index of an existing value (or the insertion index that maintains sorting order, if the value is not yet present in the array) using binary search. Optionally, a before specifier can be passed. If false, the returned index comes after all existing entries of the value in the array. Note that calling bsearch on an unsorted array results in unexpected behavior. + </description> + </method> + <method name="bsearch_custom"> + <return type="int"> + </return> + <argument index="0" name="value" type="var"> + </argument> + <argument index="1" name="obj" type="Object"> + </argument> + <argument index="2" name="func" type="String"> + </argument> + <argument index="3" name="before" type="bool" default="true"> + </argument> + <description> + Finds the index of an existing value (or the insertion index that maintains sorting order, if the value is not yet present in the array) using binary search and a custom comparison method. Optionally, a before specifier can be passed. If false, the returned index comes after all existing entries of the value in the array. The custom method receives two arguments (an element from the array and the value searched for) and must return true if the first argument is less than the second, and return false otherwise. Note that calling bsearch on an unsorted array results in unexpected behavior. + </description> + </method> </methods> <constants> </constants> diff --git a/doc/classes/Color.xml b/doc/classes/Color.xml index 479eb719d4..ce49ec6654 100644 --- a/doc/classes/Color.xml +++ b/doc/classes/Color.xml @@ -126,6 +126,32 @@ [/codeblock] </description> </method> + <method name="lightened"> + <return type="Color"> + </return> + <argument index="0" name="amount" type="float"> + </argument> + <description> + Returns a new color resulting from making this color lighter by the specified percentage (0-1). + [codeblock] + var green = Color(0.0, 1.0, 0.0) + var lightgreen = green.lightened(0.2) # 20% lighter than regular green + [/codeblock] + </description> + </method> + <method name="darkened"> + <return type="Color"> + </return> + <argument index="0" name="amount" type="float"> + </argument> + <description> + Returns a new color resulting from making this color darker by the specified percentage (0-1). + [codeblock] + var green = Color(0.0, 1.0, 0.0) + var darkgreen = green.darkened(0.2) # 20% darker than regular green + [/codeblock] + </description> + </method> <method name="linear_interpolate"> <return type="Color"> </return> diff --git a/drivers/unix/os_unix.cpp b/drivers/unix/os_unix.cpp index ce0967af2c..0d102902e8 100644 --- a/drivers/unix/os_unix.cpp +++ b/drivers/unix/os_unix.cpp @@ -133,15 +133,6 @@ void OS_Unix::initialize_core() { } } -void OS_Unix::initialize_logger() { - Vector<Logger *> loggers; - loggers.push_back(memnew(UnixTerminalLogger)); - // FIXME: Reenable once we figure out how to get this properly in user:// - // instead of littering the user's working dirs (res:// + pwd) with log files (GH-12277) - //loggers.push_back(memnew(RotatedFileLogger("user://logs/log.txt"))); - _set_logger(memnew(CompositeLogger(loggers))); -} - void OS_Unix::finalize_core() { } @@ -543,4 +534,10 @@ void UnixTerminalLogger::log_error(const char *p_function, const char *p_file, i UnixTerminalLogger::~UnixTerminalLogger() {} +OS_Unix::OS_Unix() { + Vector<Logger *> loggers; + loggers.push_back(memnew(UnixTerminalLogger)); + _set_logger(memnew(CompositeLogger(loggers))); +} + #endif diff --git a/drivers/unix/os_unix.h b/drivers/unix/os_unix.h index 432f48408f..5b3fb824f0 100644 --- a/drivers/unix/os_unix.h +++ b/drivers/unix/os_unix.h @@ -53,7 +53,6 @@ protected: virtual int get_audio_driver_count() const; virtual const char *get_audio_driver_name(int p_driver) const; - virtual void initialize_logger(); virtual void initialize_core(); virtual int unix_initialize_audio(int p_audio_driver); //virtual void initialize(int p_video_driver,int p_audio_driver); @@ -63,6 +62,8 @@ protected: String stdin_buf; public: + OS_Unix(); + virtual void alert(const String &p_alert, const String &p_title = "ALERT!"); virtual String get_stdin_string(bool p_block); diff --git a/editor/animation_editor.cpp b/editor/animation_editor.cpp index 7d877bdb8c..1d70f8ba55 100644 --- a/editor/animation_editor.cpp +++ b/editor/animation_editor.cpp @@ -966,7 +966,9 @@ void AnimationKeyEditor::_cleanup_animation(Ref<Animation> p_animation) { Object *obj = NULL; RES res; - Node *node = root->get_node_and_resource(p_animation->track_get_path(i), res); + Vector<StringName> leftover_path; + + Node *node = root->get_node_and_resource(p_animation->track_get_path(i), res, leftover_path); if (res.is_valid()) { obj = res.ptr(); @@ -975,7 +977,7 @@ void AnimationKeyEditor::_cleanup_animation(Ref<Animation> p_animation) { } if (obj && p_animation->track_get_type(i) == Animation::TYPE_VALUE) { - valid_type = obj->get_static_property_type(p_animation->track_get_path(i).get_property(), &prop_exists); + valid_type = obj->get_static_property_type_indexed(leftover_path, &prop_exists); } if (!obj && cleanup_tracks->is_pressed()) { @@ -1315,7 +1317,9 @@ void AnimationKeyEditor::_track_editor_draw() { Object *obj = NULL; RES res; - Node *node = root ? root->get_node_and_resource(animation->track_get_path(idx), res) : (Node *)NULL; + Vector<StringName> leftover_path; + + Node *node = root ? root->get_node_and_resource(animation->track_get_path(idx), res, leftover_path) : (Node *)NULL; if (res.is_valid()) { obj = res.ptr(); @@ -1324,7 +1328,8 @@ void AnimationKeyEditor::_track_editor_draw() { } if (obj && animation->track_get_type(idx) == Animation::TYPE_VALUE) { - valid_type = obj->get_static_property_type(animation->track_get_path(idx).get_property(), &prop_exists); + // While leftover_path might be still empty, we wouldn't be able to get here anyway + valid_type = obj->get_static_property_type_indexed(leftover_path, &prop_exists); } if (/*mouse_over.over!=MouseOver::OVER_NONE &&*/ idx == mouse_over.track) { @@ -1648,26 +1653,34 @@ PropertyInfo AnimationKeyEditor::_find_hint_for_track(int p_idx, NodePath &r_bas return PropertyInfo(); RES res; - Node *node = root->get_node_and_resource(path, res); + Vector<StringName> leftover_path; + Node *node = root->get_node_and_resource(path, res, leftover_path, true); if (node) { r_base_path = node->get_path(); } - String property = path.get_property(); - if (property == "") + if (leftover_path.empty()) return PropertyInfo(); - List<PropertyInfo> pinfo; + Variant property_info_base; if (res.is_valid()) - res->get_property_list(&pinfo); + property_info_base = res; else if (node) - node->get_property_list(&pinfo); + property_info_base = node; + + for (int i = 0; i < leftover_path.size() - 1; i++) { + property_info_base = property_info_base.get_named(leftover_path[i]); + } + + List<PropertyInfo> pinfo; + property_info_base.get_property_list(&pinfo); for (List<PropertyInfo>::Element *E = pinfo.front(); E; E = E->next()) { - if (E->get().name == property) + if (E->get().name == leftover_path[leftover_path.size() - 1]) { return E->get(); + } } return PropertyInfo(); @@ -2779,7 +2792,8 @@ void AnimationKeyEditor::_track_editor_gui_input(const Ref<InputEvent> &p_input) Object *obj = NULL; RES res; - Node *node = root->get_node_and_resource(animation->track_get_path(idx), res); + Vector<StringName> leftover_path; + Node *node = root->get_node_and_resource(animation->track_get_path(idx), res, leftover_path); if (res.is_valid()) { obj = res.ptr(); @@ -2788,7 +2802,7 @@ void AnimationKeyEditor::_track_editor_gui_input(const Ref<InputEvent> &p_input) } if (obj) { - valid_type = obj->get_static_property_type(animation->track_get_path(idx).get_property(), &prop_exists); + valid_type = obj->get_static_property_type_indexed(leftover_path, &prop_exists); } text += "type: " + Variant::get_type_name(v.get_type()) + "\n"; @@ -2889,6 +2903,18 @@ void AnimationKeyEditor::_track_editor_gui_input(const Ref<InputEvent> &p_input) } } } + + Ref<InputEventMagnifyGesture> magnify_gesture = p_input; + if (magnify_gesture.is_valid()) { + zoom->set_value(zoom->get_value() * magnify_gesture->get_factor()); + } + + Ref<InputEventPanGesture> pan_gesture = p_input; + if (pan_gesture.is_valid()) { + + h_scroll->set_value(h_scroll->get_value() - h_scroll->get_page() * pan_gesture->get_delta().x / 8); + v_scroll->set_value(v_scroll->get_value() - v_scroll->get_page() * pan_gesture->get_delta().y / 8); + } } void AnimationKeyEditor::_notification(int p_what) { diff --git a/editor/code_editor.cpp b/editor/code_editor.cpp index c7012a0c14..216f2027fb 100644 --- a/editor/code_editor.cpp +++ b/editor/code_editor.cpp @@ -979,6 +979,23 @@ void CodeTextEditor::_text_editor_gui_input(const Ref<InputEvent> &p_event) { } } + Ref<InputEventMagnifyGesture> magnify_gesture = p_event; + if (magnify_gesture.is_valid()) { + + Ref<DynamicFont> font = text_editor->get_font("font"); + + if (font.is_valid()) { + if (font->get_size() != (int)font_size) { + font_size = font->get_size(); + } + + font_size *= powf(magnify_gesture->get_factor(), 0.25); + + _add_font_size((int)font_size - font->get_size()); + } + return; + } + Ref<InputEventKey> k = p_event; if (k.is_valid()) { @@ -999,14 +1016,15 @@ void CodeTextEditor::_text_editor_gui_input(const Ref<InputEvent> &p_event) { void CodeTextEditor::_zoom_in() { font_resize_val += EDSCALE; - - if (font_resize_timer->get_time_left() == 0) - font_resize_timer->start(); + _zoom_changed(); } void CodeTextEditor::_zoom_out() { font_resize_val -= EDSCALE; + _zoom_changed(); +} +void CodeTextEditor::_zoom_changed() { if (font_resize_timer->get_time_left() == 0) font_resize_timer->start(); } @@ -1067,16 +1085,25 @@ void CodeTextEditor::_complete_request() { void CodeTextEditor::_font_resize_timeout() { + if (_add_font_size(font_resize_val)) { + font_resize_val = 0; + } +} + +bool CodeTextEditor::_add_font_size(int p_delta) { + Ref<DynamicFont> font = text_editor->get_font("font"); if (font.is_valid()) { - int new_size = CLAMP(font->get_size() + font_resize_val, 8 * EDSCALE, 96 * EDSCALE); + int new_size = CLAMP(font->get_size() + p_delta, 8 * EDSCALE, 96 * EDSCALE); if (new_size != font->get_size()) { EditorSettings::get_singleton()->set("interface/editor/source_font_size", new_size / EDSCALE); font->set_size(new_size); } - font_resize_val = 0; + return true; + } else { + return false; } } @@ -1285,6 +1312,7 @@ CodeTextEditor::CodeTextEditor() { code_complete_timer->connect("timeout", this, "_code_complete_timer_timeout"); font_resize_val = 0; + font_size = -1; font_resize_timer = memnew(Timer); add_child(font_resize_timer); font_resize_timer->set_one_shot(true); diff --git a/editor/code_editor.h b/editor/code_editor.h index 410dd99878..656ea4b47b 100644 --- a/editor/code_editor.h +++ b/editor/code_editor.h @@ -204,6 +204,7 @@ class CodeTextEditor : public VBoxContainer { Timer *font_resize_timer; int font_resize_val; + real_t font_size; Label *error; @@ -212,10 +213,12 @@ class CodeTextEditor : public VBoxContainer { void _update_font(); void _complete_request(); void _font_resize_timeout(); + bool _add_font_size(int p_delta); void _text_editor_gui_input(const Ref<InputEvent> &p_event); void _zoom_in(); void _zoom_out(); + void _zoom_changed(); void _reset_zoom(); CodeTextEditorCodeCompleteFunc code_complete_func; diff --git a/editor/dictionary_property_edit.cpp b/editor/dictionary_property_edit.cpp new file mode 100644 index 0000000000..5b5a7ec9b0 --- /dev/null +++ b/editor/dictionary_property_edit.cpp @@ -0,0 +1,189 @@ +/*************************************************************************/ +/* dictionary_property_edit.cpp */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* http://www.godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2014-2017 Godot Engine contributors (cf. AUTHORS.md) */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/*************************************************************************/ +#include "dictionary_property_edit.h" +#include "editor_node.h" + +void DictionaryPropertyEdit::_notif_change() { + _change_notify(); +} + +void DictionaryPropertyEdit::_notif_changev(const String &p_v) { + _change_notify(p_v.utf8().get_data()); +} + +void DictionaryPropertyEdit::_set_key(const Variant &p_old_key, const Variant &p_new_key) { + + // TODO: Set key of a dictionary is not allowd yet + return; +} + +void DictionaryPropertyEdit::_set_value(const Variant &p_key, const Variant &p_value) { + + Dictionary dict = get_dictionary(); + dict[p_key] = p_value; + Object *o = ObjectDB::get_instance(obj); + if (!o) + return; + + o->set(property, dict); +} + +Variant DictionaryPropertyEdit::get_dictionary() const { + + Object *o = ObjectDB::get_instance(obj); + if (!o) + return Dictionary(); + Variant dict = o->get(property); + if (dict.get_type() != Variant::DICTIONARY) + return Dictionary(); + return dict; +} + +void DictionaryPropertyEdit::_get_property_list(List<PropertyInfo> *p_list) const { + + Dictionary dict = get_dictionary(); + + Array keys = dict.keys(); + keys.sort(); + + for (int i = 0; i < keys.size(); i++) { + String index = itos(i); + + const Variant &key = keys[i]; + PropertyInfo pi(key.get_type(), index + ": key"); + p_list->push_back(pi); + + const Variant &value = dict[key]; + pi = PropertyInfo(value.get_type(), index + ": value"); + p_list->push_back(pi); + } +} + +void DictionaryPropertyEdit::edit(Object *p_obj, const StringName &p_prop) { + + property = p_prop; + obj = p_obj->get_instance_id(); +} + +Node *DictionaryPropertyEdit::get_node() { + + Object *o = ObjectDB::get_instance(obj); + if (!o) + return NULL; + + return cast_to<Node>(o); +} + +void DictionaryPropertyEdit::_bind_methods() { + + ClassDB::bind_method(D_METHOD("_set_key"), &DictionaryPropertyEdit::_set_key); + ClassDB::bind_method(D_METHOD("_set_value"), &DictionaryPropertyEdit::_set_value); + ClassDB::bind_method(D_METHOD("_notif_change"), &DictionaryPropertyEdit::_notif_change); + ClassDB::bind_method(D_METHOD("_notif_changev"), &DictionaryPropertyEdit::_notif_changev); +} + +bool DictionaryPropertyEdit::_set(const StringName &p_name, const Variant &p_value) { + + Dictionary dict = get_dictionary(); + Array keys = dict.keys(); + keys.sort(); + + String pn = p_name; + int slash = pn.find(": "); + if (slash != -1 && pn.length() > slash) { + String type = pn.substr(slash + 2, pn.length()); + int index = pn.substr(0, slash).to_int(); + if (type == "key" && index < keys.size()) { + + const Variant &key = keys[index]; + UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo(); + + ur->create_action(TTR("Change Dictionary Key")); + ur->add_do_method(this, "_set_key", key, p_value); + ur->add_undo_method(this, "_set_key", p_value, key); + ur->add_do_method(this, "_notif_changev", p_name); + ur->add_undo_method(this, "_notif_changev", p_name); + ur->commit_action(); + + return true; + } else if (type == "value" && index < keys.size()) { + const Variant &key = keys[index]; + if (dict.has(key)) { + + Variant value = dict[key]; + UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo(); + + ur->create_action(TTR("Change Dictionary Value")); + ur->add_do_method(this, "_set_value", key, p_value); + ur->add_undo_method(this, "_set_value", key, value); + ur->add_do_method(this, "_notif_changev", p_name); + ur->add_undo_method(this, "_notif_changev", p_name); + ur->commit_action(); + + return true; + } + } + } + + return false; +} + +bool DictionaryPropertyEdit::_get(const StringName &p_name, Variant &r_ret) const { + + Dictionary dict = get_dictionary(); + Array keys = dict.keys(); + keys.sort(); + + String pn = p_name; + int slash = pn.find(": "); + + if (slash != -1 && pn.length() > slash) { + + String type = pn.substr(slash + 2, pn.length()); + int index = pn.substr(0, slash).to_int(); + + if (type == "key" && index < keys.size()) { + r_ret = keys[index]; + return true; + } else if (type == "value" && index < keys.size()) { + const Variant &key = keys[index]; + if (dict.has(key)) { + r_ret = dict[key]; + return true; + } + } + } + + return false; +} + +DictionaryPropertyEdit::DictionaryPropertyEdit() { + obj = 0; +} diff --git a/misc/dist/ios_xcode/godot_ios/main.m b/editor/dictionary_property_edit.h index bb63364d8f..7a86727fb2 100644 --- a/misc/dist/ios_xcode/godot_ios/main.m +++ b/editor/dictionary_property_edit.h @@ -1,9 +1,9 @@ /*************************************************************************/ -/* main.m */ +/* dictionary_property_edit.h */ /*************************************************************************/ /* This file is part of: */ /* GODOT ENGINE */ -/* https://godotengine.org */ +/* http://www.godotengine.org */ /*************************************************************************/ /* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2014-2017 Godot Engine contributors (cf. AUTHORS.md) */ @@ -27,13 +27,36 @@ /* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ +#ifndef DICTIONARY_PROPERTY_EDIT_H +#define DICTIONARY_PROPERTY_EDIT_H -#import <UIKit/UIKit.h> +#include "scene/main/node.h" -#import "AppDelegate.h" +class DictionaryPropertyEdit : public Reference { + GDCLASS(DictionaryPropertyEdit, Reference); -int main(int argc, char *argv[]) { - @autoreleasepool { - return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); - } -} + ObjectID obj; + StringName property; + + void _notif_change(); + void _notif_changev(const String &p_v); + void _set_key(const Variant &p_old_key, const Variant &p_new_key); + void _set_value(const Variant &p_key, const Variant &p_value); + + Variant get_dictionary() const; + +protected: + static void _bind_methods(); + bool _set(const StringName &p_name, const Variant &p_value); + bool _get(const StringName &p_name, Variant &r_ret) const; + void _get_property_list(List<PropertyInfo> *p_list) const; + +public: + void edit(Object *p_obj, const StringName &p_prop); + + Node *get_node(); + + DictionaryPropertyEdit(); +}; + +#endif // DICTIONARY_PROPERTY_EDIT_H diff --git a/editor/editor_data.cpp b/editor/editor_data.cpp index 2cb5340b8b..443004f820 100644 --- a/editor/editor_data.cpp +++ b/editor/editor_data.cpp @@ -913,8 +913,8 @@ void EditorSelection::update() { if (!changed) return; - emit_signal("selection_changed"); changed = false; + emit_signal("selection_changed"); } List<Node *> &EditorSelection::get_selected_node_list() { diff --git a/editor/editor_export.cpp b/editor/editor_export.cpp index 519bc33d42..8c8d9c4c79 100644 --- a/editor/editor_export.cpp +++ b/editor/editor_export.cpp @@ -470,9 +470,52 @@ void EditorExportPlugin::add_file(const String &p_path, const Vector<uint8_t> &p extra_files.push_back(ef); } -void EditorExportPlugin::add_shared_object(const String &p_path) { +void EditorExportPlugin::add_shared_object(const String &p_path, const Vector<String> &tags) { - shared_objects.push_back(p_path); + shared_objects.push_back(SharedObject(p_path, tags)); +} + +void EditorExportPlugin::add_ios_framework(const String &p_path) { + ios_frameworks.push_back(p_path); +} + +Vector<String> EditorExportPlugin::get_ios_frameworks() const { + return ios_frameworks; +} + +void EditorExportPlugin::add_ios_plist_content(const String &p_plist_content) { + ios_plist_content += p_plist_content + "\n"; +} + +String EditorExportPlugin::get_ios_plist_content() const { + return ios_plist_content; +} + +void EditorExportPlugin::add_ios_linker_flags(const String &p_flags) { + if (ios_linker_flags.length() > 0) { + ios_linker_flags += ' '; + } + ios_linker_flags += p_flags; +} + +String EditorExportPlugin::get_ios_linker_flags() const { + return ios_linker_flags; +} + +void EditorExportPlugin::add_ios_bundle_file(const String &p_path) { + ios_bundle_files.push_back(p_path); +} + +Vector<String> EditorExportPlugin::get_ios_bundle_files() const { + return ios_bundle_files; +} + +void EditorExportPlugin::add_ios_cpp_code(const String &p_code) { + ios_cpp_code += p_code; +} + +String EditorExportPlugin::get_ios_cpp_code() const { + return ios_cpp_code; } void EditorExportPlugin::_export_file_script(const String &p_path, const String &p_type, const PoolVector<String> &p_features) { @@ -482,17 +525,17 @@ void EditorExportPlugin::_export_file_script(const String &p_path, const String } } -void EditorExportPlugin::_export_begin_script(const PoolVector<String> &p_features) { +void EditorExportPlugin::_export_begin_script(const PoolVector<String> &p_features, bool p_debug, const String &p_path, int p_flags) { if (get_script_instance()) { - get_script_instance()->call("_export_begin", p_features); + get_script_instance()->call("_export_begin", p_features, p_debug, p_path, p_flags); } } void EditorExportPlugin::_export_file(const String &p_path, const String &p_type, const Set<String> &p_features) { } -void EditorExportPlugin::_export_begin(const Set<String> &p_features) { +void EditorExportPlugin::_export_begin(const Set<String> &p_features, bool p_debug, const String &p_path, int p_flags) { } void EditorExportPlugin::skip() { @@ -502,33 +545,58 @@ void EditorExportPlugin::skip() { void EditorExportPlugin::_bind_methods() { - ClassDB::bind_method(D_METHOD("add_shared_object", "path"), &EditorExportPlugin::add_shared_object); + ClassDB::bind_method(D_METHOD("add_shared_object", "path", "tags"), &EditorExportPlugin::add_shared_object); ClassDB::bind_method(D_METHOD("add_file", "path", "file", "remap"), &EditorExportPlugin::add_file); + ClassDB::bind_method(D_METHOD("add_ios_framework", "path"), &EditorExportPlugin::add_ios_framework); + ClassDB::bind_method(D_METHOD("add_ios_plist_content", "plist_content"), &EditorExportPlugin::add_ios_plist_content); + ClassDB::bind_method(D_METHOD("add_ios_linker_flags", "flags"), &EditorExportPlugin::add_ios_linker_flags); + ClassDB::bind_method(D_METHOD("add_ios_bundle_file", "path"), &EditorExportPlugin::add_ios_bundle_file); + ClassDB::bind_method(D_METHOD("add_ios_cpp_code", "code"), &EditorExportPlugin::add_ios_cpp_code); ClassDB::bind_method(D_METHOD("skip"), &EditorExportPlugin::skip); BIND_VMETHOD(MethodInfo("_export_file", PropertyInfo(Variant::STRING, "path"), PropertyInfo(Variant::STRING, "type"), PropertyInfo(Variant::POOL_STRING_ARRAY, "features"))); - BIND_VMETHOD(MethodInfo("_export_begin", PropertyInfo(Variant::POOL_STRING_ARRAY, "features"))); + BIND_VMETHOD(MethodInfo("_export_begin", PropertyInfo(Variant::POOL_STRING_ARRAY, "features"), PropertyInfo(Variant::BOOL, "is_debug"), PropertyInfo(Variant::STRING, "path"), PropertyInfo(Variant::INT, "flags"))); } EditorExportPlugin::EditorExportPlugin() { skipped = false; } -Error EditorExportPlatform::export_project_files(const Ref<EditorExportPreset> &p_preset, EditorExportSaveFunction p_func, void *p_udata, EditorExportSaveSharedObject p_so_func) { - +EditorExportPlatform::FeatureContainers EditorExportPlatform::get_feature_containers(const Ref<EditorExportPreset> &p_preset) { Ref<EditorExportPlatform> platform = p_preset->get_platform(); List<String> feature_list; + platform->get_platform_features(&feature_list); platform->get_preset_features(p_preset, &feature_list); - //figure out features - Set<String> features; - PoolVector<String> features_pv; + + FeatureContainers result; for (List<String>::Element *E = feature_list.front(); E; E = E->next()) { - features.insert(E->get()); - features_pv.push_back(E->get()); + result.features.insert(E->get()); + result.features_pv.push_back(E->get()); } + return result; +} +EditorExportPlatform::ExportNotifier::ExportNotifier(EditorExportPlatform &p_platform, const Ref<EditorExportPreset> &p_preset, bool p_debug, const String &p_path, int p_flags) { + FeatureContainers features = p_platform.get_feature_containers(p_preset); Vector<Ref<EditorExportPlugin> > export_plugins = EditorExport::get_singleton()->get_export_plugins(); + //initial export plugin callback + for (int i = 0; i < export_plugins.size(); i++) { + if (export_plugins[i]->get_script_instance()) { //script based + export_plugins[i]->_export_begin_script(features.features_pv, p_debug, p_path, p_flags); + } else { + export_plugins[i]->_export_begin(features.features, p_debug, p_path, p_flags); + } + } +} + +EditorExportPlatform::ExportNotifier::~ExportNotifier() { + Vector<Ref<EditorExportPlugin> > export_plugins = EditorExport::get_singleton()->get_export_plugins(); + for (int i = 0; i < export_plugins.size(); i++) { + export_plugins[i]->_export_end(); + } +} +Error EditorExportPlatform::export_project_files(const Ref<EditorExportPreset> &p_preset, EditorExportSaveFunction p_func, void *p_udata, EditorExportSaveSharedObject p_so_func) { //figure out paths of files that will be exported Set<String> paths; Vector<String> path_remaps; @@ -551,13 +619,8 @@ Error EditorExportPlatform::export_project_files(const Ref<EditorExportPreset> & _edit_filter_list(paths, p_preset->get_include_filter(), false); _edit_filter_list(paths, p_preset->get_exclude_filter(), true); - //initial export plugin callback + Vector<Ref<EditorExportPlugin> > export_plugins = EditorExport::get_singleton()->get_export_plugins(); for (int i = 0; i < export_plugins.size(); i++) { - if (export_plugins[i]->get_script_instance()) { //script based - export_plugins[i]->_export_begin_script(features_pv); - } else { - export_plugins[i]->_export_begin(features); - } if (p_so_func) { for (int j = 0; j < export_plugins[i]->shared_objects.size(); j++) { p_so_func(p_udata, export_plugins[i]->shared_objects[j]); @@ -570,6 +633,10 @@ Error EditorExportPlatform::export_project_files(const Ref<EditorExportPreset> & export_plugins[i]->_clear(); } + FeatureContainers feature_containers = get_feature_containers(p_preset); + Set<String> &features = feature_containers.features; + PoolVector<String> &features_pv = feature_containers.features_pv; + //store everything in the export medium int idx = 0; int total = paths.size(); @@ -686,7 +753,16 @@ Error EditorExportPlatform::export_project_files(const Ref<EditorExportPreset> & return OK; } -Error EditorExportPlatform::save_pack(const Ref<EditorExportPreset> &p_preset, const String &p_path) { +Error EditorExportPlatform::_add_shared_object(void *p_userdata, const SharedObject &p_so) { + PackData *pack_data = (PackData *)p_userdata; + if (pack_data->so_files) { + pack_data->so_files->push_back(p_so); + } + + return OK; +} + +Error EditorExportPlatform::save_pack(const Ref<EditorExportPreset> &p_preset, const String &p_path, Vector<SharedObject> *p_so_files) { EditorProgress ep("savepack", TTR("Packing"), 102); @@ -697,8 +773,9 @@ Error EditorExportPlatform::save_pack(const Ref<EditorExportPreset> &p_preset, c PackData pd; pd.ep = &ep; pd.f = ftmp; + pd.so_files = p_so_files; - Error err = export_project_files(p_preset, _save_pack_file, &pd); + Error err = export_project_files(p_preset, _save_pack_file, &pd, _add_shared_object); memdelete(ftmp); //close tmp file @@ -1203,6 +1280,7 @@ String EditorExportPlatformPC::get_binary_extension() const { } Error EditorExportPlatformPC::export_project(const Ref<EditorExportPreset> &p_preset, bool p_debug, const String &p_path, int p_flags) { + ExportNotifier notifier(*this, p_preset, p_debug, p_path, p_flags); String custom_debug = p_preset->get("custom_template/debug"); String custom_release = p_preset->get("custom_template/release"); diff --git a/editor/editor_export.h b/editor/editor_export.h index 50379b9683..346c3b58e1 100644 --- a/editor/editor_export.h +++ b/editor/editor_export.h @@ -118,13 +118,24 @@ public: EditorExportPreset(); }; +struct SharedObject { + String path; + Vector<String> tags; + + SharedObject(const String &p_path, const Vector<String> &p_tags) + : path(p_path), tags(p_tags) { + } + + SharedObject() {} +}; + class EditorExportPlatform : public Reference { GDCLASS(EditorExportPlatform, Reference) public: typedef Error (*EditorExportSaveFunction)(void *p_userdata, const String &p_path, const Vector<uint8_t> &p_data, int p_file, int p_total); - typedef Error (*EditorExportSaveSharedObject)(void *p_userdata, const String &p_path); + typedef Error (*EditorExportSaveSharedObject)(void *p_userdata, const SharedObject &p_so); private: struct SavedData { @@ -144,6 +155,7 @@ private: FileAccess *f; Vector<SavedData> file_ofs; EditorProgress *ep; + Vector<SharedObject> *so_files; }; struct ZipData { @@ -152,6 +164,11 @@ private: EditorProgress *ep; }; + struct FeatureContainers { + Set<String> features; + PoolVector<String> features_pv; + }; + void _export_find_resources(EditorFileSystemDirectory *p_dir, Set<String> &p_paths); void _export_find_dependencies(const String &p_path, Set<String> &p_paths); @@ -162,7 +179,16 @@ private: void _edit_files_with_filter(DirAccess *da, const Vector<String> &p_filters, Set<String> &r_list, bool exclude); void _edit_filter_list(Set<String> &r_list, const String &p_filter, bool exclude); + static Error _add_shared_object(void *p_userdata, const SharedObject &p_so); + protected: + struct ExportNotifier { + ExportNotifier(EditorExportPlatform &p_platform, const Ref<EditorExportPreset> &p_preset, bool p_debug, const String &p_path, int p_flags); + ~ExportNotifier(); + }; + + FeatureContainers get_feature_containers(const Ref<EditorExportPreset> &p_preset); + bool exists_export_template(String template_file_name, String *err) const; String find_export_template(String template_file_name, String *err = NULL) const; void gen_export_flags(Vector<String> &r_flags, int p_flags); @@ -192,7 +218,7 @@ public: Error export_project_files(const Ref<EditorExportPreset> &p_preset, EditorExportSaveFunction p_func, void *p_udata, EditorExportSaveSharedObject p_so_func = NULL); - Error save_pack(const Ref<EditorExportPreset> &p_preset, const String &p_path); + Error save_pack(const Ref<EditorExportPreset> &p_preset, const String &p_path, Vector<SharedObject> *p_so_files = NULL); Error save_zip(const Ref<EditorExportPreset> &p_preset, const String &p_path); virtual bool poll_devices() { return false; } @@ -225,7 +251,7 @@ class EditorExportPlugin : public Reference { friend class EditorExportPlatform; - Vector<String> shared_objects; + Vector<SharedObject> shared_objects; struct ExtraFile { String path; Vector<uint8_t> data; @@ -234,26 +260,53 @@ class EditorExportPlugin : public Reference { Vector<ExtraFile> extra_files; bool skipped; + Vector<String> ios_frameworks; + String ios_plist_content; + String ios_linker_flags; + Vector<String> ios_bundle_files; + String ios_cpp_code; + _FORCE_INLINE_ void _clear() { shared_objects.clear(); extra_files.clear(); skipped = false; } + _FORCE_INLINE_ void _export_end() { + ios_frameworks.clear(); + ios_bundle_files.clear(); + ios_plist_content = ""; + ios_linker_flags = ""; + ios_cpp_code = ""; + } + void _export_file_script(const String &p_path, const String &p_type, const PoolVector<String> &p_features); - void _export_begin_script(const PoolVector<String> &p_features); + void _export_begin_script(const PoolVector<String> &p_features, bool p_debug, const String &p_path, int p_flags); protected: void add_file(const String &p_path, const Vector<uint8_t> &p_file, bool p_remap); - void add_shared_object(const String &p_path); + void add_shared_object(const String &p_path, const Vector<String> &tags); + + void add_ios_framework(const String &p_path); + void add_ios_plist_content(const String &p_plist_content); + void add_ios_linker_flags(const String &p_flags); + void add_ios_bundle_file(const String &p_path); + void add_ios_cpp_code(const String &p_code); + void skip(); virtual void _export_file(const String &p_path, const String &p_type, const Set<String> &p_features); - virtual void _export_begin(const Set<String> &p_features); + virtual void _export_begin(const Set<String> &p_features, bool p_debug, const String &p_path, int p_flags); static void _bind_methods(); public: + Vector<String> get_ios_frameworks() const; + String get_ios_plist_content() const; + String get_ios_linker_flags() const; + Vector<String> get_ios_bundle_files() const; + String get_ios_cpp_code() const; + EditorExportPlugin(); }; diff --git a/editor/editor_file_dialog.cpp b/editor/editor_file_dialog.cpp index a0ca9b88e0..f8b9425a4e 100644 --- a/editor/editor_file_dialog.cpp +++ b/editor/editor_file_dialog.cpp @@ -541,6 +541,9 @@ void EditorFileDialog::update_file_list() { while ((item = dir_access->get_next(&isdir)) != "") { + if (item == ".") + continue; + ishidden = dir_access->current_is_hidden(); if (show_hidden || !ishidden) { @@ -562,7 +565,7 @@ void EditorFileDialog::update_file_list() { while (!dirs.empty()) { const String &dir_name = dirs.front()->get(); - item_list->add_item(dir_name + "/"); + item_list->add_item(dir_name); if (display_mode == DISPLAY_THUMBNAILS) { diff --git a/editor/editor_help.cpp b/editor/editor_help.cpp index cc7f1cac43..4b372e7afd 100644 --- a/editor/editor_help.cpp +++ b/editor/editor_help.cpp @@ -564,18 +564,37 @@ void EditorHelp::_class_desc_select(const String &p_select) { emit_signal("go_to_help", "class_name:" + p_select.substr(1, p_select.length())); return; } else if (p_select.begins_with("@")) { + String tag = p_select.substr(1, 6); + String link = p_select.substr(7, p_select.length()); + + String topic; + Map<String, int> *table = NULL; + + if (tag == "method") { + topic = "class_method"; + table = &this->method_line; + } else if (tag == "member") { + topic = "class_property"; + table = &this->property_line; + } else if (tag == "enum ") { + topic = "class_enum"; + table = &this->enum_line; + } else if (tag == "signal") { + topic = "class_signal"; + table = &this->signal_line; + } else { + return; + } - String m = p_select.substr(1, p_select.length()); - - if (m.find(".") != -1) { + if (link.find(".") != -1) { //must go somewhere else - emit_signal("go_to_help", "class_method:" + m.get_slice(".", 0) + ":" + m.get_slice(".", 0)); + emit_signal("go_to_help", topic + ":" + link.get_slice(".", 0) + ":" + link.get_slice(".", 1)); } else { - if (!method_line.has(m)) + if (!table->has(link)) return; - class_desc->scroll_to_line(method_line[m]); + class_desc->scroll_to_line((*table)[link]); } } else if (p_select.begins_with("http")) { OS::get_singleton()->shell_open(p_select); @@ -808,7 +827,7 @@ Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) { } class_desc->push_cell(); if (describe) { - class_desc->push_meta("@" + cd.properties[i].name); + class_desc->push_meta("@member" + cd.properties[i].name); } class_desc->push_font(doc_code_font); @@ -881,7 +900,7 @@ Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) { if (methods[i].description != "") { method_descr = true; - class_desc->push_meta("@" + methods[i].name); + class_desc->push_meta("@method" + methods[i].name); } class_desc->push_color(headline_color); _add_text(methods[i].name); @@ -1240,7 +1259,7 @@ Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) { for (int i = 0; i < cd.properties.size(); i++) { - method_line[cd.properties[i].name] = class_desc->get_line_count() - 2; + property_line[cd.properties[i].name] = class_desc->get_line_count() - 2; class_desc->push_table(2); class_desc->set_table_column_expand(1, 1); @@ -1452,7 +1471,6 @@ void EditorHelp::_help_callback(const String &p_topic) { line = property_line[name]; } else if (what == "class_enum") { - print_line("go to enum:"); if (enum_line.has(name)) line = enum_line[name]; } else if (what == "class_theme_item") { @@ -1535,12 +1553,13 @@ static void _add_text_to_rt(const String &p_bbcode, RichTextLabel *p_rt) { p_rt->add_text("["); pos = brk_pos + 1; - } else if (tag.begins_with("method ")) { + } else if (tag.begins_with("method ") || tag.begins_with("member ") || tag.begins_with("signal ") || tag.begins_with("enum ")) { - String m = tag.substr(7, tag.length()); + String link_target = tag.substr(tag.find(" ") + 1, tag.length()); + String link_tag = tag.substr(0, tag.find(" ")).rpad(6); p_rt->push_color(link_color); - p_rt->push_meta("@" + m); - p_rt->add_text(m + "()"); + p_rt->push_meta("@" + link_tag + link_target); + p_rt->add_text(link_target + (tag.begins_with("method ") ? "()" : "")); p_rt->pop(); p_rt->pop(); pos = brk_end + 1; diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index 6559048172..a32ade3b71 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -157,7 +157,9 @@ void EditorNode::_update_scene_tabs() { tabbar_container->remove_child(scene_tab_add); scene_tabs->add_child(scene_tab_add); } - Rect2 last_tab = scene_tabs->get_tab_rect(scene_tabs->get_tab_count() - 1); + Rect2 last_tab = Rect2(); + if (scene_tabs->get_tab_count() != 0) + last_tab = scene_tabs->get_tab_rect(scene_tabs->get_tab_count() - 1); scene_tab_add->set_position(Point2(last_tab.get_position().x + last_tab.get_size().x + 3, last_tab.get_position().y)); } } @@ -301,8 +303,7 @@ void EditorNode::_notification(int p_what) { if (p_what == EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED) { scene_tabs->set_tab_close_display_policy((bool(EDITOR_DEF("interface/editor/always_show_close_button_in_scene_tabs", false)) ? Tabs::CLOSE_BUTTON_SHOW_ALWAYS : Tabs::CLOSE_BUTTON_SHOW_ACTIVE_ONLY)); - property_editor->set_enable_capitalize_paths(bool(EDITOR_DEF("interface/editor/capitalize_properties", true))); - Ref<Theme> theme = create_custom_theme(theme_base->get_theme()); + Ref<Theme> theme = create_editor_theme(theme_base->get_theme()); theme_base->set_theme(theme); gui_base->set_theme(theme); @@ -363,7 +364,8 @@ void EditorNode::_notification(int p_what) { dock_tab_move_right->set_icon(theme->get_icon("Forward", "EditorIcons")); update_menu->set_icon(gui_base->get_icon("Progress1", "EditorIcons")); } - if (p_what = Control::NOTIFICATION_RESIZED) { + + if (p_what == Control::NOTIFICATION_RESIZED) { _update_scene_tabs(); } } @@ -401,7 +403,15 @@ void EditorNode::_fs_changed() { // ensures export_project does not loop infinitely, because notifications may // come during the export export_defer.preset = ""; - platform->export_project(preset, export_defer.debug, export_defer.path, /*p_flags*/ 0); + if (!preset->is_runnable() && (export_defer.path.ends_with(".pck") || export_defer.path.ends_with(".zip"))) { + if (export_defer.path.ends_with(".zip")) { + platform->save_zip(preset, export_defer.path); + } else if (export_defer.path.ends_with(".pck")) { + platform->save_pack(preset, export_defer.path); + } + } else { + platform->export_project(preset, export_defer.debug, export_defer.path, /*p_flags*/ 0); + } } } @@ -1358,6 +1368,8 @@ void EditorNode::_prepare_history() { } } else if (Object::cast_to<Node>(obj)) { text = Object::cast_to<Node>(obj)->get_name(); + } else if (obj->is_class("ScriptEditorDebuggerInspectedObject")) { + text = obj->call("get_title"); } else { text = obj->get_class(); } @@ -1453,6 +1465,7 @@ void EditorNode::_edit_current() { object_menu->set_disabled(true); + bool capitalize = bool(EDITOR_DEF("interface/editor/capitalize_properties", true)); bool is_resource = current_obj->is_class("Resource"); bool is_node = current_obj->is_class("Node"); resource_save_button->set_disabled(!is_resource); @@ -1506,6 +1519,11 @@ void EditorNode::_edit_current() { } else { + if (current_obj->is_class("ScriptEditorDebuggerInspectedObject")) { + editable_warning = TTR("This is a remote object so changes to it will not be kept.\nPlease read the documentation relevant to debugging to better understand this workflow."); + capitalize = false; + } + property_editor->edit(current_obj); node_dock->set_node(NULL); } @@ -1515,6 +1533,10 @@ void EditorNode::_edit_current() { property_editable_warning_dialog->set_text(editable_warning); } + if (property_editor->is_capitalize_paths_enabled() != capitalize) { + property_editor->set_enable_capitalize_paths(capitalize); + } + /* Take care of PLUGIN EDITOR */ EditorPlugin *main_plugin = editor_data.get_editor(current_obj); diff --git a/editor/editor_path.cpp b/editor/editor_path.cpp index 0587939a1a..f0d3c29c11 100644 --- a/editor/editor_path.cpp +++ b/editor/editor_path.cpp @@ -149,14 +149,14 @@ void EditorPath::_notification(int p_what) { if (name == "") name = r->get_class(); - } else if (Object::cast_to<Node>(obj)) { - + } else if (obj->is_class("ScriptEditorDebuggerInspectedObject")) + name = obj->call("get_title"); + else if (Object::cast_to<Node>(obj)) name = Object::cast_to<Node>(obj)->get_name(); - } else if (Object::cast_to<Resource>(obj) && Object::cast_to<Resource>(obj)->get_name() != "") { + else if (Object::cast_to<Resource>(obj) && Object::cast_to<Resource>(obj)->get_name() != "") name = Object::cast_to<Resource>(obj)->get_name(); - } else { + else name = obj->get_class(); - } set_tooltip(obj->get_class()); diff --git a/editor/editor_settings.cpp b/editor/editor_settings.cpp index d228dd2581..582bb977b8 100644 --- a/editor/editor_settings.cpp +++ b/editor/editor_settings.cpp @@ -135,7 +135,7 @@ bool EditorSettings::_get(const StringName &p_name, Variant &r_ret) const { void EditorSettings::_initial_set(const StringName &p_name, const Variant &p_value) { set(p_name, p_value); props[p_name].initial = p_value; - props[p_name].initial_set = true; + props[p_name].has_default_value = true; } struct _EVCSort { @@ -221,7 +221,7 @@ bool EditorSettings::has_default_value(const String &p_setting) const { if (!props.has(p_setting)) return false; - return props[p_setting].initial_set; + return props[p_setting].has_default_value; } void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) { @@ -307,7 +307,7 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) { _initial_set("filesystem/directories/default_project_path", OS::get_singleton()->has_environment("HOME") ? OS::get_singleton()->get_environment("HOME") : OS::get_singleton()->get_system_dir(OS::SYSTEM_DIR_DOCUMENTS)); hints["filesystem/directories/default_project_path"] = PropertyInfo(Variant::STRING, "filesystem/directories/default_project_path", PROPERTY_HINT_GLOBAL_DIR); _initial_set("filesystem/directories/default_project_export_path", ""); - hints["global/default_project_export_path"] = PropertyInfo(Variant::STRING, "global/default_project_export_path", PROPERTY_HINT_GLOBAL_DIR); + hints["filesystem/directories/default_project_export_path"] = PropertyInfo(Variant::STRING, "filesystem/directories/default_project_export_path", PROPERTY_HINT_GLOBAL_DIR); _initial_set("interface/editor/show_script_in_scene_tabs", false); _initial_set("text_editor/theme/color_theme", "Adaptive"); @@ -424,6 +424,7 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) { _initial_set("editors/2d/bone_ik_color", Color(0.9, 0.9, 0.45, 0.9)); _initial_set("editors/2d/keep_margins_when_changing_anchors", false); _initial_set("editors/2d/warped_mouse_panning", true); + _initial_set("editors/2d/simple_spacebar_panning", false); _initial_set("editors/2d/scroll_to_pan", false); _initial_set("editors/2d/pan_speed", 20); @@ -967,7 +968,7 @@ void EditorSettings::set_initial_value(const StringName &p_setting, const Varian if (!props.has(p_setting)) return; props[p_setting].initial = p_value; - props[p_setting].initial_set = true; + props[p_setting].has_default_value = true; } Variant _EDITOR_DEF(const String &p_setting, const Variant &p_default) { @@ -975,10 +976,10 @@ Variant _EDITOR_DEF(const String &p_setting, const Variant &p_default) { Variant ret = p_default; if (EditorSettings::get_singleton()->has_setting(p_setting)) ret = EditorSettings::get_singleton()->get(p_setting); - if (!EditorSettings::get_singleton()->has_default_value(p_setting)) { - EditorSettings::get_singleton()->set_initial_value(p_setting, p_default); + else EditorSettings::get_singleton()->set(p_setting, p_default); - } + if (!EditorSettings::get_singleton()->has_default_value(p_setting)) + EditorSettings::get_singleton()->set_initial_value(p_setting, p_default); return ret; } diff --git a/editor/editor_settings.h b/editor/editor_settings.h index f11f4dfd43..a8c991a6d9 100644 --- a/editor/editor_settings.h +++ b/editor/editor_settings.h @@ -66,13 +66,13 @@ private: int order; Variant variant; Variant initial; - bool initial_set; + bool has_default_value; bool hide_from_editor; bool save; VariantContainer() { order = 0; hide_from_editor = false; - initial_set = false; + has_default_value = false; save = false; } VariantContainer(const Variant &p_variant, int p_order) { diff --git a/editor/editor_themes.cpp b/editor/editor_themes.cpp index 0f9f50095d..ae29b7420e 100644 --- a/editor/editor_themes.cpp +++ b/editor/editor_themes.cpp @@ -738,6 +738,13 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) { theme->set_stylebox("button", "Tabs", style_menu); theme->set_icon("increment", "TabContainer", theme->get_icon("GuiScrollArrowRight", "EditorIcons")); theme->set_icon("decrement", "TabContainer", theme->get_icon("GuiScrollArrowLeft", "EditorIcons")); + theme->set_icon("increment", "Tabs", theme->get_icon("GuiScrollArrowRight", "EditorIcons")); + theme->set_icon("decrement", "Tabs", theme->get_icon("GuiScrollArrowLeft", "EditorIcons")); + theme->set_icon("increment_highlight", "Tabs", theme->get_icon("GuiScrollArrowRight", "EditorIcons")); + theme->set_icon("decrement_highlight", "Tabs", theme->get_icon("GuiScrollArrowLeft", "EditorIcons")); + theme->set_icon("increment_highlight", "TabContainer", theme->get_icon("GuiScrollArrowRight", "EditorIcons")); + theme->set_icon("decrement_highlight", "TabContainer", theme->get_icon("GuiScrollArrowLeft", "EditorIcons")); + theme->set_constant("hseparation", "Tabs", 4 * EDSCALE); // Content of each tab Ref<StyleBoxFlat> style_content_panel = style_default->duplicate(); diff --git a/editor/filesystem_dock.cpp b/editor/filesystem_dock.cpp index eea8177687..2ddfea00e3 100644 --- a/editor/filesystem_dock.cpp +++ b/editor/filesystem_dock.cpp @@ -1417,18 +1417,18 @@ void FileSystemDock::_files_list_rmb_select(int p_item, const Vector2 &p_pos) { if (all_files_scenes) { file_options->add_item(TTR("Instance"), FILE_INSTANCE); } + file_options->add_separator(); if (filenames.size() == 1) { - file_options->add_separator(); file_options->add_item(TTR("Edit Dependencies.."), FILE_DEPENDENCIES); file_options->add_item(TTR("View Owners.."), FILE_OWNERS); + file_options->add_separator(); } } else if (all_folders && foldernames.size() > 0) { file_options->add_item(TTR("Open"), FILE_OPEN); + file_options->add_separator(); } - file_options->add_separator(); - int num_items = filenames.size() + foldernames.size(); if (num_items >= 1) { if (num_items == 1) { @@ -1447,6 +1447,16 @@ void FileSystemDock::_files_list_rmb_select(int p_item, const Vector2 &p_pos) { file_options->popup(); } +void FileSystemDock::_rmb_pressed(const Vector2 &p_pos) { + file_options->clear(); + file_options->set_size(Size2(1, 1)); + + file_options->add_item(TTR("New Folder.."), FILE_NEW_FOLDER); + file_options->add_item(TTR("Show In File Manager"), FILE_SHOW_IN_EXPLORER); + file_options->set_position(files->get_global_position() + p_pos); + file_options->popup(); +} + void FileSystemDock::select_file(const String &p_file) { navigate_to_path(p_file); @@ -1547,6 +1557,7 @@ void FileSystemDock::_bind_methods() { ClassDB::bind_method(D_METHOD("_file_selected"), &FileSystemDock::_file_selected); ClassDB::bind_method(D_METHOD("_file_multi_selected"), &FileSystemDock::_file_multi_selected); ClassDB::bind_method(D_METHOD("_update_import_dock"), &FileSystemDock::_update_import_dock); + ClassDB::bind_method(D_METHOD("_rmb_pressed"), &FileSystemDock::_rmb_pressed); ADD_SIGNAL(MethodInfo("instance", PropertyInfo(Variant::POOL_STRING_ARRAY, "files"))); ADD_SIGNAL(MethodInfo("open")); @@ -1665,6 +1676,7 @@ FileSystemDock::FileSystemDock(EditorNode *p_editor) { files->connect("item_rmb_selected", this, "_files_list_rmb_select"); files->connect("item_selected", this, "_file_selected"); files->connect("multi_selected", this, "_file_multi_selected"); + files->connect("rmb_clicked", this, "_rmb_pressed"); files->set_allow_rmb_select(true); file_list_vb->add_child(files); diff --git a/editor/filesystem_dock.h b/editor/filesystem_dock.h index d100de8b72..f1fd342052 100644 --- a/editor/filesystem_dock.h +++ b/editor/filesystem_dock.h @@ -192,6 +192,7 @@ private: void _dir_rmb_pressed(const Vector2 &p_pos); void _files_list_rmb_select(int p_item, const Vector2 &p_pos); + void _rmb_pressed(const Vector2 &p_pos); struct FileInfo { String name; diff --git a/editor/icons/icon_GUI_ellipsis.svg b/editor/icons/icon_GUI_ellipsis.svg new file mode 100644 index 0000000000..5565fd2947 --- /dev/null +++ b/editor/icons/icon_GUI_ellipsis.svg @@ -0,0 +1,5 @@ +<svg width="14" height="8" version="1.1" viewBox="0 0 14 8" xmlns="http://www.w3.org/2000/svg"> +<g transform="translate(0 -1044.4)"> +<path transform="translate(0 1040.4)" d="m3.8594 4c-2.1381 0-3.8594 1.7213-3.8594 3.8594v0.28125c0 2.1381 1.7213 3.8594 3.8594 3.8594h6.2812c2.1381 0 3.8594-1.7213 3.8594-3.8594v-0.28125c0-2.1381-1.7213-3.8594-3.8594-3.8594zm-0.85938 3a1 1 0 0 1 1 1 1 1 0 0 1 -1 1 1 1 0 0 1 -1 -1 1 1 0 0 1 1 -1zm4 0a1 1 0 0 1 1 1 1 1 0 0 1 -1 1 1 1 0 0 1 -1 -1 1 1 0 0 1 1 -1zm4 0a1 1 0 0 1 1 1 1 1 0 0 1 -1 1 1 1 0 0 1 -1 -1 1 1 0 0 1 1 -1z" fill="#fff" fill-opacity=".39216"/> +</g> +</svg> diff --git a/editor/icons/icon_animation.svg b/editor/icons/icon_animation.svg index 146403ece5..600faeeddb 100644 --- a/editor/icons/icon_animation.svg +++ b/editor/icons/icon_animation.svg @@ -1,5 +1,3 @@ <svg width="16" height="16" version="1.1" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"> -<g transform="translate(0 -1036.4)"> -<path transform="translate(0 1036.4)" d="m8 2a6 6 0 0 0 -6 6 6 6 0 0 0 6 6 6 6 0 0 0 4 -1.5352v1.5352h0.001953a2 2 0 0 0 0.26562 1 2 2 0 0 0 1.7324 1h1v-1-1h-0.5a0.5 0.49999 0 0 1 -0.5 -0.5v-0.5-5a6 6 0 0 0 -6 -6zm0 1a1 1 0 0 1 1 1 1 1 0 0 1 -1 1 1 1 0 0 1 -1 -1 1 1 0 0 1 1 -1zm3.4414 2a1 1 0 0 1 0.88867 0.5 1 1 0 0 1 -0.36523 1.3652 1 1 0 0 1 -1.3672 -0.36523 1 1 0 0 1 0.36719 -1.3652 1 1 0 0 1 0.47656 -0.13477zm-6.9531 0.0019531a1 1 0 0 1 0.54688 0.13281 1 1 0 0 1 0.36719 1.3652 1 1 0 0 1 -1.3672 0.36523 1 1 0 0 1 -0.36523 -1.3652 1 1 0 0 1 0.81836 -0.49805zm0.023438 3.998a1 1 0 0 1 0.89062 0.5 1 1 0 0 1 -0.36719 1.3652 1 1 0 0 1 -1.3652 -0.36523 1 1 0 0 1 0.36523 -1.3652 1 1 0 0 1 0.47656 -0.13477zm6.9043 0.0019531a1 1 0 0 1 0.54883 0.13281 1 1 0 0 1 0.36523 1.3652 1 1 0 0 1 -1.3652 0.36523 1 1 0 0 1 -0.36719 -1.3652 1 1 0 0 1 0.81836 -0.49805zm-3.416 1.998a1 1 0 0 1 1 1 1 1 0 0 1 -1 1 1 1 0 0 1 -1 -1 1 1 0 0 1 1 -1z" fill="#e0e0e0"/> -</g> +<path d="m8 2a6 6 0 0 0 -6 6 6 6 0 0 0 6 6 6 6 0 0 0 4 -1.5352v1.5352h0.001953a2 2 0 0 0 0.26562 1 2 2 0 0 0 1.7324 1h1v-1-1h-0.5a0.5 0.49999 0 0 1 -0.5 -0.5v-0.5-5a6 6 0 0 0 -6 -6zm0 1a1 1 0 0 1 1 1 1 1 0 0 1 -1 1 1 1 0 0 1 -1 -1 1 1 0 0 1 1 -1zm3.4414 2a1 1 0 0 1 0.88867 0.5 1 1 0 0 1 -0.36523 1.3652 1 1 0 0 1 -1.3672 -0.36523 1 1 0 0 1 0.36719 -1.3652 1 1 0 0 1 0.47656 -0.13477zm-6.9531 0.0019531a1 1 0 0 1 0.54688 0.13281 1 1 0 0 1 0.36719 1.3652 1 1 0 0 1 -1.3672 0.36523 1 1 0 0 1 -0.36523 -1.3652 1 1 0 0 1 0.81836 -0.49805zm0.023438 3.998a1 1 0 0 1 0.89062 0.5 1 1 0 0 1 -0.36719 1.3652 1 1 0 0 1 -1.3652 -0.36523 1 1 0 0 1 0.36523 -1.3652 1 1 0 0 1 0.47656 -0.13477zm6.9043 0.0019531a1 1 0 0 1 0.54883 0.13281 1 1 0 0 1 0.36523 1.3652 1 1 0 0 1 -1.3652 0.36523 1 1 0 0 1 -0.36719 -1.3652 1 1 0 0 1 0.81836 -0.49805zm-3.416 1.998a1 1 0 0 1 1 1 1 1 0 0 1 -1 1 1 1 0 0 1 -1 -1 1 1 0 0 1 1 -1z" fill="#e0e0e0"/> </svg> diff --git a/editor/icons/icon_area.svg b/editor/icons/icon_area.svg index ac673d10fc..5e1a385f58 100644 --- a/editor/icons/icon_area.svg +++ b/editor/icons/icon_area.svg @@ -1,5 +1,3 @@ <svg width="16" height="16" version="1.1" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"> -<g transform="translate(0 -1036.4)"> -<path transform="translate(0 1036.4)" d="m1 1v2 2h2v-2h2v-2h-4zm10 0v2h2v2h2v-4h-4zm-7 3v2 4 2h8v-2-6h-8zm2 2h4v4h-4v-4zm-5 5v2 2h2 2v-2h-2v-2h-2zm12 0v2h-2v2h4v-2-2h-2z" fill="#fc9c9c"/> -</g> +<path d="m1 1v2 2h2v-2h2v-2h-4zm10 0v2h2v2h2v-4h-4zm-7 3v2 4 2h8v-2-6h-8zm2 2h4v4h-4v-4zm-5 5v2 2h2 2v-2h-2v-2h-2zm12 0v2h-2v2h4v-2-2h-2z" fill="#fc9c9c"/> </svg> diff --git a/editor/icons/icon_area_2d.svg b/editor/icons/icon_area_2d.svg index d6ecb6abe5..28fc4d7804 100644 --- a/editor/icons/icon_area_2d.svg +++ b/editor/icons/icon_area_2d.svg @@ -1,5 +1,3 @@ <svg width="16" height="16" version="1.1" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"> -<g transform="translate(0 -1036.4)"> -<path transform="translate(0 1036.4)" d="m1 1v2 2h2v-2h2v-2h-4zm10 0v2h2v2h2v-4h-4zm-7 3v2 4 2h8v-2-6h-8zm2 2h4v4h-4v-4zm-5 5v2 2h2 2v-2h-2v-2h-2zm12 0v2h-2v2h4v-2-2h-2z" fill="#a5b7f3"/> -</g> +<path d="m1 1v2 2h2v-2h2v-2h-4zm10 0v2h2v2h2v-4h-4zm-7 3v2 4 2h8v-2-6h-8zm2 2h4v4h-4v-4zm-5 5v2 2h2 2v-2h-2v-2h-2zm12 0v2h-2v2h4v-2-2h-2z" fill="#a5b7f3"/> </svg> diff --git a/editor/icons/icon_array_mesh.svg b/editor/icons/icon_array_mesh.svg index 68890c4366..867fc95b0c 100644 --- a/editor/icons/icon_array_mesh.svg +++ b/editor/icons/icon_array_mesh.svg @@ -1,5 +1,3 @@ <svg width="16" height="16" version="1.1" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"> -<g transform="translate(0 -1036.4)"> -<path transform="translate(0 1036.4)" d="m3 1a2 2 0 0 0 -2 2 2 2 0 0 0 2 2 2 2 0 0 0 2 -2 2 2 0 0 0 -2 -2zm10 0a2 2 0 0 0 -2 2 2 2 0 0 0 2 2 2 2 0 0 0 2 -2 2 2 0 0 0 -2 -2zm-2 7v3h-3v2h3v3h2v-3h3v-2h-3v-3h-2zm-8 3a2 2 0 0 0 -2 2 2 2 0 0 0 2 2 2 2 0 0 0 2 -2 2 2 0 0 0 -2 -2z" color="#000000" color-rendering="auto" dominant-baseline="auto" fill="#ffd684" image-rendering="auto" shape-rendering="auto" solid-color="#000000" style="font-feature-settings:normal;font-variant-alternates:normal;font-variant-caps:normal;font-variant-east-asian:normal;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-position:normal;isolation:auto;mix-blend-mode:normal;shape-padding:0;text-decoration-color:#000000;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-orientation:mixed;text-transform:none;white-space:normal"/> -</g> +<path d="m3 1a2 2 0 0 0 -2 2 2 2 0 0 0 2 2 2 2 0 0 0 2 -2 2 2 0 0 0 -2 -2zm10 0a2 2 0 0 0 -2 2 2 2 0 0 0 2 2 2 2 0 0 0 2 -2 2 2 0 0 0 -2 -2zm-2 7v3h-3v2h3v3h2v-3h3v-2h-3v-3h-2zm-8 3a2 2 0 0 0 -2 2 2 2 0 0 0 2 2 2 2 0 0 0 2 -2 2 2 0 0 0 -2 -2z" color="#000000" color-rendering="auto" dominant-baseline="auto" fill="#ffd684" image-rendering="auto" shape-rendering="auto" solid-color="#000000" style="font-feature-settings:normal;font-variant-alternates:normal;font-variant-caps:normal;font-variant-east-asian:normal;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-position:normal;isolation:auto;mix-blend-mode:normal;shape-padding:0;text-decoration-color:#000000;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-orientation:mixed;text-transform:none;white-space:normal"/> </svg> diff --git a/editor/icons/icon_editor_handle_add.svg b/editor/icons/icon_editor_handle_add.svg deleted file mode 100644 index 0e7fe7129a..0000000000 --- a/editor/icons/icon_editor_handle_add.svg +++ /dev/null @@ -1,6 +0,0 @@ -<svg width="8" height="8" version="1.1" viewBox="0 0 8 8" xmlns="http://www.w3.org/2000/svg"> - <g transform="translate(0 -1044.4)"> - <ellipse cx="4" cy="1048.4" rx="4" ry="4" fill="#fff"/> - <ellipse cx="4" cy="1048.4" rx="2.8572" ry="2.8571" fill="#84ff84"/> - </g> -</svg> diff --git a/editor/icons/icon_editor_handle_selected.svg b/editor/icons/icon_editor_handle_selected.svg deleted file mode 100644 index 8d338c1fbd..0000000000 --- a/editor/icons/icon_editor_handle_selected.svg +++ /dev/null @@ -1,6 +0,0 @@ -<svg width="8" height="8" version="1.1" viewBox="0 0 8 8" xmlns="http://www.w3.org/2000/svg"> - <g transform="translate(0 -1044.4)"> - <ellipse cx="4" cy="1048.4" rx="4" ry="4" fill="#fff"/> - <ellipse cx="4" cy="1048.4" rx="2.8572" ry="2.8571" fill="#8484ff"/> - </g> -</svg> diff --git a/editor/icons/icon_h_button_array.svg b/editor/icons/icon_h_button_array.svg deleted file mode 100644 index 3f95dbbde1..0000000000 --- a/editor/icons/icon_h_button_array.svg +++ /dev/null @@ -1,5 +0,0 @@ -<svg width="16" height="16" version="1.1" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"> -<g transform="translate(0 -1036.4)"> -<path transform="translate(0 1036.4)" d="m4 1v3.1328l-1.4453-0.96484-1.1094 1.6641 3 2c0.3359 0.2239 0.77347 0.2239 1.1094 0l3-2-1.1094-1.6641-1.4453 0.96484v-3.1328h-2zm8 4v2h-2v2h2v2h2v-2h2v-2h-2v-2h-2zm-8.5 4c-0.831 0-1.5 0.669-1.5 1.5v0.5 1h-1v2h8v-2h-1v-1-0.5c0-0.831-0.669-1.5-1.5-1.5h-3z" fill="#a5efac"/> -</g> -</svg> diff --git a/editor/icons/icon_onion.svg b/editor/icons/icon_onion.svg new file mode 100644 index 0000000000..5bb2a99423 --- /dev/null +++ b/editor/icons/icon_onion.svg @@ -0,0 +1,3 @@ +<svg width="16" height="16" version="1.1" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"> +<path d="m8 1c-2 2-7 4-7 8s3 6 7 6c-7-3-6.5995-7.703 0-13-2.2981 3.9516-5.4951 8.9197 0 13 4.8692-4.2391 2.7733-8.1815 1-12 5.5855 4.704 5.3995 8.6488-1 12 4 0 7-2 7-6s-5-6-7-8z" fill="#e0e0e0"/> +</svg> diff --git a/editor/icons/icon_v_button_array.svg b/editor/icons/icon_v_button_array.svg deleted file mode 100644 index ac7ce6064c..0000000000 --- a/editor/icons/icon_v_button_array.svg +++ /dev/null @@ -1,6 +0,0 @@ -<svg width="16" height="16" version="1.1" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"> -<g transform="translate(0 -1036.4)" fill="#a5efac"> -<path transform="translate(0 1036.4)" d="m7 1v2.1328l-1.4453-0.96484-1.1094 1.6641 3 2c0.3359 0.2239 0.77347 0.2239 1.1094 0l3-2-1.1094-1.6641-1.4453 0.96484v-2.1328h-2zm-0.5 6c-0.831 0-1.5 0.669-1.5 1.5v0.5h-1v2h2v-2h4v2h2v-2h-1v-0.5c0-0.831-0.669-1.5-1.5-1.5h-3z"/> -<path d="m7 1046.4v2h-2v2h2v2h2v-2h2v-2h-2v-2z"/> -</g> -</svg> diff --git a/editor/plugins/animation_tree_editor_plugin.cpp b/editor/plugins/animation_tree_editor_plugin.cpp index 22d23e1c72..8fe6538653 100644 --- a/editor/plugins/animation_tree_editor_plugin.cpp +++ b/editor/plugins/animation_tree_editor_plugin.cpp @@ -1196,14 +1196,14 @@ void AnimationTreeEditor::_edit_filters() { if (base) { NodePath np = E->get(); - if (np.get_property() != StringName()) { + if (np.get_subname_count() == 1) { Node *n = base->get_node(np); Skeleton *s = Object::cast_to<Skeleton>(n); if (s) { String skelbase = E->get().substr(0, E->get().find(":")); - int bidx = s->find_bone(np.get_property()); + int bidx = s->find_bone(np.get_subname(0)); if (bidx != -1) { int bparent = s->get_bone_parent(bidx); @@ -1213,7 +1213,7 @@ void AnimationTreeEditor::_edit_filters() { String bpn = skelbase + ":" + s->get_bone_name(bparent); if (pm.has(bpn)) { parent = pm[bpn]; - descr = np.get_property(); + descr = np.get_subname(0); } } else { diff --git a/editor/plugins/canvas_item_editor_plugin.cpp b/editor/plugins/canvas_item_editor_plugin.cpp index b6ba09fb58..3940dd9044 100644 --- a/editor/plugins/canvas_item_editor_plugin.cpp +++ b/editor/plugins/canvas_item_editor_plugin.cpp @@ -1442,6 +1442,22 @@ void CanvasItemEditor::_gui_input_viewport(const Ref<InputEvent> &p_event) { } } + Ref<InputEventMagnifyGesture> magnify_gesture = p_event; + if (magnify_gesture.is_valid()) { + + _zoom_on_position(zoom * magnify_gesture->get_factor(), magnify_gesture->get_position()); + return; + } + + Ref<InputEventPanGesture> pan_gesture = p_event; + if (pan_gesture.is_valid()) { + + const Vector2 delta = (int(EditorSettings::get_singleton()->get("editors/2d/pan_speed")) / zoom) * pan_gesture->get_delta(); + h_scroll->set_value(h_scroll->get_value() + delta.x); + v_scroll->set_value(v_scroll->get_value() + delta.y); + return; + } + Ref<InputEventMouseButton> b = p_event; if (b.is_valid()) { // Button event @@ -1858,7 +1874,17 @@ void CanvasItemEditor::_gui_input_viewport(const Ref<InputEvent> &p_event) { } if (drag == DRAG_NONE) { - if (((m->get_button_mask() & BUTTON_MASK_LEFT) && tool == TOOL_PAN) || (m->get_button_mask() & BUTTON_MASK_MIDDLE) || ((m->get_button_mask() & BUTTON_MASK_LEFT) && Input::get_singleton()->is_key_pressed(KEY_SPACE))) { + bool space_pressed = Input::get_singleton()->is_key_pressed(KEY_SPACE); + bool simple_panning = EditorSettings::get_singleton()->get("editors/2d/simple_spacebar_panning"); + int button = m->get_button_mask(); + + // Check if any of the panning triggers are activated + bool panning_tool = (button & BUTTON_MASK_LEFT) && tool == TOOL_PAN; + bool panning_middle_button = button & BUTTON_MASK_MIDDLE; + bool panning_spacebar = (button & BUTTON_MASK_LEFT) && space_pressed; + bool panning_spacebar_simple = space_pressed && simple_panning; + + if (panning_tool || panning_middle_button || panning_spacebar || panning_spacebar_simple) { // Pan the viewport Point2i relative; if (bool(EditorSettings::get_singleton()->get("editors/2d/warped_mouse_panning"))) { diff --git a/editor/plugins/polygon_2d_editor_plugin.cpp b/editor/plugins/polygon_2d_editor_plugin.cpp index a525983c75..ebb5f57e99 100644 --- a/editor/plugins/polygon_2d_editor_plugin.cpp +++ b/editor/plugins/polygon_2d_editor_plugin.cpp @@ -339,6 +339,19 @@ void Polygon2DEditor::_uv_input(const Ref<InputEvent> &p_input) { uv_edit_draw->update(); } } + + Ref<InputEventMagnifyGesture> magnify_gesture = p_input; + if (magnify_gesture.is_valid()) { + + uv_zoom->set_value(uv_zoom->get_value() * magnify_gesture->get_factor()); + } + + Ref<InputEventPanGesture> pan_gesture = p_input; + if (pan_gesture.is_valid()) { + + uv_hscroll->set_value(uv_hscroll->get_value() + uv_hscroll->get_page() * pan_gesture->get_delta().x / 8); + uv_vscroll->set_value(uv_vscroll->get_value() + uv_vscroll->get_page() * pan_gesture->get_delta().y / 8); + } } void Polygon2DEditor::_uv_scroll_changed(float) { diff --git a/editor/plugins/script_editor_plugin.cpp b/editor/plugins/script_editor_plugin.cpp index 32ec9b2ba9..3c2d52c128 100644 --- a/editor/plugins/script_editor_plugin.cpp +++ b/editor/plugins/script_editor_plugin.cpp @@ -2897,7 +2897,7 @@ ScriptEditorPlugin::ScriptEditorPlugin(EditorNode *p_node) { EDITOR_DEF("text_editor/open_scripts/script_temperature_enabled", true); EDITOR_DEF("text_editor/open_scripts/highlight_current_script", true); EDITOR_DEF("text_editor/open_scripts/script_temperature_history_size", 15); - EDITOR_DEF("text_editor/open_scripts/current_script_background_color", Color(1, 1, 1, 0.5)); + EDITOR_DEF("text_editor/open_scripts/current_script_background_color", Color(1, 1, 1, 0.3)); EDITOR_DEF("text_editor/open_scripts/group_help_pages", true); EditorSettings::get_singleton()->add_property_hint(PropertyInfo(Variant::INT, "text_editor/open_scripts/sort_scripts_by", PROPERTY_HINT_ENUM, "Name,Path")); EDITOR_DEF("text_editor/open_scripts/sort_scripts_by", 0); diff --git a/editor/plugins/spatial_editor_plugin.cpp b/editor/plugins/spatial_editor_plugin.cpp index 4852f6c4d6..20dda8b695 100644 --- a/editor/plugins/spatial_editor_plugin.cpp +++ b/editor/plugins/spatial_editor_plugin.cpp @@ -1097,7 +1097,7 @@ void SpatialEditorViewport::_sinput(const Ref<InputEvent> &p_event) { if (get_selected_count() == 0) break; //bye - //handle rotate + //handle scale _edit.mode = TRANSFORM_SCALE; _compute_edit(b->get_position()); break; @@ -1385,6 +1385,10 @@ void SpatialEditorViewport::_sinput(const Ref<InputEvent> &p_event) { continue; } + if (sp->has_meta("_edit_lock_")) { + continue; + } + Transform original = se->original; Transform original_local = se->original_local; Transform base = Transform(Basis(), _edit.center); @@ -1509,6 +1513,10 @@ void SpatialEditorViewport::_sinput(const Ref<InputEvent> &p_event) { continue; } + if (sp->has_meta("_edit_lock_")) { + continue; + } + Transform original = se->original; Transform t; @@ -1605,6 +1613,10 @@ void SpatialEditorViewport::_sinput(const Ref<InputEvent> &p_event) { if (!se) continue; + if (sp->has_meta("_edit_lock_")) { + continue; + } + Transform t; if (local_coords) { @@ -1682,92 +1694,78 @@ void SpatialEditorViewport::_sinput(const Ref<InputEvent> &p_event) { switch (nav_mode) { case NAVIGATION_PAN: { + _nav_pan(m, _get_warped_mouse_motion(m)); + + } break; - real_t pan_speed = 1 / 150.0; - int pan_speed_modifier = 10; - if (nav_scheme == NAVIGATION_MAYA && m->get_shift()) - pan_speed *= pan_speed_modifier; + case NAVIGATION_ZOOM: { + _nav_zoom(m, m->get_relative()); + + } break; - Point2i relative = _get_warped_mouse_motion(m); + case NAVIGATION_ORBIT: { + _nav_orbit(m, _get_warped_mouse_motion(m)); - Transform camera_transform; + } break; - camera_transform.translate(cursor.pos); - camera_transform.basis.rotate(Vector3(1, 0, 0), -cursor.x_rot); - camera_transform.basis.rotate(Vector3(0, 1, 0), -cursor.y_rot); - Vector3 translation(-relative.x * pan_speed, relative.y * pan_speed, 0); - translation *= cursor.distance / DISTANCE_DEFAULT; - camera_transform.translate(translation); - cursor.pos = camera_transform.origin; + case NAVIGATION_LOOK: { + _nav_look(m, _get_warped_mouse_motion(m)); + + } break; + + default: {} + } + } + + Ref<InputEventMagnifyGesture> magnify_gesture = p_event; + if (magnify_gesture.is_valid()) { + + if (is_freelook_active()) + scale_freelook_speed(magnify_gesture->get_factor()); + else + scale_cursor_distance(1.0 / magnify_gesture->get_factor()); + } + + Ref<InputEventPanGesture> pan_gesture = p_event; + if (pan_gesture.is_valid()) { + + NavigationScheme nav_scheme = (NavigationScheme)EditorSettings::get_singleton()->get("editors/3d/navigation/navigation_scheme").operator int(); + NavigationMode nav_mode = NAVIGATION_NONE; + + if (nav_scheme == NAVIGATION_GODOT) { + + int mod = _get_key_modifier(pan_gesture); + + if (mod == _get_key_modifier_setting("editors/3d/navigation/pan_modifier")) + nav_mode = NAVIGATION_PAN; + else if (mod == _get_key_modifier_setting("editors/3d/navigation/zoom_modifier")) + nav_mode = NAVIGATION_ZOOM; + else if (mod == _get_key_modifier_setting("editors/3d/navigation/orbit_modifier")) + nav_mode = NAVIGATION_ORBIT; + + } else if (nav_scheme == NAVIGATION_MAYA) { + if (pan_gesture->get_alt()) + nav_mode = NAVIGATION_PAN; + } + + switch (nav_mode) { + case NAVIGATION_PAN: { + _nav_pan(m, pan_gesture->get_delta()); } break; case NAVIGATION_ZOOM: { - real_t zoom_speed = 1 / 80.0; - int zoom_speed_modifier = 10; - if (nav_scheme == NAVIGATION_MAYA && m->get_shift()) - zoom_speed *= zoom_speed_modifier; - - NavigationZoomStyle zoom_style = (NavigationZoomStyle)EditorSettings::get_singleton()->get("editors/3d/navigation/zoom_style").operator int(); - if (zoom_style == NAVIGATION_ZOOM_HORIZONTAL) { - if (m->get_relative().x > 0) - scale_cursor_distance(1 - m->get_relative().x * zoom_speed); - else if (m->get_relative().x < 0) - scale_cursor_distance(1.0 / (1 + m->get_relative().x * zoom_speed)); - } else { - if (m->get_relative().y > 0) - scale_cursor_distance(1 + m->get_relative().y * zoom_speed); - else if (m->get_relative().y < 0) - scale_cursor_distance(1.0 / (1 - m->get_relative().y * zoom_speed)); - } + _nav_zoom(m, pan_gesture->get_delta()); } break; case NAVIGATION_ORBIT: { - Point2i relative = _get_warped_mouse_motion(m); - - real_t degrees_per_pixel = EditorSettings::get_singleton()->get("editors/3d/navigation_feel/orbit_sensitivity"); - real_t radians_per_pixel = Math::deg2rad(degrees_per_pixel); - - cursor.x_rot += relative.y * radians_per_pixel; - cursor.y_rot += relative.x * radians_per_pixel; - if (cursor.x_rot > Math_PI / 2.0) - cursor.x_rot = Math_PI / 2.0; - if (cursor.x_rot < -Math_PI / 2.0) - cursor.x_rot = -Math_PI / 2.0; - name = ""; - _update_name(); + _nav_orbit(m, pan_gesture->get_delta()); + } break; case NAVIGATION_LOOK: { - // Freelook only works properly in perspective. - // It technically works too in ortho, but it's awful for a user due to fov being near zero - if (!orthogonal) { - Point2i relative = _get_warped_mouse_motion(m); - - real_t degrees_per_pixel = EditorSettings::get_singleton()->get("editors/3d/navigation_feel/orbit_sensitivity"); - real_t radians_per_pixel = Math::deg2rad(degrees_per_pixel); - - // Note: do NOT assume the camera has the "current" transform, because it is interpolated and may have "lag". - Transform prev_camera_transform = to_camera_transform(cursor); - - cursor.x_rot += relative.y * radians_per_pixel; - cursor.y_rot += relative.x * radians_per_pixel; - if (cursor.x_rot > Math_PI / 2.0) - cursor.x_rot = Math_PI / 2.0; - if (cursor.x_rot < -Math_PI / 2.0) - cursor.x_rot = -Math_PI / 2.0; - - // Look is like the opposite of Orbit: the focus point rotates around the camera - Transform camera_transform = to_camera_transform(cursor); - Vector3 pos = camera_transform.xform(Vector3(0, 0, 0)); - Vector3 prev_pos = prev_camera_transform.xform(Vector3(0, 0, 0)); - Vector3 diff = prev_pos - pos; - cursor.pos += diff; - - name = ""; - _update_name(); - } + _nav_look(m, pan_gesture->get_delta()); } break; @@ -1873,6 +1871,94 @@ void SpatialEditorViewport::_sinput(const Ref<InputEvent> &p_event) { accept_event(); } +void SpatialEditorViewport::_nav_pan(Ref<InputEventWithModifiers> p_event, const Vector2 &p_relative) { + + const NavigationScheme nav_scheme = (NavigationScheme)EditorSettings::get_singleton()->get("editors/3d/navigation/navigation_scheme").operator int(); + + real_t pan_speed = 1 / 150.0; + int pan_speed_modifier = 10; + if (nav_scheme == NAVIGATION_MAYA && p_event->get_shift()) + pan_speed *= pan_speed_modifier; + + Transform camera_transform; + + camera_transform.translate(cursor.pos); + camera_transform.basis.rotate(Vector3(1, 0, 0), -cursor.x_rot); + camera_transform.basis.rotate(Vector3(0, 1, 0), -cursor.y_rot); + Vector3 translation(-p_relative.x * pan_speed, p_relative.y * pan_speed, 0); + translation *= cursor.distance / DISTANCE_DEFAULT; + camera_transform.translate(translation); + cursor.pos = camera_transform.origin; +} + +void SpatialEditorViewport::_nav_zoom(Ref<InputEventWithModifiers> p_event, const Vector2 &p_relative) { + + const NavigationScheme nav_scheme = (NavigationScheme)EditorSettings::get_singleton()->get("editors/3d/navigation/navigation_scheme").operator int(); + + real_t zoom_speed = 1 / 80.0; + int zoom_speed_modifier = 10; + if (nav_scheme == NAVIGATION_MAYA && p_event->get_shift()) + zoom_speed *= zoom_speed_modifier; + + NavigationZoomStyle zoom_style = (NavigationZoomStyle)EditorSettings::get_singleton()->get("editors/3d/navigation/zoom_style").operator int(); + if (zoom_style == NAVIGATION_ZOOM_HORIZONTAL) { + if (p_relative.x > 0) + scale_cursor_distance(1 - p_relative.x * zoom_speed); + else if (p_relative.x < 0) + scale_cursor_distance(1.0 / (1 + p_relative.x * zoom_speed)); + } else { + if (p_relative.y > 0) + scale_cursor_distance(1 + p_relative.y * zoom_speed); + else if (p_relative.y < 0) + scale_cursor_distance(1.0 / (1 - p_relative.y * zoom_speed)); + } +} + +void SpatialEditorViewport::_nav_orbit(Ref<InputEventWithModifiers> p_event, const Vector2 &p_relative) { + + real_t degrees_per_pixel = EditorSettings::get_singleton()->get("editors/3d/navigation_feel/orbit_sensitivity"); + real_t radians_per_pixel = Math::deg2rad(degrees_per_pixel); + + cursor.x_rot += p_relative.y * radians_per_pixel; + cursor.y_rot += p_relative.x * radians_per_pixel; + if (cursor.x_rot > Math_PI / 2.0) + cursor.x_rot = Math_PI / 2.0; + if (cursor.x_rot < -Math_PI / 2.0) + cursor.x_rot = -Math_PI / 2.0; + name = ""; + _update_name(); +} + +void SpatialEditorViewport::_nav_look(Ref<InputEventWithModifiers> p_event, const Vector2 &p_relative) { + + // Freelook only works properly in perspective. + // It technically works too in ortho, but it's awful for a user due to fov being near zero + if (!orthogonal) { + real_t degrees_per_pixel = EditorSettings::get_singleton()->get("editors/3d/navigation_feel/orbit_sensitivity"); + real_t radians_per_pixel = Math::deg2rad(degrees_per_pixel); + + // Note: do NOT assume the camera has the "current" transform, because it is interpolated and may have "lag". + Transform prev_camera_transform = to_camera_transform(cursor); + + cursor.x_rot += p_relative.y * radians_per_pixel; + cursor.y_rot += p_relative.x * radians_per_pixel; + if (cursor.x_rot > Math_PI / 2.0) + cursor.x_rot = Math_PI / 2.0; + if (cursor.x_rot < -Math_PI / 2.0) + cursor.x_rot = -Math_PI / 2.0; + + // Look is like the opposite of Orbit: the focus point rotates around the camera + Transform camera_transform = to_camera_transform(cursor); + Vector3 pos = camera_transform.xform(Vector3(0, 0, 0)); + Vector3 prev_pos = prev_camera_transform.xform(Vector3(0, 0, 0)); + Vector3 diff = prev_pos - pos; + cursor.pos += diff; + + name = ""; + _update_name(); + } +} + void SpatialEditorViewport::set_freelook_active(bool active_now) { if (!freelook_active && active_now) { @@ -4094,6 +4180,44 @@ void SpatialEditor::_menu_item_pressed(int p_option) { settings_dialog->popup_centered(settings_vbc->get_combined_minimum_size() + Size2(50, 50)); } break; + case MENU_LOCK_SELECTED: { + + List<Node *> &selection = editor_selection->get_selected_node_list(); + + for (List<Node *>::Element *E = selection.front(); E; E = E->next()) { + + Spatial *spatial = Object::cast_to<Spatial>(E->get()); + if (!spatial || !spatial->is_visible_in_tree()) + continue; + + if (spatial->get_viewport() != EditorNode::get_singleton()->get_scene_root()) + continue; + + spatial->set_meta("_edit_lock_", true); + emit_signal("item_lock_status_changed"); + } + + _refresh_menu_icons(); + } break; + case MENU_UNLOCK_SELECTED: { + + List<Node *> &selection = editor_selection->get_selected_node_list(); + + for (List<Node *>::Element *E = selection.front(); E; E = E->next()) { + + Spatial *spatial = Object::cast_to<Spatial>(E->get()); + if (!spatial || !spatial->is_visible_in_tree()) + continue; + + if (spatial->get_viewport() != EditorNode::get_singleton()->get_scene_root()) + continue; + + spatial->set_meta("_edit_lock_", Variant()); + emit_signal("item_lock_status_changed"); + } + + _refresh_menu_icons(); + } break; } } @@ -4477,6 +4601,28 @@ bool SpatialEditor::is_any_freelook_active() const { return false; } +void SpatialEditor::_refresh_menu_icons() { + + bool all_locked = true; + + List<Node *> &selection = editor_selection->get_selected_node_list(); + + if (selection.empty()) { + all_locked = false; + } else { + for (List<Node *>::Element *E = selection.front(); E; E = E->next()) { + if (Object::cast_to<Spatial>(E->get()) && !Object::cast_to<Spatial>(E->get())->has_meta("_edit_lock_")) { + all_locked = false; + break; + } + } + } + + tool_button[TOOL_LOCK_SELECTED]->set_visible(!all_locked); + tool_button[TOOL_LOCK_SELECTED]->set_disabled(selection.empty()); + tool_button[TOOL_UNLOCK_SELECTED]->set_visible(all_locked); +} + void SpatialEditor::_unhandled_key_input(Ref<InputEvent> p_event) { if (!is_visible_in_tree() || get_viewport()->gui_has_modal_stack()) @@ -4515,6 +4661,8 @@ void SpatialEditor::_notification(int p_what) { tool_button[SpatialEditor::TOOL_MODE_ROTATE]->set_icon(get_icon("ToolRotate", "EditorIcons")); tool_button[SpatialEditor::TOOL_MODE_SCALE]->set_icon(get_icon("ToolScale", "EditorIcons")); tool_button[SpatialEditor::TOOL_MODE_LIST_SELECT]->set_icon(get_icon("ListSelect", "EditorIcons")); + tool_button[SpatialEditor::TOOL_LOCK_SELECTED]->set_icon(get_icon("Lock", "EditorIcons")); + tool_button[SpatialEditor::TOOL_UNLOCK_SELECTED]->set_icon(get_icon("Unlock", "EditorIcons")); view_menu->get_popup()->set_item_icon(view_menu->get_popup()->get_item_index(MENU_VIEW_USE_1_VIEWPORT), get_icon("Panels1", "EditorIcons")); view_menu->get_popup()->set_item_icon(view_menu->get_popup()->get_item_index(MENU_VIEW_USE_2_VIEWPORTS), get_icon("Panels2", "EditorIcons")); @@ -4525,7 +4673,11 @@ void SpatialEditor::_notification(int p_what) { _menu_item_pressed(MENU_VIEW_USE_1_VIEWPORT); + _refresh_menu_icons(); + get_tree()->connect("node_removed", this, "_node_removed"); + EditorNode::get_singleton()->get_scene_tree_dock()->get_tree_editor()->connect("node_changed", this, "_refresh_menu_icons"); + editor_selection->connect("selection_changed", this, "_refresh_menu_icons"); } if (p_what == NOTIFICATION_ENTER_TREE) { @@ -4668,8 +4820,10 @@ void SpatialEditor::_bind_methods() { ClassDB::bind_method("_get_editor_data", &SpatialEditor::_get_editor_data); ClassDB::bind_method("_request_gizmo", &SpatialEditor::_request_gizmo); ClassDB::bind_method("_toggle_maximize_view", &SpatialEditor::_toggle_maximize_view); + ClassDB::bind_method("_refresh_menu_icons", &SpatialEditor::_refresh_menu_icons); ADD_SIGNAL(MethodInfo("transform_key_request")); + ADD_SIGNAL(MethodInfo("item_lock_status_changed")); } void SpatialEditor::clear() { @@ -4771,6 +4925,18 @@ SpatialEditor::SpatialEditor(EditorNode *p_editor) { tool_button[TOOL_MODE_LIST_SELECT]->connect("pressed", this, "_menu_item_pressed", button_binds); tool_button[TOOL_MODE_LIST_SELECT]->set_tooltip(TTR("Show a list of all objects at the position clicked\n(same as Alt+RMB in select mode).")); + tool_button[TOOL_LOCK_SELECTED] = memnew(ToolButton); + hbc_menu->add_child(tool_button[TOOL_LOCK_SELECTED]); + button_binds[0] = MENU_LOCK_SELECTED; + tool_button[TOOL_LOCK_SELECTED]->connect("pressed", this, "_menu_item_pressed", button_binds); + tool_button[TOOL_LOCK_SELECTED]->set_tooltip(TTR("Lock the selected object in place (can't be moved).")); + + tool_button[TOOL_UNLOCK_SELECTED] = memnew(ToolButton); + hbc_menu->add_child(tool_button[TOOL_UNLOCK_SELECTED]); + button_binds[0] = MENU_UNLOCK_SELECTED; + tool_button[TOOL_UNLOCK_SELECTED]->connect("pressed", this, "_menu_item_pressed", button_binds); + tool_button[TOOL_UNLOCK_SELECTED]->set_tooltip(TTR("Unlock the selected object (can be moved).")); + vs = memnew(VSeparator); hbc_menu->add_child(vs); diff --git a/editor/plugins/spatial_editor_plugin.h b/editor/plugins/spatial_editor_plugin.h index 6ee6a81d44..58c464c3ea 100644 --- a/editor/plugins/spatial_editor_plugin.h +++ b/editor/plugins/spatial_editor_plugin.h @@ -170,6 +170,11 @@ private: void _select_region(); bool _gizmo_select(const Vector2 &p_screenpos, bool p_highlight_only = false); + void _nav_pan(Ref<InputEventWithModifiers> p_event, const Vector2 &p_relative); + void _nav_zoom(Ref<InputEventWithModifiers> p_event, const Vector2 &p_relative); + void _nav_orbit(Ref<InputEventWithModifiers> p_event, const Vector2 &p_relative); + void _nav_look(Ref<InputEventWithModifiers> p_event, const Vector2 &p_relative); + float get_znear() const; float get_zfar() const; float get_fov() const; @@ -391,6 +396,8 @@ public: TOOL_MODE_ROTATE, TOOL_MODE_SCALE, TOOL_MODE_LIST_SELECT, + TOOL_LOCK_SELECTED, + TOOL_UNLOCK_SELECTED, TOOL_MAX }; @@ -480,7 +487,8 @@ private: MENU_VIEW_ORIGIN, MENU_VIEW_GRID, MENU_VIEW_CAMERA_SETTINGS, - + MENU_LOCK_SELECTED, + MENU_UNLOCK_SELECTED }; Button *tool_button[TOOL_MAX]; @@ -488,6 +496,9 @@ private: MenuButton *transform_menu; MenuButton *view_menu; + ToolButton *lock_button; + ToolButton *unlock_button; + AcceptDialog *accept; ConfirmationDialog *snap_dialog; @@ -544,6 +555,8 @@ private: bool is_any_freelook_active() const; + void _refresh_menu_icons(); + protected: void _notification(int p_what); //void _gui_input(InputEvent p_event); diff --git a/editor/project_export.cpp b/editor/project_export.cpp index dda2851166..6500b10a3a 100644 --- a/editor/project_export.cpp +++ b/editor/project_export.cpp @@ -717,6 +717,7 @@ void ProjectExportDialog::_export_project() { export_project->set_access(FileDialog::ACCESS_FILESYSTEM); export_project->clear_filters(); + export_project->set_current_file(default_filename); String extension = platform->get_binary_extension(); if (extension != String()) { export_project->add_filter("*." + extension + " ; " + platform->get_name() + " Export"); @@ -726,6 +727,9 @@ void ProjectExportDialog::_export_project() { } void ProjectExportDialog::_export_project_to_path(const String &p_path) { + // Save this name for use in future exports (but drop the file extension) + default_filename = p_path.get_basename().get_file(); + EditorSettings::get_singleton()->set_project_metadata("export_options", "default_filename", default_filename); Ref<EditorExportPreset> current = EditorExport::get_singleton()->get_export_preset(presets->get_current()); ERR_FAIL_COND(current.is_null()); @@ -970,6 +974,8 @@ ProjectExportDialog::ProjectExportDialog() { set_hide_on_ok(false); editor_icons = "EditorIcons"; + + default_filename = EditorSettings::get_singleton()->get_project_metadata("export_options", "default_filename", String()); } ProjectExportDialog::~ProjectExportDialog() { diff --git a/editor/project_export.h b/editor/project_export.h index 288b0c290f..b258112fa8 100644 --- a/editor/project_export.h +++ b/editor/project_export.h @@ -99,6 +99,8 @@ private: Label *export_error; HBoxContainer *export_templates_error; + String default_filename; + void _patch_selected(const String &p_path); void _patch_deleted(); diff --git a/editor/project_settings_editor.cpp b/editor/project_settings_editor.cpp index b07280a4cd..900f7625bc 100644 --- a/editor/project_settings_editor.cpp +++ b/editor/project_settings_editor.cpp @@ -360,7 +360,7 @@ void ProjectSettingsEditor::_wait_for_key(const Ref<InputEvent> &p_event) { last_wait_for_key = p_event; String str = keycode_get_string(k->get_scancode()).capitalize(); if (k->get_metakey()) - str = TTR("Meta+") + str; + str = vformat("%s+", find_keycode_name(KEY_META)) + str; if (k->get_shift()) str = TTR("Shift+") + str; if (k->get_alt()) @@ -642,7 +642,7 @@ void ProjectSettingsEditor::_update_actions() { String str = keycode_get_string(k->get_scancode()).capitalize(); if (k->get_metakey()) - str = TTR("Meta+") + str; + str = vformat("%s+", find_keycode_name(KEY_META)) + str; if (k->get_shift()) str = TTR("Shift+") + str; if (k->get_alt()) diff --git a/editor/property_editor.cpp b/editor/property_editor.cpp index 9733f49f42..bc7d8f4b14 100644 --- a/editor/property_editor.cpp +++ b/editor/property_editor.cpp @@ -40,6 +40,7 @@ #include "core/project_settings.h" #include "editor/array_property_edit.h" #include "editor/create_dialog.h" +#include "editor/dictionary_property_edit.h" #include "editor/editor_export.h" #include "editor/editor_file_system.h" #include "editor/editor_help.h" @@ -1157,7 +1158,8 @@ void CustomPropertyEditor::_node_path_selected(NodePath p_path) { node = Object::cast_to<Node>(owner); else if (owner->is_class("ArrayPropertyEdit")) node = Object::cast_to<ArrayPropertyEdit>(owner)->get_node(); - + else if (owner->is_class("DictionaryPropertyEdit")) + node = Object::cast_to<DictionaryPropertyEdit>(owner)->get_node(); if (!node) { v = p_path; emit_signal("variant_changed"); @@ -3215,9 +3217,14 @@ void PropertyEditor::update_tree() { } break; case Variant::DICTIONARY: { + Variant v = obj->get(p.name); + item->set_cell_mode(1, TreeItem::CELL_MODE_STRING); - item->set_editable(1, false); - item->set_text(1, obj->get(p.name).operator String()); + item->set_text(1, String("Dictionary{") + itos(v.call("size")) + "}"); + item->add_button(1, get_icon("EditResource", "EditorIcons")); + + if (show_type_icons) + item->set_icon(0, get_icon("DictionaryData", "EditorIcons")); } break; @@ -3416,7 +3423,9 @@ void PropertyEditor::update_tree() { type = p.hint_string; RES res = obj->get(p.name).operator RefPtr(); - + if (type.begins_with("RES:") && type != "RES:") { // Remote resources + res = ResourceLoader::load(type.substr(4, type.length())); + } Ref<EncodedObjectAsID> encoded = obj->get(p.name); //for debugger and remote tools if (encoded.is_valid()) { @@ -3427,6 +3436,7 @@ void PropertyEditor::update_tree() { item->set_editable(1, true); } else if (obj->get(p.name).get_type() == Variant::NIL || res.is_null()) { + item->set_text(1, "<null>"); item->set_icon(1, Ref<Texture>()); item->set_custom_as_button(1, false); @@ -3585,7 +3595,7 @@ void PropertyEditor::_edit_set(const String &p_name, const Variant &p_value, boo } } - if (!undo_redo || Object::cast_to<ArrayPropertyEdit>(obj)) { //kind of hacky + if (!undo_redo || Object::cast_to<ArrayPropertyEdit>(obj) || Object::cast_to<DictionaryPropertyEdit>(obj)) { //kind of hacky obj->set(p_name, p_value); if (p_refresh_all) @@ -3983,8 +3993,20 @@ void PropertyEditor::_edit_button(Object *p_item, int p_column, int p_button) { Ref<ArrayPropertyEdit> ape = memnew(ArrayPropertyEdit); ape->edit(obj, n, ht, Variant::Type(t)); - EditorNode::get_singleton()->push_item(ape.ptr()); + + } else if (t == Variant::DICTIONARY) { + + Variant v = obj->get(n); + + if (v.get_type() != t) { + Variant::CallError ce; + v = Variant::construct(Variant::Type(t), NULL, 0, ce); + } + + Ref<DictionaryPropertyEdit> dpe = memnew(DictionaryPropertyEdit); + dpe->edit(obj, n); + EditorNode::get_singleton()->push_item(dpe.ptr()); } } } diff --git a/editor/scene_tree_dock.cpp b/editor/scene_tree_dock.cpp index f866a158f3..ca3f13b07d 100644 --- a/editor/scene_tree_dock.cpp +++ b/editor/scene_tree_dock.cpp @@ -745,6 +745,10 @@ void SceneTreeDock::_notification(int p_what) { canvas_item_plugin->get_canvas_item_editor()->connect("item_group_status_changed", scene_tree, "_update_tree"); scene_tree->connect("node_changed", canvas_item_plugin->get_canvas_item_editor()->get_viewport_control(), "update"); } + + SpatialEditorPlugin *spatial_editor_plugin = Object::cast_to<SpatialEditorPlugin>(editor_data->get_editor("3D")); + spatial_editor_plugin->get_spatial_editor()->connect("item_lock_status_changed", scene_tree, "_update_tree"); + button_add->set_icon(get_icon("Add", "EditorIcons")); button_instance->set_icon(get_icon("Instance", "EditorIcons")); button_create_script->set_icon(get_icon("ScriptCreate", "EditorIcons")); @@ -982,7 +986,7 @@ void SceneTreeDock::perform_node_renames(Node *p_base, List<Pair<NodePath, NodeP //will be renamed NodePath rel_path = new_root_path.rel_path_to(E->get().second); - NodePath new_path = NodePath(rel_path.get_names(), track_np.get_subnames(), false, track_np.get_property()); + NodePath new_path = NodePath(rel_path.get_names(), track_np.get_subnames(), false); if (new_path == track_np) continue; //bleh editor_data->get_undo_redo().add_do_method(anim.ptr(), "track_set_path", i, new_path); @@ -1823,16 +1827,24 @@ void SceneTreeDock::add_remote_tree_editor(Control *p_remote) { void SceneTreeDock::show_remote_tree() { - button_hb->show(); _remote_tree_selected(); } void SceneTreeDock::hide_remote_tree() { - button_hb->hide(); _local_tree_selected(); } +void SceneTreeDock::show_tab_buttons() { + + button_hb->show(); +} + +void SceneTreeDock::hide_tab_buttons() { + + button_hb->hide(); +} + void SceneTreeDock::_remote_tree_selected() { scene_tree->hide(); @@ -1849,6 +1861,8 @@ void SceneTreeDock::_local_tree_selected() { remote_tree->hide(); edit_remote->set_pressed(false); edit_local->set_pressed(true); + + _node_selected(); } void SceneTreeDock::_bind_methods() { diff --git a/editor/scene_tree_dock.h b/editor/scene_tree_dock.h index 7848052241..41d5bda180 100644 --- a/editor/scene_tree_dock.h +++ b/editor/scene_tree_dock.h @@ -202,6 +202,8 @@ public: void add_remote_tree_editor(Control *p_remote); void show_remote_tree(); void hide_remote_tree(); + void show_tab_buttons(); + void hide_tab_buttons(); void open_script_dialog(Node *p_for_node); SceneTreeDock(EditorNode *p_editor, Node *p_scene_root, EditorSelection *p_editor_selection, EditorData &p_editor_data); diff --git a/editor/scene_tree_editor.cpp b/editor/scene_tree_editor.cpp index c4b86c6b2b..dfda8a780d 100644 --- a/editor/scene_tree_editor.cpp +++ b/editor/scene_tree_editor.cpp @@ -88,7 +88,7 @@ void SceneTreeEditor::_cell_button_pressed(Object *p_item, int p_column, int p_i } else if (p_id == BUTTON_LOCK) { - if (n->is_class("CanvasItem")) { + if (n->is_class("CanvasItem") || n->is_class("Spatial")) { n->set_meta("_edit_lock_", Variant()); _update_tree(); emit_signal("node_changed"); @@ -266,6 +266,10 @@ bool SceneTreeEditor::_add_nodes(Node *p_node, TreeItem *p_parent) { _update_visibility_color(p_node, item); } else if (p_node->is_class("Spatial")) { + bool is_locked = p_node->has_meta("_edit_lock_"); + if (is_locked) + item->add_button(0, get_icon("Lock", "EditorIcons"), BUTTON_LOCK, false, TTR("Node is locked.\nClick to unlock")); + bool v = p_node->call("is_visible"); if (v) item->add_button(0, get_icon("Visible", "EditorIcons"), BUTTON_VISIBILITY, false, TTR("Toggle Visibility")); diff --git a/editor/script_editor_debugger.cpp b/editor/script_editor_debugger.cpp index bc2423fffd..8974bda926 100644 --- a/editor/script_editor_debugger.cpp +++ b/editor/script_editor_debugger.cpp @@ -116,7 +116,7 @@ class ScriptEditorDebuggerInspectedObject : public Object { protected: bool _set(const StringName &p_name, const Variant &p_value) { - if (!prop_values.has(p_name)) + if (!prop_values.has(p_name) || String(p_name).begins_with("Constants/")) return false; emit_signal("value_edited", p_name, p_value); @@ -132,6 +132,7 @@ protected: r_ret = prop_values[p_name]; return true; } + void _get_property_list(List<PropertyInfo> *p_list) const { p_list->clear(); //sorry, no want category @@ -142,23 +143,52 @@ protected: static void _bind_methods() { + ClassDB::bind_method(D_METHOD("get_title"), &ScriptEditorDebuggerInspectedObject::get_title); + ClassDB::bind_method(D_METHOD("get_variant"), &ScriptEditorDebuggerInspectedObject::get_variant); + ClassDB::bind_method(D_METHOD("clear"), &ScriptEditorDebuggerInspectedObject::clear); + ClassDB::bind_method(D_METHOD("get_remote_object_id"), &ScriptEditorDebuggerInspectedObject::get_remote_object_id); + ADD_SIGNAL(MethodInfo("value_edited")); } public: - ObjectID last_edited_id; + String type_name; + ObjectID remote_object_id; List<PropertyInfo> prop_list; Map<StringName, Variant> prop_values; + ObjectID get_remote_object_id() { + return remote_object_id; + } + + String get_title() { + if (remote_object_id) + return TTR("Remote ") + String(type_name) + ": " + itos(remote_object_id); + else + return "<null>"; + } + Variant get_variant(const StringName &p_name) { + + Variant var; + _get(p_name, var); + return var; + } + + void clear() { + + prop_list.clear(); + prop_values.clear(); + } void update() { _change_notify(); } - void update_single(const char *p_prop) { _change_notify(p_prop); } - ScriptEditorDebuggerInspectedObject() { last_edited_id = 0; } + ScriptEditorDebuggerInspectedObject() { + remote_object_id = 0; + } }; void ScriptEditorDebugger::debug_next() { @@ -297,7 +327,6 @@ Size2 ScriptEditorDebugger::get_minimum_size() const { void ScriptEditorDebugger::_parse_message(const String &p_msg, const Array &p_data) { if (p_msg == "debug_enter") { - Array msg; msg.push_back("get_stack_dump"); ppeer->put_var(msg); @@ -315,12 +344,10 @@ void ScriptEditorDebugger::_parse_message(const String &p_msg, const Array &p_da if (error != "") { tabs->set_current_tab(0); } - profiler->set_enabled(false); - EditorNode::get_singleton()->get_pause_button()->set_pressed(true); - EditorNode::get_singleton()->make_bottom_panel_item_visible(this); + _clear_remote_objects(); } else if (p_msg == "debug_exit") { @@ -337,9 +364,8 @@ void ScriptEditorDebugger::_parse_message(const String &p_msg, const Array &p_da //tabs->set_current_tab(0); profiler->set_enabled(true); profiler->disable_seeking(); - + inspector->edit(NULL); EditorNode::get_singleton()->get_pause_button()->set_pressed(false); - } else if (p_msg == "message:click_ctrl") { clicked_ctrl->set_text(p_data[0]); @@ -399,55 +425,57 @@ void ScriptEditorDebugger::_parse_message(const String &p_msg, const Array &p_da le_set->set_disabled(false); } else if (p_msg == "message:inspect_object") { + ScriptEditorDebuggerInspectedObject *debugObj = NULL; + ObjectID id = p_data[0]; String type = p_data[1]; - Variant path = p_data[2]; //what to do yet, i don't know - int prop_count = p_data[3]; + Array properties = p_data[2]; - int idx = 4; - - if (inspected_object->last_edited_id != id) { - inspected_object->prop_list.clear(); - inspected_object->prop_values.clear(); + bool is_new_object = false; + if (remote_objects.has(id)) { + debugObj = remote_objects[id]; + } else { + debugObj = memnew(ScriptEditorDebuggerInspectedObject); + debugObj->remote_object_id = id; + debugObj->type_name = type; + remote_objects[id] = debugObj; + is_new_object = true; + debugObj->connect("value_edited", this, "_scene_tree_property_value_edited"); } - for (int i = 0; i < prop_count; i++) { + for (int i = 0; i < properties.size(); i++) { + + Array prop = properties[i]; + if (prop.size() != 6) + continue; PropertyInfo pinfo; - pinfo.name = p_data[idx++]; - pinfo.type = Variant::Type(int(p_data[idx++])); - pinfo.hint = PropertyHint(int(p_data[idx++])); - pinfo.hint_string = p_data[idx++]; - if (pinfo.name.begins_with("*")) { - pinfo.name = pinfo.name.substr(1, pinfo.name.length()); - pinfo.usage = PROPERTY_USAGE_CATEGORY; - } else { - pinfo.usage = PROPERTY_USAGE_EDITOR; + pinfo.name = prop[0]; + pinfo.type = Variant::Type(int(prop[1])); + pinfo.hint = PropertyHint(int(prop[2])); + pinfo.hint_string = prop[3]; + pinfo.usage = PropertyUsageFlags(int(prop[4])); + Variant var = prop[5]; + + String hint_string = pinfo.hint_string; + if (hint_string.begins_with("RES:") && hint_string != "RES:") { + String path = hint_string.substr(4, hint_string.length()); + var = ResourceLoader::load(path); } - if (inspected_object->last_edited_id != id) { + if (is_new_object) { //don't update.. it's the same, instead refresh - inspected_object->prop_list.push_back(pinfo); + debugObj->prop_list.push_back(pinfo); } - inspected_object->prop_values[pinfo.name] = p_data[idx++]; - - if (inspected_object->last_edited_id == id) { - //same, just update value, don't rebuild - inspected_object->update_single(pinfo.name.ascii().get_data()); - } + debugObj->prop_values[pinfo.name] = var; } - if (inspected_object->last_edited_id != id) { - //only if different - inspected_object->update(); + if (editor->get_editor_history()->get_current() != debugObj->get_instance_id()) { + editor->push_item(debugObj, ""); + } else { + debugObj->update(); } - - inspected_object->last_edited_id = id; - - tabs->set_current_tab(inspect_info->get_index()); - inspect_properties->edit(inspected_object); - } else if (p_msg == "message:video_mem") { vmem_tree->clear(); @@ -502,7 +530,6 @@ void ScriptEditorDebugger::_parse_message(const String &p_msg, const Array &p_da int ofs = 0; int mcount = p_data[ofs]; - ofs++; for (int i = 0; i < mcount; i++) { @@ -521,12 +548,34 @@ void ScriptEditorDebugger::_parse_message(const String &p_msg, const Array &p_da v = s.get_slice(":", 1).to_int(); } - variables->add_property("members/" + n, v, h, hs); + variables->add_property("Locals/" + n, v, h, hs); } - ofs += mcount * 2; + ofs += mcount * 2; mcount = p_data[ofs]; + ofs++; + for (int i = 0; i < mcount; i++) { + + String n = p_data[ofs + i * 2 + 0]; + Variant v = p_data[ofs + i * 2 + 1]; + PropertyHint h = PROPERTY_HINT_NONE; + String hs = String(); + + if (n.begins_with("*")) { + n = n.substr(1, n.length()); + h = PROPERTY_HINT_OBJECT_ID; + String s = v; + s = s.replace("[", ""); + hs = s.get_slice(":", 0); + v = s.get_slice(":", 1).to_int(); + } + + variables->add_property("Members/" + n, v, h, hs); + } + + ofs += mcount * 2; + mcount = p_data[ofs]; ofs++; for (int i = 0; i < mcount; i++) { @@ -545,7 +594,7 @@ void ScriptEditorDebugger::_parse_message(const String &p_msg, const Array &p_da v = s.get_slice(":", 1).to_int(); } - variables->add_property("locals/" + n, v, h, hs); + variables->add_property("Globals/" + n, v, h, hs); } variables->update(); @@ -908,7 +957,7 @@ void ScriptEditorDebugger::_notification(int p_what) { if (connection.is_valid()) { inspect_scene_tree_timeout -= get_process_delta_time(); if (inspect_scene_tree_timeout < 0) { - inspect_scene_tree_timeout = EditorSettings::get_singleton()->get("debugger/scene_tree_refresh_interval"); + inspect_scene_tree_timeout = EditorSettings::get_singleton()->get("debugger/remote_scene_tree_refresh_interval"); if (inspect_scene_tree->is_visible_in_tree()) { _scene_tree_request(); @@ -1078,6 +1127,15 @@ void ScriptEditorDebugger::_notification(int p_what) { tabs->add_style_override("tab_bg", editor->get_gui_base()->get_stylebox("DebuggerTabBG", "EditorStyles")); tabs->set_margin(MARGIN_LEFT, -EditorNode::get_singleton()->get_gui_base()->get_stylebox("BottomPanelDebuggerOverride", "EditorStyles")->get_margin(MARGIN_LEFT)); tabs->set_margin(MARGIN_RIGHT, EditorNode::get_singleton()->get_gui_base()->get_stylebox("BottomPanelDebuggerOverride", "EditorStyles")->get_margin(MARGIN_RIGHT)); + + bool enable_rl = EditorSettings::get_singleton()->get("docks/scene_tree/draw_relationship_lines"); + Color rl_color = EditorSettings::get_singleton()->get("docks/scene_tree/relationship_line_color"); + + if (enable_rl) { + inspect_scene_tree->add_constant_override("draw_relationship_lines", 1); + inspect_scene_tree->add_color_override("relationship_line_color", rl_color); + } else + inspect_scene_tree->add_constant_override("draw_relationship_lines", 0); } break; } } @@ -1101,6 +1159,13 @@ void ScriptEditorDebugger::start() { EditorNode::get_log()->add_message(String("Error listening on port ") + itos(remote_port), true); return; } + + EditorNode::get_singleton()->get_scene_tree_dock()->show_tab_buttons(); + auto_switch_remote_scene_tree = (bool)EditorSettings::get_singleton()->get("debugger/auto_switch_to_remote_scene_tree"); + if (auto_switch_remote_scene_tree) { + EditorNode::get_singleton()->get_scene_tree_dock()->show_remote_tree(); + } + set_process(true); } @@ -1133,11 +1198,12 @@ void ScriptEditorDebugger::stop() { le_set->set_disabled(true); profiler->set_enabled(true); - inspect_properties->edit(NULL); inspect_scene_tree->clear(); EditorNode::get_singleton()->get_pause_button()->set_pressed(false); EditorNode::get_singleton()->get_pause_button()->set_disabled(true); + EditorNode::get_singleton()->get_scene_tree_dock()->hide_remote_tree(); + EditorNode::get_singleton()->get_scene_tree_dock()->hide_tab_buttons(); if (hide_on_stop) { if (is_visible_in_tree()) @@ -1604,6 +1670,24 @@ void ScriptEditorDebugger::_paused() { } } +void ScriptEditorDebugger::_set_remote_object(ObjectID p_id, ScriptEditorDebuggerInspectedObject *p_obj) { + + if (remote_objects.has(p_id)) + memdelete(remote_objects[p_id]); + remote_objects[p_id] = p_obj; +} + +void ScriptEditorDebugger::_clear_remote_objects() { + + for (Map<ObjectID, ScriptEditorDebuggerInspectedObject *>::Element *E = remote_objects.front(); E; E = E->next()) { + if (editor->get_editor_history()->get_current() == E->value()->get_instance_id()) { + editor->push_item(NULL); + } + memdelete(E->value()); + } + remote_objects.clear(); +} + void ScriptEditorDebugger::_bind_methods() { ClassDB::bind_method(D_METHOD("_stack_dump_frame_selected"), &ScriptEditorDebugger::_stack_dump_frame_selected); @@ -1649,6 +1733,7 @@ ScriptEditorDebugger::ScriptEditorDebugger(EditorNode *p_editor) { ppeer = Ref<PacketPeerStream>(memnew(PacketPeerStream)); ppeer->set_input_buffer_max_size(1024 * 1024 * 8); //8mb should be enough editor = p_editor; + editor->get_property_editor()->connect("object_id_selected", this, "_scene_tree_property_select_object"); tabs = memnew(TabContainer); tabs->set_tab_align(TabContainer::ALIGN_LEFT); @@ -1761,41 +1846,19 @@ ScriptEditorDebugger::ScriptEditorDebugger(EditorNode *p_editor) { tabs->add_child(error_split); } - { // inquire - - inspect_info = memnew(HSplitContainer); - inspect_info->set_name(TTR("Remote Inspector")); - tabs->add_child(inspect_info); - - VBoxContainer *info_left = memnew(VBoxContainer); - info_left->set_h_size_flags(SIZE_EXPAND_FILL); - inspect_info->add_child(info_left); + { // remote scene tree inspect_scene_tree = memnew(Tree); - info_left->add_margin_child(TTR("Live Scene Tree:"), inspect_scene_tree, true); + EditorNode::get_singleton()->get_scene_tree_dock()->add_remote_tree_editor(inspect_scene_tree); + inspect_scene_tree->set_v_size_flags(SIZE_EXPAND_FILL); inspect_scene_tree->connect("cell_selected", this, "_scene_tree_selected"); inspect_scene_tree->connect("item_collapsed", this, "_scene_tree_folded"); - // - - VBoxContainer *info_right = memnew(VBoxContainer); - info_right->set_h_size_flags(SIZE_EXPAND_FILL); - inspect_info->add_child(info_right); - - inspect_properties = memnew(PropertyEditor); - inspect_properties->hide_top_label(); - inspect_properties->set_show_categories(true); - inspect_properties->connect("object_id_selected", this, "_scene_tree_property_select_object"); - - info_right->add_margin_child(TTR("Remote Object Properties: "), inspect_properties, true); - - inspect_scene_tree_timeout = EDITOR_DEF("debugger/scene_tree_refresh_interval", 1.0); + auto_switch_remote_scene_tree = EDITOR_DEF("debugger/auto_switch_to_remote_scene_tree", true); + inspect_scene_tree_timeout = EDITOR_DEF("debugger/remote_scene_tree_refresh_interval", 1.0); inspect_edited_object_timeout = EDITOR_DEF("debugger/remote_inspect_refresh_interval", 0.2); inspected_object_id = 0; updating_scene_tree = false; - - inspected_object = memnew(ScriptEditorDebuggerInspectedObject); - inspected_object->connect("value_edited", this, "_scene_tree_property_value_edited"); } { //profiler @@ -1952,5 +2015,5 @@ ScriptEditorDebugger::~ScriptEditorDebugger() { ppeer->set_stream_peer(Ref<StreamPeer>()); server->stop(); - memdelete(inspected_object); + _clear_remote_objects(); } diff --git a/editor/script_editor_debugger.h b/editor/script_editor_debugger.h index d18a625eef..82dcba469c 100644 --- a/editor/script_editor_debugger.h +++ b/editor/script_editor_debugger.h @@ -72,19 +72,19 @@ class ScriptEditorDebugger : public Control { Button *le_set; Button *le_clear; - Tree *inspect_scene_tree; - HSplitContainer *inspect_info; - PropertyEditor *inspect_properties; + bool updating_scene_tree; float inspect_scene_tree_timeout; float inspect_edited_object_timeout; + bool auto_switch_remote_scene_tree; ObjectID inspected_object_id; - ScriptEditorDebuggerInspectedObject *inspected_object; - bool updating_scene_tree; + ScriptEditorDebuggerVariables *variables; + Map<ObjectID, ScriptEditorDebuggerInspectedObject *> remote_objects; Set<ObjectID> unfold_cache; HSplitContainer *error_split; ItemList *error_list; ItemList *error_stack; + Tree *inspect_scene_tree; int error_count; int last_error_count; @@ -96,7 +96,6 @@ class ScriptEditorDebugger : public Control { TabContainer *tabs; Label *reason; - ScriptEditorDebuggerVariables *variables; Button *step; Button *next; @@ -174,6 +173,9 @@ class ScriptEditorDebugger : public Control { void _paused(); + void _set_remote_object(ObjectID p_id, ScriptEditorDebuggerInspectedObject *p_obj); + void _clear_remote_objects(); + protected: void _notification(int p_what); static void _bind_methods(); diff --git a/editor/settings_config_dialog.cpp b/editor/settings_config_dialog.cpp index c052845be9..853761f689 100644 --- a/editor/settings_config_dialog.cpp +++ b/editor/settings_config_dialog.cpp @@ -291,7 +291,7 @@ void EditorSettingsDialog::_wait_for_key(const Ref<InputEvent> &p_event) { last_wait_for_key = k; String str = keycode_get_string(k->get_scancode()).capitalize(); if (k->get_metakey()) - str = TTR("Meta+") + str; + str = vformat("%s+", find_keycode_name(KEY_META)) + str; if (k->get_shift()) str = TTR("Shift+") + str; if (k->get_alt()) diff --git a/editor/translations/ar.po b/editor/translations/ar.po index 0309680da9..0376d07109 100644 --- a/editor/translations/ar.po +++ b/editor/translations/ar.po @@ -13,8 +13,8 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2017-10-25 20:58+0000\n" -"Last-Translator: Wajdi Feki <wajdi.feki@gmail.com>\n" +"PO-Revision-Date: 2017-11-02 21:44+0000\n" +"Last-Translator: omar anwar aglan <omar.aglan91@yahoo.com>\n" "Language-Team: Arabic <https://hosted.weblate.org/projects/godot-engine/" "godot/ar/>\n" "Language: ar\n" @@ -22,7 +22,7 @@ msgstr "" "Content-Transfer-Encoding: 8-bit\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " "&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n" -"X-Generator: Weblate 2.17\n" +"X-Generator: Weblate 2.18-dev\n" #: editor/animation_editor.cpp msgid "Disabled" @@ -30,7 +30,7 @@ msgstr "معطّل" #: editor/animation_editor.cpp msgid "All Selection" -msgstr "كُل الإختيار" +msgstr "كُل المُحدد" #: editor/animation_editor.cpp msgid "Move Add Key" @@ -74,7 +74,7 @@ msgstr "حذف مسار التحريك" #: editor/animation_editor.cpp msgid "Set Transitions to:" -msgstr "تحديد التحولات ل:" +msgstr "تحديد التحويلات لـ:" #: editor/animation_editor.cpp msgid "Anim Track Rename" @@ -94,17 +94,18 @@ msgstr "تغيير صيغة الغلاف لمسار التحريك" #: editor/animation_editor.cpp msgid "Edit Node Curve" -msgstr "تحرير منحى العقدة" +msgstr "تحرير منحنى العقدة" #: editor/animation_editor.cpp msgid "Edit Selection Curve" -msgstr "تحرير منحى الإختيار" +msgstr "تحرير منحنى الإختيار" #: editor/animation_editor.cpp msgid "Anim Delete Keys" msgstr "مفاتيح حذف التحريك" #: editor/animation_editor.cpp editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Duplicate Selection" msgstr "إختيار النسخ" @@ -114,7 +115,7 @@ msgstr "نسخ محمّل" #: editor/animation_editor.cpp msgid "Remove Selection" -msgstr "حذف الإختيار" +msgstr "حذف المُحدد" #: editor/animation_editor.cpp msgid "Continuous" @@ -179,7 +180,7 @@ msgstr "خارج-داخل" #: editor/animation_editor.cpp msgid "Transitions" -msgstr "تحولات" +msgstr "تحويلات" #: editor/animation_editor.cpp msgid "Optimize Animation" @@ -489,7 +490,7 @@ msgstr "إمسح" #: editor/connections_dialog.cpp msgid "Add Extra Call Argument:" -msgstr "إضافة وسيطة إستدعاء إضافية" +msgstr "إضافة وسيطة إستدعاء إضافية:" #: editor/connections_dialog.cpp msgid "Extra Call Arguments:" @@ -640,6 +641,13 @@ msgstr "محرر التبعيات" msgid "Search Replacement Resource:" msgstr "البحث عن مورد بديل:" +#: editor/dependency_editor.cpp editor/editor_file_dialog.cpp +#: editor/editor_help.cpp editor/editor_node.cpp editor/filesystem_dock.cpp +#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp +#: editor/quick_open.cpp scene/gui/file_dialog.cpp +msgid "Open" +msgstr "إفتح" + #: editor/dependency_editor.cpp msgid "Owners Of:" msgstr "ملاك:" @@ -658,9 +666,8 @@ msgstr "" "إمسح علي أية حال؟ (لا رجعة)" #: editor/dependency_editor.cpp -#, fuzzy msgid "Cannot remove:\n" -msgstr "لا يمكن الحل." +msgstr "لا يمكن المسح:\n" #: editor/dependency_editor.cpp msgid "Error loading:" @@ -713,6 +720,15 @@ msgstr "إمسح الملفات المحددة؟" msgid "Delete" msgstr "مسح" +#: editor/dictionary_property_edit.cpp +msgid "Change Dictionary Key" +msgstr "" + +#: editor/dictionary_property_edit.cpp +#, fuzzy +msgid "Change Dictionary Value" +msgstr "تغيير قيمة في المصفوفة" + #: editor/editor_about.cpp msgid "Thanks from the Godot community!" msgstr "شكراً من مجتمع Godot!" @@ -897,9 +913,8 @@ msgid "Duplicate" msgstr "تكرير" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Reset Volume" -msgstr "إرجاع التكبير" +msgstr "إرجاع الصوت" #: editor/editor_audio_buses.cpp msgid "Delete Effect" @@ -922,9 +937,8 @@ msgid "Duplicate Audio Bus" msgstr "تكرير بيوس الصوت" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Reset Bus Volume" -msgstr "إرجاع التكبير" +msgstr "إرجاع صوت البيس" #: editor/editor_audio_buses.cpp msgid "Move Audio Bus" @@ -1134,12 +1148,6 @@ msgstr "جميع الأنواع المعتمدة" msgid "All Files (*)" msgstr "كل الملفات (*)" -#: editor/editor_file_dialog.cpp editor/editor_help.cpp editor/editor_node.cpp -#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_selector.cpp editor/quick_open.cpp scene/gui/file_dialog.cpp -msgid "Open" -msgstr "إفتح" - #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Open a File" msgstr "إفتح ملف" @@ -1207,9 +1215,8 @@ msgid "Move Favorite Down" msgstr "حرك المُفضلة للأسفل" #: editor/editor_file_dialog.cpp -#, fuzzy msgid "Go to parent folder" -msgstr "لا يمكن إنشاء المجلد." +msgstr "إذهب إلي المجلد السابق" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Directories & Files:" @@ -1270,27 +1277,24 @@ msgid "Brief Description:" msgstr "وصف مختصر:" #: editor/editor_help.cpp -#, fuzzy msgid "Members" -msgstr "الأعضاء:" +msgstr "الأعضاء" #: editor/editor_help.cpp modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "الأعضاء:" #: editor/editor_help.cpp -#, fuzzy msgid "Public Methods" -msgstr "الطرق العامة:" +msgstr "الطرق العامة" #: editor/editor_help.cpp msgid "Public Methods:" msgstr "الطرق العامة:" #: editor/editor_help.cpp -#, fuzzy msgid "GUI Theme Items" -msgstr "عناصر ثيم واجهة المستخدم:" +msgstr "عناصر ثيم واجهة المستخدم" #: editor/editor_help.cpp msgid "GUI Theme Items:" @@ -1301,9 +1305,8 @@ msgid "Signals:" msgstr "الإشارات:" #: editor/editor_help.cpp -#, fuzzy msgid "Enumerations" -msgstr "التعدادات:" +msgstr "التعدادات" #: editor/editor_help.cpp msgid "Enumerations:" @@ -1314,18 +1317,16 @@ msgid "enum " msgstr "التعداد " #: editor/editor_help.cpp -#, fuzzy msgid "Constants" -msgstr "الثوابت:" +msgstr "الثوابت" #: editor/editor_help.cpp msgid "Constants:" msgstr "الثوابت:" #: editor/editor_help.cpp -#, fuzzy msgid "Description" -msgstr "الوصف:" +msgstr "الوصف" #: editor/editor_help.cpp msgid "Properties" @@ -1344,9 +1345,8 @@ msgstr "" "المساهمة واحد [color=$color][url=$url]!" #: editor/editor_help.cpp -#, fuzzy msgid "Methods" -msgstr "قائمة الطرق:" +msgstr "قائمة الطرق" #: editor/editor_help.cpp msgid "Method Description:" @@ -1400,14 +1400,12 @@ msgid "Error while saving." msgstr "خطأ خلال الحفظ." #: editor/editor_node.cpp -#, fuzzy msgid "Can't open '%s'." -msgstr "لا يمكن الحل." +msgstr "لا يمكن فتح '%s'." #: editor/editor_node.cpp -#, fuzzy msgid "Error while parsing '%s'." -msgstr "خطأ خلال الحفظ." +msgstr "خطأ خلال تحميل '%s'." #: editor/editor_node.cpp msgid "Unexpected end of file '%s'." @@ -1415,12 +1413,11 @@ msgstr "نهاية ملف غير مرتقبة 's%'." #: editor/editor_node.cpp msgid "Missing '%s' or its dependencies." -msgstr "" +msgstr "'%s' مفقود أو أحدي إعتمادته." #: editor/editor_node.cpp -#, fuzzy msgid "Error while loading '%s'." -msgstr "خطأ خلال الحفظ." +msgstr "خطأ خلال تحميل '%s'." #: editor/editor_node.cpp msgid "Saving Scene" @@ -1485,18 +1482,25 @@ msgid "" "Please read the documentation relevant to importing scenes to better " "understand this workflow." msgstr "" +"هذا المصدر ينتمي إلي مشهد قد تم إستيراده، إذا لا يمكن تعديله.\n" +"من فضلك إقرأ التوثيق المرتبط بإستيراد المشاهد لكي تفهم بشكل أفضل كيفية عمل " +"هذا النظام." #: editor/editor_node.cpp msgid "" "This resource belongs to a scene that was instanced or inherited.\n" "Changes to it will not be kept when saving the current scene." msgstr "" +"هذا المصدر ينتمي إلي مشهد قد تم توضيحة أو إيراثه.\n" +"تغييره لن يُحفظ حينما يتم حفظ المشهد الحالي." #: editor/editor_node.cpp msgid "" "This resource was imported, so it's not editable. Change its settings in the " "import panel and then re-import." msgstr "" +"هذا المورد قد تم إستيراده، إذا لا يمكن تعديله. غير إعدادته في قائمة " +"الإستيراد ومن ثم أعد إستيراده." #: editor/editor_node.cpp msgid "" @@ -1505,6 +1509,21 @@ msgid "" "Please read the documentation relevant to importing scenes to better " "understand this workflow." msgstr "" +"المشهد تم إستيراده، إذا أي تغيير فيه لن يُحفظ.\n" +"الإيضاح أو الإيراث سوف يسمح بحفظ أي تغيير فيه.\n" +"من فضلك إقرأ التوثيق المرتبط بإستيراد المشاهد لكي تفهم بشكل أفضل طريقة عمل " +"هذا النظام." + +#: editor/editor_node.cpp +#, fuzzy +msgid "" +"This is a remote object so changes to it will not be kept.\n" +"Please read the documentation relevant to debugging to better understand " +"this workflow." +msgstr "" +"هذا المصدر ينتمي إلي مشهد قد تم إستيراده، إذا لا يمكن تعديله.\n" +"من فضلك إقرأ التوثيق المرتبط بإستيراد المشاهد لكي تفهم بشكل أفضل كيفية عمل " +"هذا النظام." #: editor/editor_node.cpp msgid "Copy Params" @@ -1562,6 +1581,8 @@ msgid "" "You can change it later in \"Project Settings\" under the 'application' " "category." msgstr "" +"المشهد المُحدد '%s' ليس ملف مشهد. حدد مشهد صالح؟\n" +"يمكنك تغييره لاحقاً في \"إعدادات المشروع\" تحت قسم 'التطبيق'." #: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." @@ -1569,43 +1590,43 @@ msgstr "المشهد الحالي لم يتم حفظه. الرجاء حفظ ال #: editor/editor_node.cpp msgid "Could not start subprocess!" -msgstr "" +msgstr "لا يمكن بدء عملية جانبية!" #: editor/editor_node.cpp msgid "Open Scene" -msgstr "" +msgstr "فتح مشهد" #: editor/editor_node.cpp msgid "Open Base Scene" -msgstr "" +msgstr "فتح مشهد أساسي" #: editor/editor_node.cpp msgid "Quick Open Scene.." -msgstr "" +msgstr "فتح سريع للمشهد..." #: editor/editor_node.cpp msgid "Quick Open Script.." -msgstr "" +msgstr "فتح سريع للكود..." #: editor/editor_node.cpp msgid "Save & Close" -msgstr "حفظ و اغلاق" +msgstr "حفظ و إغلاق" #: editor/editor_node.cpp msgid "Save changes to '%s' before closing?" -msgstr "هل تريد حفظ التغييرات ل'%s' قبل الاغلاق؟" +msgstr "هل تريد حفظ التغييرات إلي'%s' قبل الإغلاق؟" #: editor/editor_node.cpp msgid "Save Scene As.." -msgstr "حفظ المشهد ك.." +msgstr "حفظ المشهد كـ.." #: editor/editor_node.cpp msgid "No" -msgstr "" +msgstr "لا" #: editor/editor_node.cpp msgid "Yes" -msgstr "" +msgstr "نعم" #: editor/editor_node.cpp msgid "This scene has never been saved. Save before running?" @@ -1613,51 +1634,56 @@ msgstr "هذا المشهد لم يتم حفظه. هل تود حفظه قبل ت #: editor/editor_node.cpp editor/scene_tree_dock.cpp msgid "This operation can't be done without a scene." -msgstr "" +msgstr "هذه العملية لا يمكن الإكتمال من غير مشهد." #: editor/editor_node.cpp msgid "Export Mesh Library" -msgstr "" +msgstr "تصدير مكتبة الأشكال" + +#: editor/editor_node.cpp +#, fuzzy +msgid "This operation can't be done without a root node." +msgstr "هذه العملية لا يمكن أن تتم من غير عقدة محددة." #: editor/editor_node.cpp msgid "Export Tile Set" -msgstr "" +msgstr "تصدير مجموعة الشبكة" #: editor/editor_node.cpp msgid "This operation can't be done without a selected node." -msgstr "" +msgstr "هذه العملية لا يمكن أن تتم من غير عقدة محددة." #: editor/editor_node.cpp msgid "Current scene not saved. Open anyway?" -msgstr "لم يتم حفظ المشهد الحالي. استمر بالفتح على اية حال؟" +msgstr "لم يتم حفظ المشهد الحالي. إفتحه علي أية حال؟" #: editor/editor_node.cpp msgid "Can't reload a scene that was never saved." -msgstr "لا يمكن اعادة تحميل مشهد لم يتم حفظه من قبل." +msgstr "لا يمكن إعادة تحميل مشهد لم يتم حفظه من قبل." #: editor/editor_node.cpp msgid "Revert" -msgstr "" +msgstr "إرجاع" #: editor/editor_node.cpp msgid "This action cannot be undone. Revert anyway?" -msgstr "" +msgstr "هذا الفعل لا يمكن إرجاعة. إرجاع علي أية حال؟" #: editor/editor_node.cpp msgid "Quick Run Scene.." -msgstr "" +msgstr "تشغيل مشهد بسرعة..." #: editor/editor_node.cpp msgid "Quit" -msgstr "" +msgstr "خروج" #: editor/editor_node.cpp msgid "Exit the editor?" -msgstr "" +msgstr "خروج من المُعدل؟" #: editor/editor_node.cpp msgid "Open Project Manager?" -msgstr "" +msgstr "فتح مدير المشروع؟" #: editor/editor_node.cpp msgid "Save & Quit" @@ -1678,14 +1704,16 @@ msgid "" "This option is deprecated. Situations where refresh must be forced are now " "considered a bug. Please report." msgstr "" +"هذا الإعداد مُعطل. الحالة حيث التحديث يجب أن يطبق بالقوة هي الأن تعتبر خطأ. " +"من فضلك أبلغ عن الخطأ." #: editor/editor_node.cpp msgid "Pick a Main Scene" -msgstr "" +msgstr "إختر المشهد الأساسي" #: editor/editor_node.cpp msgid "Unable to enable addon plugin at: '%s' parsing of config failed." -msgstr "" +msgstr "غير قادر علي تفعيل إضافة البرنامج المُساعد في: '%s' تحميل الظبط فشل." #: editor/editor_node.cpp msgid "Unable to find script field for addon plugin at: 'res://addons/%s'." @@ -1713,7 +1741,7 @@ msgstr "" #: editor/editor_node.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp msgid "Ugh" -msgstr "" +msgstr "آخخ" #: editor/editor_node.cpp msgid "" @@ -1749,11 +1777,20 @@ msgid "Switch Scene Tab" msgstr "" #: editor/editor_node.cpp -msgid "%d more file(s)" +msgid "%d more files or folders" msgstr "" #: editor/editor_node.cpp -msgid "%d more file(s) or folder(s)" +#, fuzzy +msgid "%d more folders" +msgstr "إذهب إلي المجلد السابق" + +#: editor/editor_node.cpp +msgid "%d more files" +msgstr "" + +#: editor/editor_node.cpp +msgid "Dock Position" msgstr "" #: editor/editor_node.cpp @@ -1765,6 +1802,11 @@ msgid "Toggle distraction-free mode." msgstr "" #: editor/editor_node.cpp +#, fuzzy +msgid "Add a new scene." +msgstr "أضف مسارات جديدة." + +#: editor/editor_node.cpp msgid "Scene" msgstr "" @@ -1829,13 +1871,12 @@ msgid "TileSet.." msgstr "" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp -#: scene/gui/text_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Undo" msgstr "" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp +#: scene/gui/line_edit.cpp msgid "Redo" msgstr "" @@ -2253,7 +2294,7 @@ msgstr "" #: editor/editor_run_script.cpp msgid "Write your logic in the _run() method." -msgstr "أكتب منطقك في الطريقة ()run_" +msgstr "أكتب منطقك في الطريقة ()run_." #: editor/editor_run_script.cpp msgid "There is an edited scene already." @@ -2316,6 +2357,11 @@ msgid "(Current)" msgstr "" #: editor/export_template_manager.cpp +#, fuzzy +msgid "Retrieving mirrors, please wait.." +msgstr "خطأ في الإتصال، من فضلك حاول مجدداً." + +#: editor/export_template_manager.cpp msgid "Remove template version '%s'?" msgstr "" @@ -2350,6 +2396,111 @@ msgid "Importing:" msgstr "" #: editor/export_template_manager.cpp +msgid "" +"No download links found for this version. Direct download is only available " +"for official releases." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't resolve." +msgstr "لا يمكن الحل." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't connect." +msgstr "لا يمكن إتمام الاتصال." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "No response." +msgstr "لا يوجد إستجابة." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Req. Failed." +msgstr "فشل الطلب." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Redirect Loop." +msgstr "اعادة توجيه حلقة التكرار." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Failed:" +msgstr "فشل:" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't write file." +msgstr "لا يمكن كتابة الملف:\n" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Download Complete." +msgstr "خطأ في التحميل" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Error requesting url: " +msgstr "خطأ في حفظ الأطلس:" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connecting to Mirror.." +msgstr "جاري الاتصال..." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Disconnected" +msgstr "قطع الاتصال" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Resolving" +msgstr "جاري الحل..." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't Resolve" +msgstr "لا يمكن الحل." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Connecting.." +msgstr "جاري الاتصال..." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't Conect" +msgstr "لا يمكن إتمام الاتصال." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connected" +msgstr "وصل" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Requesting.." +msgstr "جار الطلب..." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Downloading" +msgstr "خطأ في التحميل" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connection Error" +msgstr "جاري الاتصال..." + +#: editor/export_template_manager.cpp +msgid "SSL Handshake Error" +msgstr "" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "" @@ -2373,12 +2524,20 @@ msgstr "" msgid "Export Template Manager" msgstr "" +#: editor/export_template_manager.cpp +msgid "Download Templates" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Select mirror from list: " +msgstr "" + #: editor/file_type_cache.cpp msgid "Can't open file_type_cache.cch for writing, not saving file type cache!" msgstr "" #: editor/filesystem_dock.cpp -msgid "Cannot navigate to '" +msgid "Cannot navigate to '%s' as it has not been found in the file system!" msgstr "" #: editor/filesystem_dock.cpp @@ -2396,12 +2555,6 @@ msgid "" msgstr "" #: editor/filesystem_dock.cpp -msgid "" -"\n" -"Source: " -msgstr "" - -#: editor/filesystem_dock.cpp msgid "Cannot move/rename resources root." msgstr "" @@ -2663,8 +2816,7 @@ msgid "Remove Poly And Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." +msgid "Create a new polygon from scratch" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -2675,6 +2827,11 @@ msgid "" "RMB: Erase Point." msgstr "" +#: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy +msgid "Delete points" +msgstr "عملية تحريك" + #: editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" msgstr "" @@ -3009,18 +3166,10 @@ msgid "Can't resolve hostname:" msgstr "لا يمكن حل أسم المُضيف:" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't resolve." -msgstr "لا يمكن الحل." - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Connection error, please try again." msgstr "خطأ في الإتصال، من فضلك حاول مجدداً." #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't connect." -msgstr "لا يمكن إتمام الاتصال." - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Can't connect to host:" msgstr "لا يمكن الإتصال بالمُضيف:" @@ -3029,30 +3178,14 @@ msgid "No response from host:" msgstr "لا ردّ من المُضيف:" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "No response." -msgstr "لا يوجد إستجابة." - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, return code:" msgstr "فشل إتمام الطلب٫ الرمز الذي تم إرجاعه:" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Req. Failed." -msgstr "فشل الطلب." - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, too many redirects" msgstr "فشل الطلب٫ السبب هو اعادة التحويل مرات اكثر من اللازم" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Redirect Loop." -msgstr "اعادة توجيه حلقة التكرار." - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Failed:" -msgstr "فشل:" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Bad download hash, assuming file has been tampered with." msgstr "تجزئة تحميل سيئة، من المتوقع أن يكون الملف قد تم العبث به." @@ -3081,14 +3214,6 @@ msgid "Resolving.." msgstr "جاري الحل..." #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Connecting.." -msgstr "جاري الاتصال..." - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Requesting.." -msgstr "جار الطلب..." - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Error making request" msgstr "خطأ في إنشاء الطلب" @@ -3201,6 +3326,38 @@ msgid "Move Action" msgstr "عملية تحريك" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create new vertical guide" +msgstr "عمل اشتراك" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove vertical guide" +msgstr "إمسح المفاتيح الفاسدة" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move horizontal guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create new horizontal guide" +msgstr "عمل اشتراك" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove horizontal guide" +msgstr "إمسح المفاتيح الفاسدة" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new horizontal and vertical guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Edit IK Chain" msgstr "" @@ -3322,10 +3479,16 @@ msgid "Snap to other nodes" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snap to guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Lock the selected object in place (can't be moved)." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Unlock the selected object (can be moved)." msgstr "" @@ -3376,6 +3539,10 @@ msgid "Show rulers" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Show guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Selection" msgstr "" @@ -3564,6 +3731,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/gi_probe_editor_plugin.cpp +msgid "Bake GI Probe" +msgstr "" + #: editor/plugins/gradient_editor_plugin.cpp msgid "Add/Remove Color Ramp Point" msgstr "" @@ -3596,6 +3767,10 @@ msgid "Create Occluder Polygon" msgstr "" #: editor/plugins/light_occluder_2d_editor_plugin.cpp +msgid "Create a new polygon from scratch." +msgstr "" + +#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Edit existing polygon:" msgstr "" @@ -3611,58 +3786,6 @@ msgstr "" msgid "RMB: Erase Point." msgstr "" -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Remove Point from Line2D" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Add Point to Line2D" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Move Point in Line2D" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Select Points" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Shift+Drag: Select Control Points" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Click: Add Point" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Right Click: Delete Point" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Add Point (in empty space)" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Split Segment (in line)" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Delete Point" -msgstr "" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "" @@ -4061,16 +4184,46 @@ msgid "Move Out-Control in Curve" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Select Points" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Shift+Drag: Select Control Points" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Click: Add Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Right Click: Delete Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Select Control Points (Shift+Drag)" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Add Point (in empty space)" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Split Segment (in curve)" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Delete Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Close Curve" msgstr "" @@ -4211,7 +4364,6 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Paste" @@ -4256,6 +4408,21 @@ msgid " Class Reference" msgstr " مرجع الصنف" #: editor/plugins/script_editor_plugin.cpp +#, fuzzy +msgid "Sort" +msgstr "ترتيب:" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Up" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Down" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Next script" msgstr "" @@ -4307,6 +4474,10 @@ msgstr "" msgid "Close All" msgstr "" +#: editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "" @@ -4317,13 +4488,11 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find.." msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Next" msgstr "" @@ -4427,33 +4596,22 @@ msgstr "" msgid "Capitalize" msgstr "" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Copy" msgstr "" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Select All" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Up" -msgstr "" - -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Down" -msgstr "" - #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "" @@ -4475,6 +4633,23 @@ msgid "Clone Down" msgstr "" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Fold Line" +msgstr "إذهب إلي الخط" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold Line" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Fold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Complete Symbol" msgstr "" @@ -4520,12 +4695,10 @@ msgid "Convert To Lowercase" msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Previous" msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Replace.." msgstr "" @@ -4534,7 +4707,6 @@ msgid "Goto Function.." msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Goto Line.." msgstr "" @@ -4699,6 +4871,15 @@ msgid "View Plane Transform." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Scaling: " +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Translating: " +msgstr "تحول" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Rotating %s degrees." msgstr "" @@ -4779,6 +4960,10 @@ msgid "Vertices" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "FPS" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Align with view" msgstr "" @@ -4811,6 +4996,16 @@ msgid "View Information" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "View FPS" +msgstr "إظهار الملفات" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Half Resolution" +msgstr "تكبير المحدد" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Audio Listener" msgstr "" @@ -4938,6 +5133,11 @@ msgid "Tool Scale" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Toggle Freelook" +msgstr "أظهر المُفضلة" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Transform" msgstr "" @@ -5215,6 +5415,10 @@ msgid "Create Empty Editor Template" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Create From Current Editor Theme" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "CheckBox Radio1" msgstr "" @@ -5388,7 +5592,7 @@ msgid "Runnable" msgstr "" #: editor/project_export.cpp -msgid "Delete patch '" +msgid "Delete patch '%s' from list?" msgstr "" #: editor/project_export.cpp @@ -5684,10 +5888,6 @@ msgid "Add Input Action Event" msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Meta+" -msgstr "" - -#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp msgid "Shift+" msgstr "" @@ -5809,11 +6009,11 @@ msgid "Select a setting item first!" msgstr "" #: editor/project_settings_editor.cpp -msgid "No property '" +msgid "No property '%s' exists." msgstr "" #: editor/project_settings_editor.cpp -msgid "Setting '" +msgid "Setting '%s' is internal, and it can't be deleted." msgstr "" #: editor/project_settings_editor.cpp @@ -6285,6 +6485,15 @@ msgid "Clear a script for the selected node." msgstr "" #: editor/scene_tree_dock.cpp +#, fuzzy +msgid "Remote" +msgstr "إمسح" + +#: editor/scene_tree_dock.cpp +msgid "Local" +msgstr "" + +#: editor/scene_tree_dock.cpp msgid "Clear Inheritance? (No Undo!)" msgstr "" @@ -6470,6 +6679,11 @@ msgid "Attach Node Script" msgstr "" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Remote " +msgstr "إمسح" + +#: editor/script_editor_debugger.cpp msgid "Bytes:" msgstr "" @@ -6526,18 +6740,6 @@ msgid "Stack Trace (if applicable):" msgstr "" #: editor/script_editor_debugger.cpp -msgid "Remote Inspector" -msgstr "" - -#: editor/script_editor_debugger.cpp -msgid "Live Scene Tree:" -msgstr "" - -#: editor/script_editor_debugger.cpp -msgid "Remote Object Properties: " -msgstr "" - -#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -6669,7 +6871,7 @@ msgstr "" msgid "GDNative" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp #, fuzzy msgid "Invalid type argument to convert(), use TYPE_* constants." @@ -6677,7 +6879,7 @@ msgstr "" "صنف إحدى المتغيرات المدخلة (arguments) غير صحيح في ()convert . إستعمل ثابتة " "_*TYPE" -#: modules/gdscript/gd_functions.cpp modules/mono/glue/glue_header.h +#: modules/gdscript/gdscript_functions.cpp modules/mono/glue/glue_header.h #: modules/visual_script/visual_script_builtin_funcs.cpp #, fuzzy msgid "Not enough bytes for decoding bytes, or invalid format." @@ -6685,45 +6887,45 @@ msgstr "" "لا يوجد ما يكفي من البيتات (bytes) لفك تشيفرة البيتات أو بنيتها (format) غير " "صحيحة." -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "step argument is zero!" msgstr "الخطوة (المتغيرة المدخلة/argument) تساوي صفر !" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp #, fuzzy msgid "Not a script with an instance" msgstr "الشفرة (script) لا تملك نسخة." -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a script" msgstr "لا تستند الى شفرة مصدرية" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a resource file" msgstr "لا تستند على ملف مورد" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (missing @path)" msgstr "" "instance dictionary format نموذج الشكل القاموسي غير صالح - المسار مفقود" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (can't load script at @path)" msgstr "" "instance dictionary format نموذج الشكل القاموسي غير صالح - لا يمكن تحميل " "السكريبت من المسار" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (invalid script at @path)" msgstr "" "instance dictionary format نموذج الشكل القاموسي غير صالح - السكريبت في " "المسار غير صالح" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary (invalid subclasses)" msgstr "مجسّد القاموس غير صالح (أصناف فرعية غير صالحة)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Object can't provide a length." msgstr "" @@ -6736,15 +6938,23 @@ msgid "GridMap Duplicate Selection" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Floor:" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Grid Map" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Snap View" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Prev Level (%sDown Wheel)" +msgid "Previous Floor" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Next Level (%sUp Wheel)" +msgid "Next Floor" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp @@ -6812,12 +7022,9 @@ msgid "Erase Area" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Selection -> Duplicate" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Selection -> Clear" -msgstr "" +#, fuzzy +msgid "Clear Selection" +msgstr "تكبير المحدد" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Settings" @@ -6938,7 +7145,7 @@ msgid "Duplicate VisualScript Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Getter. Hold Shift to drop a generic signature." +msgid "Hold %s to drop a Getter. Hold Shift to drop a generic signature." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -6946,7 +7153,7 @@ msgid "Hold Ctrl to drop a Getter. Hold Shift to drop a generic signature." msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a simple reference to the node." +msgid "Hold %s to drop a simple reference to the node." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -6954,7 +7161,7 @@ msgid "Hold Ctrl to drop a simple reference to the node." msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Variable Setter." +msgid "Hold %s to drop a Variable Setter." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -7182,12 +7389,22 @@ msgid "Could not write file:\n" msgstr "لا يمكن كتابة الملف:\n" #: platform/javascript/export/export.cpp -msgid "Could not read file:\n" +msgid "Could not open template for export:\n" +msgstr "لا يمكن فتح القالب من أجل التصدير.\n" + +#: platform/javascript/export/export.cpp +msgid "Invalid export template:\n" +msgstr "" + +#: platform/javascript/export/export.cpp +#, fuzzy +msgid "Could not read custom HTML shell:\n" msgstr "لا يمكن قرأة الملف:\n" #: platform/javascript/export/export.cpp -msgid "Could not open template for export:\n" -msgstr "لا يمكن فتح القالب من أجل التصدير.\n" +#, fuzzy +msgid "Could not read boot splash image file:\n" +msgstr "لا يمكن قرأة الملف:\n" #: scene/2d/animated_sprite.cpp msgid "" @@ -7282,18 +7499,6 @@ msgstr "" msgid "Path property must point to a valid Node2D node to work." 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 " @@ -7352,6 +7557,14 @@ msgid "" "shape resource for it!" msgstr "" +#: scene/3d/gi_probe.cpp +msgid "Plotting Meshes" +msgstr "" + +#: scene/3d/gi_probe.cpp +msgid "Finishing Plot" +msgstr "" + #: scene/3d/navigation_mesh.cpp msgid "A NavigationMesh resource must be set or created for this node to work." msgstr "" @@ -7429,6 +7642,10 @@ msgid "" "minimum size manually." msgstr "" +#: scene/gui/tree.cpp +msgid "(Other)" +msgstr "" + #: scene/main/scene_tree.cpp msgid "" "Default Environment as specified in Project Setings (Rendering -> Viewport -" @@ -7474,9 +7691,6 @@ msgstr "" #~ msgid "Removed:" #~ msgstr "مُسِح:" -#~ msgid "Error saving atlas:" -#~ msgstr "خطأ في حفظ الأطلس:" - #~ msgid "Could not save atlas subtexture:" #~ msgstr "لا يمكن حفظ النسيج الفرعي للأطلس:" diff --git a/editor/translations/bg.po b/editor/translations/bg.po index 21e2b4f27d..abf2efb0b4 100644 --- a/editor/translations/bg.po +++ b/editor/translations/bg.po @@ -100,6 +100,7 @@ msgid "Anim Delete Keys" msgstr "" #: editor/animation_editor.cpp editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Duplicate Selection" msgstr "" @@ -629,6 +630,13 @@ msgstr "" msgid "Search Replacement Resource:" msgstr "" +#: editor/dependency_editor.cpp editor/editor_file_dialog.cpp +#: editor/editor_help.cpp editor/editor_node.cpp editor/filesystem_dock.cpp +#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp +#: editor/quick_open.cpp scene/gui/file_dialog.cpp +msgid "Open" +msgstr "" + #: editor/dependency_editor.cpp msgid "Owners Of:" msgstr "" @@ -699,6 +707,14 @@ msgstr "" msgid "Delete" msgstr "" +#: editor/dictionary_property_edit.cpp +msgid "Change Dictionary Key" +msgstr "" + +#: editor/dictionary_property_edit.cpp +msgid "Change Dictionary Value" +msgstr "" + #: editor/editor_about.cpp msgid "Thanks from the Godot community!" msgstr "" @@ -1122,12 +1138,6 @@ msgstr "" msgid "All Files (*)" msgstr "" -#: editor/editor_file_dialog.cpp editor/editor_help.cpp editor/editor_node.cpp -#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_selector.cpp editor/quick_open.cpp scene/gui/file_dialog.cpp -msgid "Open" -msgstr "" - #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Open a File" msgstr "" @@ -1489,6 +1499,13 @@ msgid "" msgstr "" #: editor/editor_node.cpp +msgid "" +"This is a remote object so changes to it will not be kept.\n" +"Please read the documentation relevant to debugging to better understand " +"this workflow." +msgstr "" + +#: editor/editor_node.cpp msgid "Copy Params" msgstr "" @@ -1600,6 +1617,10 @@ msgid "Export Mesh Library" msgstr "" #: editor/editor_node.cpp +msgid "This operation can't be done without a root node." +msgstr "" + +#: editor/editor_node.cpp msgid "Export Tile Set" msgstr "" @@ -1729,11 +1750,20 @@ msgid "Switch Scene Tab" msgstr "" #: editor/editor_node.cpp -msgid "%d more file(s)" +msgid "%d more files or folders" +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "%d more folders" +msgstr "Неуспешно създаване на папка." + +#: editor/editor_node.cpp +msgid "%d more files" msgstr "" #: editor/editor_node.cpp -msgid "%d more file(s) or folder(s)" +msgid "Dock Position" msgstr "" #: editor/editor_node.cpp @@ -1745,6 +1775,11 @@ msgid "Toggle distraction-free mode." msgstr "" #: editor/editor_node.cpp +#, fuzzy +msgid "Add a new scene." +msgstr "Добавяне на нови пътечки." + +#: editor/editor_node.cpp msgid "Scene" msgstr "Сцена" @@ -1809,13 +1844,12 @@ msgid "TileSet.." msgstr "" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp -#: scene/gui/text_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Undo" msgstr "" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp +#: scene/gui/line_edit.cpp msgid "Redo" msgstr "" @@ -2298,6 +2332,10 @@ msgid "(Current)" msgstr "" #: editor/export_template_manager.cpp +msgid "Retrieving mirrors, please wait.." +msgstr "" + +#: editor/export_template_manager.cpp msgid "Remove template version '%s'?" msgstr "" @@ -2333,6 +2371,106 @@ msgid "Importing:" msgstr "Внасяне:" #: editor/export_template_manager.cpp +msgid "" +"No download links found for this version. Direct download is only available " +"for official releases." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't resolve." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't connect." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "No response." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Req. Failed." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Redirect Loop." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Failed:" +msgstr "" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't write file." +msgstr "Неуспешно създаване на папка." + +#: editor/export_template_manager.cpp +msgid "Download Complete." +msgstr "" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Error requesting url: " +msgstr "Имаше грешка при внасянето:" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connecting to Mirror.." +msgstr "Свързване.." + +#: editor/export_template_manager.cpp +msgid "Disconnected" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Resolving" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Can't Resolve" +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Connecting.." +msgstr "Свързване.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't Conect" +msgstr "Създаване на нов проект" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connected" +msgstr "Изрязване на възелите" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Requesting.." +msgstr "Запитване.." + +#: editor/export_template_manager.cpp +msgid "Downloading" +msgstr "" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connection Error" +msgstr "Свързване.." + +#: editor/export_template_manager.cpp +msgid "SSL Handshake Error" +msgstr "" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "" @@ -2358,12 +2496,21 @@ msgstr "Избиране на всичко" msgid "Export Template Manager" msgstr "" +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Download Templates" +msgstr "Шаблони" + +#: editor/export_template_manager.cpp +msgid "Select mirror from list: " +msgstr "" + #: editor/file_type_cache.cpp msgid "Can't open file_type_cache.cch for writing, not saving file type cache!" msgstr "" #: editor/filesystem_dock.cpp -msgid "Cannot navigate to '" +msgid "Cannot navigate to '%s' as it has not been found in the file system!" msgstr "" #: editor/filesystem_dock.cpp @@ -2381,12 +2528,6 @@ msgid "" msgstr "" #: editor/filesystem_dock.cpp -msgid "" -"\n" -"Source: " -msgstr "" - -#: editor/filesystem_dock.cpp msgid "Cannot move/rename resources root." msgstr "" @@ -2652,8 +2793,7 @@ msgid "Remove Poly And Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." +msgid "Create a new polygon from scratch" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -2664,6 +2804,11 @@ msgid "" "RMB: Erase Point." msgstr "" +#: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy +msgid "Delete points" +msgstr "Изтриване на анимацията?" + #: editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" msgstr "" @@ -2999,18 +3144,10 @@ msgid "Can't resolve hostname:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't resolve." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Connection error, please try again." msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't connect." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Can't connect to host:" msgstr "" @@ -3019,30 +3156,14 @@ msgid "No response from host:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "No response." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, return code:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Req. Failed." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, too many redirects" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Redirect Loop." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Failed:" -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Bad download hash, assuming file has been tampered with." msgstr "" @@ -3071,14 +3192,6 @@ msgid "Resolving.." msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Connecting.." -msgstr "Свързване.." - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Requesting.." -msgstr "Запитване.." - -#: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy msgid "Error making request" msgstr "Имаше грешка при зареждане на сцената." @@ -3192,6 +3305,36 @@ msgid "Move Action" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create new vertical guide" +msgstr "Създаване на нов скрипт" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Remove vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move horizontal guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create new horizontal guide" +msgstr "Създаване на нов скрипт" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Remove horizontal guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new horizontal and vertical guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Edit IK Chain" msgstr "" @@ -3313,10 +3456,16 @@ msgid "Snap to other nodes" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snap to guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Lock the selected object in place (can't be moved)." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Unlock the selected object (can be moved)." msgstr "" @@ -3367,6 +3516,10 @@ msgid "Show rulers" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Show guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Selection" msgstr "" @@ -3552,6 +3705,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/gi_probe_editor_plugin.cpp +msgid "Bake GI Probe" +msgstr "" + #: editor/plugins/gradient_editor_plugin.cpp msgid "Add/Remove Color Ramp Point" msgstr "" @@ -3584,6 +3741,10 @@ msgid "Create Occluder Polygon" msgstr "" #: editor/plugins/light_occluder_2d_editor_plugin.cpp +msgid "Create a new polygon from scratch." +msgstr "" + +#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Edit existing polygon:" msgstr "" @@ -3599,58 +3760,6 @@ msgstr "" msgid "RMB: Erase Point." msgstr "" -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Remove Point from Line2D" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Add Point to Line2D" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Move Point in Line2D" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Select Points" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Shift+Drag: Select Control Points" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Click: Add Point" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Right Click: Delete Point" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Add Point (in empty space)" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Split Segment (in line)" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Delete Point" -msgstr "" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "" @@ -4048,16 +4157,46 @@ msgid "Move Out-Control in Curve" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Select Points" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Shift+Drag: Select Control Points" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Click: Add Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Right Click: Delete Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Select Control Points (Shift+Drag)" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Add Point (in empty space)" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Split Segment (in curve)" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Delete Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Close Curve" msgstr "" @@ -4194,7 +4333,6 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Paste" @@ -4239,6 +4377,21 @@ msgid " Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#, fuzzy +msgid "Sort" +msgstr "Подреждане:" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Up" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Down" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Next script" msgstr "" @@ -4290,6 +4443,10 @@ msgstr "" msgid "Close All" msgstr "Затваряне на всичко" +#: editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "Пускане" @@ -4300,13 +4457,11 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find.." msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Next" msgstr "" @@ -4410,33 +4565,22 @@ msgstr "" msgid "Capitalize" msgstr "" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" msgstr "Изрязване" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Copy" msgstr "Копиране" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Select All" msgstr "Избиране на всичко" -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Up" -msgstr "" - -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Down" -msgstr "" - #: editor/plugins/script_text_editor.cpp #, fuzzy msgid "Delete Line" @@ -4459,6 +4603,23 @@ msgid "Clone Down" msgstr "" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Fold Line" +msgstr "Изтриване на анимацията?" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold Line" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Fold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Complete Symbol" msgstr "" @@ -4504,12 +4665,10 @@ msgid "Convert To Lowercase" msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Previous" msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Replace.." msgstr "" @@ -4518,7 +4677,6 @@ msgid "Goto Function.." msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Goto Line.." msgstr "" @@ -4683,6 +4841,15 @@ msgid "View Plane Transform." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Scaling: " +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Translating: " +msgstr "Добавяне на превод" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Rotating %s degrees." msgstr "" @@ -4763,6 +4930,10 @@ msgid "Vertices" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "FPS" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Align with view" msgstr "" @@ -4795,6 +4966,15 @@ msgid "View Information" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "View FPS" +msgstr "Преглед на файловете" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Half Resolution" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Audio Listener" msgstr "" @@ -4924,6 +5104,10 @@ msgid "Tool Scale" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Toggle Freelook" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Transform" msgstr "" @@ -5200,6 +5384,10 @@ msgid "Create Empty Editor Template" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Create From Current Editor Theme" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "CheckBox Radio1" msgstr "" @@ -5374,7 +5562,7 @@ msgid "Runnable" msgstr "" #: editor/project_export.cpp -msgid "Delete patch '" +msgid "Delete patch '%s' from list?" msgstr "" #: editor/project_export.cpp @@ -5673,10 +5861,6 @@ msgid "Add Input Action Event" msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Meta+" -msgstr "" - -#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp msgid "Shift+" msgstr "" @@ -5798,13 +5982,12 @@ msgid "Select a setting item first!" msgstr "" #: editor/project_settings_editor.cpp -msgid "No property '" +msgid "No property '%s' exists." msgstr "" #: editor/project_settings_editor.cpp -#, fuzzy -msgid "Setting '" -msgstr "Настройки" +msgid "Setting '%s' is internal, and it can't be deleted." +msgstr "" #: editor/project_settings_editor.cpp msgid "Delete Item" @@ -6278,6 +6461,15 @@ msgid "Clear a script for the selected node." msgstr "" #: editor/scene_tree_dock.cpp +#, fuzzy +msgid "Remote" +msgstr "Затваряне на всичко" + +#: editor/scene_tree_dock.cpp +msgid "Local" +msgstr "" + +#: editor/scene_tree_dock.cpp msgid "Clear Inheritance? (No Undo!)" msgstr "" @@ -6466,6 +6658,11 @@ msgid "Attach Node Script" msgstr "Нова сцена" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Remote " +msgstr "Затваряне на всичко" + +#: editor/script_editor_debugger.cpp msgid "Bytes:" msgstr "" @@ -6522,18 +6719,6 @@ msgid "Stack Trace (if applicable):" msgstr "" #: editor/script_editor_debugger.cpp -msgid "Remote Inspector" -msgstr "" - -#: editor/script_editor_debugger.cpp -msgid "Live Scene Tree:" -msgstr "" - -#: editor/script_editor_debugger.cpp -msgid "Remote Object Properties: " -msgstr "" - -#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -6666,59 +6851,59 @@ msgstr "" msgid "GDNative" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Invalid type argument to convert(), use TYPE_* constants." msgstr "" "Невалиден агрумент тип на convert(), използвайте константите започващи с " "TYPE_*." -#: modules/gdscript/gd_functions.cpp modules/mono/glue/glue_header.h +#: modules/gdscript/gdscript_functions.cpp modules/mono/glue/glue_header.h #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Not enough bytes for decoding bytes, or invalid format." msgstr "Недостатъчно байтове за разкодиране или недействителен формат." -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "step argument is zero!" msgstr "Стъпката на range() е нула!" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp #, fuzzy msgid "Not a script with an instance" msgstr "Скриптът няма инстанция" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp #, fuzzy msgid "Not based on a script" msgstr "Обектът не е базиран на скрипт" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp #, fuzzy msgid "Not based on a resource file" msgstr "Обектът не е базиран на ресурсен файл" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp #, fuzzy msgid "Invalid instance dictionary format (missing @path)" msgstr "Невалиден формат на инстанцията в речника (липсва @path)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (can't load script at @path)" msgstr "" "Невалиден формат на инстанцията в речника (скриптът в @path не може да бъде " "зареден)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (invalid script at @path)" msgstr "" "Невалиден формат на инстанцията в речника (скриптът в @path е невалиден)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp #, fuzzy msgid "Invalid instance dictionary (invalid subclasses)" msgstr "Невалиден формат на инстанцията в речника (невалиден подклас)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Object can't provide a length." msgstr "" @@ -6731,15 +6916,24 @@ msgid "GridMap Duplicate Selection" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Snap View" +msgid "Floor:" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Grid Map" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Prev Level (%sDown Wheel)" +msgid "Snap View" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Next Level (%sUp Wheel)" +#, fuzzy +msgid "Previous Floor" +msgstr "Предишен подпрозорец" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Next Floor" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp @@ -6810,12 +7004,9 @@ msgid "Erase Area" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Selection -> Duplicate" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Selection -> Clear" -msgstr "" +#, fuzzy +msgid "Clear Selection" +msgstr "Нова сцена" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy @@ -6937,7 +7128,7 @@ msgid "Duplicate VisualScript Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Getter. Hold Shift to drop a generic signature." +msgid "Hold %s to drop a Getter. Hold Shift to drop a generic signature." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -6945,7 +7136,7 @@ msgid "Hold Ctrl to drop a Getter. Hold Shift to drop a generic signature." msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a simple reference to the node." +msgid "Hold %s to drop a simple reference to the node." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -6953,7 +7144,7 @@ msgid "Hold Ctrl to drop a simple reference to the node." msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Variable Setter." +msgid "Hold %s to drop a Variable Setter." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -7185,12 +7376,21 @@ msgstr "Неуспешно създаване на папка." #: platform/javascript/export/export.cpp #, fuzzy -msgid "Could not read file:\n" +msgid "Could not open template for export:\n" msgstr "Неуспешно създаване на папка." #: platform/javascript/export/export.cpp +msgid "Invalid export template:\n" +msgstr "" + +#: platform/javascript/export/export.cpp #, fuzzy -msgid "Could not open template for export:\n" +msgid "Could not read custom HTML shell:\n" +msgstr "Неуспешно създаване на папка." + +#: platform/javascript/export/export.cpp +#, fuzzy +msgid "Could not read boot splash image file:\n" msgstr "Неуспешно създаване на папка." #: scene/2d/animated_sprite.cpp @@ -7306,20 +7506,6 @@ msgstr "" "Параметърът 'Path' трябва да сочи към действителен възел Node2D, за да " "работи." -#: 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 " @@ -7378,6 +7564,14 @@ msgid "" "shape resource for it!" msgstr "" +#: scene/3d/gi_probe.cpp +msgid "Plotting Meshes" +msgstr "" + +#: scene/3d/gi_probe.cpp +msgid "Finishing Plot" +msgstr "" + #: scene/3d/navigation_mesh.cpp msgid "A NavigationMesh resource must be set or created for this node to work." msgstr "" @@ -7458,6 +7652,10 @@ msgid "" "minimum size manually." msgstr "" +#: scene/gui/tree.cpp +msgid "(Other)" +msgstr "" + #: scene/main/scene_tree.cpp msgid "" "Default Environment as specified in Project Setings (Rendering -> Viewport -" @@ -7488,6 +7686,18 @@ msgstr "Грешка при зареждането на шрифта." msgid "Invalid font size." msgstr "" +#, fuzzy +#~ msgid "Setting '" +#~ msgstr "Настройки" + +#~ 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)." + #~ msgid "Exporting for %s" #~ msgstr "Изнасяне за %s" @@ -7529,9 +7739,6 @@ msgstr "" #~ msgid "Import Image:" #~ msgstr "Внасяне на изображение:" -#~ msgid "Error importing:" -#~ msgstr "Имаше грешка при внасянето:" - #~ msgid "Import Textures for Atlas (2D)" #~ msgstr "Внасяне на текстури за Атлас (двуизмерно)" diff --git a/editor/translations/bn.po b/editor/translations/bn.po index 3e93381dcd..624eeef44a 100644 --- a/editor/translations/bn.po +++ b/editor/translations/bn.po @@ -101,6 +101,7 @@ msgid "Anim Delete Keys" msgstr "অ্যানিমেশনের (Anim) চাবিগুলো অপসারণ করুন" #: editor/animation_editor.cpp editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Duplicate Selection" msgstr "নির্বাচিত সমূহ অনুলিপি করুন" @@ -638,6 +639,13 @@ msgstr "নির্ভরতা-সমূহের এডিটর" msgid "Search Replacement Resource:" msgstr "প্রতিস্থাপক রিসোর্স-এর অনুসন্ধান করুন:" +#: editor/dependency_editor.cpp editor/editor_file_dialog.cpp +#: editor/editor_help.cpp editor/editor_node.cpp editor/filesystem_dock.cpp +#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp +#: editor/quick_open.cpp scene/gui/file_dialog.cpp +msgid "Open" +msgstr "খুলুন" + #: editor/dependency_editor.cpp msgid "Owners Of:" msgstr "স্বত্বাধিকারীসমূহ:" @@ -711,6 +719,16 @@ msgstr "নির্বাচিত ফাইলসমূহ অপসারণ msgid "Delete" msgstr "অপসারণ করুন" +#: editor/dictionary_property_edit.cpp +#, fuzzy +msgid "Change Dictionary Key" +msgstr "অ্যানিমেশনের নাম পরিবর্তন করুন:" + +#: editor/dictionary_property_edit.cpp +#, fuzzy +msgid "Change Dictionary Value" +msgstr "শ্রেণীবিন্যাস/সারির মান পরিবর্তন করুন" + #: editor/editor_about.cpp msgid "Thanks from the Godot community!" msgstr "Godot কমিউনিটি হতে আপনাকে ধন্যবাদ!" @@ -1159,12 +1177,6 @@ msgstr "সব ফাইল পরিচিতি সম্পন্ন" msgid "All Files (*)" msgstr "সব ফাইল (*)" -#: editor/editor_file_dialog.cpp editor/editor_help.cpp editor/editor_node.cpp -#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_selector.cpp editor/quick_open.cpp scene/gui/file_dialog.cpp -msgid "Open" -msgstr "খুলুন" - #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Open a File" msgstr "একটি ফাইল খুলুন" @@ -1536,6 +1548,13 @@ msgid "" msgstr "" #: editor/editor_node.cpp +msgid "" +"This is a remote object so changes to it will not be kept.\n" +"Please read the documentation relevant to debugging to better understand " +"this workflow." +msgstr "" + +#: editor/editor_node.cpp msgid "Copy Params" msgstr "মানসমূহ প্রতিলিপি/কপি করুন" @@ -1659,6 +1678,11 @@ msgid "Export Mesh Library" msgstr "Mesh Library এক্সপোর্ট করুন" #: editor/editor_node.cpp +#, fuzzy +msgid "This operation can't be done without a root node." +msgstr "দৃশ্য ছাড়া এটি করা সম্ভব হবে না।" + +#: editor/editor_node.cpp msgid "Export Tile Set" msgstr "Tile Set এক্সপোর্ট করুন" @@ -1791,12 +1815,23 @@ msgid "Switch Scene Tab" msgstr "দৃশ্যের ট্যাব পরিবর্তন করুন" #: editor/editor_node.cpp -msgid "%d more file(s)" +#, fuzzy +msgid "%d more files or folders" +msgstr "%d টি অধিক ফাইল(সমূহ) বা ফোল্ডার(সমূহ)" + +#: editor/editor_node.cpp +#, fuzzy +msgid "%d more folders" msgstr "%d টি অধিক ফাইল(সমূহ)" #: editor/editor_node.cpp -msgid "%d more file(s) or folder(s)" -msgstr "%d টি অধিক ফাইল(সমূহ) বা ফোল্ডার(সমূহ)" +#, fuzzy +msgid "%d more files" +msgstr "%d টি অধিক ফাইল(সমূহ)" + +#: editor/editor_node.cpp +msgid "Dock Position" +msgstr "" #: editor/editor_node.cpp msgid "Distraction Free Mode" @@ -1808,6 +1843,11 @@ msgid "Toggle distraction-free mode." msgstr "বিক্ষেপ-হীন মোড" #: editor/editor_node.cpp +#, fuzzy +msgid "Add a new scene." +msgstr "নতুন ট্র্যাক/পথ-সমূহ যোগ করুন।" + +#: editor/editor_node.cpp msgid "Scene" msgstr "দৃশ্য" @@ -1873,13 +1913,12 @@ msgid "TileSet.." msgstr "TileSet (টাইল-সেট).." #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp -#: scene/gui/text_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Undo" msgstr "সাবেক অবস্থায় যান/আনডু" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp +#: scene/gui/line_edit.cpp msgid "Redo" msgstr "পুনরায় করুন" @@ -2399,6 +2438,10 @@ msgid "(Current)" msgstr "বর্তমান:" #: editor/export_template_manager.cpp +msgid "Retrieving mirrors, please wait.." +msgstr "" + +#: editor/export_template_manager.cpp msgid "Remove template version '%s'?" msgstr "" @@ -2435,6 +2478,114 @@ msgid "Importing:" msgstr "ইম্পোর্ট হচ্ছে:" #: editor/export_template_manager.cpp +msgid "" +"No download links found for this version. Direct download is only available " +"for official releases." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't resolve." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#, fuzzy +msgid "Can't connect." +msgstr "সংযোগ.." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "No response." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Req. Failed." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Redirect Loop." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Failed:" +msgstr "" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't write file." +msgstr "টাইলটি খুঁজে পাওয়া যায়নি:" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Download Complete." +msgstr "নীচে" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Error requesting url: " +msgstr "এটলাস/মানচিত্রাবলী সংরক্ষণে সমস্যা হয়েছে:" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connecting to Mirror.." +msgstr "সংযোগ.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Disconnected" +msgstr "সংযোগ বিচ্ছিন্ন করুন" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Resolving" +msgstr "সংরক্ষিত হচ্ছে.." + +#: editor/export_template_manager.cpp +msgid "Can't Resolve" +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#, fuzzy +msgid "Connecting.." +msgstr "সংযোগ.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't Conect" +msgstr "সংযোগ.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connected" +msgstr "সংযোগ" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#, fuzzy +msgid "Requesting.." +msgstr "পরীক্ষামূলক উৎস" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Downloading" +msgstr "নীচে" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connection Error" +msgstr "সংযোগ.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "SSL Handshake Error" +msgstr "ভুল/সমস্যা-সমূহ লোড করুন" + +#: editor/export_template_manager.cpp #, fuzzy msgid "Current Version:" msgstr "বর্তমান দৃশ্য" @@ -2464,6 +2615,15 @@ msgstr "নির্বাচিত ফাইলসমূহ অপসারণ msgid "Export Template Manager" msgstr "এক্সপোর্ট টেমপ্লেটসমূহ লোড হচ্ছে" +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Download Templates" +msgstr "বস্তু অপসারণ করুন" + +#: editor/export_template_manager.cpp +msgid "Select mirror from list: " +msgstr "" + #: editor/file_type_cache.cpp msgid "Can't open file_type_cache.cch for writing, not saving file type cache!" msgstr "" @@ -2471,7 +2631,7 @@ msgstr "" "সংরক্ষিত হচ্ছে না!" #: editor/filesystem_dock.cpp -msgid "Cannot navigate to '" +msgid "Cannot navigate to '%s' as it has not been found in the file system!" msgstr "" #: editor/filesystem_dock.cpp @@ -2490,13 +2650,6 @@ msgstr "" #: editor/filesystem_dock.cpp #, fuzzy -msgid "" -"\n" -"Source: " -msgstr "উৎস:" - -#: editor/filesystem_dock.cpp -#, fuzzy msgid "Cannot move/rename resources root." msgstr "ফন্টের উৎস লোড/প্রসেস করা সম্ভব হচ্ছে না।" @@ -2772,8 +2925,8 @@ msgid "Remove Poly And Point" msgstr "পলি এবং বিন্দু অপসারণ করুন" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." +#, fuzzy +msgid "Create a new polygon from scratch" msgstr "আরম্ভ হতে নতুন polygon তৈরি করুন।" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -2784,6 +2937,11 @@ msgid "" "RMB: Erase Point." msgstr "" +#: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy +msgid "Delete points" +msgstr "বিন্দু অপসারণ করুন" + #: editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" msgstr "স্বয়ংক্রিয়ভাবে চালানো টগল করুন" @@ -3122,20 +3280,11 @@ msgid "Can't resolve hostname:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't resolve." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Connection error, please try again." msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy -msgid "Can't connect." -msgstr "সংযোগ.." - -#: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Can't connect to host:" msgstr "নোডের সাথে সংযুক্ত করুন:" @@ -3144,31 +3293,15 @@ msgid "No response from host:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "No response." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy msgid "Request failed, return code:" msgstr "আবেদনকৃত ফাইল ফরম্যাট/ধরণ অজানা:" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Req. Failed." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, too many redirects" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Redirect Loop." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Failed:" -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Bad download hash, assuming file has been tampered with." msgstr "" @@ -3199,16 +3332,6 @@ msgstr "সংরক্ষিত হচ্ছে.." #: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy -msgid "Connecting.." -msgstr "সংযোগ.." - -#: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy -msgid "Requesting.." -msgstr "পরীক্ষামূলক উৎস" - -#: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Error making request" msgstr "রিসোর্স সংরক্ষণে সমস্যা হয়েছে!" @@ -3322,6 +3445,39 @@ msgid "Move Action" msgstr "প্রক্রিয়া স্থানান্তর করুন" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create new vertical guide" +msgstr "নতুন স্ক্রিপ্ট তৈরি করুন" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove vertical guide" +msgstr "চলক/ভেরিয়েবল অপসারণ করুন" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Move horizontal guide" +msgstr "বক্ররেখায় বিন্দু সরান" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create new horizontal guide" +msgstr "নতুন স্ক্রিপ্ট তৈরি করুন" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove horizontal guide" +msgstr "অগ্রহনযোগ্য চাবিসমূহ অপসারণ করুন" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new horizontal and vertical guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Edit IK Chain" msgstr "IK চেইন সম্পাদন করুন" @@ -3451,10 +3607,17 @@ msgid "Snap to other nodes" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Snap to guides" +msgstr "স্ন্যাপ মোড:" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Lock the selected object in place (can't be moved)." msgstr "নির্বাচিত বস্তুটিকে এই স্থানে আটকিয়ে রাখুন (সরানো সম্ভব হবেনা)।" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Unlock the selected object (can be moved)." msgstr "নির্বাচিত বস্তুটিকে মুক্ত করুন (সরানো সম্ভব হবে)।" @@ -3507,6 +3670,11 @@ msgid "Show rulers" msgstr "বোন্/হাড় দেখান" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Show guides" +msgstr "বোন্/হাড় দেখান" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Selection" msgstr "নির্বাচনকে কেন্দ্রীভূত করুন" @@ -3706,6 +3874,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/gi_probe_editor_plugin.cpp +msgid "Bake GI Probe" +msgstr "" + #: editor/plugins/gradient_editor_plugin.cpp msgid "Add/Remove Color Ramp Point" msgstr "রঙ্গের র্যাম্প বিন্দু সংযোজন/বিয়োজন করুন" @@ -3738,6 +3910,10 @@ msgid "Create Occluder Polygon" msgstr "অকলুডার (occluder) পলিগন তৈরি করুন" #: editor/plugins/light_occluder_2d_editor_plugin.cpp +msgid "Create a new polygon from scratch." +msgstr "আরম্ভ হতে নতুন polygon তৈরি করুন।" + +#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Edit existing polygon:" msgstr "বিদ্যমান পলিগন সম্পাদন করুন:" @@ -3753,62 +3929,6 @@ msgstr "কন্ট্রোল + মাউসের বাম বোতাম: msgid "RMB: Erase Point." msgstr "মাউসের ডান বোতাম: বিন্দু মুছে ফেলুন।" -#: editor/plugins/line_2d_editor_plugin.cpp -#, fuzzy -msgid "Remove Point from Line2D" -msgstr "বক্ররেখা হতে বিন্দু অপসারণ করুন" - -#: editor/plugins/line_2d_editor_plugin.cpp -#, fuzzy -msgid "Add Point to Line2D" -msgstr "বক্ররেখায় বিন্দু যোগ করুন" - -#: editor/plugins/line_2d_editor_plugin.cpp -#, fuzzy -msgid "Move Point in Line2D" -msgstr "বক্ররেখায় বিন্দু সরান" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Select Points" -msgstr "বিন্দুসমূহ নির্বাচন করুন" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Shift+Drag: Select Control Points" -msgstr "শিফট + টান: নিয়ন্ত্রণ বিন্দুসমূহ নির্বাচন করুন" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Click: Add Point" -msgstr "ক্লিক: বিন্দু যোগ করুন" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Right Click: Delete Point" -msgstr "ডান ক্লিক: বিন্দু অপসারণ করুন" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Add Point (in empty space)" -msgstr "বিন্দু যোগ করুন (শূন্যস্থানে)" - -#: editor/plugins/line_2d_editor_plugin.cpp -#, fuzzy -msgid "Split Segment (in line)" -msgstr "অংশ বিভক্ত করুন (বক্ররেখায়)" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Delete Point" -msgstr "বিন্দু অপসারণ করুন" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "মেসটি খালি!" @@ -4229,16 +4349,46 @@ msgid "Move Out-Control in Curve" msgstr "বক্ররেখা বহিঃ-নিয়ন্ত্রণে সরান" #: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Select Points" +msgstr "বিন্দুসমূহ নির্বাচন করুন" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Shift+Drag: Select Control Points" +msgstr "শিফট + টান: নিয়ন্ত্রণ বিন্দুসমূহ নির্বাচন করুন" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Click: Add Point" +msgstr "ক্লিক: বিন্দু যোগ করুন" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Right Click: Delete Point" +msgstr "ডান ক্লিক: বিন্দু অপসারণ করুন" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Select Control Points (Shift+Drag)" msgstr "নিয়ন্ত্রণ বিন্দুসমূহ নির্বাচন করুন (শিফট + টান)" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Add Point (in empty space)" +msgstr "বিন্দু যোগ করুন (শূন্যস্থানে)" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Split Segment (in curve)" msgstr "অংশ বিভক্ত করুন (বক্ররেখায়)" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Delete Point" +msgstr "বিন্দু অপসারণ করুন" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Close Curve" msgstr "বক্ররেখা বন্ধ করুন" @@ -4380,7 +4530,6 @@ msgstr "রিসোর্স লোড করুন" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Paste" @@ -4426,6 +4575,21 @@ msgid " Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#, fuzzy +msgid "Sort" +msgstr "সাজান:" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Up" +msgstr "উপরে যান" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Down" +msgstr "নীচে যান" + +#: editor/plugins/script_editor_plugin.cpp msgid "Next script" msgstr "পরবর্তী স্ক্রিপ্ট" @@ -4477,6 +4641,10 @@ msgstr "ডকুমেন্টসমূহ বন্ধ করুন" msgid "Close All" msgstr "সবগুলি বন্ধ করুন" +#: editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "চালান" @@ -4488,13 +4656,11 @@ msgstr "ফেবরিট/প্রিয়-সমূহ অদলবদল/ #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find.." msgstr "খুঁজুন.." #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Next" msgstr "পরবর্তী খুঁজুন" @@ -4604,33 +4770,22 @@ msgstr "" msgid "Capitalize" msgstr "" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" msgstr "কর্তন/কাট করুন" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Copy" msgstr "প্রতিলিপি/কপি করুন" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Select All" msgstr "সবগুলি বাছাই করুন" -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Up" -msgstr "উপরে যান" - -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Down" -msgstr "নীচে যান" - #: editor/plugins/script_text_editor.cpp #, fuzzy msgid "Delete Line" @@ -4653,6 +4808,23 @@ msgid "Clone Down" msgstr "ক্লোন করে নীচে নিন" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Fold Line" +msgstr "লাইন-এ যান" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold Line" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Fold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Complete Symbol" msgstr "সিম্বল সম্পূর্ণ করুন" @@ -4700,12 +4872,10 @@ msgid "Convert To Lowercase" msgstr "এতে রূপান্তর করুন.." #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Previous" msgstr "পূর্বে খুঁজুন" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Replace.." msgstr "প্রতিস্থাপন.." @@ -4714,7 +4884,6 @@ msgid "Goto Function.." msgstr "ফাংশনে যান.." #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Goto Line.." msgstr "লাইনে যান.." @@ -4879,6 +5048,16 @@ msgid "View Plane Transform." msgstr "প্লেন-এর রুপান্তর দেখুন।" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Scaling: " +msgstr "স্কেল/মাপ:" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Translating: " +msgstr "অনুবাদসমূহ:" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Rotating %s degrees." msgstr "%s ডিগ্রি ঘূর্ণিত হচ্ছে।" @@ -4963,6 +5142,10 @@ msgid "Vertices" msgstr "ভারটেক্স" #: editor/plugins/spatial_editor_plugin.cpp +msgid "FPS" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Align with view" msgstr "দর্শনের সাথে সারিবদ্ধ করুন" @@ -4998,6 +5181,16 @@ msgid "View Information" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "View FPS" +msgstr "ফাইল" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Half Resolution" +msgstr "নির্বাচিত সমূহের আকার পরিবর্তন করুন" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Audio Listener" msgstr "অডিও শ্রোতা" @@ -5136,6 +5329,11 @@ msgid "Tool Scale" msgstr "স্কেল/মাপ:" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Toggle Freelook" +msgstr "পূর্ণ-পর্দা অদলবদল/টগল করুন" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Transform" msgstr "রুপান্তর" @@ -5415,6 +5613,11 @@ msgid "Create Empty Editor Template" msgstr "এডিটরের খালি টেমপ্লেট তৈরি করুন" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Create From Current Editor Theme" +msgstr "এডিটরের খালি টেমপ্লেট তৈরি করুন" + +#: editor/plugins/theme_editor_plugin.cpp msgid "CheckBox Radio1" msgstr "CheckBox Radio১" @@ -5594,7 +5797,7 @@ msgstr "সক্রিয় করুন" #: editor/project_export.cpp #, fuzzy -msgid "Delete patch '" +msgid "Delete patch '%s' from list?" msgstr "ইনপুট অপসারণ করুন" #: editor/project_export.cpp @@ -5921,10 +6124,6 @@ msgid "Add Input Action Event" msgstr "ইনপুট অ্যাকশন ইভেন্ট যোগ করুন" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Meta+" -msgstr "Meta+" - -#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp msgid "Shift+" msgstr "Shift+" @@ -6051,13 +6250,12 @@ msgstr "" #: editor/project_settings_editor.cpp #, fuzzy -msgid "No property '" +msgid "No property '%s' exists." msgstr "প্রপার্টি:" #: editor/project_settings_editor.cpp -#, fuzzy -msgid "Setting '" -msgstr "সেটিংস" +msgid "Setting '%s' is internal, and it can't be deleted." +msgstr "" #: editor/project_settings_editor.cpp #, fuzzy @@ -6549,6 +6747,16 @@ msgid "Clear a script for the selected node." msgstr "নির্বাচিত নোড হতে একটি স্ক্রিপ্ট পরিস্কার করুন।" #: editor/scene_tree_dock.cpp +#, fuzzy +msgid "Remote" +msgstr "অপসারণ করুন" + +#: editor/scene_tree_dock.cpp +#, fuzzy +msgid "Local" +msgstr "ঘটনাস্থল" + +#: editor/scene_tree_dock.cpp msgid "Clear Inheritance? (No Undo!)" msgstr "উত্তরাধিকারত্ব পরিস্কার করবেন? (ফেরৎ পাবেন না!)" @@ -6745,6 +6953,11 @@ msgid "Attach Node Script" msgstr "নোড স্ক্রিপ্ট সংযুক্ত করুন" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Remote " +msgstr "অপসারণ করুন" + +#: editor/script_editor_debugger.cpp msgid "Bytes:" msgstr "বাইটস:" @@ -6801,18 +7014,6 @@ msgid "Stack Trace (if applicable):" msgstr "পদাঙ্ক স্তূপ করুন (প্রযোজ্য হলে):" #: editor/script_editor_debugger.cpp -msgid "Remote Inspector" -msgstr "রিমোট পরীক্ষক" - -#: editor/script_editor_debugger.cpp -msgid "Live Scene Tree:" -msgstr "দৃশ্যের সক্রিয় শাখা:" - -#: editor/script_editor_debugger.cpp -msgid "Remote Object Properties: " -msgstr "রিমোট বস্তুর প্রোপার্টিস: " - -#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "প্রোফাইলার" @@ -6946,49 +7147,49 @@ msgstr "" msgid "GDNative" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Invalid type argument to convert(), use TYPE_* constants." msgstr "অগ্রহণযোগ্য মান/আর্গুমেন্ট convert()-এ গিয়েছে, TYPE_* ধ্রুবক ব্যবহার করুন।" -#: modules/gdscript/gd_functions.cpp modules/mono/glue/glue_header.h +#: modules/gdscript/gdscript_functions.cpp modules/mono/glue/glue_header.h #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Not enough bytes for decoding bytes, or invalid format." msgstr "বিন্যাস জানার জন্য যথেষ্ট বাইট নেই, অথবা ভুল ফরম্যাট।" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "step argument is zero!" msgstr "ধাপ মান/আর্গুমেন্ট শূন্য!" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not a script with an instance" msgstr "ইনস্ট্যান্স বিহীন স্ক্রিপ্ট" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a script" msgstr "স্ক্রিপ্ট নির্ভর নয়" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a resource file" msgstr "রিসোর্স ফাইল ভিত্তিক নয়" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (missing @path)" msgstr "ভুল dictionary ফরম্যাট (@path নেই)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (can't load script at @path)" msgstr "ভুল dictionary ফরম্যাট (@path-এ স্ক্রিপ্ট লোড অসম্ভব)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (invalid script at @path)" msgstr "ভুল dictionary ফরম্যাট (@path-এ ভুল স্ক্রিপ্ট)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary (invalid subclasses)" msgstr "ভুল dictionary ফরম্যাট (ভুল subclasses)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Object can't provide a length." msgstr "" @@ -7003,16 +7204,26 @@ msgid "GridMap Duplicate Selection" msgstr "নির্বাচিত সমূহ অনুলিপি করুন" #: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Floor:" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +#, fuzzy +msgid "Grid Map" +msgstr "গ্রিড স্ন্যাপ" + +#: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy msgid "Snap View" msgstr "শীর্ষ দর্শন" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Prev Level (%sDown Wheel)" -msgstr "" +#, fuzzy +msgid "Previous Floor" +msgstr "পূর্বের ট্যাব" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Next Level (%sUp Wheel)" +msgid "Next Floor" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp @@ -7088,13 +7299,8 @@ msgstr "TileMap মুছে ফেলুন" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy -msgid "Selection -> Duplicate" -msgstr "শুধুমাত্র নির্বাচিতসমূহ" - -#: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy -msgid "Selection -> Clear" -msgstr "শুধুমাত্র নির্বাচিতসমূহ" +msgid "Clear Selection" +msgstr "নির্বাচনকে কেন্দ্রীভূত করুন" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy @@ -7230,7 +7436,8 @@ msgid "Duplicate VisualScript Nodes" msgstr "গ্রাফ নোড(সমূহ) প্রতিলিপি করুন" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Getter. Hold Shift to drop a generic signature." +#, fuzzy +msgid "Hold %s to drop a Getter. Hold Shift to drop a generic signature." msgstr "" "গেটার (Getter) তৈরি করতে/নামাতে মেটা কী (Meta) চেপে রাখুন। জেনেরিক সিগনেচার " "(generic signature) তৈরি করতে/নামাতে শিফট কী (Shift) চেপে রাখুন।" @@ -7242,7 +7449,8 @@ msgstr "" "(generic signature) তৈরি করতে/নামাতে শিফট কী (Shift) চেপে রাখুন।" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a simple reference to the node." +#, fuzzy +msgid "Hold %s to drop a simple reference to the node." msgstr "" "নোডে সাধারণ সম্পর্ক (reference) তৈরি করতে/নামাতে মেটা কী (Meta) চেপে রাখুন।" @@ -7252,7 +7460,8 @@ msgstr "" "নোডে সাধারণ সম্পর্ক (reference) তৈরি করতে/নামাতে কন্ট্রোল কী (Ctrl) চেপে রাখুন।" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Variable Setter." +#, fuzzy +msgid "Hold %s to drop a Variable Setter." msgstr "চলক সেটার (Variable Setter) তৈরি করতে/নামাতে মেটা কী (Meta) চেপে রাখুন।" #: modules/visual_script/visual_script_editor.cpp @@ -7494,13 +7703,23 @@ msgstr "টাইলটি খুঁজে পাওয়া যায়নি:" #: platform/javascript/export/export.cpp #, fuzzy -msgid "Could not read file:\n" +msgid "Could not open template for export:\n" +msgstr "ফোল্ডার তৈরী করা সম্ভব হয়নি।" + +#: platform/javascript/export/export.cpp +#, fuzzy +msgid "Invalid export template:\n" +msgstr "এক্সপোর্টের টেমপ্লেটসমূহ ইন্সটল করুন" + +#: platform/javascript/export/export.cpp +#, fuzzy +msgid "Could not read custom HTML shell:\n" msgstr "টাইলটি খুঁজে পাওয়া যায়নি:" #: platform/javascript/export/export.cpp #, fuzzy -msgid "Could not open template for export:\n" -msgstr "ফোল্ডার তৈরী করা সম্ভব হয়নি।" +msgid "Could not read boot splash image file:\n" +msgstr "টাইলটি খুঁজে পাওয়া যায়নি:" #: scene/2d/animated_sprite.cpp msgid "" @@ -7610,22 +7829,6 @@ msgstr "" msgid "Path property must point to a valid Node2D node to work." msgstr "Path এর দিক অবশ্যই একটি কার্যকর Node2D এর দিকে নির্দেশ করাতে হবে।" -#: 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 "" -"এই sprite টি কার্যকর করতে path প্রোপার্টিতে নির্ধারিত Viewport টি অবশ্যই 'render " -"target' এ নির্ধারিত করতে হবে।" - #: scene/2d/visibility_notifier_2d.cpp msgid "" "VisibilityEnable2D works best when used with the edited scene root directly " @@ -7694,6 +7897,15 @@ msgstr "" "সফল্ভাবে কাজ করতে CollisionShape এর একটি আকৃতি প্রয়োজন। অনুগ্রহ করে তার জন্য একটি " "আকৃতি তৈরি করুন!" +#: scene/3d/gi_probe.cpp +#, fuzzy +msgid "Plotting Meshes" +msgstr "ছবিসমূহ ব্লিটিং (Blitting) করা হচ্ছে" + +#: scene/3d/gi_probe.cpp +msgid "Finishing Plot" +msgstr "" + #: scene/3d/navigation_mesh.cpp msgid "A NavigationMesh resource must be set or created for this node to work." msgstr "" @@ -7783,6 +7995,10 @@ msgid "" "minimum size manually." msgstr "" +#: scene/gui/tree.cpp +msgid "(Other)" +msgstr "" + #: scene/main/scene_tree.cpp msgid "" "Default Environment as specified in Project Setings (Rendering -> Viewport -" @@ -7817,6 +8033,66 @@ msgstr "ফন্ট তুলতে/লোডে সমস্যা হয়ে msgid "Invalid font size." msgstr "ফন্টের আকার অগ্রহনযোগ্য।" +#, fuzzy +#~ msgid "" +#~ "\n" +#~ "Source: " +#~ msgstr "উৎস:" + +#, fuzzy +#~ msgid "Remove Point from Line2D" +#~ msgstr "বক্ররেখা হতে বিন্দু অপসারণ করুন" + +#, fuzzy +#~ msgid "Add Point to Line2D" +#~ msgstr "বক্ররেখায় বিন্দু যোগ করুন" + +#, fuzzy +#~ msgid "Move Point in Line2D" +#~ msgstr "বক্ররেখায় বিন্দু সরান" + +#, fuzzy +#~ msgid "Split Segment (in line)" +#~ msgstr "অংশ বিভক্ত করুন (বক্ররেখায়)" + +#~ msgid "Meta+" +#~ msgstr "Meta+" + +#, fuzzy +#~ msgid "Setting '" +#~ msgstr "সেটিংস" + +#~ msgid "Remote Inspector" +#~ msgstr "রিমোট পরীক্ষক" + +#~ msgid "Live Scene Tree:" +#~ msgstr "দৃশ্যের সক্রিয় শাখা:" + +#~ msgid "Remote Object Properties: " +#~ msgstr "রিমোট বস্তুর প্রোপার্টিস: " + +#, fuzzy +#~ msgid "Selection -> Duplicate" +#~ msgstr "শুধুমাত্র নির্বাচিতসমূহ" + +#, fuzzy +#~ msgid "Selection -> Clear" +#~ msgstr "শুধুমাত্র নির্বাচিতসমূহ" + +#~ 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' মোডে নির্ধারন করতে হবে।" + +#~ msgid "" +#~ "The Viewport set in the path property must be set as 'render target' in " +#~ "order for this sprite to work." +#~ msgstr "" +#~ "এই sprite টি কার্যকর করতে path প্রোপার্টিতে নির্ধারিত Viewport টি অবশ্যই " +#~ "'render target' এ নির্ধারিত করতে হবে।" + #~ msgid "Filter:" #~ msgstr "ফিল্টার:" @@ -7838,9 +8114,6 @@ msgstr "ফন্টের আকার অগ্রহনযোগ্য।" #~ msgid "Removed:" #~ msgstr "অপসারিত:" -#~ msgid "Error saving atlas:" -#~ msgstr "এটলাস/মানচিত্রাবলী সংরক্ষণে সমস্যা হয়েছে:" - #~ msgid "Could not save atlas subtexture:" #~ msgstr "এটলাস/মানচিত্রাবলীর উপ-গঠনবিন্যাস (subtexture) সংরক্ষণ অসমর্থ হয়েছে:" @@ -8223,9 +8496,6 @@ msgstr "ফন্টের আকার অগ্রহনযোগ্য।" #~ msgid "Cropping Images" #~ msgstr "ছবিসমূহ ছাঁটা হচ্ছে" -#~ msgid "Blitting Images" -#~ msgstr "ছবিসমূহ ব্লিটিং (Blitting) করা হচ্ছে" - #~ msgid "Couldn't save atlas image:" #~ msgstr "এটলাস/মানচিত্রাবলীর ছবি সংরক্ষণ করা সম্ভব হচ্ছে না:" @@ -8596,9 +8866,6 @@ msgstr "ফন্টের আকার অগ্রহনযোগ্য।" #~ msgid "Save Translatable Strings" #~ msgstr "অনুবাদ-সম্ভব শব্দমালা/বাক্য-সমূহ সংরক্ষণ করুন" -#~ msgid "Install Export Templates" -#~ msgstr "এক্সপোর্টের টেমপ্লেটসমূহ ইন্সটল করুন" - #~ msgid "Edit Script Options" #~ msgstr "স্ক্রিপ্ট-এর সিদ্ধান্তসমূহ সম্পাদন করুন" diff --git a/editor/translations/ca.po b/editor/translations/ca.po index 1a5a285b94..83131d7640 100644 --- a/editor/translations/ca.po +++ b/editor/translations/ca.po @@ -3,20 +3,20 @@ # Copyright (C) 2014-2017 Godot Engine contributors (cf. AUTHORS.md) # This file is distributed under the same license as the Godot source code. # -# Roger BR <drai_kin@hotmail.com>, 2016. +# Roger Blanco Ribera <roger.blancoribera@gmail.com>, 2016-2017. # msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2016-10-11 08:26+0000\n" -"Last-Translator: Roger BR <drai_kin@hotmail.com>\n" +"PO-Revision-Date: 2017-11-22 12:05+0000\n" +"Last-Translator: Roger Blanco Ribera <roger.blancoribera@gmail.com>\n" "Language-Team: Catalan <https://hosted.weblate.org/projects/godot-engine/" "godot/ca/>\n" "Language: ca\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.9-dev\n" +"X-Generator: Weblate 2.18-dev\n" #: editor/animation_editor.cpp msgid "Disabled" @@ -28,85 +28,84 @@ msgstr "Tota la Selecció" #: editor/animation_editor.cpp msgid "Move Add Key" -msgstr "Mou Afegir Clau" +msgstr "Mou o Afegeix una Clau" #: editor/animation_editor.cpp msgid "Anim Change Transition" -msgstr "Canvia Transició" +msgstr "Modifica la Transició d'Animació" #: editor/animation_editor.cpp msgid "Anim Change Transform" -msgstr "Canvia Transformació" +msgstr "Modifica la Transformació de l'Animació" #: editor/animation_editor.cpp msgid "Anim Change Value" -msgstr "Canvia Valor" +msgstr "Modifica el Valor" #: editor/animation_editor.cpp -#, fuzzy msgid "Anim Change Call" -msgstr "Canvia Crida (Call)" +msgstr "Modifica la Crida" #: editor/animation_editor.cpp msgid "Anim Add Track" -msgstr "Afegeix Pista" +msgstr "Afegeix una Pista" #: editor/animation_editor.cpp msgid "Anim Duplicate Keys" -msgstr "Duplica Claus" +msgstr "Duplica les Claus" #: editor/animation_editor.cpp msgid "Move Anim Track Up" -msgstr "Mou Pista Amunt" +msgstr "Mou la Pista Amunt" #: editor/animation_editor.cpp msgid "Move Anim Track Down" -msgstr "Mou Pista Avall" +msgstr "Mou la Pista Avall" #: editor/animation_editor.cpp msgid "Remove Anim Track" -msgstr "Treu Pista" +msgstr "Treu la Pista" #: editor/animation_editor.cpp msgid "Set Transitions to:" -msgstr "Posa les Transicions a:" +msgstr "Estableix les Transicions com :" #: editor/animation_editor.cpp msgid "Anim Track Rename" -msgstr "Reanomena Pista" +msgstr "Reanomena la Pista" #: editor/animation_editor.cpp msgid "Anim Track Change Interpolation" -msgstr "Canvia Interpolació de Pista" +msgstr "Modifica l'Interpolació de la Pista" #: editor/animation_editor.cpp msgid "Anim Track Change Value Mode" -msgstr "Canvia Valor del Mode de Pista" +msgstr "Modifica el Valor del Mode de Pista" #: editor/animation_editor.cpp -#, fuzzy msgid "Anim Track Change Wrap Mode" -msgstr "Canvia Valor del Mode de Pista" +msgstr "Modifica el Valor del Mode d'Ajustament de Pista" #: editor/animation_editor.cpp msgid "Edit Node Curve" -msgstr "Edita Corba del Node" +msgstr "Edita la Corba del Node" #: editor/animation_editor.cpp msgid "Edit Selection Curve" -msgstr "Edita Corba de Selecció" +msgstr "Edita la Corba de Selecció" #: editor/animation_editor.cpp msgid "Anim Delete Keys" -msgstr "Esborra Claus" +msgstr "Esborra les Claus" #: editor/animation_editor.cpp editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Duplicate Selection" msgstr "Duplica la Selecció" #: editor/animation_editor.cpp msgid "Duplicate Transposed" -msgstr "Duplica Transposats" +msgstr "Duplica'l Transposat" #: editor/animation_editor.cpp msgid "Remove Selection" @@ -126,11 +125,11 @@ msgstr "Activador" #: editor/animation_editor.cpp msgid "Anim Add Key" -msgstr "Afegeix Clau" +msgstr "Afegeix una Clau" #: editor/animation_editor.cpp msgid "Anim Move Keys" -msgstr "Mou Claus" +msgstr "Mou les Claus" #: editor/animation_editor.cpp msgid "Scale Selection" @@ -138,7 +137,7 @@ msgstr "Escala la Selecció" #: editor/animation_editor.cpp msgid "Scale From Cursor" -msgstr "Escala des del Cursor" +msgstr "Escala amb el Cursor" #: editor/animation_editor.cpp msgid "Goto Next Step" @@ -208,39 +207,39 @@ msgstr "Crea i Insereix" #: editor/animation_editor.cpp msgid "Anim Insert Track & Key" -msgstr "Insereix Pista i Clau" +msgstr "Insereix una Pista i una Clau" #: editor/animation_editor.cpp msgid "Anim Insert Key" -msgstr "Insereix Clau" +msgstr "Insereix una Clau" #: editor/animation_editor.cpp msgid "Change Anim Len" -msgstr "Canvia durada" +msgstr "Modifica la durada" #: editor/animation_editor.cpp msgid "Change Anim Loop" -msgstr "Canvia bucle" +msgstr "Modifica la repetició de l'Animació" #: editor/animation_editor.cpp msgid "Anim Create Typed Value Key" -msgstr "Crea Clau de Valor Tipat" +msgstr "Crea una Clau de Valor Tipat" #: editor/animation_editor.cpp msgid "Anim Insert" -msgstr "Insereix Animació" +msgstr "Insereix una Animació" #: editor/animation_editor.cpp msgid "Anim Scale Keys" -msgstr "Escala Claus" +msgstr "Escala les Claus" #: editor/animation_editor.cpp msgid "Anim Add Call Track" -msgstr "Afegeix Pista de Crida" +msgstr "Afegeix una Pista de Crida" #: editor/animation_editor.cpp msgid "Animation zoom." -msgstr "Zoom d'animació." +msgstr "Zoom de l'animació." #: editor/animation_editor.cpp msgid "Length (s):" @@ -256,7 +255,7 @@ msgstr "Pas (s):" #: editor/animation_editor.cpp msgid "Cursor step snap (in seconds)." -msgstr "Pas de desplaçament del cursor (s)." +msgstr "Pas del cursor (s)." #: editor/animation_editor.cpp msgid "Enable/Disable looping in animation." @@ -264,19 +263,19 @@ msgstr "Activa/Desactiva el bucle de l'animació." #: editor/animation_editor.cpp msgid "Add new tracks." -msgstr "Afegeix noves pistes." +msgstr "Afegir noves pistes." #: editor/animation_editor.cpp msgid "Move current track up." -msgstr "Mou amunt la pista actual." +msgstr "Moure amunt la pista actual." #: editor/animation_editor.cpp msgid "Move current track down." -msgstr "Mou avall la pista actual." +msgstr "Moure avall la pista actual." #: editor/animation_editor.cpp msgid "Remove selected track." -msgstr "Treu la pista seleccionada." +msgstr "Treure la pista seleccionada." #: editor/animation_editor.cpp msgid "Track tools" @@ -329,7 +328,7 @@ msgstr "Cridar Funcions en el Node \"Which\"?" #: editor/animation_editor.cpp msgid "Remove invalid keys" -msgstr "Treu claus invàlides" +msgstr "Treure claus invàlides" #: editor/animation_editor.cpp msgid "Remove unresolved and empty tracks" @@ -353,11 +352,11 @@ msgstr "Redimensiona Matriu" #: editor/array_property_edit.cpp msgid "Change Array Value Type" -msgstr "Canvia Tipus de la Matriu" +msgstr "Modifica el Tipus de la Taula" #: editor/array_property_edit.cpp msgid "Change Array Value" -msgstr "Canvia Valor de la Matriu" +msgstr "Modifica el Valor de la Taula" #: editor/code_editor.cpp msgid "Go to Line" @@ -372,9 +371,8 @@ msgid "No Matches" msgstr "Cap Coincidència" #: editor/code_editor.cpp -#, fuzzy msgid "Replaced %d occurrence(s)." -msgstr "Reemplaçades %d ocurrència/es." +msgstr "%d ocurrència/es reemplaçades." #: editor/code_editor.cpp msgid "Replace" @@ -465,6 +463,8 @@ msgid "" "Target method not found! Specify a valid method or attach a script to target " "Node." msgstr "" +"El mètode objectiu no s'ha trobat! Especifiqueu un mètode vàlid o adjunteu-" +"li un script." #: editor/connections_dialog.cpp msgid "Connect To Node:" @@ -474,18 +474,18 @@ msgstr "Connecta al Node:" #: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp msgid "Add" -msgstr "Afegeix" +msgstr "Afegir" #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/plugins/animation_tree_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" -msgstr "Treu" +msgstr "Treure" #: editor/connections_dialog.cpp msgid "Add Extra Call Argument:" -msgstr "Afegeix Argument de Crida Extra:" +msgstr "Afegir Argument de Crida Extra:" #: editor/connections_dialog.cpp msgid "Extra Call Arguments:" @@ -504,9 +504,8 @@ msgid "Deferred" msgstr "Diferit" #: editor/connections_dialog.cpp -#, fuzzy msgid "Oneshot" -msgstr "D'un cop" +msgstr "Un sol cop" #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp @@ -637,6 +636,13 @@ msgstr "Editor de Dependències" msgid "Search Replacement Resource:" msgstr "Cerca Recurs Reemplaçant:" +#: editor/dependency_editor.cpp editor/editor_file_dialog.cpp +#: editor/editor_help.cpp editor/editor_node.cpp editor/filesystem_dock.cpp +#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp +#: editor/quick_open.cpp scene/gui/file_dialog.cpp +msgid "Open" +msgstr "Obre" + #: editor/dependency_editor.cpp msgid "Owners Of:" msgstr "Propietaris de:" @@ -656,7 +662,7 @@ msgstr "" #: editor/dependency_editor.cpp msgid "Cannot remove:\n" -msgstr "" +msgstr "No es pot eliminar:\n" #: editor/dependency_editor.cpp msgid "Error loading:" @@ -709,6 +715,16 @@ msgstr "Esborra fitxers seleccionats?" msgid "Delete" msgstr "Esborra" +#: editor/dictionary_property_edit.cpp +#, fuzzy +msgid "Change Dictionary Key" +msgstr "Modifica el Nom de l'Animació:" + +#: editor/dictionary_property_edit.cpp +#, fuzzy +msgid "Change Dictionary Value" +msgstr "Modifica el Valor de la Taula" + #: editor/editor_about.cpp msgid "Thanks from the Godot community!" msgstr "Gràcies de la part de la Comunitat del Godot!" @@ -719,65 +735,63 @@ msgstr "Gràcies!" #: editor/editor_about.cpp msgid "Godot Engine contributors" -msgstr "" +msgstr "Col·laboradors de Godot Engine" #: editor/editor_about.cpp -#, fuzzy msgid "Project Founders" -msgstr "Configuració del Projecte" +msgstr "Fundadors del Projecte" #: editor/editor_about.cpp msgid "Lead Developer" -msgstr "" +msgstr "Desenvolupador Principal" #: editor/editor_about.cpp editor/project_manager.cpp msgid "Project Manager" -msgstr "" +msgstr "Gestor De Projectes" #: editor/editor_about.cpp msgid "Developers" -msgstr "" +msgstr "Desenvolupadors" #: editor/editor_about.cpp -#, fuzzy msgid "Authors" -msgstr "Autor:" +msgstr "Autors" #: editor/editor_about.cpp msgid "Platinum Sponsors" -msgstr "" +msgstr "Patrocinadors Platinum" #: editor/editor_about.cpp msgid "Gold Sponsors" -msgstr "" +msgstr "Patrocinadors Gold" #: editor/editor_about.cpp msgid "Mini Sponsors" -msgstr "" +msgstr "Mini Patrocinadors" #: editor/editor_about.cpp msgid "Gold Donors" -msgstr "" +msgstr "Donants Gold" #: editor/editor_about.cpp msgid "Silver Donors" -msgstr "" +msgstr "Donants Silver" #: editor/editor_about.cpp msgid "Bronze Donors" -msgstr "" +msgstr "Donants Bronze" #: editor/editor_about.cpp msgid "Donors" -msgstr "" +msgstr "Donants" #: editor/editor_about.cpp msgid "License" -msgstr "" +msgstr "Llicència" #: editor/editor_about.cpp msgid "Thirdparty License" -msgstr "" +msgstr "Llicència externa" #: editor/editor_about.cpp msgid "" @@ -786,212 +800,199 @@ msgid "" "is an exhaustive list of all such thirdparty components with their " "respective copyright statements and license terms." msgstr "" +"El motor Godot es recolza en una sèrie de biblioteques lliures i de codi " +"obert, totes elles compatibles amb els termes de la llicència MIT. Tot " +"seguit podeu trobar la llista exhaustiva de tots aquests components externs " +"amb llurs respectius drets d'autor i termes de llicenciament." #: editor/editor_about.cpp -#, fuzzy msgid "All Components" -msgstr "Constants:" +msgstr "Tots els Components" #: editor/editor_about.cpp -#, fuzzy msgid "Components" -msgstr "Constants:" +msgstr "Components" #: editor/editor_about.cpp msgid "Licenses" -msgstr "" +msgstr "Llicències" #: editor/editor_asset_installer.cpp editor/project_manager.cpp msgid "Error opening package file, not in zip format." -msgstr "" +msgstr "Error en obrir el paquet d'arxius. El fitxer no té el format zip." #: editor/editor_asset_installer.cpp -#, fuzzy msgid "Uncompressing Assets" -msgstr "Sense Compressió" +msgstr "Descomprimint Recursos" #: editor/editor_asset_installer.cpp editor/project_manager.cpp msgid "Package Installed Successfully!" -msgstr "" +msgstr "Paquet instal·lat correctament!" #: editor/editor_asset_installer.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Success!" -msgstr "" +msgstr "Èxit!" #: editor/editor_asset_installer.cpp #: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Install" -msgstr "" +msgstr "Instal·lar" #: editor/editor_asset_installer.cpp msgid "Package Installer" -msgstr "" +msgstr "Instal·lador de paquets" #: editor/editor_audio_buses.cpp msgid "Speakers" -msgstr "" +msgstr "Altaveus" #: editor/editor_audio_buses.cpp msgid "Add Effect" -msgstr "" +msgstr "Afegir un efecte" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Rename Audio Bus" -msgstr "Reanomena AutoCàrrega" +msgstr "Reanomena Bus d'Àudio" #: editor/editor_audio_buses.cpp msgid "Toggle Audio Bus Solo" -msgstr "" +msgstr "Commuta el bus d'àudio solo" #: editor/editor_audio_buses.cpp msgid "Toggle Audio Bus Mute" -msgstr "" +msgstr "Silenciar/Desilenciar Bus d'Àudio" #: editor/editor_audio_buses.cpp msgid "Toggle Audio Bus Bypass Effects" -msgstr "" +msgstr "Commuta els Efectes de Bypass del Bus d'Àudio" #: editor/editor_audio_buses.cpp msgid "Select Audio Bus Send" -msgstr "" +msgstr "Seleccionar l'enviament del Bus d'Àudio" #: editor/editor_audio_buses.cpp msgid "Add Audio Bus Effect" -msgstr "" +msgstr "Afegir Efecte de bus d'Àudio" #: editor/editor_audio_buses.cpp msgid "Move Bus Effect" -msgstr "" +msgstr "Moure Efecte de Bus" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Delete Bus Effect" -msgstr "Elimina Seleccionats" +msgstr "Eliminar Efecte de Bus" #: editor/editor_audio_buses.cpp msgid "Audio Bus, Drag and Drop to rearrange." -msgstr "" +msgstr "Bus d'Àudio, reorganitza Arrossegant i Deixant anar." #: editor/editor_audio_buses.cpp msgid "Solo" -msgstr "" +msgstr "Solitari" #: editor/editor_audio_buses.cpp msgid "Mute" -msgstr "" +msgstr "Silencia" #: editor/editor_audio_buses.cpp msgid "Bypass" -msgstr "" +msgstr "Derivació" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Bus options" -msgstr "Opcions de Depuració (Debug)" +msgstr "Opcions del Bus" #: editor/editor_audio_buses.cpp editor/plugins/tile_map_editor_plugin.cpp #: editor/scene_tree_dock.cpp msgid "Duplicate" -msgstr "" +msgstr "Duplicar" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Reset Volume" -msgstr "Reinicia el Zoom" +msgstr "Restablir el Volum" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Delete Effect" -msgstr "Elimina Seleccionats" +msgstr "Elimina l'Efecte" #: editor/editor_audio_buses.cpp msgid "Add Audio Bus" -msgstr "" +msgstr "Afegir Bus d'Àudio" #: editor/editor_audio_buses.cpp msgid "Master bus can't be deleted!" -msgstr "" +msgstr "El Bus Mestre no es pot pas eliminar!" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Delete Audio Bus" -msgstr "Elimina Disposició (Layout)" +msgstr "Elimina Bus d'Àudio" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Duplicate Audio Bus" -msgstr "Duplica la Selecció" +msgstr "Duplicar el Bus d'Àudio" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Reset Bus Volume" -msgstr "Reinicia el Zoom" +msgstr "Restablir el Volum del Bus" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Move Audio Bus" -msgstr "Mou Afegir Clau" +msgstr "Moure Bus d'Àudio" #: editor/editor_audio_buses.cpp msgid "Save Audio Bus Layout As.." -msgstr "" +msgstr "Desar el Disseny del Bus d'Àudio com..." #: editor/editor_audio_buses.cpp msgid "Location for New Layout.." -msgstr "" +msgstr "Ubicació del Nou Disseny..." #: editor/editor_audio_buses.cpp msgid "Open Audio Bus Layout" -msgstr "" +msgstr "Obre un Disseny de Bus d'Àudio" #: editor/editor_audio_buses.cpp msgid "There is no 'res://default_bus_layout.tres' file." -msgstr "" +msgstr "No s'ha trobat cap 'res://default_bus_layout.tres'." #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Invalid file, not an audio bus layout." -msgstr "" -"Extensió de fitxer no vàlida.\n" -"Utilitzeu .fnt." +msgstr "Fitxer incorrecte. No és un disseny de bus d'àudio." #: editor/editor_audio_buses.cpp msgid "Add Bus" -msgstr "" +msgstr "Afegir Bus" #: editor/editor_audio_buses.cpp msgid "Create a new Bus Layout." -msgstr "" +msgstr "Crea un nou Disseny de Bus." #: editor/editor_audio_buses.cpp editor/property_editor.cpp #: editor/script_create_dialog.cpp msgid "Load" -msgstr "" +msgstr "Carregar" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Load an existing Bus Layout." -msgstr "Carrega un recurs des del disc i edita'l." +msgstr "Carregar un Disseny de Bus existent." #: editor/editor_audio_buses.cpp #: editor/plugins/animation_player_editor_plugin.cpp msgid "Save As" -msgstr "" +msgstr "Desar com a" #: editor/editor_audio_buses.cpp msgid "Save this Bus Layout to a file." -msgstr "" +msgstr "Desar el Disseny del Bus en un fitxer." #: editor/editor_audio_buses.cpp editor/import_dock.cpp -#, fuzzy msgid "Load Default" -msgstr "Predeterminat" +msgstr "Carregar Valors predeterminats" #: editor/editor_audio_buses.cpp msgid "Load the default Bus Layout." -msgstr "" +msgstr "Carregar el disseny del Bus predeterminat." #: editor/editor_autoload_settings.cpp msgid "Invalid name." @@ -1030,7 +1031,7 @@ msgstr "Fora del camí dels recursos." #: editor/editor_autoload_settings.cpp msgid "Add AutoLoad" -msgstr "Afegeix AutoCàrrega" +msgstr "Afegir AutoCàrrega" #: editor/editor_autoload_settings.cpp msgid "Autoload '%s' already exists!" @@ -1046,7 +1047,7 @@ msgstr "Commuta les Globals d'AutoCàrrega" #: editor/editor_autoload_settings.cpp msgid "Move Autoload" -msgstr "Mou AutoCàrrega" +msgstr "Moure AutoCàrrega" #: editor/editor_autoload_settings.cpp msgid "Remove Autoload" @@ -1094,9 +1095,8 @@ msgid "Updating scene.." msgstr "Actualitzant escena.." #: editor/editor_dir_dialog.cpp -#, fuzzy msgid "Please select a base directory first" -msgstr "Desa l'escena abans." +msgstr "Elegiu primer un directori base" #: editor/editor_dir_dialog.cpp msgid "Choose a Directory" @@ -1133,7 +1133,7 @@ msgstr "Compressió" #: editor/editor_export.cpp platform/javascript/export/export.cpp msgid "Template file not found:\n" -msgstr "" +msgstr "no s'ha trobat la Plantilla:\n" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "File Exists, Overwrite?" @@ -1147,12 +1147,6 @@ msgstr "Tots Reconeguts" msgid "All Files (*)" msgstr "Tots els Fitxers (*)" -#: editor/editor_file_dialog.cpp editor/editor_help.cpp editor/editor_node.cpp -#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_selector.cpp editor/quick_open.cpp scene/gui/file_dialog.cpp -msgid "Open" -msgstr "Obre" - #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Open a File" msgstr "Obre un Fitxer" @@ -1213,16 +1207,15 @@ msgstr "Enfoca Camí" #: editor/editor_file_dialog.cpp msgid "Move Favorite Up" -msgstr "Mou Favorit Amunt" +msgstr "Moure Favorit Amunt" #: editor/editor_file_dialog.cpp msgid "Move Favorite Down" -msgstr "Mou Favorit Avall" +msgstr "Moure Favorit Avall" #: editor/editor_file_dialog.cpp -#, fuzzy msgid "Go to parent folder" -msgstr "No s'ha pogut crear la carpeta." +msgstr "Aneu a la carpeta principal" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Directories & Files:" @@ -1246,9 +1239,8 @@ msgid "ScanSources" msgstr "Escaneja Fonts" #: editor/editor_file_system.cpp -#, fuzzy msgid "(Re)Importing Assets" -msgstr "Re-Importació" +msgstr "(Re)Important Recursos" #: editor/editor_help.cpp editor/editor_node.cpp #: editor/plugins/script_editor_plugin.cpp @@ -1265,7 +1257,7 @@ msgstr "Cerca Classes" #: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp msgid "Top" -msgstr "" +msgstr "Dalt" #: editor/editor_help.cpp editor/property_editor.cpp msgid "Class:" @@ -1284,27 +1276,24 @@ msgid "Brief Description:" msgstr "Descripció breu:" #: editor/editor_help.cpp -#, fuzzy msgid "Members" -msgstr "Membres:" +msgstr "Membres" #: editor/editor_help.cpp modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "Membres:" #: editor/editor_help.cpp -#, fuzzy msgid "Public Methods" -msgstr "Mètodes públics:" +msgstr "Mètodes Públics" #: editor/editor_help.cpp msgid "Public Methods:" msgstr "Mètodes públics:" #: editor/editor_help.cpp -#, fuzzy msgid "GUI Theme Items" -msgstr "Elements del Tema de la GUI:" +msgstr "Elements del Tema de la GUI" #: editor/editor_help.cpp msgid "GUI Theme Items:" @@ -1315,53 +1304,48 @@ msgid "Signals:" msgstr "Senyals:" #: editor/editor_help.cpp -#, fuzzy msgid "Enumerations" -msgstr "Funcions:" +msgstr "Enumeracions" #: editor/editor_help.cpp -#, fuzzy msgid "Enumerations:" -msgstr "Funcions:" +msgstr "Enumeracions:" #: editor/editor_help.cpp msgid "enum " -msgstr "" +msgstr "enum " #: editor/editor_help.cpp -#, fuzzy msgid "Constants" -msgstr "Constants:" +msgstr "Constants" #: editor/editor_help.cpp msgid "Constants:" msgstr "Constants:" #: editor/editor_help.cpp -#, fuzzy msgid "Description" -msgstr "Descripció:" +msgstr "Descripció" #: editor/editor_help.cpp -#, fuzzy msgid "Properties" -msgstr "Propietats de l'objecte." +msgstr "Propietats" #: editor/editor_help.cpp -#, fuzzy msgid "Property Description:" -msgstr "Descripció breu:" +msgstr "Descripció de la Propietat:" #: editor/editor_help.cpp msgid "" "There is currently no description for this property. Please help us by " "[color=$color][url=$url]contributing one[/url][/color]!" msgstr "" +"Aquesta proprietat no disposa de cap descripció. Podeu contribuir tot color=" +"$color][url=$url] aportant-ne una[/url][/color]!" #: editor/editor_help.cpp -#, fuzzy msgid "Methods" -msgstr "Llista de mètodes:" +msgstr "Mètodes" #: editor/editor_help.cpp msgid "Method Description:" @@ -1372,15 +1356,16 @@ msgid "" "There is currently no description for this method. Please help us by [color=" "$color][url=$url]contributing one[/url][/color]!" msgstr "" +"Aquest mètode no disposa de cap descripció. Podeu contribuir tot color=" +"$color][url=$url] aportant-ne una[/url][/color]!" #: editor/editor_help.cpp msgid "Search Text" msgstr "Cerca Text" #: editor/editor_log.cpp -#, fuzzy msgid "Output:" -msgstr " Sortida:" +msgstr "Sortida:" #: editor/editor_log.cpp editor/plugins/animation_tree_editor_plugin.cpp #: editor/property_editor.cpp editor/script_editor_debugger.cpp @@ -1414,28 +1399,24 @@ msgid "Error while saving." msgstr "Error en desar." #: editor/editor_node.cpp -#, fuzzy msgid "Can't open '%s'." -msgstr "No es pot operar en '..'" +msgstr "No es pot obrir '%s' ." #: editor/editor_node.cpp -#, fuzzy msgid "Error while parsing '%s'." -msgstr "Error en desar." +msgstr "Error en l'anàlisi de '%s'." #: editor/editor_node.cpp msgid "Unexpected end of file '%s'." -msgstr "" +msgstr "Inesperat final del fitxer a '%s'." #: editor/editor_node.cpp -#, fuzzy msgid "Missing '%s' or its dependencies." -msgstr "Escena '%s' té dependències no vàlides:" +msgstr "Falta '%s' o les seves dependències." #: editor/editor_node.cpp -#, fuzzy msgid "Error while loading '%s'." -msgstr "Error en desar." +msgstr "S'ha produït un error en carregar '% s'." #: editor/editor_node.cpp msgid "Saving Scene" @@ -1450,9 +1431,8 @@ msgid "Creating Thumbnail" msgstr "Creant Miniatura" #: editor/editor_node.cpp -#, fuzzy msgid "This operation can't be done without a tree root." -msgstr "No es pot desfer aquesta acció. Vol revertir igualament?" +msgstr "Aquesta operació no es pot fer sense cap arrel d'arbre." #: editor/editor_node.cpp msgid "" @@ -1491,7 +1471,7 @@ msgstr "S'han sobreescrit els Ajustos Predeterminats de l'Editor." #: editor/editor_node.cpp msgid "Layout name not found!" -msgstr "No s'ha trobat el nom de l'ajust!" +msgstr "No s'ha trobat el nom del Disseny!" #: editor/editor_node.cpp msgid "Restored default layout to base settings." @@ -1503,18 +1483,24 @@ msgid "" "Please read the documentation relevant to importing scenes to better " "understand this workflow." msgstr "" +"Aquest recurs pertany a una escena importada, així que no és editable.\n" +"Referiu-vos a la documentació rellevant per a la importació d'escenes." #: editor/editor_node.cpp msgid "" "This resource belongs to a scene that was instanced or inherited.\n" "Changes to it will not be kept when saving the current scene." msgstr "" +"Aquest recurs pertany a una escena instanciada o heretada.\n" +"Els canvis efectuats no es conservaran en desar l'escena." #: editor/editor_node.cpp msgid "" "This resource was imported, so it's not editable. Change its settings in the " "import panel and then re-import." msgstr "" +"En ser importat, un recurs no és editable. Canvieu-ne la configuració en el " +"panell d'importació i abansd'importar." #: editor/editor_node.cpp msgid "" @@ -1523,6 +1509,20 @@ msgid "" "Please read the documentation relevant to importing scenes to better " "understand this workflow." msgstr "" +"En ser una escena importada, no se'n conservaran els canvis. \n" +"Instanciar o heretar l'escena permetria la seva modificació.\n" +"Referiu-vos a la documentació rellevant a la importació d'escenes per a més " +"informació." + +#: editor/editor_node.cpp +#, fuzzy +msgid "" +"This is a remote object so changes to it will not be kept.\n" +"Please read the documentation relevant to debugging to better understand " +"this workflow." +msgstr "" +"Aquest recurs pertany a una escena importada, així que no és editable.\n" +"Referiu-vos a la documentació rellevant per a la importació d'escenes." #: editor/editor_node.cpp msgid "Copy Params" @@ -1557,15 +1557,14 @@ msgid "There is no defined scene to run." msgstr "No s'ha definit cap escena per executar." #: editor/editor_node.cpp -#, fuzzy msgid "" "No main scene has ever been defined, select one?\n" "You can change it later in \"Project Settings\" under the 'application' " "category." msgstr "" "No s'ha definit cap escena principal. Seleccioneu-ne una.\n" -"És possible triar-ne una altra més endavant a \"Configuració del Projecte\" " -"en la categoria \"aplicació\"." +"És possible triar-ne una altra des de \"Configuració del Projecte\" en la " +"categoria \"aplicació\"." #: editor/editor_node.cpp msgid "" @@ -1614,13 +1613,12 @@ msgid "Quick Open Script.." msgstr "Obertura Ràpida d'Scripts..." #: editor/editor_node.cpp -#, fuzzy msgid "Save & Close" -msgstr "Desa un Fitxer" +msgstr "Desar i Tancar" #: editor/editor_node.cpp msgid "Save changes to '%s' before closing?" -msgstr "" +msgstr "Desar els canvis a '%s' abans de tancar?" #: editor/editor_node.cpp msgid "Save Scene As.." @@ -1628,7 +1626,7 @@ msgstr "Desa Escena com..." #: editor/editor_node.cpp msgid "No" -msgstr "" +msgstr "No" #: editor/editor_node.cpp msgid "Yes" @@ -1641,19 +1639,24 @@ msgstr "" #: editor/editor_node.cpp editor/scene_tree_dock.cpp msgid "This operation can't be done without a scene." -msgstr "" +msgstr "Aquesta operació no es pot dur a terme sense una escena." #: editor/editor_node.cpp msgid "Export Mesh Library" msgstr "Exporta Biblioteca de Models" #: editor/editor_node.cpp +#, fuzzy +msgid "This operation can't be done without a root node." +msgstr "Aquesta operació no es pot dur a terme sense un node seleccionat." + +#: editor/editor_node.cpp msgid "Export Tile Set" msgstr "Exporta el joc de Mosaics (Tiles)" #: editor/editor_node.cpp msgid "This operation can't be done without a selected node." -msgstr "" +msgstr "Aquesta operació no es pot dur a terme sense un node seleccionat." #: editor/editor_node.cpp msgid "Current scene not saved. Open anyway?" @@ -1685,26 +1688,29 @@ msgstr "Voleu Sortir de l'editor?" #: editor/editor_node.cpp msgid "Open Project Manager?" -msgstr "" +msgstr "Obre el Gestor de Projectes?" #: editor/editor_node.cpp -#, fuzzy msgid "Save & Quit" -msgstr "Desa un Fitxer" +msgstr "Desar i Sortir" #: editor/editor_node.cpp msgid "Save changes to the following scene(s) before quitting?" -msgstr "" +msgstr "Desar els canvis a la(les) escena(es) següent(s) abans de Sortir?" #: editor/editor_node.cpp msgid "Save changes the following scene(s) before opening Project Manager?" msgstr "" +"Desar els canvis a la(les) següent(s) escenes abans d'obrir el Gestor de " +"Projectes?" #: editor/editor_node.cpp msgid "" "This option is deprecated. Situations where refresh must be forced are now " "considered a bug. Please report." msgstr "" +"Aquesta opció és obsoleta. Es consideren ara errors les situacions on s'ha " +"de forçar el refrescament. Si us plau reporteu-ho." #: editor/editor_node.cpp msgid "Pick a Main Scene" @@ -1713,30 +1719,39 @@ msgstr "Tria una Escena Principal" #: editor/editor_node.cpp msgid "Unable to enable addon plugin at: '%s' parsing of config failed." msgstr "" +"No es pot habilitar el complement a: '%s' ha fallat l'anàlisi de la " +"configuració." #: editor/editor_node.cpp msgid "Unable to find script field for addon plugin at: 'res://addons/%s'." msgstr "" +"No s'ha pogut trobar el camp d'script per al complement a: 'res: // addons /" +"% s'." #: editor/editor_node.cpp -#, fuzzy msgid "Unable to load addon script from path: '%s'." -msgstr "Error carregant lletra." +msgstr "Error carregant el script complement des del camí: '%s'." #: editor/editor_node.cpp msgid "" "Unable to load addon script from path: '%s' Base type is not EditorPlugin." msgstr "" +"No s'ha carregat el script d'addon des del camí: El tipus base de '% s' no " +"és EditorPlugin." #: editor/editor_node.cpp msgid "Unable to load addon script from path: '%s' Script is not in tool mode." msgstr "" +"No s'ha carregat el script d'addon des del camí: El script '% s' no és en " +"el mode d'Eina." #: editor/editor_node.cpp msgid "" "Scene '%s' was automatically imported, so it can't be modified.\n" "To make changes to it, a new inherited scene can be created." msgstr "" +"En ser importada automàticament, l'escena '%s' no es pot modificar. Per fer-" +"hi canvis, creeu una nova escena heretada." #: editor/editor_node.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp @@ -1756,17 +1771,16 @@ msgid "Scene '%s' has broken dependencies:" msgstr "Escena '%s' té dependències no vàlides:" #: editor/editor_node.cpp -#, fuzzy msgid "Clear Recent Scenes" -msgstr "Reverteix Escena" +msgstr "Netejar Escenes Recents" #: editor/editor_node.cpp msgid "Save Layout" -msgstr "Desar Disposició (Layout)" +msgstr "Desar Disseny" #: editor/editor_node.cpp msgid "Delete Layout" -msgstr "Elimina Disposició (Layout)" +msgstr "Elimina Disseny" #: editor/editor_node.cpp editor/import_dock.cpp #: editor/script_create_dialog.cpp @@ -1775,24 +1789,39 @@ msgstr "Predeterminat" #: editor/editor_node.cpp msgid "Switch Scene Tab" -msgstr "Canvia la pestanya d'escena" +msgstr "Mou-te entre les pestanyes d'Escena" #: editor/editor_node.cpp -msgid "%d more file(s)" +#, fuzzy +msgid "%d more files or folders" +msgstr "%d fitxer(s) o directori(s) més" + +#: editor/editor_node.cpp +#, fuzzy +msgid "%d more folders" msgstr "%d fitxer(s) més" #: editor/editor_node.cpp -msgid "%d more file(s) or folder(s)" -msgstr "%d fitxer(s) o directori(s) més" +#, fuzzy +msgid "%d more files" +msgstr "%d fitxer(s) més" + +#: editor/editor_node.cpp +msgid "Dock Position" +msgstr "" #: editor/editor_node.cpp msgid "Distraction Free Mode" msgstr "Mode Lliure de Distraccions" #: editor/editor_node.cpp -#, fuzzy msgid "Toggle distraction-free mode." -msgstr "Mode Lliure de Distraccions" +msgstr "Mode Lliure de Distraccions." + +#: editor/editor_node.cpp +#, fuzzy +msgid "Add a new scene." +msgstr "Afegir noves pistes." #: editor/editor_node.cpp msgid "Scene" @@ -1811,9 +1840,8 @@ msgid "Previous tab" msgstr "Pestanya Anterior" #: editor/editor_node.cpp -#, fuzzy msgid "Filter Files.." -msgstr "Filtrat Ràpid de Fitxers..." +msgstr "Filtrat de Fitxers..." #: editor/editor_node.cpp msgid "Operations with scene files." @@ -1860,13 +1888,12 @@ msgid "TileSet.." msgstr "Joc de Mosaics (TileSet)..." #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp -#: scene/gui/text_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Undo" msgstr "Desfés" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp +#: scene/gui/line_edit.cpp msgid "Redo" msgstr "Refés" @@ -1879,9 +1906,8 @@ msgid "Miscellaneous project or scene-wide tools." msgstr "Eines vàries o d'escena." #: editor/editor_node.cpp -#, fuzzy msgid "Project" -msgstr "Exporta Projecte" +msgstr "Projecte" #: editor/editor_node.cpp msgid "Project Settings" @@ -1905,7 +1931,7 @@ msgstr "Surt a la Llista de Projectes" #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp msgid "Debug" -msgstr "" +msgstr "Depurar" #: editor/editor_node.cpp msgid "Deploy with Remote Debug" @@ -1996,9 +2022,8 @@ msgstr "" "millora el rendiment." #: editor/editor_node.cpp -#, fuzzy msgid "Editor" -msgstr "Edita" +msgstr "Editor" #: editor/editor_node.cpp editor/settings_config_dialog.cpp msgid "Editor Settings" @@ -2006,37 +2031,35 @@ msgstr "Configuració de l'Editor" #: editor/editor_node.cpp msgid "Editor Layout" -msgstr "Disposició de l'Editor" +msgstr "Disseny de l'Editor" #: editor/editor_node.cpp -#, fuzzy msgid "Toggle Fullscreen" -msgstr "Mode Pantalla completa" +msgstr "Mode Pantalla Completa" #: editor/editor_node.cpp editor/project_export.cpp -#, fuzzy msgid "Manage Export Templates" -msgstr "Carregant Plantilles d'Exportació" +msgstr "Gestionar Plantilles d'Exportació" #: editor/editor_node.cpp msgid "Help" -msgstr "" +msgstr "Ajuda" #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp msgid "Classes" -msgstr "" +msgstr "Classes" #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp msgid "Online Docs" -msgstr "" +msgstr "Documentació en línia" #: editor/editor_node.cpp msgid "Q&A" -msgstr "" +msgstr "Preguntes i Respostes" #: editor/editor_node.cpp msgid "Issue Tracker" -msgstr "" +msgstr "Seguiment d'Incidències" #: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp msgid "Community" @@ -2100,7 +2123,7 @@ msgstr "Actualitza Canvis" #: editor/editor_node.cpp msgid "Disable Update Spinner" -msgstr "" +msgstr "Desactiva l'Indicador d'Actualització" #: editor/editor_node.cpp msgid "Inspector" @@ -2140,7 +2163,7 @@ msgstr "Propietats de l'objecte." #: editor/editor_node.cpp msgid "Changes may be lost!" -msgstr "" +msgstr "Es podrien perdre els canvis!" #: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp #: editor/project_manager.cpp @@ -2153,7 +2176,7 @@ msgstr "SistemaDeFitxers" #: editor/editor_node.cpp editor/node_dock.cpp msgid "Node" -msgstr "" +msgstr "Node" #: editor/editor_node.cpp msgid "Output" @@ -2161,7 +2184,7 @@ msgstr "Sortida" #: editor/editor_node.cpp msgid "Don't Save" -msgstr "" +msgstr "No Desis" #: editor/editor_node.cpp msgid "Import Templates From ZIP File" @@ -2188,9 +2211,8 @@ msgid "Open & Run a Script" msgstr "Obre i Executa un Script" #: editor/editor_node.cpp -#, fuzzy msgid "New Inherited" -msgstr "Nova Escena heretada..." +msgstr "Nou Heretat" #: editor/editor_node.cpp msgid "Load Errors" @@ -2198,44 +2220,39 @@ msgstr "Errors de Càrrega" #: editor/editor_node.cpp editor/plugins/tile_map_editor_plugin.cpp msgid "Select" -msgstr "" +msgstr "Seleccionar" #: editor/editor_node.cpp -#, fuzzy msgid "Open 2D Editor" -msgstr "Obre un Directori" +msgstr "Obre l'Editor 2D" #: editor/editor_node.cpp -#, fuzzy msgid "Open 3D Editor" -msgstr "Obre un Directori" +msgstr "Obre l'Editor 3D" #: editor/editor_node.cpp -#, fuzzy msgid "Open Script Editor" -msgstr "Editor de Dependències" +msgstr "Editor d'Scripts" #: editor/editor_node.cpp -#, fuzzy msgid "Open Asset Library" -msgstr "Exporta Biblioteca" +msgstr "Exportar Biblioteca de Recursos" #: editor/editor_node.cpp -#, fuzzy msgid "Open the next Editor" -msgstr "Editor de Dependències" +msgstr "Obre l'Editor Següent" #: editor/editor_node.cpp msgid "Open the previous Editor" -msgstr "" +msgstr "Obre l'Editor precedent" #: editor/editor_plugin.cpp msgid "Creating Mesh Previews" -msgstr "" +msgstr "Creant Previsualitzacions de Malles" #: editor/editor_plugin.cpp msgid "Thumbnail.." -msgstr "" +msgstr "Miniatura.." #: editor/editor_plugin_settings.cpp msgid "Installed Plugins:" @@ -2283,9 +2300,8 @@ msgid "Frame %" msgstr "% del Fotograma" #: editor/editor_profiler.cpp -#, fuzzy msgid "Physics Frame %" -msgstr "% del Fotograma Fix" +msgstr "Fotograma de Física %" #: editor/editor_profiler.cpp editor/script_editor_debugger.cpp msgid "Time:" @@ -2305,13 +2321,15 @@ msgstr "Fotograma núm.:" #: editor/editor_run_native.cpp msgid "Select device from the list" -msgstr "" +msgstr "Seleccionar un dispositiu de la llista" #: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." msgstr "" +"No s'ha trobat cap patró d'exportació executable per aquesta plataforma. \n" +"Afegiu un patró predeterminat en el menú d'exportació." #: editor/editor_run_script.cpp msgid "Write your logic in the _run() method." @@ -2355,32 +2373,36 @@ msgstr "Importa des del Node:" #: editor/export_template_manager.cpp msgid "Re-Download" -msgstr "" +msgstr "Tornar a Descarregar" #: editor/export_template_manager.cpp msgid "Uninstall" -msgstr "" +msgstr "Desinstal·lar" #: editor/export_template_manager.cpp -#, fuzzy msgid "(Installed)" -msgstr "Instància" +msgstr "(Instal·lat)" #: editor/export_template_manager.cpp msgid "Download" -msgstr "" +msgstr "Descarregar" #: editor/export_template_manager.cpp msgid "(Missing)" -msgstr "" +msgstr "(Mancant)" #: editor/export_template_manager.cpp msgid "(Current)" -msgstr "" +msgstr "(Actual)" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Retrieving mirrors, please wait.." +msgstr "S'ha produït un error en la connexió. Torneu-ho a provar." #: editor/export_template_manager.cpp msgid "Remove template version '%s'?" -msgstr "" +msgstr "Eliminar la versió \"%s\" de la plantilla ?" #: editor/export_template_manager.cpp msgid "Can't open export templates zip." @@ -2388,60 +2410,171 @@ msgstr "No s'ha pogut obrir el zip amb les plantilles d'exportació." #: editor/export_template_manager.cpp msgid "Invalid version.txt format inside templates." -msgstr "" +msgstr "El format de version.txt dins de les plantilles no és vàlid." #: editor/export_template_manager.cpp msgid "" "Invalid version.txt format inside templates. Revision is not a valid " "identifier." msgstr "" +"El format de version.txt dins les plantilles no és vàlid. \"Revision\" no és " +"un indentificador vàlid." #: editor/export_template_manager.cpp msgid "No version.txt found inside templates." -msgstr "" +msgstr "No s'ha trobat cap version.txt dins les plantilles." #: editor/export_template_manager.cpp -#, fuzzy msgid "Error creating path for templates:\n" -msgstr "Error en desar atles:" +msgstr "Error en crear el camí per a les plantilles:\n" #: editor/export_template_manager.cpp -#, fuzzy msgid "Extracting Export Templates" -msgstr "Carregant Plantilles d'Exportació" +msgstr "Extraient Plantilles d'Exportació" #: editor/export_template_manager.cpp msgid "Importing:" msgstr "Importació:" #: editor/export_template_manager.cpp +msgid "" +"No download links found for this version. Direct download is only available " +"for official releases." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't resolve." +msgstr "No es pot resoldre." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't connect." +msgstr "No es pot connectar.." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "No response." +msgstr "Cap resposta." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Req. Failed." +msgstr "Ha fallat la sol·licitud." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Redirect Loop." +msgstr "Bucle de redirecció." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Failed:" +msgstr "Ha fallat:" + +#: editor/export_template_manager.cpp #, fuzzy -msgid "Current Version:" -msgstr "Versió:" +msgid "Can't write file." +msgstr "No s'ha pogut crear la carpeta." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Download Complete." +msgstr "Error en la Descàrrega" #: editor/export_template_manager.cpp #, fuzzy +msgid "Error requesting url: " +msgstr "Error en desar atles:" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connecting to Mirror.." +msgstr "Connexió en marxa..." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Disconnected" +msgstr "Desconnecta" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Resolving" +msgstr "s'està resolent.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't Resolve" +msgstr "No es pot resoldre." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Connecting.." +msgstr "Connexió en marxa..." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't Conect" +msgstr "No es pot connectar.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connected" +msgstr "Connecta" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Requesting.." +msgstr "Sol·licitud en marxa..." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Downloading" +msgstr "Descarregar" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connection Error" +msgstr "Connexió en marxa..." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "SSL Handshake Error" +msgstr "Errors de Càrrega" + +#: editor/export_template_manager.cpp +msgid "Current Version:" +msgstr "Versió Actual:" + +#: editor/export_template_manager.cpp msgid "Installed Versions:" -msgstr "Connectors Instal·lats:" +msgstr "Versions instal·lades:" #: editor/export_template_manager.cpp msgid "Install From File" -msgstr "" +msgstr "Instal·lar des d'un Fitxer" #: editor/export_template_manager.cpp -#, fuzzy msgid "Remove Template" -msgstr "Treu la Selecció" +msgstr "Eliminar Plantilla" #: editor/export_template_manager.cpp -#, fuzzy msgid "Select template file" -msgstr "Esborra fitxers seleccionats?" +msgstr "Selecciona fitxer de plantilla" #: editor/export_template_manager.cpp -#, fuzzy msgid "Export Template Manager" -msgstr "Carregant Plantilles d'Exportació" +msgstr "Gestor de Plantilles d'Exportació" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Download Templates" +msgstr "Treure la Selecció" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Select mirror from list: " +msgstr "Seleccionar un dispositiu de la llista" #: editor/file_type_cache.cpp msgid "Can't open file_type_cache.cch for writing, not saving file type cache!" @@ -2450,106 +2583,92 @@ msgstr "" "tipus de fitxers!" #: editor/filesystem_dock.cpp -msgid "Cannot navigate to '" +msgid "Cannot navigate to '%s' as it has not been found in the file system!" msgstr "" #: editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails" -msgstr "" +msgstr "Veure com a graella de miniatures" #: editor/filesystem_dock.cpp msgid "View items as a list" -msgstr "" +msgstr "Veure com a llista" #: editor/filesystem_dock.cpp msgid "" "\n" "Status: Import of file failed. Please fix file and reimport manually." msgstr "" - -#: editor/filesystem_dock.cpp -#, fuzzy -msgid "" "\n" -"Source: " -msgstr "Lletra:" +"Estat: No s'ha pogut importar. Corregeixi el fitxer i torni a importar." #: editor/filesystem_dock.cpp -#, fuzzy msgid "Cannot move/rename resources root." -msgstr "No es pot carregar/processar la lletra." +msgstr "No es pot moure/reanomenar l'arrel dels recursos." #: editor/filesystem_dock.cpp -#, fuzzy msgid "Cannot move a folder into itself.\n" -msgstr "No es pot importar un fitxer dins de si mateix:" +msgstr "No es pot moure un directori dins si mateix:\n" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Error moving:\n" -msgstr "Error en carregar:" +msgstr "Error en moure:\n" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Unable to update dependencies:\n" -msgstr "Escena '%s' té dependències no vàlides:" +msgstr "No s'han pogut actualitzar les dependències:\n" #: editor/filesystem_dock.cpp msgid "No name provided" -msgstr "" +msgstr "Manca Nom" #: editor/filesystem_dock.cpp msgid "Provided name contains invalid characters" -msgstr "" +msgstr "El nom conté caràcters que no són vàlids" #: editor/filesystem_dock.cpp -#, fuzzy msgid "No name provided." -msgstr "Renomena o Mou..." +msgstr "Manca Nom." #: editor/filesystem_dock.cpp -#, fuzzy msgid "Name contains invalid characters." -msgstr "Caràcters vàlids:" +msgstr "El Nom conté caràcters que no són vàlids." #: editor/filesystem_dock.cpp msgid "A file or folder with this name already exists." -msgstr "" +msgstr "Ja existeix un Fitxer o Directori amb aquest nom." #: editor/filesystem_dock.cpp -#, fuzzy msgid "Renaming file:" -msgstr "Reanomena Variable" +msgstr "Reanomenant fitxer:" #: editor/filesystem_dock.cpp msgid "Renaming folder:" -msgstr "" +msgstr "Reanomenant directori:" #: editor/filesystem_dock.cpp msgid "Expand all" -msgstr "" +msgstr "Expandir tot" #: editor/filesystem_dock.cpp msgid "Collapse all" -msgstr "" +msgstr "Col·lapsar tot" #: editor/filesystem_dock.cpp msgid "Copy Path" msgstr "Copia Camí" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Rename.." -msgstr "Renomena o Mou..." +msgstr "Reanomenar.." #: editor/filesystem_dock.cpp msgid "Move To.." -msgstr "Mou cap a..." +msgstr "Moure cap a..." #: editor/filesystem_dock.cpp -#, fuzzy msgid "New Folder.." -msgstr "Crea una Carpeta" +msgstr "Nou Directori.." #: editor/filesystem_dock.cpp msgid "Show In File Manager" @@ -2581,7 +2700,7 @@ msgstr "ReAnalitza Sistema de Fitxers" #: editor/filesystem_dock.cpp msgid "Toggle folder status as Favorite" -msgstr "Canvia l'estat del directori a Preferit" +msgstr "Modifica l'estat del directori com a Favorit" #: editor/filesystem_dock.cpp msgid "Instance the selected scene(s) as child of the selected node." @@ -2591,66 +2710,64 @@ msgstr "Instancia les escenes seleccionades com a filles del node seleccionat." msgid "" "Scanning Files,\n" "Please Wait.." -msgstr "" +msgstr "Analitzant Fitxers..." #: editor/filesystem_dock.cpp msgid "Move" -msgstr "Mou" +msgstr "Moure" #: editor/filesystem_dock.cpp editor/plugins/animation_tree_editor_plugin.cpp #: editor/project_manager.cpp msgid "Rename" -msgstr "" +msgstr "Reanomenar" #: editor/groups_editor.cpp msgid "Add to Group" -msgstr "Afegeix al Grup" +msgstr "Afegir al Grup" #: editor/groups_editor.cpp msgid "Remove from Group" -msgstr "Treu del Grup" +msgstr "Treure del Grup" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Import as Single Scene" -msgstr "Important Escena..." +msgstr "Importar com a Única Escena" #: editor/import/resource_importer_scene.cpp msgid "Import with Separate Animations" -msgstr "" +msgstr "Importació amb Animacions Separades" #: editor/import/resource_importer_scene.cpp msgid "Import with Separate Materials" -msgstr "" +msgstr "Importar Materials Separadament" #: editor/import/resource_importer_scene.cpp msgid "Import with Separate Objects" -msgstr "" +msgstr "Importar Objectes Separadament" #: editor/import/resource_importer_scene.cpp msgid "Import with Separate Objects+Materials" -msgstr "" +msgstr "Importar Objectes+Materials Separadament" #: editor/import/resource_importer_scene.cpp msgid "Import with Separate Objects+Animations" -msgstr "" +msgstr "Importar Objectes+Animacions Separadament" #: editor/import/resource_importer_scene.cpp msgid "Import with Separate Materials+Animations" -msgstr "" +msgstr "Importar Materials+Animacions Separadament" #: editor/import/resource_importer_scene.cpp msgid "Import with Separate Objects+Materials+Animations" -msgstr "" +msgstr "Importar Objectes+Materials+Animacions Separadament" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Import as Multiple Scenes" -msgstr "Importa Escena 3D" +msgstr "Importar com a Múltiples Escenes" #: editor/import/resource_importer_scene.cpp msgid "Import as Multiple Scenes+Materials" -msgstr "" +msgstr "Importar com a Múltiples Escenes+Materials" #: editor/import/resource_importer_scene.cpp #: editor/plugins/cube_grid_theme_editor_plugin.cpp @@ -2683,72 +2800,69 @@ msgstr "Desant..." #: editor/import_dock.cpp msgid "Set as Default for '%s'" -msgstr "" +msgstr "Establir com a valor Predeterminat per a '%s'" #: editor/import_dock.cpp msgid "Clear Default for '%s'" -msgstr "" +msgstr "Neteja el valor Predeterminat de '%s'" #: editor/import_dock.cpp -#, fuzzy msgid " Files" -msgstr "Fitxer:" +msgstr " Fitxers" #: editor/import_dock.cpp -#, fuzzy msgid "Import As:" -msgstr "Importa" +msgstr "Importar com a:" #: editor/import_dock.cpp editor/property_editor.cpp msgid "Preset.." -msgstr "" +msgstr "Configuració.." #: editor/import_dock.cpp -#, fuzzy msgid "Reimport" -msgstr "ReImporta" +msgstr "ReImportar" #: editor/multi_node_edit.cpp msgid "MultiNode Set" -msgstr "" +msgstr "Establir MultiNode" #: editor/node_dock.cpp msgid "Groups" -msgstr "" +msgstr "Grups" #: editor/node_dock.cpp msgid "Select a Node to edit Signals and Groups." -msgstr "" +msgstr "Seleccioneu un Node per editar Senyals i Grups." #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Poly" -msgstr "" +msgstr "Crea Polígon" #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/collision_polygon_editor_plugin.cpp #: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Edit Poly" -msgstr "" +msgstr "Edita Polígon" #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "Insert Point" -msgstr "" +msgstr "Insereix un Punt" #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/collision_polygon_editor_plugin.cpp #: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Edit Poly (Remove Point)" -msgstr "" +msgstr "Edita el Polígon (Elimina un Punt)" #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "Remove Poly And Point" -msgstr "" +msgstr "Elimina el Polígon i el Punt" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." -msgstr "" +#, fuzzy +msgid "Create a new polygon from scratch" +msgstr "Crea un nou Polígon del no-res." #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "" @@ -2757,467 +2871,433 @@ msgid "" "Ctrl+LMB: Split Segment.\n" "RMB: Erase Point." msgstr "" +"Edita un Polígon existent:\n" +"Clic Esquerra: Mou un Punt.\n" +"Ctrl+Clic Esquerra: Divideix un Segment.\n" +"Clic Dreta: Elimina un Punt." + +#: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy +msgid "Delete points" +msgstr "Elimina el Punt" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" -msgstr "" +msgstr "Reproducció Automàtica" #: editor/plugins/animation_player_editor_plugin.cpp msgid "New Animation Name:" -msgstr "" +msgstr "Nom de la Nova Animació:" #: editor/plugins/animation_player_editor_plugin.cpp msgid "New Anim" -msgstr "" +msgstr "Nova Animació" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" -msgstr "" +msgstr "Modifica el Nom de l'Animació:" #: editor/plugins/animation_player_editor_plugin.cpp -#, fuzzy msgid "Delete Animation?" -msgstr "Animació d'Escenes 3D" +msgstr "Eliminar l'Animació?" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Remove Animation" -msgstr "" +msgstr "Eliminar l'Animació" #: editor/plugins/animation_player_editor_plugin.cpp msgid "ERROR: Invalid animation name!" -msgstr "" +msgstr "ERROR: El Nom de l'Animació no és vàlid!" #: editor/plugins/animation_player_editor_plugin.cpp msgid "ERROR: Animation name already exists!" -msgstr "" +msgstr "ERROR: Ja existeix aquest nom d'Animació!" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Rename Animation" -msgstr "" +msgstr "Reanomenar Animació" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Add Animation" -msgstr "" +msgstr "Afegir Animació" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Blend Next Changed" -msgstr "" +msgstr "Mesclar Següent Canviat" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Blend Time" -msgstr "" +msgstr "Modifica el Temps de Mescla" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Load Animation" -msgstr "" +msgstr "Carrega l'Animació" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" -msgstr "" +msgstr "Duplica l'Animació" #: editor/plugins/animation_player_editor_plugin.cpp msgid "ERROR: No animation to copy!" -msgstr "" +msgstr "ERROR: Cap animació per copiar!" #: editor/plugins/animation_player_editor_plugin.cpp msgid "ERROR: No animation resource on clipboard!" -msgstr "" +msgstr "ERROR: Cap recurs d'animació al porta-retalls!" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Pasted Animation" -msgstr "" +msgstr "Animació Enganxada" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Paste Animation" -msgstr "" +msgstr "Enganxar Animació" #: editor/plugins/animation_player_editor_plugin.cpp msgid "ERROR: No animation to edit!" -msgstr "" +msgstr "ERROR: Cap animació per editar!" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Play selected animation backwards from current pos. (A)" msgstr "" +"Reprodueix enrera l'animació seleccionada des de la posició actual. (A)" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Play selected animation backwards from end. (Shift+A)" -msgstr "" +msgstr "Reprodueix enrera l'animació seleccionada des del final. (Maj+A)" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Stop animation playback. (S)" -msgstr "" +msgstr "Aturar la reproducció de l'animació. (S)" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Play selected animation from start. (Shift+D)" -msgstr "" +msgstr "Reproduir l'animació seleccionada des de l'inici. (Maj+D)" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Play selected animation from current pos. (D)" -msgstr "" +msgstr "Reproduir l'animació seleccionada des de la posició actual. (D)" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation position (in seconds)." -msgstr "" +msgstr "Posició de l'Animació (en segons)." #: editor/plugins/animation_player_editor_plugin.cpp msgid "Scale animation playback globally for the node." -msgstr "" +msgstr "Escalar globalment la reproducció de l'animació pel node." #: editor/plugins/animation_player_editor_plugin.cpp msgid "Create new animation in player." -msgstr "" +msgstr "Crea una nova animació en el reproductor." #: editor/plugins/animation_player_editor_plugin.cpp msgid "Load animation from disk." -msgstr "" +msgstr "Carregar un animació del del disc." #: editor/plugins/animation_player_editor_plugin.cpp msgid "Load an animation from disk." -msgstr "" +msgstr "Carregar una animació des del disc." #: editor/plugins/animation_player_editor_plugin.cpp msgid "Save the current animation" -msgstr "" +msgstr "Desar l'animació actual" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Display list of animations in player." -msgstr "" +msgstr "Mostrar la llista d'animacions en el reproductor." #: editor/plugins/animation_player_editor_plugin.cpp msgid "Autoplay on Load" -msgstr "" +msgstr "Reproducció Automàtica en Carregar" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Edit Target Blend Times" -msgstr "" +msgstr "Edita els Temps de Mescla dels Objectius" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Tools" -msgstr "" +msgstr "Eines d'Animació" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Copy Animation" -msgstr "" +msgstr "Copiar l'Animació" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Create New Animation" -msgstr "" +msgstr "Crea una Nova Animació" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" -msgstr "" +msgstr "Nom de l'Animació:" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: editor/script_create_dialog.cpp msgid "Error!" -msgstr "" +msgstr "Error !" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Blend Times:" -msgstr "" +msgstr "Temps de mescla:" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Next (Auto Queue):" -msgstr "" +msgstr "Següent (Enviar a la Cua):" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Cross-Animation Blend Times" -msgstr "" +msgstr "Temps de mescla entre Animacions" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Animation" -msgstr "" +msgstr "Animació" #: editor/plugins/animation_tree_editor_plugin.cpp msgid "New name:" -msgstr "" +msgstr "Nou nom:" #: editor/plugins/animation_tree_editor_plugin.cpp -#, fuzzy msgid "Edit Filters" -msgstr "Filtres" +msgstr "Edita Filtres" #: editor/plugins/animation_tree_editor_plugin.cpp #: editor/plugins/multimesh_editor_plugin.cpp msgid "Scale:" -msgstr "" +msgstr "Escala:" #: editor/plugins/animation_tree_editor_plugin.cpp msgid "Fade In (s):" -msgstr "" +msgstr "Fosa d'entrada (s):" #: editor/plugins/animation_tree_editor_plugin.cpp msgid "Fade Out (s):" -msgstr "" +msgstr "Fosa de sortida (s):" #: editor/plugins/animation_tree_editor_plugin.cpp msgid "Blend" -msgstr "" +msgstr "Mescla" #: editor/plugins/animation_tree_editor_plugin.cpp msgid "Mix" -msgstr "" +msgstr "Mesclar" #: editor/plugins/animation_tree_editor_plugin.cpp msgid "Auto Restart:" -msgstr "" +msgstr "Reinici automàtic :" #: editor/plugins/animation_tree_editor_plugin.cpp msgid "Restart (s):" -msgstr "" +msgstr "Reinici (s):" #: editor/plugins/animation_tree_editor_plugin.cpp msgid "Random Restart (s):" -msgstr "" +msgstr "Reinici aleatori (s):" #: editor/plugins/animation_tree_editor_plugin.cpp msgid "Start!" -msgstr "" +msgstr "Inicia!" #: editor/plugins/animation_tree_editor_plugin.cpp #: editor/plugins/multimesh_editor_plugin.cpp msgid "Amount:" -msgstr "" +msgstr "Quantitat:" #: editor/plugins/animation_tree_editor_plugin.cpp msgid "Blend:" -msgstr "" +msgstr "Mescla:" #: editor/plugins/animation_tree_editor_plugin.cpp msgid "Blend 0:" -msgstr "" +msgstr "Mescla 0:" #: editor/plugins/animation_tree_editor_plugin.cpp msgid "Blend 1:" -msgstr "" +msgstr "Mescla 1:" #: editor/plugins/animation_tree_editor_plugin.cpp msgid "X-Fade Time (s):" -msgstr "" +msgstr "Durada de la fosa (s):" #: editor/plugins/animation_tree_editor_plugin.cpp msgid "Current:" -msgstr "" +msgstr "Actual:" #: editor/plugins/animation_tree_editor_plugin.cpp msgid "Add Input" -msgstr "" +msgstr "Afegeix una Entrada" #: editor/plugins/animation_tree_editor_plugin.cpp msgid "Clear Auto-Advance" -msgstr "" +msgstr "Neteja l'Autoavenç" #: editor/plugins/animation_tree_editor_plugin.cpp msgid "Set Auto-Advance" -msgstr "" +msgstr "Estableix l'Autoavenç" #: editor/plugins/animation_tree_editor_plugin.cpp msgid "Delete Input" -msgstr "" +msgstr "Elimina l'Entrada" #: editor/plugins/animation_tree_editor_plugin.cpp msgid "Animation tree is valid." -msgstr "" +msgstr "L'arbre d'animació és vàlid." #: editor/plugins/animation_tree_editor_plugin.cpp msgid "Animation tree is invalid." -msgstr "" +msgstr "L'arbre d'animació no és vàlid." #: editor/plugins/animation_tree_editor_plugin.cpp msgid "Animation Node" -msgstr "" +msgstr "Node d'Animació" #: editor/plugins/animation_tree_editor_plugin.cpp msgid "OneShot Node" -msgstr "" +msgstr "Node unSolCop" #: editor/plugins/animation_tree_editor_plugin.cpp msgid "Mix Node" -msgstr "" +msgstr "Node de Mescla" #: editor/plugins/animation_tree_editor_plugin.cpp msgid "Blend2 Node" -msgstr "" +msgstr "Node Mescla2" #: editor/plugins/animation_tree_editor_plugin.cpp msgid "Blend3 Node" -msgstr "" +msgstr "Node Mescla3" #: editor/plugins/animation_tree_editor_plugin.cpp msgid "Blend4 Node" -msgstr "" +msgstr "Node Mescla4" #: editor/plugins/animation_tree_editor_plugin.cpp msgid "TimeScale Node" -msgstr "" +msgstr "Node escalaTemps" #: editor/plugins/animation_tree_editor_plugin.cpp msgid "TimeSeek Node" -msgstr "" +msgstr "Node cercaTemps" #: editor/plugins/animation_tree_editor_plugin.cpp msgid "Transition Node" -msgstr "" +msgstr "Node de Transició" #: editor/plugins/animation_tree_editor_plugin.cpp msgid "Import Animations.." -msgstr "" +msgstr "Importa animacions..." #: editor/plugins/animation_tree_editor_plugin.cpp msgid "Edit Node Filters" -msgstr "" +msgstr "Edita els filtres de Node" #: editor/plugins/animation_tree_editor_plugin.cpp msgid "Filters.." -msgstr "" +msgstr "Filtres..." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Free" -msgstr "" +msgstr "Allibera" #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Contents:" -msgstr "Constants:" +msgstr "Continguts:" #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "View Files" -msgstr "Fitxer:" +msgstr "Veure Fitxers" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Can't resolve hostname:" -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't resolve." -msgstr "" +msgstr "No es pot resoldre l'amfitrió:" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Connection error, please try again." -msgstr "" +msgstr "S'ha produït un error en la connexió. Torneu-ho a provar." #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy -msgid "Can't connect." -msgstr "Connecta.." - -#: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Can't connect to host:" -msgstr "Connecta al Node:" +msgstr "No es pot connectar a l'amfitrió:" #: editor/plugins/asset_library_editor_plugin.cpp msgid "No response from host:" -msgstr "" +msgstr "Cap resposta de l'amfitrió:" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "No response." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Request failed, return code:" -msgstr "Format de fitxer desconegut:" - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Req. Failed." -msgstr "" +msgstr "Ha fallat la sol·licitud, codi de devolució:" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, too many redirects" -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Redirect Loop." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Failed:" -msgstr "" +msgstr "Ha fallat la sol·licitud. Massa redireccionaments" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Bad download hash, assuming file has been tampered with." -msgstr "" +msgstr "Error en la descàrrega (hash incorrecte). El fitxer fou manipulat." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Expected:" -msgstr "" +msgstr "Esperat:" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Got:" -msgstr "" +msgstr "Rebut:" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Failed sha256 hash check" -msgstr "" +msgstr "Ha fallat la comprovació del hash sha256" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Asset Download Error:" -msgstr "" +msgstr "Error en la descàrrega de l'Actiu:" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Fetching:" -msgstr "" +msgstr "Recollida:" #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Resolving.." -msgstr "Desant..." - -#: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy -msgid "Connecting.." -msgstr "Connecta.." - -#: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy -msgid "Requesting.." -msgstr "Provant" +msgstr "s'està resolent.." #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Error making request" -msgstr "Error en desar recurs!" +msgstr "Error en la sol·licitud" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Idle" -msgstr "" +msgstr "Inactiu" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Retry" -msgstr "" +msgstr "Torneu a provar" #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Download Error" -msgstr "Errors de Càrrega" +msgstr "Error en la Descàrrega" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Download for this asset is already in progress!" -msgstr "" +msgstr "Ja s'està baixant aquest actiu!" #: editor/plugins/asset_library_editor_plugin.cpp msgid "first" -msgstr "" +msgstr "Inici" #: editor/plugins/asset_library_editor_plugin.cpp msgid "prev" -msgstr "" +msgstr "anterior" #: editor/plugins/asset_library_editor_plugin.cpp msgid "next" -msgstr "" +msgstr "següent" #: editor/plugins/asset_library_editor_plugin.cpp msgid "last" -msgstr "" +msgstr "darrer" #: editor/plugins/asset_library_editor_plugin.cpp msgid "All" @@ -3226,7 +3306,7 @@ msgstr "Tot" #: editor/plugins/asset_library_editor_plugin.cpp #: editor/project_settings_editor.cpp msgid "Plugins" -msgstr "" +msgstr "Connectors" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Sort:" @@ -3263,89 +3343,124 @@ msgstr "Arxiu ZIP d'Actius" #: editor/plugins/camera_editor_plugin.cpp msgid "Preview" -msgstr "" +msgstr "Previsualització" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Configure Snap" -msgstr "" +msgstr "Configura l'Alineament" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Grid Offset:" -msgstr "" +msgstr "òfset de la graella:" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Grid Step:" -msgstr "" +msgstr "Pas de la Graella:" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Rotation Offset:" -msgstr "" +msgstr "òfset de la Rotació:" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Rotation Step:" -msgstr "" +msgstr "Pas de la Rotació:" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Move Pivot" -msgstr "" +msgstr "Mou el Pivot" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Move Action" +msgstr "Mou l'Acció" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move vertical guide" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Edit IK Chain" +#, fuzzy +msgid "Create new vertical guide" +msgstr "Crea un nou script" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove vertical guide" +msgstr "Elimina la Variable" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Move horizontal guide" +msgstr "Mou un Punt de la Corba" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create new horizontal guide" +msgstr "Crea un nou script" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove horizontal guide" +msgstr "Treure claus invàlides" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new horizontal and vertical guides" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Edit IK Chain" +msgstr "Edita la Cadena CI" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Edit CanvasItem" -msgstr "" +msgstr "Modifica el elementCanvas" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" -msgstr "" +msgstr "Només Ancoratges" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Change Anchors and Margins" -msgstr "" +msgstr "Modifica Ancoratges i Marges" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Change Anchors" -msgstr "" +msgstr "Modifica Ancoratges" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" -msgstr "" +msgstr "Enganxa Positura" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Select Mode" -msgstr "" +msgstr "Mode de selecció" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Drag: Rotate" -msgstr "" +msgstr "Arrossega: gira" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Alt+Drag: Move" -msgstr "" +msgstr "Alt+Arrosegar: Mou" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Press 'v' to Change Pivot, 'Shift+v' to Drag Pivot (while moving)." msgstr "" +"Premeu 'v' per canviar el Pivot, 'Maj+v' per arrosegar el Pivot (mentre es " +"mou)." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Alt+RMB: Depth list selection" -msgstr "" +msgstr "Alt+Clic Dret: Selecció detallada per llista" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Move Mode" -msgstr "" +msgstr "Mode de moviment" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Rotate Mode" -msgstr "" +msgstr "Mode de Rotació" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -3353,462 +3468,423 @@ msgid "" "Show a list of all objects at the position clicked\n" "(same as Alt+RMB in select mode)." msgstr "" +"Mostra la llista de tots els objectes en la posició clicada\n" +"(Tal com Alt+Clic Dreta en el mode de Selecció)." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Click to change object's rotation pivot." -msgstr "" +msgstr "Clica per modificar el pivot rotacional de l'objecte." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Pan Mode" -msgstr "" +msgstr "Mode d'Escombratge lateral" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Toggles snapping" -msgstr "Commuta el punt d'Interrupció" +msgstr "Act/Desactiva Acoblament" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp msgid "Use Snap" -msgstr "" +msgstr "Alinea" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Snapping options" -msgstr "Opcions d'Animació" +msgstr "Opcions d'Acoblament" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Snap to grid" -msgstr "" +msgstr "Alinea-ho amb la graella" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Rotation Snap" -msgstr "" +msgstr "Rotació alineada" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Configure Snap..." -msgstr "" +msgstr "Configura l'Alineament..." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Snap Relative" -msgstr "" +msgstr "Alineament Relatiu" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Pixel Snap" -msgstr "" +msgstr "Alinea-ho amb els Pixels" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Smart snapping" -msgstr "" +msgstr "Alineament intel·ligent" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Snap to parent" -msgstr "" +msgstr "Alinea-ho amb el Pare" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Snap to node anchor" -msgstr "" +msgstr "Alinea-ho amb el node d'ancoratge" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Snap to node sides" -msgstr "" +msgstr "Alinea-ho amb els costats del node" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Snap to other nodes" -msgstr "" +msgstr "Alinea-ho amb altres nodes" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Snap to guides" +msgstr "Alinea-ho amb la graella" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Lock the selected object in place (can't be moved)." -msgstr "" +msgstr "Immobilitza l'Objecte." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Unlock the selected object (can be moved)." -msgstr "" +msgstr "Allibera l'Objecte." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." -msgstr "" +msgstr "Impossibilita la selecció dels nodes fills." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." -msgstr "" +msgstr "Permet la selecció de nodes fills." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Bones" -msgstr "" +msgstr "Crea els ossos" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Clear Bones" -msgstr "" +msgstr "Esborra els Ossos" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Show Bones" -msgstr "" +msgstr "Mostra els Ossos" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make IK Chain" -msgstr "" +msgstr "Crea una cadena CI" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Clear IK Chain" -msgstr "" +msgstr "Esborra la cadena CI" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp msgid "View" -msgstr "" +msgstr "Vista" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Show Grid" -msgstr "" +msgstr "Mostra la graella" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Show helpers" -msgstr "" +msgstr "Mostrar els Ajudants" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Show rulers" -msgstr "" +msgstr "Mostra els regles" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Show guides" +msgstr "Mostra els regles" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Selection" -msgstr "" +msgstr "Centra la Selecció" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Frame Selection" -msgstr "" +msgstr "Enquadra la Selecció" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Layout" -msgstr "Desar Disposició (Layout)" +msgstr "Desar Disseny" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Insert Keys" -msgstr "" +msgstr "Insereix Claus" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Insert Key" -msgstr "" +msgstr "Insereix una clau" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Insert Key (Existing Tracks)" -msgstr "" +msgstr "Insereix una Clau (Pistes existents)" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Copy Pose" -msgstr "" +msgstr "Còpia la Postura" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Clear Pose" -msgstr "" +msgstr "Reestableix la Postura" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Drag pivot from mouse position" -msgstr "" +msgstr "Arrossega el pivot des de l la posició del ratolí" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Set pivot at mouse position" -msgstr "Treu Senyal" +msgstr "Estableix el pivot a la posició del ratolí" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Multiply grid step by 2" -msgstr "" +msgstr "Multiplica l'increment de la graella per 2" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Divide grid step by 2" -msgstr "" +msgstr "Divideix l'increment de la graella per 2" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" -msgstr "" +msgstr "Afegeix %s" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Adding %s..." -msgstr "" +msgstr "Afegint %s..." #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp msgid "Create Node" -msgstr "" +msgstr "Crea un Node" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp msgid "Error instancing scene from %s" -msgstr "" +msgstr "Error en instanciar l'escena des de %s" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp msgid "OK :(" -msgstr "" +msgstr "Buenu, pos molt bé, pos adiós... :(" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp msgid "No parent to instance a child at." -msgstr "" +msgstr "No hi ha cap node Pare per instanciar-li un fill." #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp msgid "This operation requires a single selected node." -msgstr "" +msgstr "Aquesta operació requereix un únic node seleccionat." #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Change default type" -msgstr "Canvia Tipus de la Matriu" +msgstr "Modifica el tipus per defecte" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Drag & drop + Shift : Add node as sibling\n" "Drag & drop + Alt : Change node type" msgstr "" +"Arrossegar i deixar anar + Maj: Afegeix un node com a germà\n" +"Arrossegar i deixar anar + Maj: Canvia el tipus del node" #: editor/plugins/collision_polygon_editor_plugin.cpp msgid "Create Poly3D" -msgstr "" +msgstr "Crea un Poly3D" #: editor/plugins/collision_shape_2d_editor_plugin.cpp msgid "Set Handle" -msgstr "" +msgstr "Estableix la Nansa" #: editor/plugins/cube_grid_theme_editor_plugin.cpp msgid "Remove item %d?" -msgstr "" +msgstr "Elimina l'element %d?" #: editor/plugins/cube_grid_theme_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp msgid "Add Item" -msgstr "" +msgstr "Afegeix un Element" #: editor/plugins/cube_grid_theme_editor_plugin.cpp msgid "Remove Selected Item" -msgstr "" +msgstr "Elimina l'Element Seleccionat" #: editor/plugins/cube_grid_theme_editor_plugin.cpp msgid "Import from Scene" -msgstr "" +msgstr "Importa des de l'Escena" #: editor/plugins/cube_grid_theme_editor_plugin.cpp msgid "Update from Scene" -msgstr "" +msgstr "Actualitza des de l'Escena" #: editor/plugins/curve_editor_plugin.cpp msgid "Flat0" -msgstr "" +msgstr "Flat0" #: editor/plugins/curve_editor_plugin.cpp msgid "Flat1" -msgstr "" +msgstr "Flat1" #: editor/plugins/curve_editor_plugin.cpp -#, fuzzy msgid "Ease in" -msgstr "Escala la Selecció" +msgstr "Suavitza l'entrada" #: editor/plugins/curve_editor_plugin.cpp msgid "Ease out" -msgstr "" +msgstr "Suavitza la Sortida" #: editor/plugins/curve_editor_plugin.cpp msgid "Smoothstep" -msgstr "" +msgstr "pas de Suavització" #: editor/plugins/curve_editor_plugin.cpp msgid "Modify Curve Point" -msgstr "" +msgstr "Modifica el Punt de la Corba" #: editor/plugins/curve_editor_plugin.cpp msgid "Modify Curve Tangent" -msgstr "" +msgstr "Modifica la Tangent de la Corba" #: editor/plugins/curve_editor_plugin.cpp -#, fuzzy msgid "Load Curve Preset" -msgstr "Errors de Càrrega" +msgstr "Carrega un ajustament per la Corba" #: editor/plugins/curve_editor_plugin.cpp -#, fuzzy msgid "Add point" -msgstr "Afegeix Senyal" +msgstr "Afegeix un punt" #: editor/plugins/curve_editor_plugin.cpp -#, fuzzy msgid "Remove point" -msgstr "Treu Senyal" +msgstr "Elimina el punt" #: editor/plugins/curve_editor_plugin.cpp -#, fuzzy msgid "Left linear" -msgstr "Lineal" +msgstr "Lineal esquerra" #: editor/plugins/curve_editor_plugin.cpp msgid "Right linear" -msgstr "" +msgstr "Lineal dreta" #: editor/plugins/curve_editor_plugin.cpp -#, fuzzy msgid "Load preset" -msgstr "Errors de Càrrega" +msgstr "Carrega un ajustament" #: editor/plugins/curve_editor_plugin.cpp -#, fuzzy msgid "Remove Curve Point" -msgstr "Treu Senyal" +msgstr "Elimina un punt de la Corba" #: editor/plugins/curve_editor_plugin.cpp msgid "Toggle Curve Linear Tangent" -msgstr "" +msgstr "Tangent Lineal" #: editor/plugins/curve_editor_plugin.cpp msgid "Hold Shift to edit tangents individually" +msgstr "Prem Maj. per editar les tangents individualment" + +#: editor/plugins/gi_probe_editor_plugin.cpp +msgid "Bake GI Probe" msgstr "" #: editor/plugins/gradient_editor_plugin.cpp msgid "Add/Remove Color Ramp Point" -msgstr "" +msgstr "Afegeix/Elimina un Punt en la Rampa de Color" #: editor/plugins/gradient_editor_plugin.cpp #: editor/plugins/shader_graph_editor_plugin.cpp msgid "Modify Color Ramp" -msgstr "" +msgstr "Modifica la Rampa de Color" #: editor/plugins/item_list_editor_plugin.cpp msgid "Item %d" -msgstr "" +msgstr "Element %d" #: editor/plugins/item_list_editor_plugin.cpp msgid "Items" -msgstr "" +msgstr "Elements" #: editor/plugins/item_list_editor_plugin.cpp msgid "Item List Editor" -msgstr "" +msgstr "Editor de Llistes d'Elements" #: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "" "No OccluderPolygon2D resource on this node.\n" "Create and assign one?" msgstr "" +"No s'ha trobat cap recurs de tipus OccluderPolygon2D en aquest node.\n" +"Vol Crear i assignar-ne un ara?" #: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Occluder Polygon" -msgstr "" +msgstr "Crea un Polígon Oclusor" + +#: editor/plugins/light_occluder_2d_editor_plugin.cpp +msgid "Create a new polygon from scratch." +msgstr "Crea un nou Polígon del no-res." #: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Edit existing polygon:" -msgstr "" +msgstr "Edita un polígon existent:" #: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "LMB: Move Point." -msgstr "" +msgstr "Clic Esquerra: Mou un Punt." #: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Ctrl+LMB: Split Segment." -msgstr "" +msgstr "Ctrl + Clic Esquerra: Divideix el Segment." #: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "RMB: Erase Point." -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Remove Point from Line2D" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#, fuzzy -msgid "Add Point to Line2D" -msgstr "Vés a la Línia" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Move Point in Line2D" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Select Points" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Shift+Drag: Select Control Points" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Click: Add Point" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Right Click: Delete Point" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Add Point (in empty space)" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Split Segment (in line)" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Delete Point" -msgstr "" +msgstr "Clic Dret: Eliminar un Punt." #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" -msgstr "" +msgstr "La malla és buida!" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Static Trimesh Body" -msgstr "" +msgstr "Crea un Cos Estàtic a partir d'una malla de triangles" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Static Convex Body" -msgstr "" +msgstr "Crea un Cos Estàtic Convex" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "This doesn't work on scene root!" -msgstr "" +msgstr "No es pot executar en una escena arrel!" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Shape" -msgstr "" +msgstr "Crea un forma amb una malla de triangles" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Convex Shape" -msgstr "" +msgstr "Crea una Forma Convexa" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Navigation Mesh" -msgstr "" +msgstr "Crea un malla de Navegació" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "MeshInstance lacks a Mesh!" -msgstr "" +msgstr "MeshInstance manca d'una Malla!" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh has not surface to create outlines from!" -msgstr "" +msgstr "La Malla manca d'una superfície on delinear-hi els contorns!" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Could not create outline!" -msgstr "" +msgstr "No es pot crear el contorn!" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Outline" -msgstr "" +msgstr "Crea el Contorn" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh" @@ -3816,444 +3892,467 @@ msgstr "Malla" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Static Body" -msgstr "" +msgstr "Crea un Cos Estàtic a partir d'una malla de triangles" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Convex Static Body" -msgstr "" +msgstr "Crea un Cos Estàtic Convex" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" -msgstr "" +msgstr "Crea una Col·lisió entre malles de triangles germanes" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Convex Collision Sibling" -msgstr "" +msgstr "Crea col·lisions convexes entre nodes germans" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Outline Mesh.." -msgstr "" +msgstr "Crea una malla de contorn..." #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Outline Mesh" -msgstr "" +msgstr "Crea la Malla de Contorn" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Outline Size:" -msgstr "" +msgstr "Mida del Contorn:" #: editor/plugins/multimesh_editor_plugin.cpp msgid "No mesh source specified (and no MultiMesh set in node)." -msgstr "" +msgstr "Manca una malla d'origen (ni s'ha establert cap MultiMesh en el node)." #: editor/plugins/multimesh_editor_plugin.cpp msgid "No mesh source specified (and MultiMesh contains no Mesh)." -msgstr "" +msgstr "Manca una malla d'origen ( i MultiMesh no conté cap malla)." #: editor/plugins/multimesh_editor_plugin.cpp msgid "Mesh source is invalid (invalid path)." -msgstr "" +msgstr "La Malla d'origen no és vàlida (camí incorrecte)." #: editor/plugins/multimesh_editor_plugin.cpp msgid "Mesh source is invalid (not a MeshInstance)." -msgstr "" +msgstr "La Malla d'origen no és vàlida ( No és una MeshInstance)." #: editor/plugins/multimesh_editor_plugin.cpp msgid "Mesh source is invalid (contains no Mesh resource)." -msgstr "" +msgstr "La Malla d'origen no és vàlida ( Li manca un recurs de tipus Malla)." #: editor/plugins/multimesh_editor_plugin.cpp msgid "No surface source specified." -msgstr "" +msgstr "Manca una superfície d'origen." #: editor/plugins/multimesh_editor_plugin.cpp msgid "Surface source is invalid (invalid path)." -msgstr "" +msgstr "La Superfície no és vàlida (camí incorrecte)." #: editor/plugins/multimesh_editor_plugin.cpp msgid "Surface source is invalid (no geometry)." -msgstr "" +msgstr "La Superfície d'origen no és vàlida (li manca geometria)." #: editor/plugins/multimesh_editor_plugin.cpp msgid "Surface source is invalid (no faces)." -msgstr "" +msgstr "La Superfície d'origen no és vàlida (li manquen cares)." #: editor/plugins/multimesh_editor_plugin.cpp msgid "Parent has no solid faces to populate." -msgstr "" +msgstr "el node Pare no disposa de cares sòlides per omplir." #: editor/plugins/multimesh_editor_plugin.cpp msgid "Couldn't map area." -msgstr "" +msgstr "No es pot cartografiar la zona." #: editor/plugins/multimesh_editor_plugin.cpp msgid "Select a Source Mesh:" -msgstr "" +msgstr "Selecciona una Malla d'Origen:" #: editor/plugins/multimesh_editor_plugin.cpp msgid "Select a Target Surface:" -msgstr "" +msgstr "Selecciona una Superfície Objectiu:" #: editor/plugins/multimesh_editor_plugin.cpp msgid "Populate Surface" -msgstr "" +msgstr "Omple la Superfície" #: editor/plugins/multimesh_editor_plugin.cpp msgid "Populate MultiMesh" -msgstr "" +msgstr "Omple el MultiMesh" #: editor/plugins/multimesh_editor_plugin.cpp msgid "Target Surface:" -msgstr "" +msgstr "Superfície Objectiu:" #: editor/plugins/multimesh_editor_plugin.cpp msgid "Source Mesh:" -msgstr "" +msgstr "Malla d'Origen:" #: editor/plugins/multimesh_editor_plugin.cpp msgid "X-Axis" -msgstr "" +msgstr "Eix X" #: editor/plugins/multimesh_editor_plugin.cpp msgid "Y-Axis" -msgstr "" +msgstr "Eix Y" #: editor/plugins/multimesh_editor_plugin.cpp msgid "Z-Axis" -msgstr "" +msgstr "Eix Z" #: editor/plugins/multimesh_editor_plugin.cpp msgid "Mesh Up Axis:" -msgstr "" +msgstr "Eix Vertical de la Malla:" #: editor/plugins/multimesh_editor_plugin.cpp msgid "Random Rotation:" -msgstr "" +msgstr "Rotació aleatòria:" #: editor/plugins/multimesh_editor_plugin.cpp msgid "Random Tilt:" -msgstr "" +msgstr "Inclinació aleatòria:" #: editor/plugins/multimesh_editor_plugin.cpp msgid "Random Scale:" -msgstr "" +msgstr "Escala aleatòria:" #: editor/plugins/multimesh_editor_plugin.cpp msgid "Populate" -msgstr "" +msgstr "Omple" #: editor/plugins/navigation_mesh_editor_plugin.cpp msgid "Bake!" -msgstr "" +msgstr "Calcula!" #: editor/plugins/navigation_mesh_editor_plugin.cpp msgid "Bake the navigation mesh.\n" -msgstr "" +msgstr "Cou la malla de navegació.\n" #: editor/plugins/navigation_mesh_editor_plugin.cpp msgid "Clear the navigation mesh." -msgstr "" +msgstr "Reestableix la malla de navegació." #: editor/plugins/navigation_mesh_generator.cpp msgid "Setting up Configuration..." -msgstr "" +msgstr "Establint la Configuració..." #: editor/plugins/navigation_mesh_generator.cpp msgid "Calculating grid size..." -msgstr "" +msgstr "Calculant la mida de la graella..." #: editor/plugins/navigation_mesh_generator.cpp msgid "Creating heightfield..." -msgstr "" +msgstr "Creant un camp de desplaçaments verticals..." #: editor/plugins/navigation_mesh_generator.cpp -#, fuzzy msgid "Marking walkable triangles..." -msgstr "Cadenes Traduïbles..." +msgstr "Marcant els triangles transitables..." #: editor/plugins/navigation_mesh_generator.cpp msgid "Constructing compact heightfield..." -msgstr "" +msgstr "Construcció d'un camp compacte de desplaçaments verticals..." #: editor/plugins/navigation_mesh_generator.cpp msgid "Eroding walkable area..." -msgstr "" +msgstr "Erosionant l'àrea transitable..." #: editor/plugins/navigation_mesh_generator.cpp msgid "Partitioning..." -msgstr "" +msgstr "Establint Particions..." #: editor/plugins/navigation_mesh_generator.cpp msgid "Creating contours..." -msgstr "" +msgstr "Creant els contorns..." #: editor/plugins/navigation_mesh_generator.cpp msgid "Creating polymesh..." -msgstr "" +msgstr "creant la polyMesh..." #: editor/plugins/navigation_mesh_generator.cpp msgid "Converting to native navigation mesh..." -msgstr "" +msgstr "Convertint-ho en una malla de navegació nativa..." #: editor/plugins/navigation_mesh_generator.cpp msgid "Navigation Mesh Generator Setup:" -msgstr "" +msgstr "Configuració del Generador de Malles de Navegació:" #: editor/plugins/navigation_mesh_generator.cpp msgid "Parsing Geometry..." -msgstr "" +msgstr "Analitzant la Geometria..." #: editor/plugins/navigation_mesh_generator.cpp msgid "Done!" -msgstr "" +msgstr "Fet!" #: editor/plugins/navigation_polygon_editor_plugin.cpp msgid "Create Navigation Polygon" -msgstr "" +msgstr "Crea un Polígon de Navegació" #: editor/plugins/particles_2d_editor_plugin.cpp msgid "Clear Emission Mask" -msgstr "" +msgstr "Esborra la Màscara d'Emissió" #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp msgid "Generating AABB" -msgstr "" +msgstr "Generant AABB" #: editor/plugins/particles_2d_editor_plugin.cpp msgid "Can only set point into a ParticlesMaterial process material" -msgstr "" +msgstr "Només es poden establir punts en materials de procés ParticlesMaterial" #: editor/plugins/particles_2d_editor_plugin.cpp msgid "Error loading image:" -msgstr "" +msgstr "Error en carregar la imatge:" #: editor/plugins/particles_2d_editor_plugin.cpp msgid "No pixels with transparency > 128 in image.." -msgstr "" +msgstr "Cap píxel amb transparència > 128 en la imatge..." #: editor/plugins/particles_2d_editor_plugin.cpp msgid "Set Emission Mask" -msgstr "" +msgstr "Estableix la Màscara d'Emissió" #: editor/plugins/particles_2d_editor_plugin.cpp msgid "Generate Visibility Rect" -msgstr "" +msgstr "Genera un Rectangle de Visibilitat" #: editor/plugins/particles_2d_editor_plugin.cpp msgid "Load Emission Mask" -msgstr "" +msgstr "Carrega una Màscara d'Emissió" #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp msgid "Particles" -msgstr "" +msgstr "Partícules" #: editor/plugins/particles_2d_editor_plugin.cpp msgid "Generated Point Count:" -msgstr "" +msgstr "Recompte de punts generats:" #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp -#, fuzzy msgid "Generation Time (sec):" -msgstr "Temps Mitjà (s)" +msgstr "Temps de generació (s):" #: editor/plugins/particles_2d_editor_plugin.cpp msgid "Emission Mask" -msgstr "" +msgstr "Màscara d'Emissió" #: editor/plugins/particles_2d_editor_plugin.cpp msgid "Capture from Pixel" -msgstr "" +msgstr "Captura des d'un Píxel" #: editor/plugins/particles_2d_editor_plugin.cpp msgid "Emission Colors" -msgstr "" +msgstr "Colors d'Emissió" #: editor/plugins/particles_editor_plugin.cpp msgid "Node does not contain geometry." -msgstr "" +msgstr "El Node no conté cap geometria." #: editor/plugins/particles_editor_plugin.cpp msgid "Node does not contain geometry (faces)." -msgstr "" +msgstr "El Node no conté cap geometria (cares)." #: editor/plugins/particles_editor_plugin.cpp msgid "A processor material of type 'ParticlesMaterial' is required." -msgstr "" +msgstr "Un material processador de tipus 'ParticlesMaterial' és obligatori." #: editor/plugins/particles_editor_plugin.cpp msgid "Faces contain no area!" -msgstr "" +msgstr "Les Cares no tenen àrea!" #: editor/plugins/particles_editor_plugin.cpp msgid "No faces!" -msgstr "" +msgstr "Cap Cara!" #: editor/plugins/particles_editor_plugin.cpp msgid "Generate AABB" -msgstr "" +msgstr "Genera AABB" #: editor/plugins/particles_editor_plugin.cpp msgid "Create Emission Points From Mesh" -msgstr "" +msgstr "Crea Punts d'Emissió des d'una Malla" #: editor/plugins/particles_editor_plugin.cpp msgid "Create Emission Points From Node" -msgstr "" +msgstr "Crea Punts d'Emissió des d'un Node" #: editor/plugins/particles_editor_plugin.cpp msgid "Clear Emitter" -msgstr "" +msgstr "Esborra l'Emissor" #: editor/plugins/particles_editor_plugin.cpp msgid "Create Emitter" -msgstr "" +msgstr "Crea un Emissor" #: editor/plugins/particles_editor_plugin.cpp msgid "Emission Points:" -msgstr "" +msgstr "Punts d'Emissió:" #: editor/plugins/particles_editor_plugin.cpp -#, fuzzy msgid "Surface Points" -msgstr "Superfície %d" +msgstr "Punts de la Superfície" #: editor/plugins/particles_editor_plugin.cpp msgid "Surface Points+Normal (Directed)" -msgstr "" +msgstr "Punts + Normal (Dirigida)" #: editor/plugins/particles_editor_plugin.cpp msgid "Volume" -msgstr "" +msgstr "Volum" #: editor/plugins/particles_editor_plugin.cpp msgid "Emission Source: " -msgstr "" +msgstr "Font d'Emissió: " #: editor/plugins/particles_editor_plugin.cpp msgid "Generate Visibility AABB" -msgstr "" +msgstr "Genera un AABB de Visibilitat" #: editor/plugins/path_2d_editor_plugin.cpp msgid "Remove Point from Curve" -msgstr "" +msgstr "Elimina un Punt de la Corba" #: editor/plugins/path_2d_editor_plugin.cpp msgid "Remove Out-Control from Curve" -msgstr "" +msgstr "Elimina Out-Control de la Corba" #: editor/plugins/path_2d_editor_plugin.cpp msgid "Remove In-Control from Curve" -msgstr "" +msgstr "Elimina In-Control de la Corba" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Add Point to Curve" -msgstr "" +msgstr "Afegeix un Punt a la Corba" #: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" -msgstr "" +msgstr "Mou un Punt de la Corba" #: editor/plugins/path_2d_editor_plugin.cpp msgid "Move In-Control in Curve" -msgstr "" +msgstr "Mou In-Control de la Corba" #: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Out-Control in Curve" -msgstr "" +msgstr "Mou Out-Control de la Corba" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Select Points" +msgstr "Selecciona Punts" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Shift+Drag: Select Control Points" +msgstr "Maj.+ Arrossegar: Selecciona Punts de Control" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Click: Add Point" +msgstr "Clic: Afegeix un Punt" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Right Click: Delete Point" +msgstr "Clic Dret: Elimina el Punt" #: editor/plugins/path_2d_editor_plugin.cpp msgid "Select Control Points (Shift+Drag)" -msgstr "" +msgstr "Selecciona Punts de Control (Maj.+Arrossegar)" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Add Point (in empty space)" +msgstr "Afegeix un Punt (en l'espai buit)" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Split Segment (in curve)" -msgstr "" +msgstr "Parteix el Segment (de la Corba)" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Delete Point" +msgstr "Elimina el Punt" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Close Curve" -msgstr "" +msgstr "Tanca la Corba" #: editor/plugins/path_editor_plugin.cpp msgid "Curve Point #" -msgstr "" +msgstr "Punt num. # de la Corba" #: editor/plugins/path_editor_plugin.cpp -#, fuzzy msgid "Set Curve Point Position" -msgstr "Treu Senyal" +msgstr "Estableix la Posició del Punt de la Corba" #: editor/plugins/path_editor_plugin.cpp -#, fuzzy msgid "Set Curve In Position" -msgstr "Treu Senyal" +msgstr "Estableix la Posició d'Entrada de la Corba" #: editor/plugins/path_editor_plugin.cpp -#, fuzzy msgid "Set Curve Out Position" -msgstr "Treu Senyal" +msgstr "Estableix la Posició de Sortida de la Corba" #: editor/plugins/path_editor_plugin.cpp msgid "Split Path" -msgstr "" +msgstr "Parteix el Camí" #: editor/plugins/path_editor_plugin.cpp msgid "Remove Path Point" -msgstr "" +msgstr "Elimina un Punt del Camí" #: editor/plugins/path_editor_plugin.cpp -#, fuzzy msgid "Remove Out-Control Point" -msgstr "Treure Autocàrrega" +msgstr "Elimina el Punt Out-Control" #: editor/plugins/path_editor_plugin.cpp msgid "Remove In-Control Point" -msgstr "" +msgstr "Elimina el Punt In-Control" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Create UV Map" -msgstr "" +msgstr "Crea un Mapa UV" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Transform UV Map" -msgstr "" +msgstr "Transforma el Mapa UV" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Polygon 2D UV Editor" -msgstr "" +msgstr "Editor d'UVs de Polígons 2D" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Move Point" -msgstr "" +msgstr "Mou el Punt" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Ctrl: Rotate" -msgstr "" +msgstr "Ctrl: Gira" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Shift: Move All" -msgstr "" +msgstr "Maj.: Mou'ho tot" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Shift+Ctrl: Scale" -msgstr "" +msgstr "Maj.+Ctrl: Escala" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Move Polygon" -msgstr "" +msgstr "Mou el Polígon" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Rotate Polygon" -msgstr "" +msgstr "Gira el Polígon" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Scale Polygon" -msgstr "" +msgstr "Escala el Polígon" #: editor/plugins/polygon_2d_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp @@ -4265,58 +4364,57 @@ msgstr "Edita" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Polygon->UV" -msgstr "" +msgstr "Polígon -> UV" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "UV->Polygon" -msgstr "" +msgstr "UV->Polígon" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Clear UV" -msgstr "" +msgstr "Esborra UVs" #: editor/plugins/polygon_2d_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp msgid "Snap" -msgstr "" +msgstr "Alinea" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Enable Snap" -msgstr "" +msgstr "Activa l'Alineament" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Grid" -msgstr "" +msgstr "Graella" #: editor/plugins/resource_preloader_editor_plugin.cpp msgid "ERROR: Couldn't load resource!" -msgstr "" +msgstr "Error: no es pot carregar el recurs!" #: editor/plugins/resource_preloader_editor_plugin.cpp msgid "Add Resource" -msgstr "" +msgstr "Afegeix un Recurs" #: editor/plugins/resource_preloader_editor_plugin.cpp msgid "Rename Resource" -msgstr "" +msgstr "Reanomena el Recurs" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Resource" -msgstr "" +msgstr "Elimina el Recurs" #: editor/plugins/resource_preloader_editor_plugin.cpp msgid "Resource clipboard is empty!" -msgstr "" +msgstr "El porta-retalls de Recursos és buit!" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" -msgstr "" +msgstr "Carrega un Recurs" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Paste" @@ -4324,197 +4422,217 @@ msgstr "Enganxa" #: editor/plugins/script_editor_plugin.cpp msgid "Clear Recent Files" -msgstr "" +msgstr "Esborra la llista de Fitxers recents" #: editor/plugins/script_editor_plugin.cpp msgid "" "Close and save changes?\n" "\"" msgstr "" +"Tancar i desar els canvis?\n" +"\"" #: editor/plugins/script_editor_plugin.cpp msgid "Error while saving theme" -msgstr "" +msgstr "Error en desar el tema" #: editor/plugins/script_editor_plugin.cpp msgid "Error saving" -msgstr "" +msgstr "Error en desar" #: editor/plugins/script_editor_plugin.cpp msgid "Error importing theme" -msgstr "" +msgstr "Error en importar el tema" #: editor/plugins/script_editor_plugin.cpp msgid "Error importing" -msgstr "" +msgstr "Error en importar" #: editor/plugins/script_editor_plugin.cpp msgid "Import Theme" -msgstr "" +msgstr "Importa un Tema" #: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As.." -msgstr "" +msgstr "Desa el Tema com a..." #: editor/plugins/script_editor_plugin.cpp msgid " Class Reference" +msgstr " Referència de Classe" + +#: editor/plugins/script_editor_plugin.cpp +#, fuzzy +msgid "Sort" +msgstr "Ordena:" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Up" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Next script" +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Down" msgstr "" #: editor/plugins/script_editor_plugin.cpp +msgid "Next script" +msgstr "Script Següent" + +#: editor/plugins/script_editor_plugin.cpp msgid "Previous script" -msgstr "" +msgstr "Script Anterior" #: editor/plugins/script_editor_plugin.cpp msgid "File" -msgstr "" +msgstr "Fitxer" #: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp msgid "New" -msgstr "" +msgstr "Nou" #: editor/plugins/script_editor_plugin.cpp msgid "Save All" -msgstr "" +msgstr "Desa-ho Tot" #: editor/plugins/script_editor_plugin.cpp msgid "Soft Reload Script" -msgstr "" +msgstr "Recarrega parcialment el Script" #: editor/plugins/script_editor_plugin.cpp msgid "History Prev" -msgstr "" +msgstr "Anterior en l'Historial" #: editor/plugins/script_editor_plugin.cpp msgid "History Next" -msgstr "" +msgstr "Següent en l'Historial" #: editor/plugins/script_editor_plugin.cpp msgid "Reload Theme" -msgstr "" +msgstr "Recarrega el Tema" #: editor/plugins/script_editor_plugin.cpp msgid "Save Theme" -msgstr "" +msgstr "Desa el Tema" #: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As" -msgstr "" +msgstr "Anomena i Desa el Tema" #: editor/plugins/script_editor_plugin.cpp msgid "Close Docs" -msgstr "" +msgstr "Tanca la Documentació" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Close All" -msgstr "Tanca" +msgstr "Tanca-ho Tot" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" -msgstr "" +msgstr "Executa" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Toggle Scripts Panel" -msgstr "Commuta Favorit" +msgstr "Panell de Scripts" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find.." -msgstr "" +msgstr "Cerca..." #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Next" -msgstr "" +msgstr "Cerca el Següent" #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp +#, fuzzy msgid "Step Over" -msgstr "" +msgstr "Sobrepassa-ho" #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Into" -msgstr "" +msgstr "Pas endins" #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Break" -msgstr "" +msgstr "Atura" #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp #: editor/script_editor_debugger.cpp msgid "Continue" -msgstr "" +msgstr "Continua" #: editor/plugins/script_editor_plugin.cpp msgid "Keep Debugger Open" -msgstr "" +msgstr "Manté el Depurador Obert" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Debug with external editor" -msgstr "Editor de Dependències" +msgstr "Depura amb un editor extern" #: editor/plugins/script_editor_plugin.cpp msgid "Open Godot online documentation" -msgstr "" +msgstr "Obre la Documentació en línia" #: editor/plugins/script_editor_plugin.cpp msgid "Search the class hierarchy." -msgstr "" +msgstr "Cerca dins la jerarquia de classes." #: editor/plugins/script_editor_plugin.cpp msgid "Search the reference documentation." -msgstr "" +msgstr "Cerca dins la documentació de referència." #: editor/plugins/script_editor_plugin.cpp msgid "Go to previous edited document." -msgstr "" +msgstr "Vés a l'anterior document editat." #: editor/plugins/script_editor_plugin.cpp msgid "Go to next edited document." -msgstr "" +msgstr "Vés al següent document editat." #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Discard" -msgstr "Discret" +msgstr "Descarta'l" #: editor/plugins/script_editor_plugin.cpp msgid "Create Script" -msgstr "" +msgstr "Crea un Script" #: editor/plugins/script_editor_plugin.cpp msgid "" "The following files are newer on disk.\n" "What action should be taken?:" msgstr "" +"El disc conté versions més recents dels fitxer següents. \n" +"Quina acció s'ha de seguir?:" #: editor/plugins/script_editor_plugin.cpp msgid "Reload" -msgstr "" +msgstr "Tornar a Carregar" #: editor/plugins/script_editor_plugin.cpp msgid "Resave" -msgstr "" +msgstr "Torna a Desar" #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" -msgstr "" +msgstr "Depurador" #: editor/plugins/script_editor_plugin.cpp msgid "" "Built-in scripts can only be edited when the scene they belong to is loaded" msgstr "" +"Només es poden editar els Scripts Integrats amb la seva escena associada " +"carregada." #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." -msgstr "" +msgstr "Només es poden dipositar Recursos del sistema de fitxers" #: editor/plugins/script_text_editor.cpp msgid "Pick Color" @@ -4537,33 +4655,22 @@ msgstr "" msgid "Capitalize" msgstr "" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" msgstr "Talla" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Copy" msgstr "Copia" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Select All" msgstr "Selecciona-ho Tot" -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Up" -msgstr "" - -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Down" -msgstr "" - #: editor/plugins/script_text_editor.cpp #, fuzzy msgid "Delete Line" @@ -4586,6 +4693,23 @@ msgid "Clone Down" msgstr "" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Fold Line" +msgstr "Vés a la Línia" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold Line" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Fold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Complete Symbol" msgstr "" @@ -4633,12 +4757,10 @@ msgid "Convert To Lowercase" msgstr "Converteix a..." #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Previous" msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Replace.." msgstr "" @@ -4647,7 +4769,6 @@ msgid "Goto Function.." msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Goto Line.." msgstr "" @@ -4812,6 +4933,16 @@ msgid "View Plane Transform." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Scaling: " +msgstr "Escala:" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Translating: " +msgstr "Translació Alineada:" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Rotating %s degrees." msgstr "" @@ -4895,6 +5026,10 @@ msgid "Vertices" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "FPS" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Align with view" msgstr "" @@ -4927,6 +5062,16 @@ msgid "View Information" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "View FPS" +msgstr "Veure Fitxers" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Half Resolution" +msgstr "Escala la Selecció" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Audio Listener" msgstr "" @@ -5051,7 +5196,7 @@ msgstr "Tota la Selecció" #: editor/plugins/spatial_editor_plugin.cpp #, fuzzy msgid "Tool Move" -msgstr "Mou" +msgstr "Moure" #: editor/plugins/spatial_editor_plugin.cpp msgid "Tool Rotate" @@ -5062,12 +5207,17 @@ msgid "Tool Scale" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Toggle Freelook" +msgstr "Mode Pantalla Completa" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Transform" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp msgid "Configure Snap.." -msgstr "" +msgstr "Configura l'Alineament..." #: editor/plugins/spatial_editor_plugin.cpp msgid "Local Coords" @@ -5116,19 +5266,19 @@ msgstr "Configuració" #: editor/plugins/spatial_editor_plugin.cpp msgid "Snap Settings" -msgstr "Configuració de Desplaçament" +msgstr "Configuració de l'Alineament" #: editor/plugins/spatial_editor_plugin.cpp msgid "Translate Snap:" -msgstr "" +msgstr "Translació Alineada:" #: editor/plugins/spatial_editor_plugin.cpp msgid "Rotate Snap (deg.):" -msgstr "" +msgstr "Rotació Alineada (graus):" #: editor/plugins/spatial_editor_plugin.cpp msgid "Scale Snap (%):" -msgstr "" +msgstr "Escala Alineada (%):" #: editor/plugins/spatial_editor_plugin.cpp msgid "Viewport Settings" @@ -5249,7 +5399,7 @@ msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" -msgstr "" +msgstr "Mode Imant:" #: editor/plugins/texture_region_editor_plugin.cpp msgid "<None>" @@ -5257,11 +5407,11 @@ msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp msgid "Pixel Snap" -msgstr "" +msgstr "Alinea-ho amb els Pixels" #: editor/plugins/texture_region_editor_plugin.cpp msgid "Grid Snap" -msgstr "" +msgstr "Alinea-ho a la graella" #: editor/plugins/texture_region_editor_plugin.cpp msgid "Auto Slice" @@ -5307,12 +5457,12 @@ msgstr "" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy msgid "Remove All Items" -msgstr "Treu la Selecció" +msgstr "Treure la Selecció" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy msgid "Remove All" -msgstr "Treu" +msgstr "Treure" #: editor/plugins/theme_editor_plugin.cpp msgid "Edit theme.." @@ -5339,6 +5489,10 @@ msgid "Create Empty Editor Template" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Create From Current Editor Theme" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "CheckBox Radio1" msgstr "" @@ -5414,7 +5568,7 @@ msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy msgid "Erase Selection" -msgstr "Escala la Selecció" +msgstr "Escalar la Selecció" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint TileMap" @@ -5516,8 +5670,8 @@ msgstr "Activa" #: editor/project_export.cpp #, fuzzy -msgid "Delete patch '" -msgstr "Elimina Disposició (Layout)" +msgid "Delete patch '%s' from list?" +msgstr "Elimina Pedaç '" #: editor/project_export.cpp #, fuzzy @@ -5779,7 +5933,7 @@ msgstr "" #: editor/project_manager.cpp #, fuzzy msgid "Templates" -msgstr "Treu la Selecció" +msgstr "Treure la Selecció" #: editor/project_manager.cpp msgid "Exit" @@ -5827,10 +5981,6 @@ msgid "Add Input Action Event" msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Meta+" -msgstr "Meta +" - -#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp msgid "Shift+" msgstr "Maj +" @@ -5889,11 +6039,11 @@ msgstr "" #: editor/project_settings_editor.cpp #: modules/visual_script/visual_script_editor.cpp msgid "Change" -msgstr "Canvia" +msgstr "Modifica" #: editor/project_settings_editor.cpp msgid "Joypad Axis Index:" -msgstr "" +msgstr "Índex de l'eix de la maneta:" #: editor/project_settings_editor.cpp msgid "Axis" @@ -5901,11 +6051,11 @@ msgstr "Eix" #: editor/project_settings_editor.cpp msgid "Joypad Button Index:" -msgstr "" +msgstr "Índex del Botó de la Maneta:" #: editor/project_settings_editor.cpp msgid "Add Input Action" -msgstr "" +msgstr "Afegeix una Acció d'Entrada" #: editor/project_settings_editor.cpp msgid "Erase Input Action Event" @@ -5946,20 +6096,19 @@ msgstr "Roda Avall." #: editor/project_settings_editor.cpp #, fuzzy msgid "Add Global Property" -msgstr "Afegeix Propietat d'Accés (Getter)" +msgstr "Afegir Propietat d'Accés (Getter)" #: editor/project_settings_editor.cpp msgid "Select a setting item first!" msgstr "" #: editor/project_settings_editor.cpp -msgid "No property '" +msgid "No property '%s' exists." msgstr "" #: editor/project_settings_editor.cpp -#, fuzzy -msgid "Setting '" -msgstr "Configuració" +msgid "Setting '%s' is internal, and it can't be deleted." +msgstr "" #: editor/project_settings_editor.cpp #, fuzzy @@ -6016,9 +6165,8 @@ msgid "Remove Resource Remap Option" msgstr "" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Changed Locale Filter" -msgstr "Canvia Tipus de la Matriu" +msgstr "S'ha Modificat el Filtre de Locale" #: editor/project_settings_editor.cpp msgid "Changed Locale Filter Mode" @@ -6158,112 +6306,104 @@ msgid "New Script" msgstr "Executa Script" #: editor/property_editor.cpp -#, fuzzy msgid "Make Unique" -msgstr "Crea SubRecurs Únic" +msgstr "Fes-lo Únic" #: editor/property_editor.cpp -#, fuzzy msgid "Show in File System" -msgstr "SistemaDeFitxers" +msgstr "Mostra'l en el Sistema de Fitxers" #: editor/property_editor.cpp -#, fuzzy msgid "Convert To %s" -msgstr "Converteix a..." +msgstr "Converteix a %s" #: editor/property_editor.cpp msgid "Error loading file: Not a resource!" -msgstr "" +msgstr "S'ha produït un error en llegir el fitxer: No és un recurs!" #: editor/property_editor.cpp -#, fuzzy msgid "Selected node is not a Viewport!" -msgstr "Selecciona Node(s) per Importar" +msgstr "El Node seleccionat no és una Vista!" #: editor/property_editor.cpp -#, fuzzy msgid "Pick a Node" -msgstr "Camí al Node:" +msgstr "Escull un Node" #: editor/property_editor.cpp msgid "Bit %d, val %d." -msgstr "" +msgstr "Bit %d, valor %d." #: editor/property_editor.cpp msgid "On" -msgstr "" +msgstr "Activat" #: editor/property_editor.cpp modules/visual_script/visual_script_editor.cpp msgid "Set" -msgstr "Especifica" +msgstr "Estableix" #: editor/property_editor.cpp msgid "Properties:" -msgstr "" +msgstr "Propietats:" #: editor/property_editor.cpp msgid "Sections:" -msgstr "" +msgstr "Seccions:" #: editor/property_selector.cpp -#, fuzzy msgid "Select Property" -msgstr "Afegeix Col.locador de Proprietat (Setter)" +msgstr "Selecciona una Propietat" #: editor/property_selector.cpp -#, fuzzy msgid "Select Virtual Method" -msgstr "Mètodes públics:" +msgstr "Selecciona un Mètode Virtual" #: editor/property_selector.cpp -#, fuzzy msgid "Select Method" -msgstr "Mètodes públics:" +msgstr "Selecciona un Mètode" #: editor/pvrtc_compress.cpp msgid "Could not execute PVRTC tool:" -msgstr "" +msgstr "No s'ha pogut executar l'eina PVRTC:" #: editor/pvrtc_compress.cpp msgid "Can't load back converted image using PVRTC tool:" -msgstr "" +msgstr "No s'ha pogut recarregar la imatge convertida mitjançant l'eina PVRTC:" #: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp msgid "Reparent Node" -msgstr "" +msgstr "Torna a Parentar el Node" #: editor/reparent_dialog.cpp msgid "Reparent Location (Select new Parent):" -msgstr "" +msgstr "Reemparentar l'Ubicació (Selecciona un nou Pare):" #: editor/reparent_dialog.cpp msgid "Keep Global Transform" -msgstr "" +msgstr "Manté la Transformació Global" #: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp msgid "Reparent" -msgstr "" +msgstr "Canvia el Parentatge" #: editor/run_settings_dialog.cpp msgid "Run Mode:" -msgstr "" +msgstr "Mode d'Execució:" #: editor/run_settings_dialog.cpp msgid "Current Scene" -msgstr "" +msgstr "Escena Actual" #: editor/run_settings_dialog.cpp msgid "Main Scene" -msgstr "" +msgstr "Escena Principal" #: editor/run_settings_dialog.cpp msgid "Main Scene Arguments:" -msgstr "" +msgstr "Arguments de l'Escena Principal:" #: editor/run_settings_dialog.cpp msgid "Scene Run Settings" -msgstr "Configuració d'Execució d'Escenes" +msgstr "Configuració de l'Execució de l'Escena" #: editor/scene_tree_dock.cpp editor/script_create_dialog.cpp #: scene/gui/dialogs.cpp @@ -6294,7 +6434,7 @@ msgstr "" #: editor/scene_tree_dock.cpp msgid "This operation can't be done on the tree root." -msgstr "" +msgstr "Aquesta operació no es pot executar en l'arrel de l'arbre." #: editor/scene_tree_dock.cpp msgid "Move Node In Parent" @@ -6314,7 +6454,7 @@ msgstr "" #: editor/scene_tree_dock.cpp msgid "Can not perform with the root node." -msgstr "" +msgstr "No es pot executar en el node arrel." #: editor/scene_tree_dock.cpp msgid "This operation can't be done on instanced scenes." @@ -6431,6 +6571,8 @@ msgid "" "Instance a scene file as a Node. Creates an inherited scene if no root node " "exists." msgstr "" +"Instancia l'escena com a Node. Crea una escena heretada si no existís un " +"node arrel." #: editor/scene_tree_dock.cpp #, fuzzy @@ -6446,6 +6588,15 @@ msgid "Clear a script for the selected node." msgstr "" #: editor/scene_tree_dock.cpp +#, fuzzy +msgid "Remote" +msgstr "Treure" + +#: editor/scene_tree_dock.cpp +msgid "Local" +msgstr "" + +#: editor/scene_tree_dock.cpp msgid "Clear Inheritance? (No Undo!)" msgstr "" @@ -6603,9 +6754,8 @@ msgid "Built-in script (into scene file)" msgstr "" #: editor/script_create_dialog.cpp -#, fuzzy msgid "Create new script file" -msgstr "Crea Subscripció" +msgstr "Crea un nou script" #: editor/script_create_dialog.cpp #, fuzzy @@ -6629,7 +6779,7 @@ msgstr "Classe:" #: editor/script_create_dialog.cpp #, fuzzy msgid "Template" -msgstr "Treu la Selecció" +msgstr "Treure la Selecció" #: editor/script_create_dialog.cpp #, fuzzy @@ -6642,6 +6792,11 @@ msgid "Attach Node Script" msgstr "Executa Script" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Remote " +msgstr "Treure" + +#: editor/script_editor_debugger.cpp msgid "Bytes:" msgstr "" @@ -6698,18 +6853,6 @@ msgid "Stack Trace (if applicable):" msgstr "" #: editor/script_editor_debugger.cpp -msgid "Remote Inspector" -msgstr "" - -#: editor/script_editor_debugger.cpp -msgid "Live Scene Tree:" -msgstr "" - -#: editor/script_editor_debugger.cpp -msgid "Remote Object Properties: " -msgstr "" - -#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -6767,7 +6910,7 @@ msgstr "" #: editor/script_editor_debugger.cpp msgid "Live Edit Root:" -msgstr "" +msgstr "Arrel per l'Edició en directe:" #: editor/script_editor_debugger.cpp msgid "Set From Tree" @@ -6843,53 +6986,53 @@ msgstr "" msgid "GDNative" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Invalid type argument to convert(), use TYPE_* constants." msgstr "Argument de tipus invàlid per a convert(), utilitzi constants TYPE_*." -#: modules/gdscript/gd_functions.cpp modules/mono/glue/glue_header.h +#: modules/gdscript/gdscript_functions.cpp modules/mono/glue/glue_header.h #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Not enough bytes for decoding bytes, or invalid format." msgstr "" "Nombre insuficient de bytes per a descodificar els bytes, o el format és " "invàlid." -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "step argument is zero!" msgstr "L'argument pas (step) és zero!" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not a script with an instance" msgstr "Script sense instància" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a script" msgstr "No basat en un script" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a resource file" msgstr "No basat en un arxiu de recursos" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (missing @path)" msgstr "Format del diccionari d'instàncies invàlid (manca @path)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (can't load script at @path)" msgstr "" "Format del diccionari d'instàncies invàlid (no es pot carregar l'script a " "@path)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (invalid script at @path)" msgstr "Format del diccionari d'instàncies invàlid (script invàlid a @path)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary (invalid subclasses)" msgstr "Diccionari d'instàncies invàlid (subclasses invàlides)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Object can't provide a length." msgstr "" @@ -6901,18 +7044,28 @@ msgstr "Elimina Seleccionats" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy msgid "GridMap Duplicate Selection" -msgstr "Duplica la Selecció" +msgstr "Duplicar la Selecció" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Snap View" +msgid "Floor:" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Prev Level (%sDown Wheel)" -msgstr "" +#, fuzzy +msgid "Grid Map" +msgstr "Alinea-ho a la graella" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Next Level (%sUp Wheel)" +msgid "Snap View" +msgstr "Alinea la Vista" + +#: modules/gridmap/grid_map_editor_plugin.cpp +#, fuzzy +msgid "Previous Floor" +msgstr "Pestanya Anterior" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Next Floor" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp @@ -6983,13 +7136,8 @@ msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy -msgid "Selection -> Duplicate" -msgstr "Selecció Només" - -#: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy -msgid "Selection -> Clear" -msgstr "Selecció Només" +msgid "Clear Selection" +msgstr "Centra la Selecció" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy @@ -7048,23 +7196,20 @@ msgid "Change Signal Arguments" msgstr "Edita els Arguments del Senyal:" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Change Argument Type" -msgstr "Canvia Tipus de la Matriu" +msgstr "Modifica el Tipus d'Argument" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Change Argument name" -msgstr "Canvia Valor de la Matriu" +msgstr "Modifica el nom de l'Argument" #: modules/visual_script/visual_script_editor.cpp msgid "Set Variable Default Value" -msgstr "" +msgstr "Estableix el Valor Predeterminat de la Variable" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Set Variable Type" -msgstr "Edita Variable:" +msgstr "Estableix el Tipus de Variable" #: modules/visual_script/visual_script_editor.cpp msgid "Functions:" @@ -7096,39 +7241,38 @@ msgstr "Reanomena Senyal" #: modules/visual_script/visual_script_editor.cpp msgid "Add Function" -msgstr "Afegeix Funció" +msgstr "Afegir Funció" #: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" -msgstr "Afegeix Variable" +msgstr "Afegir Variable" #: modules/visual_script/visual_script_editor.cpp msgid "Add Signal" -msgstr "Afegeix Senyal" +msgstr "Afegir Senyal" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Change Expression" -msgstr "Canvia Transició" +msgstr "Modifica l'Expressió" #: modules/visual_script/visual_script_editor.cpp msgid "Add Node" -msgstr "Afegeix Node" +msgstr "Afegeix un Node" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Remove VisualScript Nodes" -msgstr "Treu claus invàlides" +msgstr "Elimina els Nodes de VisualScript" #: modules/visual_script/visual_script_editor.cpp msgid "Duplicate VisualScript Nodes" -msgstr "" +msgstr "Duplica els Nodes de VisualScript" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Getter. Hold Shift to drop a generic signature." +#, fuzzy +msgid "Hold %s to drop a Getter. Hold Shift to drop a generic signature." msgstr "" -"Retén Meta per dipositar un mètode Accessor (Getter). Retén Maj per " -"dipositar una firma genèrica." +"Retn Meta per dipositar un mètode Accessor (Getter). Retén Maj per dipositar " +"una firma genèrica." #: modules/visual_script/visual_script_editor.cpp msgid "Hold Ctrl to drop a Getter. Hold Shift to drop a generic signature." @@ -7137,7 +7281,8 @@ msgstr "" "dipositar una firma genèrica." #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a simple reference to the node." +#, fuzzy +msgid "Hold %s to drop a simple reference to the node." msgstr "Retén Meta per dipositar una referència simple al node." #: modules/visual_script/visual_script_editor.cpp @@ -7145,7 +7290,8 @@ msgid "Hold Ctrl to drop a simple reference to the node." msgstr "Retén Ctrl per dipositar una referència simple al node." #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Variable Setter." +#, fuzzy +msgid "Hold %s to drop a Variable Setter." msgstr "Retén Meta per dipositar una variable d'Actualització (Setter)." #: modules/visual_script/visual_script_editor.cpp @@ -7154,44 +7300,39 @@ msgstr "Retén Ctrl per dipositar una Variable d'Actualització (Setter)." #: modules/visual_script/visual_script_editor.cpp msgid "Add Preload Node" -msgstr "Afegeix Node de Precàrrega" +msgstr "Afegir Node de Precàrrega" #: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" -msgstr "Afegeix Node(s) des d'Arbre" +msgstr "Afegir Node(s) des d'Arbre" #: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" -msgstr "Afegeix Propietat d'Accés (Getter)" +msgstr "Afegir Propietat d'Accés (Getter)" #: modules/visual_script/visual_script_editor.cpp msgid "Add Setter Property" -msgstr "Afegeix Propietat d'Actualització (Setter)" +msgstr "Afegir Propietat d'Actualització (Setter)" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Change Base Type" -msgstr "Canvia Tipus de la Matriu" +msgstr "Modifica el Tipus de Base" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Move Node(s)" -msgstr "Copia Nodes" +msgstr "Mou els Nodes" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Remove VisualScript Node" -msgstr "Treu Variable" +msgstr "Elimina el Node de VisualScript" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Connect Nodes" -msgstr "Connecta al Node:" +msgstr "Connecta els Nodes" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Condition" -msgstr "Transició" +msgstr "Condició" #: modules/visual_script/visual_script_editor.cpp msgid "Sequence" @@ -7227,54 +7368,48 @@ msgid "Script already has function '%s'" msgstr "" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Change Input Value" -msgstr "Canvia Valor de la Matriu" +msgstr "Modifica el Valor de l'Entrada" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Can't copy the function node." -msgstr "No es pot operar en '..'" +msgstr "No es pot copiar el node de funció." #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Clipboard is empty!" -msgstr "El camí per desar és buit!" +msgstr "El porta-retalls és buit!" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Paste VisualScript Nodes" -msgstr "Camí al Node:" +msgstr "Enganxa els Nodes de VisualScript" #: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" -msgstr "Treu Funció" +msgstr "Elimina la Funció" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Edit Variable" -msgstr "Edita Variable:" +msgstr "Edita la Variable" #: modules/visual_script/visual_script_editor.cpp msgid "Remove Variable" -msgstr "Treu Variable" +msgstr "Elimina la Variable" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Edit Signal" -msgstr "Editant Senyal:" +msgstr "Edita el Senyal" #: modules/visual_script/visual_script_editor.cpp msgid "Remove Signal" -msgstr "Treu Senyal" +msgstr "Elimina el Senyal" #: modules/visual_script/visual_script_editor.cpp msgid "Editing Variable:" -msgstr "Editant Variable:" +msgstr "Edició de la Variable:" #: modules/visual_script/visual_script_editor.cpp msgid "Editing Signal:" -msgstr "Editant Senyal:" +msgstr "Edició del Senyal:" #: modules/visual_script/visual_script_editor.cpp msgid "Base Type:" @@ -7290,7 +7425,7 @@ msgstr "Selecciona o crea una funció per editar la corba" #: modules/visual_script/visual_script_editor.cpp msgid "Edit Signal Arguments:" -msgstr "Edita els Arguments del Senyal:" +msgstr "Edita Arguments del Senyal:" #: modules/visual_script/visual_script_editor.cpp msgid "Edit Variable:" @@ -7390,12 +7525,22 @@ msgstr "No s'ha pogut crear la carpeta." #: platform/javascript/export/export.cpp #, fuzzy -msgid "Could not read file:\n" +msgid "Could not open template for export:\n" msgstr "No s'ha pogut crear la carpeta." #: platform/javascript/export/export.cpp #, fuzzy -msgid "Could not open template for export:\n" +msgid "Invalid export template:\n" +msgstr "Instal·la Plantilles d'Exportació" + +#: platform/javascript/export/export.cpp +#, fuzzy +msgid "Could not read custom HTML shell:\n" +msgstr "No s'ha pogut crear la carpeta." + +#: platform/javascript/export/export.cpp +#, fuzzy +msgid "Could not read boot splash image file:\n" msgstr "No s'ha pogut crear la carpeta." #: scene/2d/animated_sprite.cpp @@ -7512,31 +7657,13 @@ msgstr "" msgid "Path property must point to a valid Node2D node to work." msgstr "Cal que la propietat Camí (Path) assenyali un Node2D vàlid." -#: 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 "" -"Cal que la propietat Camí (Path) assenyali un node de Vista (Viewport) " -"vàlid. Aquest ha de ser especificat en el mode \"destinació de renderització" -"\" (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 "" -"La Vista (Viewport) especificada en la propietat \"Camí\" (Path) ha " -"d'utilitzar el mode 'Destinació de renderització' (render target) perquè " -"l'sprite funcioni." - #: scene/2d/visibility_notifier_2d.cpp msgid "" "VisibilityEnable2D works best when used with the edited scene root directly " "as parent." msgstr "" -"VisibilityEnable2D funciona millor quan l'arrel de l'escena editada " -"s'utilitza com a pare." +"Un node VisibilityEnable2D funcionarà millor en ser emparentat directament " +"amb l'arrel de l'escena." #: scene/3d/arvr_nodes.cpp msgid "ARVRCamera must have an ARVROrigin node as its parent" @@ -7598,6 +7725,14 @@ msgstr "" "Cal proveir una forma perquè CollisionShape funcioni. Creeu-li un recurs de " "forma!" +#: scene/3d/gi_probe.cpp +msgid "Plotting Meshes" +msgstr "" + +#: scene/3d/gi_probe.cpp +msgid "Finishing Plot" +msgstr "" + #: scene/3d/navigation_mesh.cpp msgid "A NavigationMesh resource must be set or created for this node to work." msgstr "" @@ -7688,6 +7823,10 @@ msgid "" "minimum size manually." msgstr "" +#: scene/gui/tree.cpp +msgid "(Other)" +msgstr "" + #: scene/main/scene_tree.cpp msgid "" "Default Environment as specified in Project Setings (Rendering -> Viewport -" @@ -7722,6 +7861,59 @@ msgstr "Error carregant lletra." msgid "Invalid font size." msgstr "La mida de la lletra no és vàlida." +#~ msgid "Cannot navigate to '" +#~ msgstr "No es pot navegar fins '" + +#~ msgid "" +#~ "\n" +#~ "Source: " +#~ msgstr "" +#~ "\n" +#~ "Font: " + +#~ msgid "Remove Point from Line2D" +#~ msgstr "Elimina un Punt de la Línia2D" + +#~ msgid "Add Point to Line2D" +#~ msgstr "Afegeix punt a la Línia2D" + +#~ msgid "Move Point in Line2D" +#~ msgstr "Mou el Punt de la Línia2D" + +#~ msgid "Split Segment (in line)" +#~ msgstr "Parteix el Segment (en la línia)" + +#~ msgid "Meta+" +#~ msgstr "Meta +" + +#, fuzzy +#~ msgid "Setting '" +#~ msgstr "Configuració" + +#, fuzzy +#~ msgid "Selection -> Duplicate" +#~ msgstr "Selecció Només" + +#, fuzzy +#~ msgid "Selection -> Clear" +#~ msgstr "Selecció Només" + +#~ msgid "" +#~ "Path property must point to a valid Viewport node to work. Such Viewport " +#~ "must be set to 'render target' mode." +#~ msgstr "" +#~ "Cal que la propietat Camí (Path) assenyali un node de Vista (Viewport) " +#~ "vàlid. Aquest ha de ser especificat en el mode \"destinació de " +#~ "renderització\" (render target)." + +#~ msgid "" +#~ "The Viewport set in the path property must be set as 'render target' in " +#~ "order for this sprite to work." +#~ msgstr "" +#~ "La Vista (Viewport) especificada en la propietat \"Camí\" (Path) ha " +#~ "d'utilitzar el mode 'Destinació de renderització' (render target) perquè " +#~ "l'sprite funcioni." + #~ msgid "Filter:" #~ msgstr "Filtre:" @@ -7740,9 +7932,6 @@ msgstr "La mida de la lletra no és vàlida." #~ msgid "Removed:" #~ msgstr "Eliminat:" -#~ msgid "Error saving atlas:" -#~ msgstr "Error en desar atles:" - #~ msgid "Could not save atlas subtexture:" #~ msgstr "No s'ha pogut desar la subtextura de l'atles:" @@ -8179,9 +8368,6 @@ msgstr "La mida de la lletra no és vàlida." #~ msgid "Save Translatable Strings" #~ msgstr "Desa els texts Traduïbles" -#~ msgid "Install Export Templates" -#~ msgstr "Instal·la Plantilles d'Exportació" - #, fuzzy #~ msgid "Create Android keystore" #~ msgstr "Crea una Carpeta" diff --git a/editor/translations/cs.po b/editor/translations/cs.po index 8083094a39..5e2400928d 100644 --- a/editor/translations/cs.po +++ b/editor/translations/cs.po @@ -102,6 +102,7 @@ msgid "Anim Delete Keys" msgstr "Animace: smazat klíče" #: editor/animation_editor.cpp editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Duplicate Selection" msgstr "Duplikovat výběr" @@ -636,6 +637,13 @@ msgstr "Editor závislostí" msgid "Search Replacement Resource:" msgstr "Hledat náhradní zdroj:" +#: editor/dependency_editor.cpp editor/editor_file_dialog.cpp +#: editor/editor_help.cpp editor/editor_node.cpp editor/filesystem_dock.cpp +#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp +#: editor/quick_open.cpp scene/gui/file_dialog.cpp +msgid "Open" +msgstr "Otevřít" + #: editor/dependency_editor.cpp msgid "Owners Of:" msgstr "Vlastníci:" @@ -708,6 +716,15 @@ msgstr "Odstranit vybrané soubory?" msgid "Delete" msgstr "Odstranit" +#: editor/dictionary_property_edit.cpp +msgid "Change Dictionary Key" +msgstr "" + +#: editor/dictionary_property_edit.cpp +#, fuzzy +msgid "Change Dictionary Value" +msgstr "Změnit hodnotu pole" + #: editor/editor_about.cpp msgid "Thanks from the Godot community!" msgstr "" @@ -1135,12 +1152,6 @@ msgstr "Všechny rozpoznatelné" msgid "All Files (*)" msgstr "Všechny soubory (*)" -#: editor/editor_file_dialog.cpp editor/editor_help.cpp editor/editor_node.cpp -#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_selector.cpp editor/quick_open.cpp scene/gui/file_dialog.cpp -msgid "Open" -msgstr "Otevřít" - #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Open a File" msgstr "Otevřít soubor" @@ -1505,6 +1516,13 @@ msgid "" msgstr "" #: editor/editor_node.cpp +msgid "" +"This is a remote object so changes to it will not be kept.\n" +"Please read the documentation relevant to debugging to better understand " +"this workflow." +msgstr "" + +#: editor/editor_node.cpp msgid "Copy Params" msgstr "" @@ -1615,6 +1633,10 @@ msgid "Export Mesh Library" msgstr "" #: editor/editor_node.cpp +msgid "This operation can't be done without a root node." +msgstr "" + +#: editor/editor_node.cpp msgid "Export Tile Set" msgstr "" @@ -1742,11 +1764,20 @@ msgid "Switch Scene Tab" msgstr "" #: editor/editor_node.cpp -msgid "%d more file(s)" +msgid "%d more files or folders" +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "%d more folders" +msgstr "Nelze vytvořit složku." + +#: editor/editor_node.cpp +msgid "%d more files" msgstr "" #: editor/editor_node.cpp -msgid "%d more file(s) or folder(s)" +msgid "Dock Position" msgstr "" #: editor/editor_node.cpp @@ -1758,6 +1789,11 @@ msgid "Toggle distraction-free mode." msgstr "" #: editor/editor_node.cpp +#, fuzzy +msgid "Add a new scene." +msgstr "Přidat nové stopy." + +#: editor/editor_node.cpp msgid "Scene" msgstr "" @@ -1822,13 +1858,12 @@ msgid "TileSet.." msgstr "" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp -#: scene/gui/text_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Undo" msgstr "Zpět" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp +#: scene/gui/line_edit.cpp msgid "Redo" msgstr "Znovu" @@ -2316,6 +2351,10 @@ msgid "(Current)" msgstr "" #: editor/export_template_manager.cpp +msgid "Retrieving mirrors, please wait.." +msgstr "" + +#: editor/export_template_manager.cpp msgid "Remove template version '%s'?" msgstr "" @@ -2351,6 +2390,111 @@ msgid "Importing:" msgstr "" #: editor/export_template_manager.cpp +msgid "" +"No download links found for this version. Direct download is only available " +"for official releases." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't resolve." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#, fuzzy +msgid "Can't connect." +msgstr "Připojit.." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "No response." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Req. Failed." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Redirect Loop." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Failed:" +msgstr "" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't write file." +msgstr "Nelze vytvořit složku." + +#: editor/export_template_manager.cpp +msgid "Download Complete." +msgstr "" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Error requesting url: " +msgstr "Chyba nahrávání fontu." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connecting to Mirror.." +msgstr "Připojit.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Disconnected" +msgstr "Odpojit" + +#: editor/export_template_manager.cpp +msgid "Resolving" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Can't Resolve" +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#, fuzzy +msgid "Connecting.." +msgstr "Připojit.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't Conect" +msgstr "Připojit.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connected" +msgstr "Připojit" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#, fuzzy +msgid "Requesting.." +msgstr "Testované" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Downloading" +msgstr "Chyba při načítání:" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connection Error" +msgstr "Připojit.." + +#: editor/export_template_manager.cpp +msgid "SSL Handshake Error" +msgstr "" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "" @@ -2376,12 +2520,21 @@ msgstr "Odstranit vybrané soubory?" msgid "Export Template Manager" msgstr "" +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Download Templates" +msgstr "Odstranit výběr" + +#: editor/export_template_manager.cpp +msgid "Select mirror from list: " +msgstr "" + #: editor/file_type_cache.cpp msgid "Can't open file_type_cache.cch for writing, not saving file type cache!" msgstr "" #: editor/filesystem_dock.cpp -msgid "Cannot navigate to '" +msgid "Cannot navigate to '%s' as it has not been found in the file system!" msgstr "" #: editor/filesystem_dock.cpp @@ -2399,13 +2552,6 @@ msgid "" msgstr "" #: editor/filesystem_dock.cpp -#, fuzzy -msgid "" -"\n" -"Source: " -msgstr "Zdroj" - -#: editor/filesystem_dock.cpp msgid "Cannot move/rename resources root." msgstr "" @@ -2669,8 +2815,7 @@ msgid "Remove Poly And Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." +msgid "Create a new polygon from scratch" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -2681,6 +2826,11 @@ msgid "" "RMB: Erase Point." msgstr "" +#: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy +msgid "Delete points" +msgstr "Odstranit" + #: editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" msgstr "" @@ -3019,20 +3169,11 @@ msgid "Can't resolve hostname:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't resolve." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Connection error, please try again." msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy -msgid "Can't connect." -msgstr "Připojit.." - -#: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Can't connect to host:" msgstr "Připojit k uzlu:" @@ -3041,30 +3182,14 @@ msgid "No response from host:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "No response." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, return code:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Req. Failed." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, too many redirects" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Redirect Loop." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Failed:" -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Bad download hash, assuming file has been tampered with." msgstr "" @@ -3094,16 +3219,6 @@ msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy -msgid "Connecting.." -msgstr "Připojit.." - -#: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy -msgid "Requesting.." -msgstr "Testované" - -#: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Error making request" msgstr "Chyba nahrávání fontu." @@ -3216,6 +3331,38 @@ msgid "Move Action" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create new vertical guide" +msgstr "Vytvořit odběr" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove vertical guide" +msgstr "Odstranit proměnnou" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move horizontal guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create new horizontal guide" +msgstr "Vytvořit odběr" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove horizontal guide" +msgstr "Odstranit neplatné klíče" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new horizontal and vertical guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Edit IK Chain" msgstr "" @@ -3338,10 +3485,16 @@ msgid "Snap to other nodes" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snap to guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Lock the selected object in place (can't be moved)." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Unlock the selected object (can be moved)." msgstr "" @@ -3392,6 +3545,10 @@ msgid "Show rulers" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Show guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Selection" msgstr "" @@ -3583,6 +3740,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/gi_probe_editor_plugin.cpp +msgid "Bake GI Probe" +msgstr "" + #: editor/plugins/gradient_editor_plugin.cpp msgid "Add/Remove Color Ramp Point" msgstr "" @@ -3615,6 +3776,10 @@ msgid "Create Occluder Polygon" msgstr "" #: editor/plugins/light_occluder_2d_editor_plugin.cpp +msgid "Create a new polygon from scratch." +msgstr "" + +#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Edit existing polygon:" msgstr "" @@ -3630,59 +3795,6 @@ msgstr "" msgid "RMB: Erase Point." msgstr "" -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Remove Point from Line2D" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#, fuzzy -msgid "Add Point to Line2D" -msgstr "Běž na řádek" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Move Point in Line2D" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Select Points" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Shift+Drag: Select Control Points" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Click: Add Point" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Right Click: Delete Point" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Add Point (in empty space)" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Split Segment (in line)" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Delete Point" -msgstr "" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "" @@ -4080,16 +4192,46 @@ msgid "Move Out-Control in Curve" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Select Points" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Shift+Drag: Select Control Points" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Click: Add Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Right Click: Delete Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Select Control Points (Shift+Drag)" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Add Point (in empty space)" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Split Segment (in curve)" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Delete Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Close Curve" msgstr "" @@ -4230,7 +4372,6 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Paste" @@ -4275,6 +4416,21 @@ msgid " Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#, fuzzy +msgid "Sort" +msgstr "Řadit:" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Up" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Down" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Next script" msgstr "" @@ -4327,6 +4483,10 @@ msgstr "" msgid "Close All" msgstr "Zavřít" +#: editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "" @@ -4337,13 +4497,11 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find.." msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Next" msgstr "" @@ -4449,33 +4607,22 @@ msgstr "" msgid "Capitalize" msgstr "" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" msgstr "Vyjmout" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Copy" msgstr "Kopírovat" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Select All" msgstr "Vybrat vše" -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Up" -msgstr "" - -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Down" -msgstr "" - #: editor/plugins/script_text_editor.cpp #, fuzzy msgid "Delete Line" @@ -4498,6 +4645,23 @@ msgid "Clone Down" msgstr "" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Fold Line" +msgstr "Běž na řádek" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold Line" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Fold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Complete Symbol" msgstr "" @@ -4544,12 +4708,10 @@ msgid "Convert To Lowercase" msgstr "Připojit k uzlu:" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Previous" msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Replace.." msgstr "" @@ -4558,7 +4720,6 @@ msgid "Goto Function.." msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Goto Line.." msgstr "" @@ -4723,6 +4884,15 @@ msgid "View Plane Transform." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Scaling: " +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Translating: " +msgstr "Přechod" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Rotating %s degrees." msgstr "" @@ -4804,6 +4974,10 @@ msgid "Vertices" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "FPS" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Align with view" msgstr "" @@ -4836,6 +5010,16 @@ msgid "View Information" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "View FPS" +msgstr "Soubor:" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Half Resolution" +msgstr "Změnit měřítko výběru" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Audio Listener" msgstr "" @@ -4967,6 +5151,11 @@ msgid "Tool Scale" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Toggle Freelook" +msgstr "Přepnout breakpoint" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Transform" msgstr "" @@ -5244,6 +5433,10 @@ msgid "Create Empty Editor Template" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Create From Current Editor Theme" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "CheckBox Radio1" msgstr "" @@ -5421,7 +5614,7 @@ msgstr "Povolit" #: editor/project_export.cpp #, fuzzy -msgid "Delete patch '" +msgid "Delete patch '%s' from list?" msgstr "Odstranit" #: editor/project_export.cpp @@ -5723,10 +5916,6 @@ msgid "Add Input Action Event" msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Meta+" -msgstr "" - -#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp msgid "Shift+" msgstr "Shift+" @@ -5849,13 +6038,12 @@ msgid "Select a setting item first!" msgstr "" #: editor/project_settings_editor.cpp -msgid "No property '" +msgid "No property '%s' exists." msgstr "" #: editor/project_settings_editor.cpp -#, fuzzy -msgid "Setting '" -msgstr "Testované" +msgid "Setting '%s' is internal, and it can't be deleted." +msgstr "" #: editor/project_settings_editor.cpp #, fuzzy @@ -6337,6 +6525,15 @@ msgid "Clear a script for the selected node." msgstr "" #: editor/scene_tree_dock.cpp +#, fuzzy +msgid "Remote" +msgstr "Odebrat" + +#: editor/scene_tree_dock.cpp +msgid "Local" +msgstr "" + +#: editor/scene_tree_dock.cpp msgid "Clear Inheritance? (No Undo!)" msgstr "" @@ -6529,6 +6726,11 @@ msgid "Attach Node Script" msgstr "" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Remote " +msgstr "Odebrat" + +#: editor/script_editor_debugger.cpp msgid "Bytes:" msgstr "" @@ -6585,18 +6787,6 @@ msgid "Stack Trace (if applicable):" msgstr "" #: editor/script_editor_debugger.cpp -msgid "Remote Inspector" -msgstr "" - -#: editor/script_editor_debugger.cpp -msgid "Live Scene Tree:" -msgstr "" - -#: editor/script_editor_debugger.cpp -msgid "Remote Object Properties: " -msgstr "" - -#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -6728,50 +6918,50 @@ msgstr "" msgid "GDNative" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Invalid type argument to convert(), use TYPE_* constants." msgstr "" "Neplatný typ argumentu funkce convert(), použijte některou z konstant TYPE_*" -#: modules/gdscript/gd_functions.cpp modules/mono/glue/glue_header.h +#: modules/gdscript/gdscript_functions.cpp modules/mono/glue/glue_header.h #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Not enough bytes for decoding bytes, or invalid format." msgstr "Nedostatek bajtů pro dekódování bajtů, nebo špatný formát." -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "step argument is zero!" msgstr "Argument kroku je nula!" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not a script with an instance" msgstr "Skript nemá instanci" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a script" msgstr "Není založeno na skriptu" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a resource file" msgstr "Není založeno na zdrojovém souboru" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (missing @path)" msgstr "Neplatná instance slovníkového formátu (chybí @path)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (can't load script at @path)" msgstr "Neplatná instance slovníkového formátu (nemohu nahrát skript na @path)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (invalid script at @path)" msgstr "Neplatná instance slovníkového formátu (nemohu nahrát skript na @path)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary (invalid subclasses)" msgstr "Neplatná instance slovníku (neplatné podtřídy)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Object can't provide a length." msgstr "" @@ -6786,15 +6976,23 @@ msgid "GridMap Duplicate Selection" msgstr "Duplikovat výběr" #: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Floor:" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Grid Map" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Snap View" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Prev Level (%sDown Wheel)" +msgid "Previous Floor" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Next Level (%sUp Wheel)" +msgid "Next Floor" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp @@ -6865,13 +7063,8 @@ msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy -msgid "Selection -> Duplicate" -msgstr "Pouze výběr" - -#: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy -msgid "Selection -> Clear" -msgstr "Pouze výběr" +msgid "Clear Selection" +msgstr "Změnit měřítko výběru" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy @@ -7007,7 +7200,7 @@ msgstr "" #: modules/visual_script/visual_script_editor.cpp #, fuzzy -msgid "Hold Meta to drop a Getter. Hold Shift to drop a generic signature." +msgid "Hold %s to drop a Getter. Hold Shift to drop a generic signature." msgstr "" "Podržte Meta k uvolnění getteru. Podržte Shift k uvolnění generického " "podpisu." @@ -7020,7 +7213,8 @@ msgstr "" "podpisu." #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a simple reference to the node." +#, fuzzy +msgid "Hold %s to drop a simple reference to the node." msgstr "Podržte Meta k uvolnění jednoduché reference na uzel." #: modules/visual_script/visual_script_editor.cpp @@ -7029,8 +7223,9 @@ msgid "Hold Ctrl to drop a simple reference to the node." msgstr "Podržte Ctrl k uvolnění jednoduché reference na uzel." #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Variable Setter." -msgstr "" +#, fuzzy +msgid "Hold %s to drop a Variable Setter." +msgstr "Podržte Meta k uvolnění jednoduché reference na uzel." #: modules/visual_script/visual_script_editor.cpp msgid "Hold Ctrl to drop a Variable Setter." @@ -7269,12 +7464,22 @@ msgstr "Nelze vytvořit složku." #: platform/javascript/export/export.cpp #, fuzzy -msgid "Could not read file:\n" +msgid "Could not open template for export:\n" msgstr "Nelze vytvořit složku." #: platform/javascript/export/export.cpp #, fuzzy -msgid "Could not open template for export:\n" +msgid "Invalid export template:\n" +msgstr "Neplatné jméno vlastnosti." + +#: platform/javascript/export/export.cpp +#, fuzzy +msgid "Could not read custom HTML shell:\n" +msgstr "Nelze vytvořit složku." + +#: platform/javascript/export/export.cpp +#, fuzzy +msgid "Could not read boot splash image file:\n" msgstr "Nelze vytvořit složku." #: scene/2d/animated_sprite.cpp @@ -7387,22 +7592,6 @@ msgid "Path property must point to a valid Node2D node to work." msgstr "" "Pro zajištění funkčnosti musí vlastnost path ukazovat na platný uzel Node2D." -#: 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 "" -"Pro zajištění funkčností musí vlastnost path ukazovat na platný uzel " -"Viewport. Takový Viewport musí být nastaven do módu '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 "" -"Aby tento sprite mohl fungovat, Viewport nastavený ve vlastnosti path musí " -"být nastaven do módu 'render target'." - #: scene/2d/visibility_notifier_2d.cpp msgid "" "VisibilityEnable2D works best when used with the edited scene root directly " @@ -7469,6 +7658,14 @@ msgstr "" "Aby CollisionShape mohl fungovat, musí mu být poskytnut tvar. Vytvořte mu " "prosím zdroj tvar!" +#: scene/3d/gi_probe.cpp +msgid "Plotting Meshes" +msgstr "" + +#: scene/3d/gi_probe.cpp +msgid "Finishing Plot" +msgstr "" + #: scene/3d/navigation_mesh.cpp msgid "A NavigationMesh resource must be set or created for this node to work." msgstr "" @@ -7560,6 +7757,10 @@ msgid "" "minimum size manually." msgstr "" +#: scene/gui/tree.cpp +msgid "(Other)" +msgstr "" + #: scene/main/scene_tree.cpp msgid "" "Default Environment as specified in Project Setings (Rendering -> Viewport -" @@ -7594,6 +7795,42 @@ msgstr "Chyba nahrávání fontu." msgid "Invalid font size." msgstr "Neplatná velikost fontu." +#, fuzzy +#~ msgid "" +#~ "\n" +#~ "Source: " +#~ msgstr "Zdroj" + +#, fuzzy +#~ msgid "Add Point to Line2D" +#~ msgstr "Běž na řádek" + +#, fuzzy +#~ msgid "Setting '" +#~ msgstr "Testované" + +#, fuzzy +#~ msgid "Selection -> Duplicate" +#~ msgstr "Pouze výběr" + +#, fuzzy +#~ msgid "Selection -> Clear" +#~ msgstr "Pouze výběr" + +#~ msgid "" +#~ "Path property must point to a valid Viewport node to work. Such Viewport " +#~ "must be set to 'render target' mode." +#~ msgstr "" +#~ "Pro zajištění funkčností musí vlastnost path ukazovat na platný uzel " +#~ "Viewport. Takový Viewport musí být nastaven do módu 'render target'." + +#~ msgid "" +#~ "The Viewport set in the path property must be set as 'render target' in " +#~ "order for this sprite to work." +#~ msgstr "" +#~ "Aby tento sprite mohl fungovat, Viewport nastavený ve vlastnosti path " +#~ "musí být nastaven do módu 'render target'." + #~ msgid "Filter:" #~ msgstr "Filtr:" diff --git a/editor/translations/da.po b/editor/translations/da.po index 50da2c54b8..850acd62be 100644 --- a/editor/translations/da.po +++ b/editor/translations/da.po @@ -100,6 +100,7 @@ msgid "Anim Delete Keys" msgstr "Anim slet Keys" #: editor/animation_editor.cpp editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Duplicate Selection" msgstr "Dubler valg" @@ -634,6 +635,13 @@ msgstr "Afhængigheds Editor" msgid "Search Replacement Resource:" msgstr "" +#: editor/dependency_editor.cpp editor/editor_file_dialog.cpp +#: editor/editor_help.cpp editor/editor_node.cpp editor/filesystem_dock.cpp +#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp +#: editor/quick_open.cpp scene/gui/file_dialog.cpp +msgid "Open" +msgstr "Åben" + #: editor/dependency_editor.cpp msgid "Owners Of:" msgstr "" @@ -704,6 +712,15 @@ msgstr "" msgid "Delete" msgstr "" +#: editor/dictionary_property_edit.cpp +msgid "Change Dictionary Key" +msgstr "" + +#: editor/dictionary_property_edit.cpp +#, fuzzy +msgid "Change Dictionary Value" +msgstr "Ændre Array-værdi" + #: editor/editor_about.cpp msgid "Thanks from the Godot community!" msgstr "" @@ -1129,12 +1146,6 @@ msgstr "Alle Genkendte" msgid "All Files (*)" msgstr "Alle filer (*)" -#: editor/editor_file_dialog.cpp editor/editor_help.cpp editor/editor_node.cpp -#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_selector.cpp editor/quick_open.cpp scene/gui/file_dialog.cpp -msgid "Open" -msgstr "Åben" - #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Open a File" msgstr "Åben en Fil" @@ -1499,6 +1510,13 @@ msgid "" msgstr "" #: editor/editor_node.cpp +msgid "" +"This is a remote object so changes to it will not be kept.\n" +"Please read the documentation relevant to debugging to better understand " +"this workflow." +msgstr "" + +#: editor/editor_node.cpp msgid "Copy Params" msgstr "" @@ -1609,6 +1627,10 @@ msgid "Export Mesh Library" msgstr "" #: editor/editor_node.cpp +msgid "This operation can't be done without a root node." +msgstr "" + +#: editor/editor_node.cpp msgid "Export Tile Set" msgstr "" @@ -1736,11 +1758,20 @@ msgid "Switch Scene Tab" msgstr "" #: editor/editor_node.cpp -msgid "%d more file(s)" +msgid "%d more files or folders" +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "%d more folders" +msgstr "Kunne ikke oprette mappe." + +#: editor/editor_node.cpp +msgid "%d more files" msgstr "" #: editor/editor_node.cpp -msgid "%d more file(s) or folder(s)" +msgid "Dock Position" msgstr "" #: editor/editor_node.cpp @@ -1752,6 +1783,11 @@ msgid "Toggle distraction-free mode." msgstr "" #: editor/editor_node.cpp +#, fuzzy +msgid "Add a new scene." +msgstr "Tilføje nye tracks." + +#: editor/editor_node.cpp msgid "Scene" msgstr "" @@ -1816,13 +1852,12 @@ msgid "TileSet.." msgstr "" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp -#: scene/gui/text_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Undo" msgstr "Fortryd" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp +#: scene/gui/line_edit.cpp msgid "Redo" msgstr "" @@ -2308,6 +2343,10 @@ msgid "(Current)" msgstr "" #: editor/export_template_manager.cpp +msgid "Retrieving mirrors, please wait.." +msgstr "" + +#: editor/export_template_manager.cpp msgid "Remove template version '%s'?" msgstr "" @@ -2342,6 +2381,110 @@ msgid "Importing:" msgstr "" #: editor/export_template_manager.cpp +msgid "" +"No download links found for this version. Direct download is only available " +"for official releases." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't resolve." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#, fuzzy +msgid "Can't connect." +msgstr "Forbind..." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "No response." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Req. Failed." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Redirect Loop." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Failed:" +msgstr "" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't write file." +msgstr "Kunne ikke oprette mappe." + +#: editor/export_template_manager.cpp +msgid "Download Complete." +msgstr "" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Error requesting url: " +msgstr "Error loading skrifttype." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connecting to Mirror.." +msgstr "Forbind..." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Disconnected" +msgstr "Afbryd" + +#: editor/export_template_manager.cpp +msgid "Resolving" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Can't Resolve" +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#, fuzzy +msgid "Connecting.." +msgstr "Forbind..." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't Conect" +msgstr "Forbind..." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connected" +msgstr "Tilslut" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#, fuzzy +msgid "Requesting.." +msgstr "Tester" + +#: editor/export_template_manager.cpp +msgid "Downloading" +msgstr "" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connection Error" +msgstr "Forbind..." + +#: editor/export_template_manager.cpp +msgid "SSL Handshake Error" +msgstr "" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "" @@ -2367,12 +2510,21 @@ msgstr "Vælg alle" msgid "Export Template Manager" msgstr "" +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Download Templates" +msgstr "Fjern markering" + +#: editor/export_template_manager.cpp +msgid "Select mirror from list: " +msgstr "" + #: editor/file_type_cache.cpp msgid "Can't open file_type_cache.cch for writing, not saving file type cache!" msgstr "" #: editor/filesystem_dock.cpp -msgid "Cannot navigate to '" +msgid "Cannot navigate to '%s' as it has not been found in the file system!" msgstr "" #: editor/filesystem_dock.cpp @@ -2390,13 +2542,6 @@ msgid "" msgstr "" #: editor/filesystem_dock.cpp -#, fuzzy -msgid "" -"\n" -"Source: " -msgstr "Ressource" - -#: editor/filesystem_dock.cpp msgid "Cannot move/rename resources root." msgstr "" @@ -2658,8 +2803,7 @@ msgid "Remove Poly And Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." +msgid "Create a new polygon from scratch" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -2670,6 +2814,11 @@ msgid "" "RMB: Erase Point." msgstr "" +#: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy +msgid "Delete points" +msgstr "Optimer Animation" + #: editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" msgstr "" @@ -3008,20 +3157,11 @@ msgid "Can't resolve hostname:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't resolve." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Connection error, please try again." msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy -msgid "Can't connect." -msgstr "Forbind..." - -#: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Can't connect to host:" msgstr "Opret forbindelse til Node:" @@ -3030,30 +3170,14 @@ msgid "No response from host:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "No response." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, return code:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Req. Failed." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, too many redirects" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Redirect Loop." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Failed:" -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Bad download hash, assuming file has been tampered with." msgstr "" @@ -3083,16 +3207,6 @@ msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy -msgid "Connecting.." -msgstr "Forbind..." - -#: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy -msgid "Requesting.." -msgstr "Tester" - -#: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Error making request" msgstr "Error loading skrifttype." @@ -3205,6 +3319,38 @@ msgid "Move Action" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create new vertical guide" +msgstr "Opret abonnement" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove vertical guide" +msgstr "Fjern Variabel" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move horizontal guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create new horizontal guide" +msgstr "Opret abonnement" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove horizontal guide" +msgstr "Fjerne ugyldige keys" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new horizontal and vertical guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Edit IK Chain" msgstr "" @@ -3326,10 +3472,16 @@ msgid "Snap to other nodes" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snap to guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Lock the selected object in place (can't be moved)." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Unlock the selected object (can be moved)." msgstr "" @@ -3380,6 +3532,10 @@ msgid "Show rulers" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Show guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Selection" msgstr "" @@ -3571,6 +3727,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/gi_probe_editor_plugin.cpp +msgid "Bake GI Probe" +msgstr "" + #: editor/plugins/gradient_editor_plugin.cpp msgid "Add/Remove Color Ramp Point" msgstr "" @@ -3603,6 +3763,10 @@ msgid "Create Occluder Polygon" msgstr "" #: editor/plugins/light_occluder_2d_editor_plugin.cpp +msgid "Create a new polygon from scratch." +msgstr "" + +#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Edit existing polygon:" msgstr "" @@ -3618,59 +3782,6 @@ msgstr "" msgid "RMB: Erase Point." msgstr "" -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Remove Point from Line2D" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#, fuzzy -msgid "Add Point to Line2D" -msgstr "Gå til linje" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Move Point in Line2D" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Select Points" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Shift+Drag: Select Control Points" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Click: Add Point" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Right Click: Delete Point" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Add Point (in empty space)" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Split Segment (in line)" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Delete Point" -msgstr "" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "" @@ -4068,16 +4179,46 @@ msgid "Move Out-Control in Curve" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Select Points" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Shift+Drag: Select Control Points" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Click: Add Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Right Click: Delete Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Select Control Points (Shift+Drag)" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Add Point (in empty space)" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Split Segment (in curve)" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Delete Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Close Curve" msgstr "" @@ -4218,7 +4359,6 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Paste" @@ -4263,6 +4403,21 @@ msgid " Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#, fuzzy +msgid "Sort" +msgstr "Sorter:" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Up" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Down" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Next script" msgstr "" @@ -4315,6 +4470,10 @@ msgstr "" msgid "Close All" msgstr "Luk" +#: editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "" @@ -4325,13 +4484,11 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find.." msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Next" msgstr "" @@ -4437,33 +4594,22 @@ msgstr "" msgid "Capitalize" msgstr "" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" msgstr "Cut" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Copy" msgstr "Kopier" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Select All" msgstr "Vælg alle" -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Up" -msgstr "" - -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Down" -msgstr "" - #: editor/plugins/script_text_editor.cpp #, fuzzy msgid "Delete Line" @@ -4486,6 +4632,23 @@ msgid "Clone Down" msgstr "" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Fold Line" +msgstr "Gå til linje" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold Line" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Fold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Complete Symbol" msgstr "" @@ -4532,12 +4695,10 @@ msgid "Convert To Lowercase" msgstr "Opret forbindelse til Node:" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Previous" msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Replace.." msgstr "" @@ -4546,7 +4707,6 @@ msgid "Goto Function.." msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Goto Line.." msgstr "" @@ -4711,6 +4871,15 @@ msgid "View Plane Transform." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Scaling: " +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Translating: " +msgstr "Overgang" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Rotating %s degrees." msgstr "" @@ -4792,6 +4961,10 @@ msgid "Vertices" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "FPS" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Align with view" msgstr "" @@ -4824,6 +4997,16 @@ msgid "View Information" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "View FPS" +msgstr "Fil:" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Half Resolution" +msgstr "Skalering Valg" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Audio Listener" msgstr "" @@ -4955,6 +5138,11 @@ msgid "Tool Scale" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Toggle Freelook" +msgstr "Skift/Toggle Breakpoint" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Transform" msgstr "" @@ -5232,6 +5420,10 @@ msgid "Create Empty Editor Template" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Create From Current Editor Theme" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "CheckBox Radio1" msgstr "" @@ -5407,7 +5599,7 @@ msgid "Runnable" msgstr "" #: editor/project_export.cpp -msgid "Delete patch '" +msgid "Delete patch '%s' from list?" msgstr "" #: editor/project_export.cpp @@ -5707,10 +5899,6 @@ msgid "Add Input Action Event" msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Meta+" -msgstr "Meta +" - -#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp msgid "Shift+" msgstr "Shift+" @@ -5833,13 +6021,12 @@ msgid "Select a setting item first!" msgstr "" #: editor/project_settings_editor.cpp -msgid "No property '" +msgid "No property '%s' exists." msgstr "" #: editor/project_settings_editor.cpp -#, fuzzy -msgid "Setting '" -msgstr "Tester" +msgid "Setting '%s' is internal, and it can't be deleted." +msgstr "" #: editor/project_settings_editor.cpp #, fuzzy @@ -6318,6 +6505,15 @@ msgid "Clear a script for the selected node." msgstr "" #: editor/scene_tree_dock.cpp +#, fuzzy +msgid "Remote" +msgstr "Fjern" + +#: editor/scene_tree_dock.cpp +msgid "Local" +msgstr "" + +#: editor/scene_tree_dock.cpp msgid "Clear Inheritance? (No Undo!)" msgstr "" @@ -6509,6 +6705,11 @@ msgid "Attach Node Script" msgstr "" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Remote " +msgstr "Fjern" + +#: editor/script_editor_debugger.cpp msgid "Bytes:" msgstr "" @@ -6565,18 +6766,6 @@ msgid "Stack Trace (if applicable):" msgstr "" #: editor/script_editor_debugger.cpp -msgid "Remote Inspector" -msgstr "" - -#: editor/script_editor_debugger.cpp -msgid "Live Scene Tree:" -msgstr "" - -#: editor/script_editor_debugger.cpp -msgid "Remote Object Properties: " -msgstr "" - -#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -6708,49 +6897,49 @@ msgstr "" msgid "GDNative" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Invalid type argument to convert(), use TYPE_* constants." msgstr "Ugyldigt type argument til convert(), brug TYPE_* konstanter." -#: modules/gdscript/gd_functions.cpp modules/mono/glue/glue_header.h +#: modules/gdscript/gdscript_functions.cpp modules/mono/glue/glue_header.h #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Not enough bytes for decoding bytes, or invalid format." msgstr "Ikke nok bytes til afkodning af bytes, eller ugyldigt format." -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "step argument is zero!" msgstr "trin argument er nul!" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not a script with an instance" msgstr "Ikke et script med en instans" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a script" msgstr "Ikke baseret på et script" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a resource file" msgstr "Ikke baseret på en ressource fil" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (missing @path)" msgstr "Ugyldig instans ordbogs format (mangler @path)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (can't load script at @path)" msgstr "Ugyldig instans ordbogs format (kan ikke indlæse script ved @path)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (invalid script at @path)" msgstr "Ugyldig forekomst ordbog format (ugyldigt script på @path)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary (invalid subclasses)" msgstr "Ugyldig forekomst ordbog (ugyldige underklasser)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Object can't provide a length." msgstr "" @@ -6765,15 +6954,23 @@ msgid "GridMap Duplicate Selection" msgstr "Dubler valg" #: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Floor:" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Grid Map" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Snap View" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Prev Level (%sDown Wheel)" +msgid "Previous Floor" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Next Level (%sUp Wheel)" +msgid "Next Floor" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp @@ -6844,13 +7041,8 @@ msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy -msgid "Selection -> Duplicate" -msgstr "Kun Valgte" - -#: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy -msgid "Selection -> Clear" -msgstr "Kun Valgte" +msgid "Clear Selection" +msgstr "Skalering Valg" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Settings" @@ -6983,7 +7175,7 @@ msgid "Duplicate VisualScript Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Getter. Hold Shift to drop a generic signature." +msgid "Hold %s to drop a Getter. Hold Shift to drop a generic signature." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -6991,7 +7183,7 @@ msgid "Hold Ctrl to drop a Getter. Hold Shift to drop a generic signature." msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a simple reference to the node." +msgid "Hold %s to drop a simple reference to the node." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -6999,7 +7191,7 @@ msgid "Hold Ctrl to drop a simple reference to the node." msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Variable Setter." +msgid "Hold %s to drop a Variable Setter." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -7243,12 +7435,22 @@ msgstr "Kunne ikke oprette mappe." #: platform/javascript/export/export.cpp #, fuzzy -msgid "Could not read file:\n" +msgid "Could not open template for export:\n" msgstr "Kunne ikke oprette mappe." #: platform/javascript/export/export.cpp #, fuzzy -msgid "Could not open template for export:\n" +msgid "Invalid export template:\n" +msgstr "Ugyldigt index egenskabsnavn." + +#: platform/javascript/export/export.cpp +#, fuzzy +msgid "Could not read custom HTML shell:\n" +msgstr "Kunne ikke oprette mappe." + +#: platform/javascript/export/export.cpp +#, fuzzy +msgid "Could not read boot splash image file:\n" msgstr "Kunne ikke oprette mappe." #: scene/2d/animated_sprite.cpp @@ -7362,22 +7564,6 @@ msgstr "" msgid "Path property must point to a valid Node2D node to work." msgstr "Egenskaben Path skal pege på en gyldig Node2D node for at virke." -#: 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 "" -"Egenskaben Path skal pege på en gyldig Viewport node for at virke. Sådan en " -"Viewport skal indstilles til 'render target' tilstand." - -#: 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 "" -"Viewport angivet i egenskaben path skal indstilles som 'render target' for " -"at denne sprite kan virke." - #: scene/2d/visibility_notifier_2d.cpp msgid "" "VisibilityEnable2D works best when used with the edited scene root directly " @@ -7446,6 +7632,14 @@ msgstr "" "En figur skal gives for at CollisionShape fungerer. Opret en figur ressource " "til det!" +#: scene/3d/gi_probe.cpp +msgid "Plotting Meshes" +msgstr "" + +#: scene/3d/gi_probe.cpp +msgid "Finishing Plot" +msgstr "" + #: scene/3d/navigation_mesh.cpp msgid "A NavigationMesh resource must be set or created for this node to work." msgstr "" @@ -7535,6 +7729,10 @@ msgid "" "minimum size manually." msgstr "" +#: scene/gui/tree.cpp +msgid "(Other)" +msgstr "" + #: scene/main/scene_tree.cpp msgid "" "Default Environment as specified in Project Setings (Rendering -> Viewport -" @@ -7569,6 +7767,45 @@ msgstr "Error loading skrifttype." msgid "Invalid font size." msgstr "Ugyldig skriftstørrelse." +#, fuzzy +#~ msgid "" +#~ "\n" +#~ "Source: " +#~ msgstr "Ressource" + +#, fuzzy +#~ msgid "Add Point to Line2D" +#~ msgstr "Gå til linje" + +#~ msgid "Meta+" +#~ msgstr "Meta +" + +#, fuzzy +#~ msgid "Setting '" +#~ msgstr "Tester" + +#, fuzzy +#~ msgid "Selection -> Duplicate" +#~ msgstr "Kun Valgte" + +#, fuzzy +#~ msgid "Selection -> Clear" +#~ msgstr "Kun Valgte" + +#~ msgid "" +#~ "Path property must point to a valid Viewport node to work. Such Viewport " +#~ "must be set to 'render target' mode." +#~ msgstr "" +#~ "Egenskaben Path skal pege på en gyldig Viewport node for at virke. Sådan " +#~ "en Viewport skal indstilles til 'render target' tilstand." + +#~ msgid "" +#~ "The Viewport set in the path property must be set as 'render target' in " +#~ "order for this sprite to work." +#~ msgstr "" +#~ "Viewport angivet i egenskaben path skal indstilles som 'render target' " +#~ "for at denne sprite kan virke." + #~ msgid "Filter:" #~ msgstr "Filter:" diff --git a/editor/translations/de.po b/editor/translations/de.po index 986987978c..9ead7ca6ca 100644 --- a/editor/translations/de.po +++ b/editor/translations/de.po @@ -25,8 +25,8 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2017-10-07 04:45+0000\n" -"Last-Translator: anonymous <>\n" +"PO-Revision-Date: 2017-11-04 09:46+0000\n" +"Last-Translator: So Wieso <sowieso@dukun.de>\n" "Language-Team: German <https://hosted.weblate.org/projects/godot-engine/" "godot/de/>\n" "Language: de\n" @@ -34,7 +34,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 2.17-dev\n" +"X-Generator: Weblate 2.18-dev\n" #: editor/animation_editor.cpp msgid "Disabled" @@ -117,6 +117,7 @@ msgid "Anim Delete Keys" msgstr "Anim Schlüsselbilder löschen" #: editor/animation_editor.cpp editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Duplicate Selection" msgstr "Auswahl duplizieren" @@ -653,6 +654,13 @@ msgstr "Abhängigkeiteneditor" msgid "Search Replacement Resource:" msgstr "Ersatz-Ressource suchen:" +#: editor/dependency_editor.cpp editor/editor_file_dialog.cpp +#: editor/editor_help.cpp editor/editor_node.cpp editor/filesystem_dock.cpp +#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp +#: editor/quick_open.cpp scene/gui/file_dialog.cpp +msgid "Open" +msgstr "Öffnen" + #: editor/dependency_editor.cpp msgid "Owners Of:" msgstr "Besitzer von:" @@ -672,9 +680,8 @@ msgstr "" "Trotzdem entfernen? (Nicht Wiederherstellbar)" #: editor/dependency_editor.cpp -#, fuzzy msgid "Cannot remove:\n" -msgstr "Kann nicht auflösen." +msgstr "Kann nicht entfernt werden:\n" #: editor/dependency_editor.cpp msgid "Error loading:" @@ -727,6 +734,16 @@ msgstr "Ausgewählte Dateien löschen?" msgid "Delete" msgstr "Löschen" +#: editor/dictionary_property_edit.cpp +#, fuzzy +msgid "Change Dictionary Key" +msgstr "Animationsname ändern:" + +#: editor/dictionary_property_edit.cpp +#, fuzzy +msgid "Change Dictionary Value" +msgstr "Array-Wert ändern" + #: editor/editor_about.cpp msgid "Thanks from the Godot community!" msgstr "Danke von der Godot-Gemeinschaft!" @@ -761,32 +778,31 @@ msgstr "Autoren" #: editor/editor_about.cpp msgid "Platinum Sponsors" -msgstr "" +msgstr "Platin Sponsoren" #: editor/editor_about.cpp msgid "Gold Sponsors" -msgstr "" +msgstr "Gold Sponsoren" #: editor/editor_about.cpp msgid "Mini Sponsors" -msgstr "" +msgstr "Klein Sponsoren" #: editor/editor_about.cpp msgid "Gold Donors" -msgstr "" +msgstr "Gold Unterstützer" #: editor/editor_about.cpp msgid "Silver Donors" -msgstr "" +msgstr "Silber Unterstützer" #: editor/editor_about.cpp -#, fuzzy msgid "Bronze Donors" -msgstr "Klone herunter" +msgstr "Bronze Unterstützer" #: editor/editor_about.cpp msgid "Donors" -msgstr "" +msgstr "Unterstützer" #: editor/editor_about.cpp msgid "License" @@ -827,7 +843,7 @@ msgstr "Fehler beim Öffnen der Paketdatei, kein Zip-Format." #: editor/editor_asset_installer.cpp msgid "Uncompressing Assets" -msgstr "Entpacke Assets" +msgstr "Entpacke Nutzerinhalte" #: editor/editor_asset_installer.cpp editor/project_manager.cpp msgid "Package Installed Successfully!" @@ -914,9 +930,8 @@ msgid "Duplicate" msgstr "Duplizieren" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Reset Volume" -msgstr "Vergrößerung zurücksetzen" +msgstr "Lautstärke zurücksetzen" #: editor/editor_audio_buses.cpp msgid "Delete Effect" @@ -939,9 +954,8 @@ msgid "Duplicate Audio Bus" msgstr "Audiobus duplizieren" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Reset Bus Volume" -msgstr "Vergrößerung zurücksetzen" +msgstr "Bus-Lautstärke zurücksetzen" #: editor/editor_audio_buses.cpp msgid "Move Audio Bus" @@ -1157,12 +1171,6 @@ msgstr "Alle bekannte Dateitypen" msgid "All Files (*)" msgstr "Alle Dateien (*)" -#: editor/editor_file_dialog.cpp editor/editor_help.cpp editor/editor_node.cpp -#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_selector.cpp editor/quick_open.cpp scene/gui/file_dialog.cpp -msgid "Open" -msgstr "Öffnen" - #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Open a File" msgstr "Datei öffnen" @@ -1230,9 +1238,8 @@ msgid "Move Favorite Down" msgstr "Favorit nach unten schieben" #: editor/editor_file_dialog.cpp -#, fuzzy msgid "Go to parent folder" -msgstr "Ordner konnte nicht erstellt werden." +msgstr "Gehe zu übergeordnetem Ordner" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Directories & Files:" @@ -1257,7 +1264,7 @@ msgstr "Lese Quellen" #: editor/editor_file_system.cpp msgid "(Re)Importing Assets" -msgstr "Importiere Assets erneut" +msgstr "Importiere Nutzerinhalte erneut" #: editor/editor_help.cpp editor/editor_node.cpp #: editor/plugins/script_editor_plugin.cpp @@ -1293,27 +1300,24 @@ msgid "Brief Description:" msgstr "Kurze Beschreibung:" #: editor/editor_help.cpp -#, fuzzy msgid "Members" -msgstr "Mitglieder:" +msgstr "Mitglieder" #: editor/editor_help.cpp modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "Mitglieder:" #: editor/editor_help.cpp -#, fuzzy msgid "Public Methods" -msgstr "Öffentliche Methoden:" +msgstr "Öffentliche Methoden" #: editor/editor_help.cpp msgid "Public Methods:" msgstr "Öffentliche Methoden:" #: editor/editor_help.cpp -#, fuzzy msgid "GUI Theme Items" -msgstr "GUI-Theme-Elemente:" +msgstr "Oberflächen-Thema-Elemente:" #: editor/editor_help.cpp msgid "GUI Theme Items:" @@ -1337,23 +1341,20 @@ msgid "enum " msgstr "Enum " #: editor/editor_help.cpp -#, fuzzy msgid "Constants" -msgstr "Konstanten:" +msgstr "Konstanten" #: editor/editor_help.cpp msgid "Constants:" msgstr "Konstanten:" #: editor/editor_help.cpp -#, fuzzy msgid "Description" -msgstr "Beschreibung:" +msgstr "Beschreibung" #: editor/editor_help.cpp -#, fuzzy msgid "Properties" -msgstr "Eigenschaften:" +msgstr "Eigenschaften" #: editor/editor_help.cpp msgid "Property Description:" @@ -1364,11 +1365,12 @@ msgid "" "There is currently no description for this property. Please help us by " "[color=$color][url=$url]contributing one[/url][/color]!" msgstr "" +"Es gibt zurzeit keine Beschreibung dieses Objekts. [color=$color][url=" +"$url]Ergänzungen durch eigene Beiträge[/url][/color] sind sehr erwünscht!" #: editor/editor_help.cpp -#, fuzzy msgid "Methods" -msgstr "Methodenliste:" +msgstr "Methoden" #: editor/editor_help.cpp msgid "Method Description:" @@ -1379,6 +1381,8 @@ msgid "" "There is currently no description for this method. Please help us by [color=" "$color][url=$url]contributing one[/url][/color]!" msgstr "" +"Es gibt zurzeit keine Beschreibung dieser Methode. [color=$color][url=" +"$url]Ergänzungen durch eigene Beiträge[/url][/color] sind sehr erwünscht!" #: editor/editor_help.cpp msgid "Search Text" @@ -1420,28 +1424,24 @@ msgid "Error while saving." msgstr "Fehler beim speichern." #: editor/editor_node.cpp -#, fuzzy msgid "Can't open '%s'." -msgstr "Kann mit ‚..‘ nicht arbeiten" +msgstr "‚%s‘ kann nicht geöffnet werden." #: editor/editor_node.cpp -#, fuzzy msgid "Error while parsing '%s'." -msgstr "Fehler beim speichern." +msgstr "Fehler beim Parsen von ‚%s‘." #: editor/editor_node.cpp msgid "Unexpected end of file '%s'." -msgstr "" +msgstr "Unerwartetes Dateiende ‚%s‘." #: editor/editor_node.cpp -#, fuzzy msgid "Missing '%s' or its dependencies." -msgstr "Szene '%s' hat defekte Abhängigkeiten:" +msgstr "‚%s‘ oder zugehörige Abhängigkeiten fehlen." #: editor/editor_node.cpp -#, fuzzy msgid "Error while loading '%s'." -msgstr "Fehler beim speichern." +msgstr "Fehler beim Laden von ‚%s‘." #: editor/editor_node.cpp msgid "Saving Scene" @@ -1508,18 +1508,27 @@ msgid "" "Please read the documentation relevant to importing scenes to better " "understand this workflow." msgstr "" +"Diese Ressource gehört zu einer importierten Szene, sie ist nicht " +"bearbeitbar.\n" +"Die Dokumentation zum Szenenimport beschreibt den nötigen Arbeitsablauf." #: editor/editor_node.cpp msgid "" "This resource belongs to a scene that was instanced or inherited.\n" "Changes to it will not be kept when saving the current scene." msgstr "" +"Diese Ressource gehört zu einer instantiierten oder geerbten Szene.\n" +"Änderungen an der Ressource werden beim Speichern der Szene nicht " +"mitgespeichert." #: editor/editor_node.cpp msgid "" "This resource was imported, so it's not editable. Change its settings in the " "import panel and then re-import." msgstr "" +"Diese Ressource wurde importiert und ist nicht bearbeitbar. Es kann " +"allerdings ein Neu-Import mit geänderten Einstellungen im Import-Menü " +"durchgeführt werden." #: editor/editor_node.cpp msgid "" @@ -1528,6 +1537,20 @@ msgid "" "Please read the documentation relevant to importing scenes to better " "understand this workflow." msgstr "" +"Diese Szene wurde importiert, Änderungen an ihr werden nicht gespeichert.\n" +"Instantiierung oder Vererbung sind nötig um Änderungen vorzunehmen.\n" +"Die Dokumentation zum Szenenimport beschreibt den nötigen Arbeitsablauf." + +#: editor/editor_node.cpp +#, fuzzy +msgid "" +"This is a remote object so changes to it will not be kept.\n" +"Please read the documentation relevant to debugging to better understand " +"this workflow." +msgstr "" +"Diese Ressource gehört zu einer importierten Szene, sie ist nicht " +"bearbeitbar.\n" +"Die Dokumentation zum Szenenimport beschreibt den nötigen Arbeitsablauf." #: editor/editor_node.cpp msgid "Copy Params" @@ -1650,6 +1673,11 @@ msgid "Export Mesh Library" msgstr "MeshLibrary exportieren" #: editor/editor_node.cpp +#, fuzzy +msgid "This operation can't be done without a root node." +msgstr "Diese Aktion kann nicht ohne ein ausgewähltes Node ausgeführt werden." + +#: editor/editor_node.cpp msgid "Export Tile Set" msgstr "Tileset exportieren" @@ -1710,37 +1738,41 @@ msgid "" "This option is deprecated. Situations where refresh must be forced are now " "considered a bug. Please report." msgstr "" +"Diese Option ist veraltet. Situationen die Neu-Laden erzwingen werden jetzt " +"als Fehler betrachtet. Meldung erwünscht." #: editor/editor_node.cpp msgid "Pick a Main Scene" msgstr "Wähle eine Hauptszene" #: editor/editor_node.cpp -#, fuzzy msgid "Unable to enable addon plugin at: '%s' parsing of config failed." -msgstr "Plugin bei ‚" +msgstr "" +"Erweiterung lässt sich nicht aktivieren: ‚%‘ Parsen der Konfiguration " +"fehlgeschlagen." #: editor/editor_node.cpp -#, fuzzy msgid "Unable to find script field for addon plugin at: 'res://addons/%s'." msgstr "" -"Skript-Feld für Addon-Plugin in ‚res://addons/‘ konnte nicht gefunden werden." +"Skript-Feld für Erweiterung in ‚res://addons/%s‘ konnte nicht gefunden " +"werden." #: editor/editor_node.cpp -#, fuzzy msgid "Unable to load addon script from path: '%s'." -msgstr "AddOn-Skript konnte nicht geladen werden: '" +msgstr "Erweiterungsskript konnte nicht geladen werden: ‚%s‘." #: editor/editor_node.cpp -#, fuzzy msgid "" "Unable to load addon script from path: '%s' Base type is not EditorPlugin." -msgstr "AddOn-Skript konnte nicht geladen werden: '" +msgstr "" +"Erweiterungsskript konnte nicht geladen werden: ‚%s‘ Basistyp ist nicht " +"EditorPlugin." #: editor/editor_node.cpp -#, fuzzy msgid "Unable to load addon script from path: '%s' Script is not in tool mode." -msgstr "AddOn-Skript konnte nicht geladen werden: '" +msgstr "" +"Erweiterungsskript konnte nicht geladen werden: ‚%s‘ Skript ist nicht im " +"Werkzeugmodus." #: editor/editor_node.cpp msgid "" @@ -1771,9 +1803,8 @@ msgid "Scene '%s' has broken dependencies:" msgstr "Szene '%s' hat defekte Abhängigkeiten:" #: editor/editor_node.cpp -#, fuzzy msgid "Clear Recent Scenes" -msgstr "Letzte Dateien leeren" +msgstr "Verlauf leeren" #: editor/editor_node.cpp msgid "Save Layout" @@ -1793,12 +1824,23 @@ msgid "Switch Scene Tab" msgstr "Szenentab wechseln" #: editor/editor_node.cpp -msgid "%d more file(s)" +#, fuzzy +msgid "%d more files or folders" +msgstr "%d weitere Datei(en) oder Ordner" + +#: editor/editor_node.cpp +#, fuzzy +msgid "%d more folders" msgstr "%d weitere Datei(en)" #: editor/editor_node.cpp -msgid "%d more file(s) or folder(s)" -msgstr "%d weitere Datei(en) oder Ordner" +#, fuzzy +msgid "%d more files" +msgstr "%d weitere Datei(en)" + +#: editor/editor_node.cpp +msgid "Dock Position" +msgstr "" #: editor/editor_node.cpp msgid "Distraction Free Mode" @@ -1809,6 +1851,11 @@ msgid "Toggle distraction-free mode." msgstr "Ablenkungsfreien Modus umschalten." #: editor/editor_node.cpp +#, fuzzy +msgid "Add a new scene." +msgstr "Neue Spuren hinzufügen." + +#: editor/editor_node.cpp msgid "Scene" msgstr "Szene" @@ -1873,13 +1920,12 @@ msgid "TileSet.." msgstr "TileSet.." #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp -#: scene/gui/text_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Undo" msgstr "Rückgängig machen" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp +#: scene/gui/line_edit.cpp msgid "Redo" msgstr "Wiederherstellen" @@ -2149,9 +2195,8 @@ msgid "Object properties." msgstr "Objekteigenschaften." #: editor/editor_node.cpp -#, fuzzy msgid "Changes may be lost!" -msgstr "Ändere Bildergruppe" +msgstr "Änderungen können verloren gehen!" #: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp #: editor/project_manager.cpp @@ -2224,7 +2269,7 @@ msgstr "Skripteditor öffnen" #: editor/editor_node.cpp msgid "Open Asset Library" -msgstr "Öffne Bibliothek" +msgstr "Öffne Nutzerinhalte-Bibliothek" #: editor/editor_node.cpp msgid "Open the next Editor" @@ -2235,9 +2280,8 @@ msgid "Open the previous Editor" msgstr "Vorigen Editor öffnen" #: editor/editor_plugin.cpp -#, fuzzy msgid "Creating Mesh Previews" -msgstr "Erzeuge MeshLibrary" +msgstr "Mesh-Vorschauen erzeugen" #: editor/editor_plugin.cpp msgid "Thumbnail.." @@ -2289,9 +2333,8 @@ msgid "Frame %" msgstr "Bild %" #: editor/editor_profiler.cpp -#, fuzzy msgid "Physics Frame %" -msgstr "Fixiertes Bild %" +msgstr "Physik-Frame %" #: editor/editor_profiler.cpp editor/script_editor_debugger.cpp msgid "Time:" @@ -2386,6 +2429,11 @@ msgid "(Current)" msgstr "(Aktuell)" #: editor/export_template_manager.cpp +#, fuzzy +msgid "Retrieving mirrors, please wait.." +msgstr "Verbindungsfehler, bitte erneut versuchen." + +#: editor/export_template_manager.cpp msgid "Remove template version '%s'?" msgstr "Template-Version ‚%s‘ entfernen?" @@ -2422,6 +2470,112 @@ msgid "Importing:" msgstr "Importiere:" #: editor/export_template_manager.cpp +msgid "" +"No download links found for this version. Direct download is only available " +"for official releases." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't resolve." +msgstr "Kann nicht auflösen." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't connect." +msgstr "Kann nicht verbinden." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "No response." +msgstr "Keine Antwort." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Req. Failed." +msgstr "Anfrage fehlgeschlagen." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Redirect Loop." +msgstr "Weiterleitungsschleife." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Failed:" +msgstr "Fehlgeschlagen:" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't write file." +msgstr "Konnte Datei nicht schreiben:\n" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Download Complete." +msgstr "Übertragungsfehler" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Error requesting url: " +msgstr "Fehler beim speichern des Atlas:" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connecting to Mirror.." +msgstr "Verbinde.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Disconnected" +msgstr "Trennen" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Resolving" +msgstr "Löse auf.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't Resolve" +msgstr "Kann nicht auflösen." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Connecting.." +msgstr "Verbinde.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't Conect" +msgstr "Kann nicht verbinden." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connected" +msgstr "Verbinden" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Requesting.." +msgstr "Frage an.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Downloading" +msgstr "Herunterladen" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connection Error" +msgstr "Verbinde.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "SSL Handshake Error" +msgstr "Ladefehler" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "Aktuelle Version:" @@ -2445,6 +2599,16 @@ msgstr "Vorlagendatei wählen" msgid "Export Template Manager" msgstr "Exportvorlagenverwaltung" +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Download Templates" +msgstr "Vorlagen" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Select mirror from list: " +msgstr "Gerät aus Liste auswählen" + #: editor/file_type_cache.cpp msgid "Can't open file_type_cache.cch for writing, not saving file type cache!" msgstr "" @@ -2452,83 +2616,68 @@ msgstr "" "Der Dateityp-Cache wird nicht gespeichert!" #: editor/filesystem_dock.cpp -msgid "Cannot navigate to '" -msgstr "Kann Ordner ‚" +msgid "Cannot navigate to '%s' as it has not been found in the file system!" +msgstr "" #: editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails" -msgstr "" +msgstr "Einträge in Vorschaugitter anzeigen" #: editor/filesystem_dock.cpp msgid "View items as a list" -msgstr "" +msgstr "Einträge als Liste anzeigen" #: editor/filesystem_dock.cpp msgid "" "\n" "Status: Import of file failed. Please fix file and reimport manually." msgstr "" - -#: editor/filesystem_dock.cpp -msgid "" -"\n" -"Source: " -msgstr "" "\n" -"Quelle: " +"Status: Dateiimport fehlgeschlagen. Manuelle Reparatur und Neuimport nötig." #: editor/filesystem_dock.cpp -#, fuzzy msgid "Cannot move/rename resources root." -msgstr "Quellschriftart kann nicht geladen/verarbeitet werden." +msgstr "Ressourcen-Wurzel kann nicht verschoben oder umbenannt werden." #: editor/filesystem_dock.cpp -#, fuzzy msgid "Cannot move a folder into itself.\n" -msgstr "Datei kann nicht in sich selbst importiert werden:" +msgstr "Ordner kann nicht in sich selbst verschoben werden.\n" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Error moving:\n" -msgstr "Fehler beim Verzeichnisverschieben:\n" +msgstr "Fehler beim Verschieben:\n" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Unable to update dependencies:\n" -msgstr "Szene '%s' hat defekte Abhängigkeiten:" +msgstr "Fehler beim Aktualisieren der Abhängigkeiten:\n" #: editor/filesystem_dock.cpp msgid "No name provided" -msgstr "" +msgstr "Kein Name angegeben" #: editor/filesystem_dock.cpp msgid "Provided name contains invalid characters" -msgstr "" +msgstr "Angegebener Name enthält ungültige Zeichen" #: editor/filesystem_dock.cpp -#, fuzzy msgid "No name provided." -msgstr "Umbenennen oder Verschieben.." +msgstr "Kein Name angegeben." #: editor/filesystem_dock.cpp -#, fuzzy msgid "Name contains invalid characters." -msgstr "Gültige Zeichen:" +msgstr "Name enthält ungültige Zeichen." #: editor/filesystem_dock.cpp -#, fuzzy msgid "A file or folder with this name already exists." -msgstr "Gruppenname existiert bereits!" +msgstr "Es existiert bereits eine Datei oder ein Ordner mit diesem Namen." #: editor/filesystem_dock.cpp -#, fuzzy msgid "Renaming file:" -msgstr "Variable umbenennen" +msgstr "Benenne Datei um:" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Renaming folder:" -msgstr "Node umbenennen" +msgstr "Benenne Ordner um:" #: editor/filesystem_dock.cpp msgid "Expand all" @@ -2543,18 +2692,16 @@ msgid "Copy Path" msgstr "Pfad kopieren" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Rename.." -msgstr "Umbenennen" +msgstr "Umbenennen.." #: editor/filesystem_dock.cpp msgid "Move To.." msgstr "Verschiebe zu.." #: editor/filesystem_dock.cpp -#, fuzzy msgid "New Folder.." -msgstr "Ordner erstellen" +msgstr "Neuer Ordner.." #: editor/filesystem_dock.cpp msgid "Show In File Manager" @@ -2622,9 +2769,8 @@ msgid "Import as Single Scene" msgstr "Als einzelne Szene importieren" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Import with Separate Animations" -msgstr "Import mit separaten Materialien" +msgstr "Import mit separaten Animationen" #: editor/import/resource_importer_scene.cpp msgid "Import with Separate Materials" @@ -2639,19 +2785,16 @@ msgid "Import with Separate Objects+Materials" msgstr "Import mit separaten Objekten und Materialien" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Import with Separate Objects+Animations" -msgstr "Import mit separaten Objekten und Materialien" +msgstr "Import mit separaten Objekten und Animationen" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Import with Separate Materials+Animations" -msgstr "Import mit separaten Materialien" +msgstr "Import mit separaten Materialien und Animationen" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Import with Separate Objects+Materials+Animations" -msgstr "Import mit separaten Objekten und Materialien" +msgstr "Import mit separaten Objekten, Materialien und Animationen" #: editor/import/resource_importer_scene.cpp msgid "Import as Multiple Scenes" @@ -2738,9 +2881,8 @@ msgid "Edit Poly" msgstr "Polygon bearbeiten" #: editor/plugins/abstract_polygon_2d_editor.cpp -#, fuzzy msgid "Insert Point" -msgstr "Füge Ein" +msgstr "Punkt einfügen" #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/collision_polygon_editor_plugin.cpp @@ -2753,8 +2895,8 @@ msgid "Remove Poly And Point" msgstr "Polygon und Punkt entfernen" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." +#, fuzzy +msgid "Create a new polygon from scratch" msgstr "Polygon von Grund auf neu erstellen." #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -2769,6 +2911,11 @@ msgstr "" "Strg+LMT: Segment aufteilen.\n" "RMT: Punkt löschen." +#: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy +msgid "Delete points" +msgstr "Punk löschen" + #: editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" msgstr "Automatisches Abspielen umschalten" @@ -3103,18 +3250,10 @@ msgid "Can't resolve hostname:" msgstr "Kann Hostnamen nicht auflösen:" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't resolve." -msgstr "Kann nicht auflösen." - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Connection error, please try again." msgstr "Verbindungsfehler, bitte erneut versuchen." #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't connect." -msgstr "Kann nicht verbinden." - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Can't connect to host:" msgstr "Kann nicht zu Host verbinden:" @@ -3123,30 +3262,14 @@ msgid "No response from host:" msgstr "Keine Antwort von Host:" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "No response." -msgstr "Keine Antwort." - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, return code:" msgstr "Anfrage fehlgeschlagen: Rückgabewert:" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Req. Failed." -msgstr "Anfrage fehlgeschlagen." - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, too many redirects" msgstr "Anfrage fehlgeschlagen, zu viele Weiterleitungen" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Redirect Loop." -msgstr "Weiterleitungsschleife." - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Failed:" -msgstr "Fehlgeschlagen:" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Bad download hash, assuming file has been tampered with." msgstr "Falsche Download-Prüfsumme, Datei könnte manipuliert worden sein." @@ -3164,7 +3287,7 @@ msgstr "Sha256-Prüfung fehlgeschlagen" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Asset Download Error:" -msgstr "Asset-Download-Fehler:" +msgstr "Nutzerinhalte-Download-Fehler:" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Fetching:" @@ -3175,14 +3298,6 @@ msgid "Resolving.." msgstr "Löse auf.." #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Connecting.." -msgstr "Verbinde.." - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Requesting.." -msgstr "Frage an.." - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Error making request" msgstr "Fehler bei Anfrage" @@ -3200,7 +3315,7 @@ msgstr "Übertragungsfehler" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Download for this asset is already in progress!" -msgstr "Dieser Posten wird bereits herunter geladen!" +msgstr "Dieser Nutzerinhalt wird bereits herunter geladen!" #: editor/plugins/asset_library_editor_plugin.cpp msgid "first" @@ -3258,7 +3373,7 @@ msgstr "Testphase" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Assets ZIP File" -msgstr "Projektdaten als ZIP-Datei" +msgstr "Nutzerinhalte als ZIP-Datei" #: editor/plugins/camera_editor_plugin.cpp msgid "Preview" @@ -3295,6 +3410,39 @@ msgid "Move Action" msgstr "Aktion verschieben" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create new vertical guide" +msgstr "Neue Skriptdatei erstellen" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove vertical guide" +msgstr "Variable entfernen" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Move horizontal guide" +msgstr "Punkt auf Kurve verschieben" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create new horizontal guide" +msgstr "Neue Skriptdatei erstellen" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove horizontal guide" +msgstr "Ungültige Schlüsselbilder entfernen" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new horizontal and vertical guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Edit IK Chain" msgstr "IK-Kette bearbeiten" @@ -3303,14 +3451,12 @@ msgid "Edit CanvasItem" msgstr "CanvasItem bearbeiten" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Anchors only" -msgstr "Anker" +msgstr "nur Anker" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Change Anchors and Margins" -msgstr "Ankerpunkte ändern" +msgstr "Anker und Ränder ändern" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Change Anchors" @@ -3369,9 +3515,8 @@ msgid "Pan Mode" msgstr "Schwenkmodus" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Toggles snapping" -msgstr "Haltepunkt umschalten" +msgstr "Einrasten umschalten" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -3379,23 +3524,20 @@ msgid "Use Snap" msgstr "Einrasten aktivieren" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Snapping options" -msgstr "Animationseinstellungen" +msgstr "Einrasteinstellungen" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Snap to grid" -msgstr "Einrastmodus:" +msgstr "Am Gitter einrasten" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Rotation Snap" msgstr "Rotationsraster benutzen" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Configure Snap..." -msgstr "Einrasten konfigurieren.." +msgstr "Einrasten konfigurieren..." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Snap Relative" @@ -3407,31 +3549,37 @@ msgstr "Pixelraster benutzen" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Smart snapping" -msgstr "" +msgstr "Intelligentes Einrasten" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Snap to parent" -msgstr "Auf übergeordnetes Node ausdehnen" +msgstr "An Elternobjekt einrasten" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Snap to node anchor" -msgstr "" +msgstr "Am Node-Anker einrasten" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Snap to node sides" -msgstr "" +msgstr "An Node-Seiten einrasten" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Snap to other nodes" -msgstr "" +msgstr "An anderen Nodes einrasten" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Snap to guides" +msgstr "Am Gitter einrasten" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Lock the selected object in place (can't be moved)." msgstr "" "Das ausgewählte Objekt an seiner Position sperren (kann nicht bewegt werden)." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Unlock the selected object (can be moved)." msgstr "Das ausgewählte Objekt entsperren (kann bewegt werden)." @@ -3474,14 +3622,17 @@ msgid "Show Grid" msgstr "Raster anzeigen" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Show helpers" -msgstr "Knochen anzeigen" +msgstr "Helfer anzeigen" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Show rulers" -msgstr "Knochen anzeigen" +msgstr "Lineale anzeigen" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Show guides" +msgstr "Lineale anzeigen" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Selection" @@ -3492,9 +3643,8 @@ msgid "Frame Selection" msgstr "Auswahl einrahmen" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Layout" -msgstr "Layout speichern" +msgstr "Layout" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Insert Keys" @@ -3518,20 +3668,19 @@ msgstr "Pose zurücksetzen" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Drag pivot from mouse position" -msgstr "" +msgstr "Pivotpunkt von Mauszeigerposition ziehen" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Set pivot at mouse position" -msgstr "Position der Ausgangskurve setzen" +msgstr "Pivotpunkt auf Mausposition setzen" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Multiply grid step by 2" -msgstr "" +msgstr "Gitterstufe verdoppeln" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Divide grid step by 2" -msgstr "" +msgstr "Gitterstufe halbieren" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" @@ -3610,25 +3759,23 @@ msgstr "Aus Szene aktualisieren" #: editor/plugins/curve_editor_plugin.cpp msgid "Flat0" -msgstr "" +msgstr "Flach0" #: editor/plugins/curve_editor_plugin.cpp msgid "Flat1" -msgstr "" +msgstr "Flach1" #: editor/plugins/curve_editor_plugin.cpp -#, fuzzy msgid "Ease in" -msgstr "Einblenden" +msgstr "Einspannen" #: editor/plugins/curve_editor_plugin.cpp -#, fuzzy msgid "Ease out" -msgstr "Ausblenden" +msgstr "Ausspannen" #: editor/plugins/curve_editor_plugin.cpp msgid "Smoothstep" -msgstr "" +msgstr "Sanft-Stufig" #: editor/plugins/curve_editor_plugin.cpp msgid "Modify Curve Point" @@ -3674,6 +3821,10 @@ msgstr "Lineare Kurventangente umschalten" msgid "Hold Shift to edit tangents individually" msgstr "Umsch halten um Tangenten einzeln zu bearbeiten" +#: editor/plugins/gi_probe_editor_plugin.cpp +msgid "Bake GI Probe" +msgstr "" + #: editor/plugins/gradient_editor_plugin.cpp msgid "Add/Remove Color Ramp Point" msgstr "Farbverlaufspunkt hinzufügen/entfernen" @@ -3708,6 +3859,10 @@ msgid "Create Occluder Polygon" msgstr "Occluder-Polygon erzeugen" #: editor/plugins/light_occluder_2d_editor_plugin.cpp +msgid "Create a new polygon from scratch." +msgstr "Polygon von Grund auf neu erstellen." + +#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Edit existing polygon:" msgstr "Bestehendes Polygon bearbeiten:" @@ -3723,58 +3878,6 @@ msgstr "Strg+LMT: Segment aufteilen." msgid "RMB: Erase Point." msgstr "RMT: Punkt entfernen." -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Remove Point from Line2D" -msgstr "Punkt von Line2D entfernen" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Add Point to Line2D" -msgstr "Punkt zu Line2D hinzufügen" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Move Point in Line2D" -msgstr "Punkt in Line2D verschieben" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Select Points" -msgstr "Punkte auswählen" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Shift+Drag: Select Control Points" -msgstr "Shift+Ziehen: Kontrollpunkte auswählen" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Click: Add Point" -msgstr "Klicken: Punkt hinzufügen" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Right Click: Delete Point" -msgstr "Rechtsklick: Punkt löschen" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Add Point (in empty space)" -msgstr "Punkt hinzufügen (in leerem Raum)" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Split Segment (in line)" -msgstr "Segment aufteilen (in Linie)" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Delete Point" -msgstr "Punk löschen" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "Mesh ist leer!" @@ -3957,73 +4060,64 @@ msgid "Bake!" msgstr "Backen!" #: editor/plugins/navigation_mesh_editor_plugin.cpp -#, fuzzy msgid "Bake the navigation mesh.\n" -msgstr "Navigations-Mesh erzeugen" +msgstr "Navigations-Mesh erzeugen.\n" #: editor/plugins/navigation_mesh_editor_plugin.cpp -#, fuzzy msgid "Clear the navigation mesh." -msgstr "Navigations-Mesh erzeugen" +msgstr "Navigations-Mesh löschen." #: editor/plugins/navigation_mesh_generator.cpp msgid "Setting up Configuration..." -msgstr "" +msgstr "Konfiguration wird erstellt..." #: editor/plugins/navigation_mesh_generator.cpp msgid "Calculating grid size..." -msgstr "" +msgstr "Gittergröße wird berechnet..." #: editor/plugins/navigation_mesh_generator.cpp -#, fuzzy msgid "Creating heightfield..." -msgstr "erstelle Licht-Octree" +msgstr "Höhenmodell erstellen..." #: editor/plugins/navigation_mesh_generator.cpp -#, fuzzy msgid "Marking walkable triangles..." -msgstr "Übersetzbare Textbausteine.." +msgstr "Begehbare Dreiecke markieren..." #: editor/plugins/navigation_mesh_generator.cpp msgid "Constructing compact heightfield..." -msgstr "" +msgstr "Kompaktes Höhenmodell wir konstruiert..." #: editor/plugins/navigation_mesh_generator.cpp msgid "Eroding walkable area..." -msgstr "" +msgstr "Begehbare Gebiete werden erodiert..." #: editor/plugins/navigation_mesh_generator.cpp -#, fuzzy msgid "Partitioning..." -msgstr "Warnung" +msgstr "Einteilen..." #: editor/plugins/navigation_mesh_generator.cpp -#, fuzzy msgid "Creating contours..." -msgstr "Erstelle Octree-Textur" +msgstr "Konturen erzeugen..." #: editor/plugins/navigation_mesh_generator.cpp -#, fuzzy msgid "Creating polymesh..." -msgstr "Umriss-Mesh erzeugen.." +msgstr "Polymesh erzeugen..." #: editor/plugins/navigation_mesh_generator.cpp -#, fuzzy msgid "Converting to native navigation mesh..." -msgstr "Navigations-Mesh erzeugen" +msgstr "In natives Navigation-Mesh konvertieren..." #: editor/plugins/navigation_mesh_generator.cpp msgid "Navigation Mesh Generator Setup:" -msgstr "" +msgstr "Navigation-Mesh-Generatoreinstellungen:" #: editor/plugins/navigation_mesh_generator.cpp -#, fuzzy msgid "Parsing Geometry..." -msgstr "Analysiere Geometrie" +msgstr "Parse Geometrie…" #: editor/plugins/navigation_mesh_generator.cpp msgid "Done!" -msgstr "" +msgstr "Abgeschlossen!" #: editor/plugins/navigation_polygon_editor_plugin.cpp msgid "Create Navigation Polygon" @@ -4184,16 +4278,46 @@ msgid "Move Out-Control in Curve" msgstr "Ausgangsgriff auf Kurve verschieben" #: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Select Points" +msgstr "Punkte auswählen" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Shift+Drag: Select Control Points" +msgstr "Shift+Ziehen: Kontrollpunkte auswählen" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Click: Add Point" +msgstr "Klicken: Punkt hinzufügen" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Right Click: Delete Point" +msgstr "Rechtsklick: Punkt löschen" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Select Control Points (Shift+Drag)" msgstr "Kontrollpunkte auswählen (Shift+Ziehen)" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Add Point (in empty space)" +msgstr "Punkt hinzufügen (in leerem Raum)" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Split Segment (in curve)" msgstr "Segment aufteilen (in Kurve)" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Delete Point" +msgstr "Punk löschen" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Close Curve" msgstr "Kurve schließen" @@ -4202,19 +4326,16 @@ msgid "Curve Point #" msgstr "Kurvenpunkt #" #: editor/plugins/path_editor_plugin.cpp -#, fuzzy msgid "Set Curve Point Position" -msgstr "Position des Kurvenpunkts setzen" +msgstr "Kurvenpunktposition festlegen" #: editor/plugins/path_editor_plugin.cpp -#, fuzzy msgid "Set Curve In Position" -msgstr "Position der Eingangskurve setzen" +msgstr "Kurven-Eingangsposition festlegen" #: editor/plugins/path_editor_plugin.cpp -#, fuzzy msgid "Set Curve Out Position" -msgstr "Position der Ausgangskurve setzen" +msgstr "Kurven-Ausgangsposition festlegen" #: editor/plugins/path_editor_plugin.cpp msgid "Split Path" @@ -4333,7 +4454,6 @@ msgstr "Ressource laden" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Paste" @@ -4380,6 +4500,21 @@ msgid " Class Reference" msgstr " Klassenreferenz" #: editor/plugins/script_editor_plugin.cpp +#, fuzzy +msgid "Sort" +msgstr "Sortiere:" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Up" +msgstr "Schiebe hoch" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Down" +msgstr "Schiebe herunter" + +#: editor/plugins/script_editor_plugin.cpp msgid "Next script" msgstr "Nächstes Skript" @@ -4431,6 +4566,10 @@ msgstr "Dokumentation schließen" msgid "Close All" msgstr "Alle schließen" +#: editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "Ausführen" @@ -4441,13 +4580,11 @@ msgstr "Seitenleiste umschalten" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find.." msgstr "Finde.." #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Next" msgstr "Finde Nächstes" @@ -4555,33 +4692,22 @@ msgstr "Kleinbuchstaben" msgid "Capitalize" msgstr "Kapitalisiere" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" msgstr "Ausschneiden" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Copy" msgstr "Kopieren" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Select All" msgstr "Alles auswählen" -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Up" -msgstr "Schiebe hoch" - -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Down" -msgstr "Schiebe herunter" - #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "Linie löschen" @@ -4603,6 +4729,23 @@ msgid "Clone Down" msgstr "Klone herunter" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Fold Line" +msgstr "Gehe zu Zeile" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold Line" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Fold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Complete Symbol" msgstr "Symbol vervollständigen" @@ -4648,12 +4791,10 @@ msgid "Convert To Lowercase" msgstr "In Kleinbuchstaben konvertieren" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Previous" msgstr "Finde Vorheriges" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Replace.." msgstr "Ersetzen.." @@ -4662,7 +4803,6 @@ msgid "Goto Function.." msgstr "Springe zu Funktion.." #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Goto Line.." msgstr "Springe zu Zeile.." @@ -4827,6 +4967,16 @@ msgid "View Plane Transform." msgstr "Zeige Flächentransformation." #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Scaling: " +msgstr "Skalierung:" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Translating: " +msgstr "Übersetzungen:" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Rotating %s degrees." msgstr "Rotiere %s Grad." @@ -4907,6 +5057,10 @@ msgid "Vertices" msgstr "Vertices" #: editor/plugins/spatial_editor_plugin.cpp +msgid "FPS" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Align with view" msgstr "Auf Sicht ausrichten" @@ -4939,6 +5093,16 @@ msgid "View Information" msgstr "Sicht-Informationen" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "View FPS" +msgstr "Dateien anzeigen" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Half Resolution" +msgstr "Auswahl skalieren" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Audio Listener" msgstr "Audiosenke" @@ -5069,6 +5233,11 @@ msgid "Tool Scale" msgstr "Werkzeug Skalieren" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Toggle Freelook" +msgstr "Vollbildmodus umschalten" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Transform" msgstr "Transformation" @@ -5238,14 +5407,12 @@ msgid "Insert Empty (After)" msgstr "Empty einfügen (danach)" #: editor/plugins/sprite_frames_editor_plugin.cpp -#, fuzzy msgid "Move (Before)" -msgstr "Node(s) verschieben" +msgstr "Davor bewegen" #: editor/plugins/sprite_frames_editor_plugin.cpp -#, fuzzy msgid "Move (After)" -msgstr "nach links" +msgstr "Dahinter bewegen" #: editor/plugins/style_box_editor_plugin.cpp msgid "StyleBox Preview:" @@ -5322,11 +5489,11 @@ msgstr "Alles entfernen" #: editor/plugins/theme_editor_plugin.cpp msgid "Edit theme.." -msgstr "" +msgstr "Thema bearbeiten.." #: editor/plugins/theme_editor_plugin.cpp msgid "Theme editing menu." -msgstr "" +msgstr "Thema-Bearbeitungsmenü." #: editor/plugins/theme_editor_plugin.cpp msgid "Add Class Items" @@ -5345,6 +5512,11 @@ msgid "Create Empty Editor Template" msgstr "Leeres Editor-Template erstellen" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Create From Current Editor Theme" +msgstr "Leeres Editor-Template erstellen" + +#: editor/plugins/theme_editor_plugin.cpp msgid "CheckBox Radio1" msgstr "Kontrollkasten Radio1" @@ -5462,9 +5634,8 @@ msgid "Mirror Y" msgstr "Y-Koordinaten spiegeln" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Paint Tile" -msgstr "Zeichne TileMap" +msgstr "Kachel zeichnen" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Pick Tile" @@ -5519,7 +5690,8 @@ msgid "Runnable" msgstr "ausführbar" #: editor/project_export.cpp -msgid "Delete patch '" +#, fuzzy +msgid "Delete patch '%s' from list?" msgstr "Patch von Liste löschen" #: editor/project_export.cpp @@ -5527,9 +5699,8 @@ msgid "Delete preset '%s'?" msgstr "Vorlage ‚%s‘ löschen?" #: editor/project_export.cpp -#, fuzzy msgid "Export templates for this platform are missing/corrupted: " -msgstr "Export-Templates für diese Systeme fehlen:" +msgstr "Export-Vorlagen für dieses Systeme fehlen / sind fehlerhaft: " #: editor/project_export.cpp msgid "Presets" @@ -5606,9 +5777,8 @@ msgid "Export templates for this platform are missing:" msgstr "Export-Templates für diese Systeme fehlen:" #: editor/project_export.cpp -#, fuzzy msgid "Export templates for this platform are missing/corrupted:" -msgstr "Export-Templates für diese Systeme fehlen:" +msgstr "Export-Vorlagen für dieses Systeme fehlen / sind fehlerhaft:" #: editor/project_export.cpp msgid "Export With Debug" @@ -5617,22 +5787,23 @@ msgstr "Exportiere mit Debuginformationen" #: editor/project_manager.cpp #, fuzzy msgid "The path does not exist." -msgstr "Datei existiert nicht." +msgstr "Dieser Pfad existiert nicht." #: editor/project_manager.cpp -#, fuzzy msgid "Please choose a 'project.godot' file." -msgstr "Bitte außerhalb des Projektordners exportieren!" +msgstr "Eine ‚project.godot‘-Datei auswählen." #: editor/project_manager.cpp msgid "" "Your project will be created in a non empty folder (you might want to create " "a new folder)." msgstr "" +"Das Projekt wir in einem nicht-leeren Ordner erstellt (meist sind leere " +"Ordner die bessere Wahl)." #: editor/project_manager.cpp msgid "Please choose a folder that does not contain a 'project.godot' file." -msgstr "" +msgstr "Ein Ordner ohne ‚project.godot‘-Datei muss ausgewählt werden." #: editor/project_manager.cpp msgid "Imported Project" @@ -5644,21 +5815,19 @@ msgstr "" #: editor/project_manager.cpp msgid "It would be a good idea to name your project." -msgstr "" +msgstr "Es wird empfohlen das Projekt zu benennen." #: editor/project_manager.cpp msgid "Invalid project path (changed anything?)." msgstr "Ungültiger Projektpfad (etwas geändert?)." #: editor/project_manager.cpp -#, fuzzy msgid "Couldn't get project.godot in project path." -msgstr "Konnte project.godot im Projektpfad nicht erzeugen." +msgstr "project.godot konnte nicht im Projektpfad gefunden werden." #: editor/project_manager.cpp -#, fuzzy msgid "Couldn't edit project.godot in project path." -msgstr "Konnte project.godot im Projektpfad nicht erzeugen." +msgstr "project.godot des Projektpfads konnte nicht bearbeitet werden." #: editor/project_manager.cpp msgid "Couldn't create project.godot in project path." @@ -5669,14 +5838,12 @@ msgid "The following files failed extraction from package:" msgstr "Die folgenden Dateien ließen sich nicht aus dem Paket extrahieren:" #: editor/project_manager.cpp -#, fuzzy msgid "Rename Project" -msgstr "Unbenanntes Projekt" +msgstr "Projekt umbenennen" #: editor/project_manager.cpp -#, fuzzy msgid "Couldn't get project.godot in the project path." -msgstr "Konnte project.godot im Projektpfad nicht erzeugen." +msgstr "project.godot konnte nicht im Projektpfad gefunden werden." #: editor/project_manager.cpp msgid "New Game Project" @@ -5699,7 +5866,6 @@ msgid "Project Name:" msgstr "Projektname:" #: editor/project_manager.cpp -#, fuzzy msgid "Create folder" msgstr "Ordner erstellen" @@ -5720,9 +5886,8 @@ msgid "Unnamed Project" msgstr "Unbenanntes Projekt" #: editor/project_manager.cpp -#, fuzzy msgid "Can't open project" -msgstr "Projekt kann nicht ausgeführt werden" +msgstr "Projekt kann nicht geöffnet werden" #: editor/project_manager.cpp msgid "Are you sure to open more than one project?" @@ -5743,7 +5908,8 @@ msgid "" "Can't run project: Assets need to be imported.\n" "Please edit the project to trigger the initial import." msgstr "" -"Projekt kann nicht ausgeführt werden: Assets müssen importiert werden.\n" +"Projekt kann nicht ausgeführt werden: Nutzerinhalte müssen importiert " +"werden.\n" "Das Projekt muss eingestellt werden einen ersten Import einzuleiten." #: editor/project_manager.cpp @@ -5761,6 +5927,9 @@ msgid "" "Language changed.\n" "The UI will update next time the editor or project manager starts." msgstr "" +"Sprache geändert.\n" +"Die Benutzeroberfläche wird beim nächsten Start des Editors oder der " +"Projektverwaltung aktualisiert." #: editor/project_manager.cpp msgid "" @@ -5793,9 +5962,8 @@ msgid "Exit" msgstr "Verlassen" #: editor/project_manager.cpp -#, fuzzy msgid "Restart Now" -msgstr "Neu starten (s):" +msgstr "Jetzt Neustarten" #: editor/project_manager.cpp msgid "Can't run project" @@ -5834,10 +6002,6 @@ msgid "Add Input Action Event" msgstr "Eingabeaktionsereignis hinzufügen" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Meta+" -msgstr "Meta+" - -#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp msgid "Shift+" msgstr "Umschalt+" @@ -5955,31 +6119,29 @@ msgid "Add Global Property" msgstr "Globale Eigenschaft hinzufügen" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Select a setting item first!" -msgstr "Ein Einstellungspunkt muss zuerst ausgewählt werden!" +msgstr "Zuerst Einstellungspunkt auswählen!" #: editor/project_settings_editor.cpp -msgid "No property '" +#, fuzzy +msgid "No property '%s' exists." msgstr "Keine Eigenschaft ‚" #: editor/project_settings_editor.cpp -msgid "Setting '" -msgstr "Einstellung ‚" +msgid "Setting '%s' is internal, and it can't be deleted." +msgstr "" #: editor/project_settings_editor.cpp msgid "Delete Item" msgstr "Eintrag löschen" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Can't contain '/' or ':'" -msgstr "Kann nicht zu Host verbinden:" +msgstr "Darf nicht ‚/‘ oder ‚:‘ beinhalten" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Already existing" -msgstr "Persistente an- und ausschalten" +msgstr "Existiert bereits" #: editor/project_settings_editor.cpp msgid "Error saving settings." @@ -6022,13 +6184,12 @@ msgid "Remove Resource Remap Option" msgstr "Ressourcen-Remap-Option entfernen" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Changed Locale Filter" -msgstr "Überblendungszeit ändern" +msgstr "Sprachfilter geändert" #: editor/project_settings_editor.cpp msgid "Changed Locale Filter Mode" -msgstr "" +msgstr "Sprachfiltermodus geändert" #: editor/project_settings_editor.cpp msgid "Project Settings (project.godot)" @@ -6091,28 +6252,24 @@ msgid "Locale" msgstr "Lokalisierung" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Locales Filter" -msgstr "Bildfilter:" +msgstr "Sprachfilter" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Show all locales" -msgstr "Knochen anzeigen" +msgstr "Alle Sprachen anzeigen" #: editor/project_settings_editor.cpp msgid "Show only selected locales" -msgstr "" +msgstr "Nur ausgewählte Sprachen anzeigen" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Filter mode:" -msgstr "Nodes filtern" +msgstr "Filtermodus:" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Locales:" -msgstr "Lokalisierung" +msgstr "Sprachen:" #: editor/project_settings_editor.cpp msgid "AutoLoad" @@ -6163,18 +6320,16 @@ msgid "New Script" msgstr "Neues Skript" #: editor/property_editor.cpp -#, fuzzy msgid "Make Unique" -msgstr "Knochen erstellen" +msgstr "Einzigartig machen" #: editor/property_editor.cpp msgid "Show in File System" msgstr "Im Dateisystem anzeigen" #: editor/property_editor.cpp -#, fuzzy msgid "Convert To %s" -msgstr "Umwandeln zu.." +msgstr "Umwandeln zu %s" #: editor/property_editor.cpp msgid "Error loading file: Not a resource!" @@ -6213,9 +6368,8 @@ msgid "Select Property" msgstr "Eigenschaft auswählen" #: editor/property_selector.cpp -#, fuzzy msgid "Select Virtual Method" -msgstr "Methode auswählen" +msgstr "Virtuelle Methode auswählen" #: editor/property_selector.cpp msgid "Select Method" @@ -6450,6 +6604,16 @@ msgid "Clear a script for the selected node." msgstr "Leere ein Skript für das ausgewählte Node." #: editor/scene_tree_dock.cpp +#, fuzzy +msgid "Remote" +msgstr "Entfernen" + +#: editor/scene_tree_dock.cpp +#, fuzzy +msgid "Local" +msgstr "Lokalisierung" + +#: editor/scene_tree_dock.cpp msgid "Clear Inheritance? (No Undo!)" msgstr "Vererbung wirklich leeren? (Lässt sich nicht rückgängig machen!)" @@ -6535,9 +6699,8 @@ msgid "Scene Tree (Nodes):" msgstr "Szenenbaum (Nodes):" #: editor/scene_tree_editor.cpp -#, fuzzy msgid "Node Configuration Warning!" -msgstr "Node-Konfigurationswarnung:" +msgstr "Node-Konfigurationswarnung!" #: editor/scene_tree_editor.cpp msgid "Select a Node" @@ -6573,12 +6736,11 @@ msgstr "Ungültiger Pfad" #: editor/script_create_dialog.cpp msgid "Directory of the same name exists" -msgstr "" +msgstr "Ein Verzeichnis mit gleichem Namen existiert bereits" #: editor/script_create_dialog.cpp -#, fuzzy msgid "File exists, will be reused" -msgstr "Datei existiert bereits. Überschreiben?" +msgstr "Datei existiert bereits, wird erneut verwendet" #: editor/script_create_dialog.cpp msgid "Invalid extension" @@ -6645,6 +6807,11 @@ msgid "Attach Node Script" msgstr "Node-Skript hinzufügen" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Remote " +msgstr "Entfernen" + +#: editor/script_editor_debugger.cpp msgid "Bytes:" msgstr "Bytes:" @@ -6666,7 +6833,7 @@ msgstr "Funktion:" #: editor/script_editor_debugger.cpp msgid "Pick one or more items from the list to display the graph." -msgstr "" +msgstr "Ein oder mehrere Einträge der Liste auswählen um Graph anzuzeigen." #: editor/script_editor_debugger.cpp msgid "Errors" @@ -6701,18 +6868,6 @@ msgid "Stack Trace (if applicable):" msgstr "Stack Trace (falls geeignet):" #: editor/script_editor_debugger.cpp -msgid "Remote Inspector" -msgstr "Remote Inspektor" - -#: editor/script_editor_debugger.cpp -msgid "Live Scene Tree:" -msgstr "Echtzeit Szenenbaum:" - -#: editor/script_editor_debugger.cpp -msgid "Remote Object Properties: " -msgstr "Eigenschaften entfernter Objekte: " - -#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "Profiler" @@ -6830,70 +6985,68 @@ msgid "Change Probe Extents" msgstr "Sondenausmaße ändern" #: modules/gdnative/gd_native_library_editor.cpp -#, fuzzy msgid "Library" -msgstr "MeshLibrary.." +msgstr "Bibliothek" #: modules/gdnative/gd_native_library_editor.cpp -#, fuzzy msgid "Status" -msgstr "Status:" +msgstr "Status" #: modules/gdnative/gd_native_library_editor.cpp msgid "Libraries: " -msgstr "" +msgstr "Bibliotheken: " #: modules/gdnative/register_types.cpp msgid "GDNative" -msgstr "" +msgstr "GDNative" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Invalid type argument to convert(), use TYPE_* constants." msgstr "" "Ungültiger Argument-Typ in convert()-Aufruf, TYPE_*-Konstanten benötigt." -#: modules/gdscript/gd_functions.cpp modules/mono/glue/glue_header.h +#: modules/gdscript/gdscript_functions.cpp modules/mono/glue/glue_header.h #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Not enough bytes for decoding bytes, or invalid format." msgstr "" "Nicht genügend Bytes zum dekodieren des Byte-Strings, oder ungültiges Format." -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "step argument is zero!" msgstr "Schrittargument ist null!" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not a script with an instance" msgstr "Skript hat keine Instanz" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a script" msgstr "Nicht auf einem Skript basierend" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a resource file" msgstr "Nicht auf einer Ressourcendatei basierend" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (missing @path)" msgstr "Ungültiges Instanz-Verzeichnisformat (@path fehlt)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (can't load script at @path)" msgstr "" "Ungültiges Instanz-Verzeichnisformat (Skript in @path kann nicht geladen " "werden)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (invalid script at @path)" msgstr "Ungültiges Instanz-Verzeichnisformat (ungültiges Skript in @path)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary (invalid subclasses)" msgstr "Ungültiges Instanz-Verzeichnisformat (ungültige Unterklasse)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Object can't provide a length." msgstr "Objekt kann keine Länge vorweisen." @@ -6906,15 +7059,25 @@ msgid "GridMap Duplicate Selection" msgstr "GridMap-Auswahl duplizieren" #: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Floor:" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +#, fuzzy +msgid "Grid Map" +msgstr "Gitter-Einrasten" + +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Snap View" msgstr "Sicht einrasten" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Prev Level (%sDown Wheel)" -msgstr "" +#, fuzzy +msgid "Previous Floor" +msgstr "Vorheriger Tab" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Next Level (%sUp Wheel)" +msgid "Next Floor" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp @@ -6982,12 +7145,9 @@ msgid "Erase Area" msgstr "Bereich entfernen" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Selection -> Duplicate" -msgstr "Auswahl → Duplizieren" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Selection -> Clear" -msgstr "Auswahl → Löschen" +#, fuzzy +msgid "Clear Selection" +msgstr "Auswahl zentrieren" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Settings" @@ -6999,7 +7159,7 @@ msgstr "Auswahlradius:" #: modules/mono/editor/mono_bottom_panel.cpp msgid "Builds" -msgstr "" +msgstr "Fertigstellungen" #: modules/visual_script/visual_script.cpp msgid "" @@ -7116,7 +7276,8 @@ msgid "Duplicate VisualScript Nodes" msgstr "VisualScript-Nodes duplizieren" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Getter. Hold Shift to drop a generic signature." +#, fuzzy +msgid "Hold %s to drop a Getter. Hold Shift to drop a generic signature." msgstr "" "Alt-Taste gedrückt halten, um einen Getter zu setzen. Umschalt-Taste halten, " "um eine allgemeine Signatur zu setzen." @@ -7128,7 +7289,8 @@ msgstr "" "allgemeine Signatur zu setzen." #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a simple reference to the node." +#, fuzzy +msgid "Hold %s to drop a simple reference to the node." msgstr "Alt-Taste halten um einfache Referenz zu Node hinzuzufügen." #: modules/visual_script/visual_script_editor.cpp @@ -7136,7 +7298,8 @@ msgid "Hold Ctrl to drop a simple reference to the node." msgstr "Strg-Taste halten um einfache Referenz zu Node hinzuzufügen." #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Variable Setter." +#, fuzzy +msgid "Hold %s to drop a Variable Setter." msgstr "Alt-Taste halten um einen Variablen-Setter zu setzen." #: modules/visual_script/visual_script_editor.cpp @@ -7209,7 +7372,7 @@ msgstr "Abfragen" #: modules/visual_script/visual_script_editor.cpp msgid "Script already has function '%s'" -msgstr "" +msgstr "Skript enthält bereits Funktion ‚%s‘" #: modules/visual_script/visual_script_editor.cpp msgid "Change Input Value" @@ -7367,12 +7530,23 @@ msgid "Could not write file:\n" msgstr "Konnte Datei nicht schreiben:\n" #: platform/javascript/export/export.cpp -msgid "Could not read file:\n" +msgid "Could not open template for export:\n" +msgstr "Konnte Exportvorlage nicht öffnen:\n" + +#: platform/javascript/export/export.cpp +#, fuzzy +msgid "Invalid export template:\n" +msgstr "Exportvorlagen installieren" + +#: platform/javascript/export/export.cpp +#, fuzzy +msgid "Could not read custom HTML shell:\n" msgstr "Konnte Datei nicht lesen:\n" #: platform/javascript/export/export.cpp -msgid "Could not open template for export:\n" -msgstr "Konnte Exportvorlage nicht öffnen:\n" +#, fuzzy +msgid "Could not read boot splash image file:\n" +msgstr "Konnte Datei nicht lesen:\n" #: scene/2d/animated_sprite.cpp msgid "" @@ -7501,22 +7675,6 @@ msgstr "" "Die Pfad-Eigenschaft muss auf ein gültiges Node2D-Node zeigen um zu " "funktionieren." -#: 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 "" -"Die Pfad Eigenschaft muss auf eine gültige Viewport Node verweisen um zu " -"funktionieren. Dieser Viewport muss in 'render target' Modus gesetzt werden." - -#: 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 "" -"Der Viewport, der in der Pfad-Eigenschaft gesetzt wurde, muss als ‚Render " -"Target‘ definiert sein, damit das Sprite funktioniert." - #: scene/2d/visibility_notifier_2d.cpp msgid "" "VisibilityEnable2D works best when used with the edited scene root directly " @@ -7589,6 +7747,15 @@ msgstr "" "Damit CollisionShape funktionieren kann, muss eine Form vorhanden sein. " "Bitte erzeuge eine shape Ressource dafür!" +#: scene/3d/gi_probe.cpp +#, fuzzy +msgid "Plotting Meshes" +msgstr "Blitting Bilder" + +#: scene/3d/gi_probe.cpp +msgid "Finishing Plot" +msgstr "" + #: scene/3d/navigation_mesh.cpp msgid "A NavigationMesh resource must be set or created for this node to work." msgstr "" @@ -7644,6 +7811,9 @@ msgid "" "VehicleWheel serves to provide a wheel system to a VehicleBody. Please use " "it as a child of a VehicleBody." msgstr "" +"VehicleWheel ist verfügbar um mit VehicleBody ein Rädersystem zu " +"implementieren. Es kann ausschließlich als Unterobjekt von VehicleBody " +"verwendet werden." #: scene/gui/color_picker.cpp msgid "Raw Mode" @@ -7688,6 +7858,10 @@ msgstr "" "ein Control als Unterobjekt verwendet und dessen Minimalgröße eingestellt " "werden." +#: scene/gui/tree.cpp +msgid "(Other)" +msgstr "" + #: scene/main/scene_tree.cpp msgid "" "Default Environment as specified in Project Setings (Rendering -> Viewport -" @@ -7725,6 +7899,70 @@ msgstr "Fehler beim Laden der Schriftart." msgid "Invalid font size." msgstr "Ungültige Schriftgröße." +#~ msgid "Cannot navigate to '" +#~ msgstr "Kann Ordner ‚" + +#~ msgid "" +#~ "\n" +#~ "Source: " +#~ msgstr "" +#~ "\n" +#~ "Quelle: " + +#~ msgid "Remove Point from Line2D" +#~ msgstr "Punkt von Line2D entfernen" + +#~ msgid "Add Point to Line2D" +#~ msgstr "Punkt zu Line2D hinzufügen" + +#~ msgid "Move Point in Line2D" +#~ msgstr "Punkt in Line2D verschieben" + +#~ msgid "Split Segment (in line)" +#~ msgstr "Segment aufteilen (in Linie)" + +#~ msgid "Meta+" +#~ msgstr "Meta+" + +#~ msgid "Setting '" +#~ msgstr "Einstellung ‚" + +#~ msgid "Remote Inspector" +#~ msgstr "Remote Inspektor" + +#~ msgid "Live Scene Tree:" +#~ msgstr "Echtzeit Szenenbaum:" + +#~ msgid "Remote Object Properties: " +#~ msgstr "Eigenschaften entfernter Objekte: " + +#~ msgid "Prev Level (%sDown Wheel)" +#~ msgstr "Vorherige Stufe (%s Mausrad runter)" + +#~ msgid "Next Level (%sUp Wheel)" +#~ msgstr "Nächste Stufe (%s Mausrad hoch)" + +#~ msgid "Selection -> Duplicate" +#~ msgstr "Auswahl → Duplizieren" + +#~ msgid "Selection -> Clear" +#~ msgstr "Auswahl → Löschen" + +#~ msgid "" +#~ "Path property must point to a valid Viewport node to work. Such Viewport " +#~ "must be set to 'render target' mode." +#~ msgstr "" +#~ "Die Pfad Eigenschaft muss auf eine gültige Viewport Node verweisen um zu " +#~ "funktionieren. Dieser Viewport muss in 'render target' Modus gesetzt " +#~ "werden." + +#~ msgid "" +#~ "The Viewport set in the path property must be set as 'render target' in " +#~ "order for this sprite to work." +#~ msgstr "" +#~ "Der Viewport, der in der Pfad-Eigenschaft gesetzt wurde, muss als ‚Render " +#~ "Target‘ definiert sein, damit das Sprite funktioniert." + #~ msgid "Filter:" #~ msgstr "Filter:" @@ -7751,9 +7989,6 @@ msgstr "Ungültige Schriftgröße." #~ msgid "Removed:" #~ msgstr "Entfernt:" -#~ msgid "Error saving atlas:" -#~ msgstr "Fehler beim speichern des Atlas:" - #~ msgid "Could not save atlas subtexture:" #~ msgstr "Atlas Untertextur konnte nicht gespeichert werden:" @@ -8143,9 +8378,6 @@ msgstr "Ungültige Schriftgröße." #~ msgid "Cropping Images" #~ msgstr "Bilder werden beschnitten" -#~ msgid "Blitting Images" -#~ msgstr "Blitting Bilder" - #~ msgid "Couldn't save atlas image:" #~ msgstr "Atlas-Bild konnte nicht gespeichert werden:" @@ -8519,9 +8751,6 @@ msgstr "Ungültige Schriftgröße." #~ msgid "Save Translatable Strings" #~ msgstr "Speichere übersetzbare Zeichenketten" -#~ msgid "Install Export Templates" -#~ msgstr "Exportvorlagen installieren" - #~ msgid "Edit Script Options" #~ msgstr "Skriptoptionen bearbeiten" diff --git a/editor/translations/de_CH.po b/editor/translations/de_CH.po index 8c9e4cc1de..cfc980f488 100644 --- a/editor/translations/de_CH.po +++ b/editor/translations/de_CH.po @@ -99,6 +99,7 @@ msgid "Anim Delete Keys" msgstr "Anim Bilder löschen" #: editor/animation_editor.cpp editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Duplicate Selection" msgstr "" @@ -629,6 +630,13 @@ msgstr "" msgid "Search Replacement Resource:" msgstr "" +#: editor/dependency_editor.cpp editor/editor_file_dialog.cpp +#: editor/editor_help.cpp editor/editor_node.cpp editor/filesystem_dock.cpp +#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp +#: editor/quick_open.cpp scene/gui/file_dialog.cpp +msgid "Open" +msgstr "Öffnen" + #: editor/dependency_editor.cpp msgid "Owners Of:" msgstr "" @@ -699,6 +707,15 @@ msgstr "" msgid "Delete" msgstr "" +#: editor/dictionary_property_edit.cpp +msgid "Change Dictionary Key" +msgstr "" + +#: editor/dictionary_property_edit.cpp +#, fuzzy +msgid "Change Dictionary Value" +msgstr "Typ ändern" + #: editor/editor_about.cpp msgid "Thanks from the Godot community!" msgstr "" @@ -1119,12 +1136,6 @@ msgstr "" msgid "All Files (*)" msgstr "Alle Dateien (*)" -#: editor/editor_file_dialog.cpp editor/editor_help.cpp editor/editor_node.cpp -#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_selector.cpp editor/quick_open.cpp scene/gui/file_dialog.cpp -msgid "Open" -msgstr "Öffnen" - #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Open a File" msgstr "Datei öffnen" @@ -1482,6 +1493,13 @@ msgid "" msgstr "" #: editor/editor_node.cpp +msgid "" +"This is a remote object so changes to it will not be kept.\n" +"Please read the documentation relevant to debugging to better understand " +"this workflow." +msgstr "" + +#: editor/editor_node.cpp msgid "Copy Params" msgstr "" @@ -1593,6 +1611,11 @@ msgid "Export Mesh Library" msgstr "" #: editor/editor_node.cpp +#, fuzzy +msgid "This operation can't be done without a root node." +msgstr "Ohne eine Szene kann das nicht funktionieren." + +#: editor/editor_node.cpp msgid "Export Tile Set" msgstr "" @@ -1721,11 +1744,20 @@ msgid "Switch Scene Tab" msgstr "" #: editor/editor_node.cpp -msgid "%d more file(s)" +msgid "%d more files or folders" msgstr "" #: editor/editor_node.cpp -msgid "%d more file(s) or folder(s)" +#, fuzzy +msgid "%d more folders" +msgstr "Node erstellen" + +#: editor/editor_node.cpp +msgid "%d more files" +msgstr "" + +#: editor/editor_node.cpp +msgid "Dock Position" msgstr "" #: editor/editor_node.cpp @@ -1737,6 +1769,10 @@ msgid "Toggle distraction-free mode." msgstr "" #: editor/editor_node.cpp +msgid "Add a new scene." +msgstr "" + +#: editor/editor_node.cpp msgid "Scene" msgstr "" @@ -1802,13 +1838,12 @@ msgid "TileSet.." msgstr "" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp -#: scene/gui/text_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Undo" msgstr "" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp +#: scene/gui/line_edit.cpp msgid "Redo" msgstr "" @@ -2297,6 +2332,10 @@ msgid "(Current)" msgstr "" #: editor/export_template_manager.cpp +msgid "Retrieving mirrors, please wait.." +msgstr "" + +#: editor/export_template_manager.cpp msgid "Remove template version '%s'?" msgstr "" @@ -2332,6 +2371,107 @@ msgid "Importing:" msgstr "" #: editor/export_template_manager.cpp +msgid "" +"No download links found for this version. Direct download is only available " +"for official releases." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't resolve." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't connect." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "No response." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Req. Failed." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Redirect Loop." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Failed:" +msgstr "" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't write file." +msgstr "Neues Projekt erstellen" + +#: editor/export_template_manager.cpp +msgid "Download Complete." +msgstr "" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Error requesting url: " +msgstr "Szene kann nicht gespeichert werden." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connecting to Mirror.." +msgstr "Connections editieren" + +#: editor/export_template_manager.cpp +msgid "Disconnected" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Resolving" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Can't Resolve" +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#, fuzzy +msgid "Connecting.." +msgstr "Connections editieren" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't Conect" +msgstr "Neues Projekt erstellen" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connected" +msgstr "Verbindung zu Node:" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Requesting.." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Downloading" +msgstr "" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connection Error" +msgstr "Connections editieren" + +#: editor/export_template_manager.cpp +msgid "SSL Handshake Error" +msgstr "" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "" @@ -2356,12 +2496,21 @@ msgstr "" msgid "Export Template Manager" msgstr "" +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Download Templates" +msgstr "Ungültige Bilder löschen" + +#: editor/export_template_manager.cpp +msgid "Select mirror from list: " +msgstr "" + #: editor/file_type_cache.cpp msgid "Can't open file_type_cache.cch for writing, not saving file type cache!" msgstr "" #: editor/filesystem_dock.cpp -msgid "Cannot navigate to '" +msgid "Cannot navigate to '%s' as it has not been found in the file system!" msgstr "" #: editor/filesystem_dock.cpp @@ -2379,12 +2528,6 @@ msgid "" msgstr "" #: editor/filesystem_dock.cpp -msgid "" -"\n" -"Source: " -msgstr "" - -#: editor/filesystem_dock.cpp msgid "Cannot move/rename resources root." msgstr "" @@ -2649,8 +2792,7 @@ msgid "Remove Poly And Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." +msgid "Create a new polygon from scratch" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -2661,6 +2803,11 @@ msgid "" "RMB: Erase Point." msgstr "" +#: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy +msgid "Delete points" +msgstr "Bild einfügen" + #: editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" msgstr "Autoplay Umschalten" @@ -3002,18 +3149,10 @@ msgid "Can't resolve hostname:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't resolve." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Connection error, please try again." msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't connect." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy msgid "Can't connect to host:" msgstr "Verbindung zu Node:" @@ -3023,30 +3162,14 @@ msgid "No response from host:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "No response." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, return code:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Req. Failed." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, too many redirects" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Redirect Loop." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Failed:" -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Bad download hash, assuming file has been tampered with." msgstr "" @@ -3076,15 +3199,6 @@ msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy -msgid "Connecting.." -msgstr "Connections editieren" - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Requesting.." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Error making request" msgstr "Szene kann nicht gespeichert werden." @@ -3197,6 +3311,38 @@ msgid "Move Action" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create new vertical guide" +msgstr "Neues Projekt erstellen" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove vertical guide" +msgstr "Ungültige Bilder löschen" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move horizontal guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create new horizontal guide" +msgstr "Neues Projekt erstellen" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove horizontal guide" +msgstr "Ungültige Bilder löschen" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new horizontal and vertical guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Edit IK Chain" msgstr "" @@ -3319,10 +3465,16 @@ msgid "Snap to other nodes" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snap to guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Lock the selected object in place (can't be moved)." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Unlock the selected object (can be moved)." msgstr "" @@ -3373,6 +3525,10 @@ msgid "Show rulers" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Show guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Selection" msgstr "" @@ -3563,6 +3719,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/gi_probe_editor_plugin.cpp +msgid "Bake GI Probe" +msgstr "" + #: editor/plugins/gradient_editor_plugin.cpp msgid "Add/Remove Color Ramp Point" msgstr "" @@ -3595,6 +3755,10 @@ msgid "Create Occluder Polygon" msgstr "" #: editor/plugins/light_occluder_2d_editor_plugin.cpp +msgid "Create a new polygon from scratch." +msgstr "" + +#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Edit existing polygon:" msgstr "" @@ -3610,58 +3774,6 @@ msgstr "" msgid "RMB: Erase Point." msgstr "" -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Remove Point from Line2D" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Add Point to Line2D" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Move Point in Line2D" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Select Points" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Shift+Drag: Select Control Points" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Click: Add Point" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Right Click: Delete Point" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Add Point (in empty space)" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Split Segment (in line)" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Delete Point" -msgstr "" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "" @@ -4065,16 +4177,46 @@ msgid "Move Out-Control in Curve" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Select Points" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Shift+Drag: Select Control Points" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Click: Add Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Right Click: Delete Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Select Control Points (Shift+Drag)" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Add Point (in empty space)" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Split Segment (in curve)" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Delete Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Close Curve" msgstr "" @@ -4214,7 +4356,6 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Paste" @@ -4259,6 +4400,20 @@ msgid " Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +msgid "Sort" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Up" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Down" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Next script" msgstr "" @@ -4310,6 +4465,10 @@ msgstr "" msgid "Close All" msgstr "" +#: editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "" @@ -4320,13 +4479,11 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find.." msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Next" msgstr "" @@ -4430,33 +4587,22 @@ msgstr "" msgid "Capitalize" msgstr "" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Copy" msgstr "" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Select All" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Up" -msgstr "" - -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Down" -msgstr "" - #: editor/plugins/script_text_editor.cpp #, fuzzy msgid "Delete Line" @@ -4479,6 +4625,23 @@ msgid "Clone Down" msgstr "" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Fold Line" +msgstr "Bild einfügen" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold Line" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Fold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Complete Symbol" msgstr "" @@ -4525,12 +4688,10 @@ msgid "Convert To Lowercase" msgstr "Verbindung zu Node:" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Previous" msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Replace.." msgstr "" @@ -4539,7 +4700,6 @@ msgid "Goto Function.." msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Goto Line.." msgstr "" @@ -4704,6 +4864,15 @@ msgid "View Plane Transform." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Scaling: " +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Translating: " +msgstr "Transition-Node" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Rotating %s degrees." msgstr "" @@ -4786,6 +4955,10 @@ msgid "Vertices" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "FPS" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Align with view" msgstr "" @@ -4818,6 +4991,15 @@ msgid "View Information" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "View FPS" +msgstr "Datei(en) öffnen" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Half Resolution" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Audio Listener" msgstr "" @@ -4947,6 +5129,10 @@ msgid "Tool Scale" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Toggle Freelook" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Transform" msgstr "" @@ -5224,6 +5410,10 @@ msgid "Create Empty Editor Template" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Create From Current Editor Theme" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "CheckBox Radio1" msgstr "" @@ -5397,7 +5587,7 @@ msgid "Runnable" msgstr "" #: editor/project_export.cpp -msgid "Delete patch '" +msgid "Delete patch '%s' from list?" msgstr "" #: editor/project_export.cpp @@ -5703,10 +5893,6 @@ msgid "Add Input Action Event" msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Meta+" -msgstr "" - -#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp msgid "Shift+" msgstr "" @@ -5829,11 +6015,11 @@ msgid "Select a setting item first!" msgstr "" #: editor/project_settings_editor.cpp -msgid "No property '" +msgid "No property '%s' exists." msgstr "" #: editor/project_settings_editor.cpp -msgid "Setting '" +msgid "Setting '%s' is internal, and it can't be deleted." msgstr "" #: editor/project_settings_editor.cpp @@ -6315,6 +6501,15 @@ msgid "Clear a script for the selected node." msgstr "" #: editor/scene_tree_dock.cpp +#, fuzzy +msgid "Remote" +msgstr "Ungültige Bilder löschen" + +#: editor/scene_tree_dock.cpp +msgid "Local" +msgstr "" + +#: editor/scene_tree_dock.cpp msgid "Clear Inheritance? (No Undo!)" msgstr "" @@ -6504,6 +6699,11 @@ msgid "Attach Node Script" msgstr "Script hinzufügen" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Remote " +msgstr "Ungültige Bilder löschen" + +#: editor/script_editor_debugger.cpp msgid "Bytes:" msgstr "" @@ -6560,18 +6760,6 @@ msgid "Stack Trace (if applicable):" msgstr "" #: editor/script_editor_debugger.cpp -msgid "Remote Inspector" -msgstr "" - -#: editor/script_editor_debugger.cpp -msgid "Live Scene Tree:" -msgstr "" - -#: editor/script_editor_debugger.cpp -msgid "Remote Object Properties: " -msgstr "" - -#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -6703,49 +6891,49 @@ msgstr "" msgid "GDNative" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Invalid type argument to convert(), use TYPE_* constants." msgstr "" -#: modules/gdscript/gd_functions.cpp modules/mono/glue/glue_header.h +#: modules/gdscript/gdscript_functions.cpp modules/mono/glue/glue_header.h #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Not enough bytes for decoding bytes, or invalid format." msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "step argument is zero!" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not a script with an instance" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a script" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a resource file" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (missing @path)" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (can't load script at @path)" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (invalid script at @path)" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary (invalid subclasses)" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Object can't provide a length." msgstr "" @@ -6758,15 +6946,23 @@ msgid "GridMap Duplicate Selection" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Floor:" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Grid Map" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Snap View" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Prev Level (%sDown Wheel)" +msgid "Previous Floor" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Next Level (%sUp Wheel)" +msgid "Next Floor" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp @@ -6836,12 +7032,9 @@ msgid "Erase Area" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Selection -> Duplicate" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Selection -> Clear" -msgstr "" +#, fuzzy +msgid "Clear Selection" +msgstr "Script hinzufügen" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy @@ -6970,7 +7163,7 @@ msgid "Duplicate VisualScript Nodes" msgstr "Node(s) duplizieren" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Getter. Hold Shift to drop a generic signature." +msgid "Hold %s to drop a Getter. Hold Shift to drop a generic signature." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -6978,7 +7171,7 @@ msgid "Hold Ctrl to drop a Getter. Hold Shift to drop a generic signature." msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a simple reference to the node." +msgid "Hold %s to drop a simple reference to the node." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -6986,7 +7179,7 @@ msgid "Hold Ctrl to drop a simple reference to the node." msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Variable Setter." +msgid "Hold %s to drop a Variable Setter." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -7228,11 +7421,19 @@ msgid "Could not write file:\n" msgstr "" #: platform/javascript/export/export.cpp -msgid "Could not read file:\n" +msgid "Could not open template for export:\n" msgstr "" #: platform/javascript/export/export.cpp -msgid "Could not open template for export:\n" +msgid "Invalid export template:\n" +msgstr "" + +#: platform/javascript/export/export.cpp +msgid "Could not read custom HTML shell:\n" +msgstr "" + +#: platform/javascript/export/export.cpp +msgid "Could not read boot splash image file:\n" msgstr "" #: scene/2d/animated_sprite.cpp @@ -7342,18 +7543,6 @@ msgstr "" "Die Pfad-Variable muss auf einen gültigen Node2D Node zeigen um zu " "funktionieren." -#: 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 #, fuzzy msgid "" @@ -7415,6 +7604,14 @@ msgid "" "shape resource for it!" msgstr "" +#: scene/3d/gi_probe.cpp +msgid "Plotting Meshes" +msgstr "" + +#: scene/3d/gi_probe.cpp +msgid "Finishing Plot" +msgstr "" + #: scene/3d/navigation_mesh.cpp msgid "A NavigationMesh resource must be set or created for this node to work." msgstr "" @@ -7494,6 +7691,10 @@ msgid "" "minimum size manually." msgstr "" +#: scene/gui/tree.cpp +msgid "(Other)" +msgstr "" + #: scene/main/scene_tree.cpp msgid "" "Default Environment as specified in Project Setings (Rendering -> Viewport -" diff --git a/editor/translations/editor.pot b/editor/translations/editor.pot index efddb63796..821582b84b 100644 --- a/editor/translations/editor.pot +++ b/editor/translations/editor.pot @@ -93,6 +93,7 @@ msgid "Anim Delete Keys" msgstr "" #: editor/animation_editor.cpp editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Duplicate Selection" msgstr "" @@ -622,6 +623,13 @@ msgstr "" msgid "Search Replacement Resource:" msgstr "" +#: editor/dependency_editor.cpp editor/editor_file_dialog.cpp +#: editor/editor_help.cpp editor/editor_node.cpp editor/filesystem_dock.cpp +#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp +#: editor/quick_open.cpp scene/gui/file_dialog.cpp +msgid "Open" +msgstr "" + #: editor/dependency_editor.cpp msgid "Owners Of:" msgstr "" @@ -692,6 +700,14 @@ msgstr "" msgid "Delete" msgstr "" +#: editor/dictionary_property_edit.cpp +msgid "Change Dictionary Key" +msgstr "" + +#: editor/dictionary_property_edit.cpp +msgid "Change Dictionary Value" +msgstr "" + #: editor/editor_about.cpp msgid "Thanks from the Godot community!" msgstr "" @@ -1107,12 +1123,6 @@ msgstr "" msgid "All Files (*)" msgstr "" -#: editor/editor_file_dialog.cpp editor/editor_help.cpp editor/editor_node.cpp -#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_selector.cpp editor/quick_open.cpp scene/gui/file_dialog.cpp -msgid "Open" -msgstr "" - #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Open a File" msgstr "" @@ -1465,6 +1475,13 @@ msgid "" msgstr "" #: editor/editor_node.cpp +msgid "" +"This is a remote object so changes to it will not be kept.\n" +"Please read the documentation relevant to debugging to better understand " +"this workflow." +msgstr "" + +#: editor/editor_node.cpp msgid "Copy Params" msgstr "" @@ -1574,6 +1591,10 @@ msgid "Export Mesh Library" msgstr "" #: editor/editor_node.cpp +msgid "This operation can't be done without a root node." +msgstr "" + +#: editor/editor_node.cpp msgid "Export Tile Set" msgstr "" @@ -1699,11 +1720,19 @@ msgid "Switch Scene Tab" msgstr "" #: editor/editor_node.cpp -msgid "%d more file(s)" +msgid "%d more files or folders" +msgstr "" + +#: editor/editor_node.cpp +msgid "%d more folders" +msgstr "" + +#: editor/editor_node.cpp +msgid "%d more files" msgstr "" #: editor/editor_node.cpp -msgid "%d more file(s) or folder(s)" +msgid "Dock Position" msgstr "" #: editor/editor_node.cpp @@ -1715,6 +1744,10 @@ msgid "Toggle distraction-free mode." msgstr "" #: editor/editor_node.cpp +msgid "Add a new scene." +msgstr "" + +#: editor/editor_node.cpp msgid "Scene" msgstr "" @@ -1779,13 +1812,12 @@ msgid "TileSet.." msgstr "" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp -#: scene/gui/text_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Undo" msgstr "" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp +#: scene/gui/line_edit.cpp msgid "Redo" msgstr "" @@ -2266,6 +2298,10 @@ msgid "(Current)" msgstr "" #: editor/export_template_manager.cpp +msgid "Retrieving mirrors, please wait.." +msgstr "" + +#: editor/export_template_manager.cpp msgid "Remove template version '%s'?" msgstr "" @@ -2300,6 +2336,100 @@ msgid "Importing:" msgstr "" #: editor/export_template_manager.cpp +msgid "" +"No download links found for this version. Direct download is only available " +"for official releases." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't resolve." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't connect." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "No response." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Req. Failed." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Redirect Loop." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Failed:" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Can't write file." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Download Complete." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Error requesting url: " +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Connecting to Mirror.." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Disconnected" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Resolving" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Can't Resolve" +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Connecting.." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Can't Conect" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Connected" +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Requesting.." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Downloading" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Connection Error" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "SSL Handshake Error" +msgstr "" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "" @@ -2323,12 +2453,20 @@ msgstr "" msgid "Export Template Manager" msgstr "" +#: editor/export_template_manager.cpp +msgid "Download Templates" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Select mirror from list: " +msgstr "" + #: editor/file_type_cache.cpp msgid "Can't open file_type_cache.cch for writing, not saving file type cache!" msgstr "" #: editor/filesystem_dock.cpp -msgid "Cannot navigate to '" +msgid "Cannot navigate to '%s' as it has not been found in the file system!" msgstr "" #: editor/filesystem_dock.cpp @@ -2346,12 +2484,6 @@ msgid "" msgstr "" #: editor/filesystem_dock.cpp -msgid "" -"\n" -"Source: " -msgstr "" - -#: editor/filesystem_dock.cpp msgid "Cannot move/rename resources root." msgstr "" @@ -2609,8 +2741,7 @@ msgid "Remove Poly And Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." +msgid "Create a new polygon from scratch" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -2621,6 +2752,10 @@ msgid "" "RMB: Erase Point." msgstr "" +#: editor/plugins/abstract_polygon_2d_editor.cpp +msgid "Delete points" +msgstr "" + #: editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" msgstr "" @@ -2955,18 +3090,10 @@ msgid "Can't resolve hostname:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't resolve." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Connection error, please try again." msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't connect." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Can't connect to host:" msgstr "" @@ -2975,30 +3102,14 @@ msgid "No response from host:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "No response." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, return code:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Req. Failed." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, too many redirects" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Redirect Loop." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Failed:" -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Bad download hash, assuming file has been tampered with." msgstr "" @@ -3027,14 +3138,6 @@ msgid "Resolving.." msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Connecting.." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Requesting.." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Error making request" msgstr "" @@ -3147,6 +3250,34 @@ msgid "Move Action" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Remove vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move horizontal guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new horizontal guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Remove horizontal guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new horizontal and vertical guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Edit IK Chain" msgstr "" @@ -3267,10 +3398,16 @@ msgid "Snap to other nodes" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snap to guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Lock the selected object in place (can't be moved)." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Unlock the selected object (can be moved)." msgstr "" @@ -3321,6 +3458,10 @@ msgid "Show rulers" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Show guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Selection" msgstr "" @@ -3505,6 +3646,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/gi_probe_editor_plugin.cpp +msgid "Bake GI Probe" +msgstr "" + #: editor/plugins/gradient_editor_plugin.cpp msgid "Add/Remove Color Ramp Point" msgstr "" @@ -3537,6 +3682,10 @@ msgid "Create Occluder Polygon" msgstr "" #: editor/plugins/light_occluder_2d_editor_plugin.cpp +msgid "Create a new polygon from scratch." +msgstr "" + +#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Edit existing polygon:" msgstr "" @@ -3552,58 +3701,6 @@ msgstr "" msgid "RMB: Erase Point." msgstr "" -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Remove Point from Line2D" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Add Point to Line2D" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Move Point in Line2D" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Select Points" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Shift+Drag: Select Control Points" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Click: Add Point" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Right Click: Delete Point" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Add Point (in empty space)" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Split Segment (in line)" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Delete Point" -msgstr "" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "" @@ -4001,16 +4098,46 @@ msgid "Move Out-Control in Curve" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Select Points" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Shift+Drag: Select Control Points" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Click: Add Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Right Click: Delete Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Select Control Points (Shift+Drag)" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Add Point (in empty space)" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Split Segment (in curve)" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Delete Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Close Curve" msgstr "" @@ -4147,7 +4274,6 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Paste" @@ -4192,6 +4318,20 @@ msgid " Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +msgid "Sort" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Up" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Down" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Next script" msgstr "" @@ -4243,6 +4383,10 @@ msgstr "" msgid "Close All" msgstr "" +#: editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "" @@ -4253,13 +4397,11 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find.." msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Next" msgstr "" @@ -4363,33 +4505,22 @@ msgstr "" msgid "Capitalize" msgstr "" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Copy" msgstr "" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Select All" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Up" -msgstr "" - -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Down" -msgstr "" - #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "" @@ -4411,6 +4542,22 @@ msgid "Clone Down" msgstr "" #: editor/plugins/script_text_editor.cpp +msgid "Fold Line" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold Line" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Fold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Complete Symbol" msgstr "" @@ -4456,12 +4603,10 @@ msgid "Convert To Lowercase" msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Previous" msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Replace.." msgstr "" @@ -4470,7 +4615,6 @@ msgid "Goto Function.." msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Goto Line.." msgstr "" @@ -4635,6 +4779,14 @@ msgid "View Plane Transform." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Scaling: " +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Translating: " +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Rotating %s degrees." msgstr "" @@ -4715,6 +4867,10 @@ msgid "Vertices" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "FPS" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Align with view" msgstr "" @@ -4747,6 +4903,14 @@ msgid "View Information" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "View FPS" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Half Resolution" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Audio Listener" msgstr "" @@ -4874,6 +5038,10 @@ msgid "Tool Scale" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Toggle Freelook" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Transform" msgstr "" @@ -5148,6 +5316,10 @@ msgid "Create Empty Editor Template" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Create From Current Editor Theme" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "CheckBox Radio1" msgstr "" @@ -5321,7 +5493,7 @@ msgid "Runnable" msgstr "" #: editor/project_export.cpp -msgid "Delete patch '" +msgid "Delete patch '%s' from list?" msgstr "" #: editor/project_export.cpp @@ -5614,10 +5786,6 @@ msgid "Add Input Action Event" msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Meta+" -msgstr "" - -#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp msgid "Shift+" msgstr "" @@ -5739,11 +5907,11 @@ msgid "Select a setting item first!" msgstr "" #: editor/project_settings_editor.cpp -msgid "No property '" +msgid "No property '%s' exists." msgstr "" #: editor/project_settings_editor.cpp -msgid "Setting '" +msgid "Setting '%s' is internal, and it can't be deleted." msgstr "" #: editor/project_settings_editor.cpp @@ -6210,6 +6378,14 @@ msgid "Clear a script for the selected node." msgstr "" #: editor/scene_tree_dock.cpp +msgid "Remote" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Local" +msgstr "" + +#: editor/scene_tree_dock.cpp msgid "Clear Inheritance? (No Undo!)" msgstr "" @@ -6392,6 +6568,10 @@ msgid "Attach Node Script" msgstr "" #: editor/script_editor_debugger.cpp +msgid "Remote " +msgstr "" + +#: editor/script_editor_debugger.cpp msgid "Bytes:" msgstr "" @@ -6448,18 +6628,6 @@ msgid "Stack Trace (if applicable):" msgstr "" #: editor/script_editor_debugger.cpp -msgid "Remote Inspector" -msgstr "" - -#: editor/script_editor_debugger.cpp -msgid "Live Scene Tree:" -msgstr "" - -#: editor/script_editor_debugger.cpp -msgid "Remote Object Properties: " -msgstr "" - -#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -6591,49 +6759,49 @@ msgstr "" msgid "GDNative" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Invalid type argument to convert(), use TYPE_* constants." msgstr "" -#: modules/gdscript/gd_functions.cpp modules/mono/glue/glue_header.h +#: modules/gdscript/gdscript_functions.cpp modules/mono/glue/glue_header.h #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Not enough bytes for decoding bytes, or invalid format." msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "step argument is zero!" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not a script with an instance" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a script" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a resource file" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (missing @path)" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (can't load script at @path)" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (invalid script at @path)" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary (invalid subclasses)" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Object can't provide a length." msgstr "" @@ -6646,15 +6814,23 @@ msgid "GridMap Duplicate Selection" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Floor:" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Grid Map" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Snap View" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Prev Level (%sDown Wheel)" +msgid "Previous Floor" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Next Level (%sUp Wheel)" +msgid "Next Floor" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp @@ -6722,11 +6898,7 @@ msgid "Erase Area" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Selection -> Duplicate" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Selection -> Clear" +msgid "Clear Selection" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp @@ -6848,7 +7020,7 @@ msgid "Duplicate VisualScript Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Getter. Hold Shift to drop a generic signature." +msgid "Hold %s to drop a Getter. Hold Shift to drop a generic signature." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -6856,7 +7028,7 @@ msgid "Hold Ctrl to drop a Getter. Hold Shift to drop a generic signature." msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a simple reference to the node." +msgid "Hold %s to drop a simple reference to the node." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -6864,7 +7036,7 @@ msgid "Hold Ctrl to drop a simple reference to the node." msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Variable Setter." +msgid "Hold %s to drop a Variable Setter." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -7090,11 +7262,19 @@ msgid "Could not write file:\n" msgstr "" #: platform/javascript/export/export.cpp -msgid "Could not read file:\n" +msgid "Could not open template for export:\n" msgstr "" #: platform/javascript/export/export.cpp -msgid "Could not open template for export:\n" +msgid "Invalid export template:\n" +msgstr "" + +#: platform/javascript/export/export.cpp +msgid "Could not read custom HTML shell:\n" +msgstr "" + +#: platform/javascript/export/export.cpp +msgid "Could not read boot splash image file:\n" msgstr "" #: scene/2d/animated_sprite.cpp @@ -7186,18 +7366,6 @@ msgstr "" msgid "Path property must point to a valid Node2D node to work." 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 " @@ -7256,6 +7424,14 @@ msgid "" "shape resource for it!" msgstr "" +#: scene/3d/gi_probe.cpp +msgid "Plotting Meshes" +msgstr "" + +#: scene/3d/gi_probe.cpp +msgid "Finishing Plot" +msgstr "" + #: scene/3d/navigation_mesh.cpp msgid "A NavigationMesh resource must be set or created for this node to work." msgstr "" @@ -7333,6 +7509,10 @@ msgid "" "minimum size manually." msgstr "" +#: scene/gui/tree.cpp +msgid "(Other)" +msgstr "" + #: scene/main/scene_tree.cpp msgid "" "Default Environment as specified in Project Setings (Rendering -> Viewport -" diff --git a/editor/translations/el.po b/editor/translations/el.po index 02de498110..0767b07ea5 100644 --- a/editor/translations/el.po +++ b/editor/translations/el.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2017-10-24 18:46+0000\n" +"PO-Revision-Date: 2017-11-22 12:05+0000\n" "Last-Translator: George Tsiamasiotis <gtsiam@windowslive.com>\n" "Language-Team: Greek <https://hosted.weblate.org/projects/godot-engine/godot/" "el/>\n" @@ -16,7 +16,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 2.17\n" +"X-Generator: Weblate 2.18-dev\n" #: editor/animation_editor.cpp msgid "Disabled" @@ -99,6 +99,7 @@ msgid "Anim Delete Keys" msgstr "Anim Διαγραφή κλειδιών" #: editor/animation_editor.cpp editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Duplicate Selection" msgstr "Διπλασιασμός επιλογής" @@ -636,6 +637,13 @@ msgstr "Επεξεργαστής εξαρτήσεων" msgid "Search Replacement Resource:" msgstr "Αναζήτηση αντικαταστάτη πόρου:" +#: editor/dependency_editor.cpp editor/editor_file_dialog.cpp +#: editor/editor_help.cpp editor/editor_node.cpp editor/filesystem_dock.cpp +#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp +#: editor/quick_open.cpp scene/gui/file_dialog.cpp +msgid "Open" +msgstr "Άνοιγμα" + #: editor/dependency_editor.cpp msgid "Owners Of:" msgstr "Ιδιοκτήτες του:" @@ -708,6 +716,16 @@ msgstr "Διαγραφή επιλεγμένων αρχείων;" msgid "Delete" msgstr "Διαγραφή" +#: editor/dictionary_property_edit.cpp +#, fuzzy +msgid "Change Dictionary Key" +msgstr "Αλλαγή ονόματος κίνησης:" + +#: editor/dictionary_property_edit.cpp +#, fuzzy +msgid "Change Dictionary Value" +msgstr "Αλλαγή τιμής πίνακα" + #: editor/editor_about.cpp msgid "Thanks from the Godot community!" msgstr "Ευχαριστίες από την κοινότητα της Godot!" @@ -1130,12 +1148,6 @@ msgstr "Όλα τα αναγνωρισμένα" msgid "All Files (*)" msgstr "Όλα τα αρχεία (*)" -#: editor/editor_file_dialog.cpp editor/editor_help.cpp editor/editor_node.cpp -#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_selector.cpp editor/quick_open.cpp scene/gui/file_dialog.cpp -msgid "Open" -msgstr "Άνοιγμα" - #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Open a File" msgstr "Άνοιγμα αρχείου" @@ -1329,6 +1341,8 @@ msgid "" "There is currently no description for this property. Please help us by " "[color=$color][url=$url]contributing one[/url][/color]!" msgstr "" +"Δεν υπάρχει ακόμη περιγραφή για αυτήν την ιδιότητα. Παρακαλούμε βοηθήστε μας " +"[color=$color][url=$url]γράφοντας μία[/url][/color]!" #: editor/editor_help.cpp msgid "Methods" @@ -1343,6 +1357,8 @@ msgid "" "There is currently no description for this method. Please help us by [color=" "$color][url=$url]contributing one[/url][/color]!" msgstr "" +"Δεν υπάρχει ακόμη περιγραφή για αυτήν την μέθοδο. Παρακαλούμε βοηθήστε μας " +"[color=$color][url=$url]γράφοντας μία[/url][/color]!" #: editor/editor_help.cpp msgid "Search Text" @@ -1393,7 +1409,7 @@ msgstr "Σφάλμα κατά η ανάλυση του '%s'." #: editor/editor_node.cpp msgid "Unexpected end of file '%s'." -msgstr "" +msgstr "Αναπάντεχο τέλος αρχείου '%s'." #: editor/editor_node.cpp msgid "Missing '%s' or its dependencies." @@ -1468,18 +1484,26 @@ msgid "" "Please read the documentation relevant to importing scenes to better " "understand this workflow." msgstr "" +"Αυτός ο πόρος ανήκει σε μία σκηνή που έχει εισαχθεί, οπότε δεν είναι " +"επεξεργάσιμο.\n" +"Παρακαλούμε διαβάστε την τεκμηρίωση σχετική με την εισαγωγή σκηνών, για να " +"καταλάβετε καλύτερα την διαδικασία." #: editor/editor_node.cpp msgid "" "This resource belongs to a scene that was instanced or inherited.\n" "Changes to it will not be kept when saving the current scene." msgstr "" +"Αυτός ο πόρος ανήκει σε μία σκηνή που έχει κλωνοποιηθεί ή κληρονομηθεί.\n" +"Οι αλλαγές δεν θα διατηρηθούν κατά την αποθήκευση της τρέχουσας σκηνής." #: editor/editor_node.cpp msgid "" "This resource was imported, so it's not editable. Change its settings in the " "import panel and then re-import." msgstr "" +"Αυτός ο πόρος έχει εισαχθεί, οπότε δεν είναι επεξεργάσιμος. Αλλάξτε τις " +"ρυθμίσεις στο πλαίσιο εισαγωγής και μετά επαν-εισάγετε." #: editor/editor_node.cpp msgid "" @@ -1488,6 +1512,22 @@ msgid "" "Please read the documentation relevant to importing scenes to better " "understand this workflow." msgstr "" +"Αυτή η σκηνή έχει εισαχθεί, οπότε αλλαγές σε αυτήν δεν θα διατηρηθούν.\n" +"Η κλωνοποίηση ή η κληρονόμηση της θα επιτρέψει την επεξεργασία της.\n" +"Παρακαλούμε διαβάστε την τεκμηρίωση σχετική με την εισαγωγή σκηνών, για να " +"καταλάβετε καλύτερα την διαδικασία." + +#: editor/editor_node.cpp +#, fuzzy +msgid "" +"This is a remote object so changes to it will not be kept.\n" +"Please read the documentation relevant to debugging to better understand " +"this workflow." +msgstr "" +"Αυτός ο πόρος ανήκει σε μία σκηνή που έχει εισαχθεί, οπότε δεν είναι " +"επεξεργάσιμο.\n" +"Παρακαλούμε διαβάστε την τεκμηρίωση σχετική με την εισαγωγή σκηνών, για να " +"καταλάβετε καλύτερα την διαδικασία." #: editor/editor_node.cpp msgid "Copy Params" @@ -1611,6 +1651,11 @@ msgid "Export Mesh Library" msgstr "Εξαγωγή βιβλιοθήκης πλεγμάτων" #: editor/editor_node.cpp +#, fuzzy +msgid "This operation can't be done without a root node." +msgstr "Αυτή η λειτουργία δεν μπορεί να γίνει χωρίς έναν επιλεγμένο κόμβο." + +#: editor/editor_node.cpp msgid "Export Tile Set" msgstr "Εξαγωγή σετ πλακιδίων" @@ -1672,38 +1717,41 @@ msgid "" "This option is deprecated. Situations where refresh must be forced are now " "considered a bug. Please report." msgstr "" +"Αυτή η επιλογή έχει απορριφθεί. Καταστάσεις στις οποίες πρέπει να γίνει " +"ανανέωση θεωρούνται σφάλματα, και σας ζητούμε να τις αναφέρετε." #: editor/editor_node.cpp msgid "Pick a Main Scene" msgstr "Επιλογή κύριας σκηνής" #: editor/editor_node.cpp -#, fuzzy msgid "Unable to enable addon plugin at: '%s' parsing of config failed." -msgstr "Αδύνατη η ενεργοποίηση πρόσθετης επέκτασης στο: '" +msgstr "" +"Αδύνατη η ενεργοποίηση πρόσθετης επέκτασης στο: '%s'. Απέτυχε η ανάλυση του " +"αρχείου ρύθμισης." #: editor/editor_node.cpp -#, fuzzy msgid "Unable to find script field for addon plugin at: 'res://addons/%s'." msgstr "" "Αδύνατη η έυρεση του πεδίου 'script' για την πρόσθετη επέκταση στο: 'res://" -"addons/" +"addons/%s'." #: editor/editor_node.cpp -#, fuzzy msgid "Unable to load addon script from path: '%s'." -msgstr "Αδύνατη η φόρτωση δεσμής ενεργειών προσθέτου από τη διαδρομή: '" +msgstr "Αδύνατη η φόρτωση δεσμής ενεργειών προσθέτου από τη διαδρομή: '%s'." #: editor/editor_node.cpp -#, fuzzy msgid "" "Unable to load addon script from path: '%s' Base type is not EditorPlugin." -msgstr "Αδύνατη η φόρτωση δεσμής ενεργειών προσθέτου από τη διαδρομή: '" +msgstr "" +"Αδύνατη η φόρτωση δεσμής ενεργειών προσθέτου από τη διαδρομή: '%s'. Ο " +"βασικός τύπος δεν είναι το EditorPlugin." #: editor/editor_node.cpp -#, fuzzy msgid "Unable to load addon script from path: '%s' Script is not in tool mode." -msgstr "Αδύνατη η φόρτωση δεσμής ενεργειών προσθέτου από τη διαδρομή: '" +msgstr "" +"Αδύνατη η φόρτωση δεσμής ενεργειών προσθέτου από τη διαδρομή: '%s'. Δεν " +"είναι σε λειτουργία tool." #: editor/editor_node.cpp msgid "" @@ -1754,12 +1802,23 @@ msgid "Switch Scene Tab" msgstr "Εναλλαγή καρτέλας σκηνής" #: editor/editor_node.cpp -msgid "%d more file(s)" +#, fuzzy +msgid "%d more files or folders" +msgstr "%d περισσότερα αρχεία ή φάκελοι" + +#: editor/editor_node.cpp +#, fuzzy +msgid "%d more folders" msgstr "%d περισσότερα αρχεία" #: editor/editor_node.cpp -msgid "%d more file(s) or folder(s)" -msgstr "%d περισσότερα αρχεία ή φάκελοι" +#, fuzzy +msgid "%d more files" +msgstr "%d περισσότερα αρχεία" + +#: editor/editor_node.cpp +msgid "Dock Position" +msgstr "" #: editor/editor_node.cpp msgid "Distraction Free Mode" @@ -1770,6 +1829,11 @@ msgid "Toggle distraction-free mode." msgstr "Εναλλαγή λειτουργίας χωρίς περισπασμούς." #: editor/editor_node.cpp +#, fuzzy +msgid "Add a new scene." +msgstr "Προσθήκη νέων κομματιών." + +#: editor/editor_node.cpp msgid "Scene" msgstr "Σκηνή" @@ -1834,13 +1898,12 @@ msgid "TileSet.." msgstr "TileSet..." #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp -#: scene/gui/text_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Undo" msgstr "Αναίρεση" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp +#: scene/gui/line_edit.cpp msgid "Redo" msgstr "Ακύρωση αναίρεσης" @@ -2194,7 +2257,6 @@ msgid "Open the previous Editor" msgstr "Άνοιγμα του προηγούμενου επεξεργαστή" #: editor/editor_plugin.cpp -#, fuzzy msgid "Creating Mesh Previews" msgstr "Δημιουργία προεπισκοπήσεων πλεγμάτων" @@ -2248,9 +2310,8 @@ msgid "Frame %" msgstr "Καρέ %" #: editor/editor_profiler.cpp -#, fuzzy msgid "Physics Frame %" -msgstr "Σταθερό καρέ %" +msgstr "Kαρέ φυσικής %" #: editor/editor_profiler.cpp editor/script_editor_debugger.cpp msgid "Time:" @@ -2345,6 +2406,11 @@ msgid "(Current)" msgstr "(Τρέχων)" #: editor/export_template_manager.cpp +#, fuzzy +msgid "Retrieving mirrors, please wait.." +msgstr "Σφάλμα σύνδεσης, παρακαλώ ξαναπροσπαθήστε." + +#: editor/export_template_manager.cpp msgid "Remove template version '%s'?" msgstr "Αφαίρεση πρότυπης εκδοχής '%s';" @@ -2381,6 +2447,112 @@ msgid "Importing:" msgstr "Εισαγωγή:" #: editor/export_template_manager.cpp +msgid "" +"No download links found for this version. Direct download is only available " +"for official releases." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't resolve." +msgstr "Δεν είναι δυνατή η επίλυση." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't connect." +msgstr "Δεν ήταν δυνατή η σύνδεση." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "No response." +msgstr "Δεν λήφθηκε απόκριση." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Req. Failed." +msgstr "Το αίτημα απέτυχε." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Redirect Loop." +msgstr "Βρόχος ανακατευθήνσεων." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Failed:" +msgstr "Απέτυχε:" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't write file." +msgstr "Δεν ήταν δυνατό το γράψιμο στο αρχείο:\n" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Download Complete." +msgstr "Σφάλμα λήψης" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Error requesting url: " +msgstr "Σφάλμα κατά την αποθήκευση άτλαντα:" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connecting to Mirror.." +msgstr "Σύνδεση.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Disconnected" +msgstr "Αποσύνδεση" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Resolving" +msgstr "Επίλυση..." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't Resolve" +msgstr "Δεν είναι δυνατή η επίλυση." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Connecting.." +msgstr "Σύνδεση.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't Conect" +msgstr "Δεν ήταν δυνατή η σύνδεση." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connected" +msgstr "Σύνδεση" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Requesting.." +msgstr "Γίνεται αίτημα.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Downloading" +msgstr "Λήψη" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connection Error" +msgstr "Σύνδεση.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "SSL Handshake Error" +msgstr "Σφάλματα φόρτωσης" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "Τρέχουσα έκδοση:" @@ -2404,6 +2576,16 @@ msgstr "Επιλέξτε ένα αρχείο προτύπων" msgid "Export Template Manager" msgstr "Διαχειριστής προτύπων εξαγωγής" +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Download Templates" +msgstr "Πρότυπα" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Select mirror from list: " +msgstr "Επιλέξτε συσκευή από την λίστα" + #: editor/file_type_cache.cpp msgid "Can't open file_type_cache.cch for writing, not saving file type cache!" msgstr "" @@ -2411,82 +2593,69 @@ msgstr "" "αποθήκευσης cache τύπου αρχείου!" #: editor/filesystem_dock.cpp -msgid "Cannot navigate to '" -msgstr "Αδύνατη η πλοήγηση στο '" +msgid "Cannot navigate to '%s' as it has not been found in the file system!" +msgstr "" #: editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails" -msgstr "" +msgstr "Εμφάνιση αντικειμένων σε πλέγμα μικργραφιών" #: editor/filesystem_dock.cpp msgid "View items as a list" -msgstr "" +msgstr "Εμφάνιση αντικειμένων σε λίστα" #: editor/filesystem_dock.cpp msgid "" "\n" "Status: Import of file failed. Please fix file and reimport manually." msgstr "" - -#: editor/filesystem_dock.cpp -msgid "" -"\n" -"Source: " -msgstr "" "\n" -"Πηγή: " +"Κατάσταση: Η εισαγωγή απέτυχε. Παρακαλούμε διορθώστε το αρχείο και " +"επανεισάγετε το χειροκίνητα." #: editor/filesystem_dock.cpp -#, fuzzy msgid "Cannot move/rename resources root." -msgstr "Δεν ήταν δυνατή η φόρτωση/επεξεργασία της πηγαίας γραμματοσειράς." +msgstr "Δεν ήταν δυνατή η μετακίνηση/μετονομασία του πηγαίου καταλόγου." #: editor/filesystem_dock.cpp -#, fuzzy msgid "Cannot move a folder into itself.\n" -msgstr "Δεν είναι δυνατή η εισαγωγή ενός αρχείου πάνω στον εαυτό του:" +msgstr "Δεν είναι δυνατή η μετακίνηση ενός φακέλου στον εαυτό του.\n" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Error moving:\n" -msgstr "Σφάλμα κατά την μετακίνηση καταλόγου:\n" +msgstr "Σφάλμα κατά την μετακίνηση:\n" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Unable to update dependencies:\n" -msgstr "Η σκηνή '%s' έχει σπασμένες εξαρτήσεις:" +msgstr "Αδύνατη η ενημέρωση των εξαρτήσεων:\n" #: editor/filesystem_dock.cpp msgid "No name provided" -msgstr "" +msgstr "Δεν δόθηκε όνομα" #: editor/filesystem_dock.cpp msgid "Provided name contains invalid characters" -msgstr "" +msgstr "Το δοσμένο όνομα περιέχει άκυρους χαρακτήρες" #: editor/filesystem_dock.cpp -#, fuzzy msgid "No name provided." -msgstr "Μετονομασία ή μετακίνηση.." +msgstr "Δεν δόθηκε όνομα." #: editor/filesystem_dock.cpp -#, fuzzy msgid "Name contains invalid characters." -msgstr "Έγκυροι χαρακτήρες:" +msgstr "Το όνομα περιέχει άκυρους χαρακτήρες." #: editor/filesystem_dock.cpp msgid "A file or folder with this name already exists." -msgstr "" +msgstr "Υπάρχει ήδη ένα αρχείο ή φάκελος με αυτό το όνομα." #: editor/filesystem_dock.cpp -#, fuzzy msgid "Renaming file:" -msgstr "Μετονομασία μεταβλητής" +msgstr "Μετονομασία αρχείου:" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Renaming folder:" -msgstr "Μετονομασία κόμβου" +msgstr "Μετονομασία καταλόγου:" #: editor/filesystem_dock.cpp msgid "Expand all" @@ -2501,18 +2670,16 @@ msgid "Copy Path" msgstr "Αντιγραφή διαδρομής" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Rename.." -msgstr "Μετονομασία" +msgstr "Μετονομασία.." #: editor/filesystem_dock.cpp msgid "Move To.." msgstr "Μετακίνηση σε..." #: editor/filesystem_dock.cpp -#, fuzzy msgid "New Folder.." -msgstr "Δημιουργία φακέλου" +msgstr "Νέος φακέλου.." #: editor/filesystem_dock.cpp msgid "Show In File Manager" @@ -2582,9 +2749,8 @@ msgid "Import as Single Scene" msgstr "Εισαγωγή ως μονή σκηνή" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Import with Separate Animations" -msgstr "Εισαγωγή με ξεχωριστά υλικά" +msgstr "Εισαγωγή με ξεχωριστές κινήσεις" #: editor/import/resource_importer_scene.cpp msgid "Import with Separate Materials" @@ -2599,19 +2765,16 @@ msgid "Import with Separate Objects+Materials" msgstr "Εισαγωγή με ξεχωριστά υλικά και αντικείμενα" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Import with Separate Objects+Animations" -msgstr "Εισαγωγή με ξεχωριστά υλικά και αντικείμενα" +msgstr "Εισαγωγή με ξεχωριστά αντικείμενα και κινήσεις" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Import with Separate Materials+Animations" -msgstr "Εισαγωγή με ξεχωριστά υλικά" +msgstr "Εισαγωγή με ξεχωριστά υλικά και κινήσεις" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Import with Separate Objects+Materials+Animations" -msgstr "Εισαγωγή με ξεχωριστά υλικά και αντικείμενα" +msgstr "Εισαγωγή με ξεχωριστά αντικείμενα, υλικά και κινήσεις" #: editor/import/resource_importer_scene.cpp msgid "Import as Multiple Scenes" @@ -2700,9 +2863,8 @@ msgid "Edit Poly" msgstr "Επεγεργασία πολυγώνου" #: editor/plugins/abstract_polygon_2d_editor.cpp -#, fuzzy msgid "Insert Point" -msgstr "Εισαγωγή" +msgstr "Εισαγωγή σημείου" #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/collision_polygon_editor_plugin.cpp @@ -2715,8 +2877,8 @@ msgid "Remove Poly And Point" msgstr "Αφαίρεση πολυγώνου και σημείου" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." +#, fuzzy +msgid "Create a new polygon from scratch" msgstr "Δημιουργία νέου πολυγώνου από την αρχή." #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -2731,6 +2893,11 @@ msgstr "" "Ctrl + Αριστερό κλικ: Διαίρεση τμήματος.\n" "Δεξί κλικ: Διαγραφή σημείου." +#: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy +msgid "Delete points" +msgstr "Διαγραφή σημείου" + #: editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" msgstr "Εναλλαγή αυτόματης αναπαραγωγής" @@ -3065,18 +3232,10 @@ msgid "Can't resolve hostname:" msgstr "Δεν είναι δυνατή η επίλυση του ονόματος του κεντρικού υπολογιστή:" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't resolve." -msgstr "Δεν είναι δυνατή η επίλυση." - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Connection error, please try again." msgstr "Σφάλμα σύνδεσης, παρακαλώ ξαναπροσπαθήστε." #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't connect." -msgstr "Δεν ήταν δυνατή η σύνδεση." - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Can't connect to host:" msgstr "Δεν ήταν δυνατή η σύνδεση στον κεντρικό υπολογιστή:" @@ -3085,30 +3244,14 @@ msgid "No response from host:" msgstr "Δεν λήφθηκε απόκριση από τον κεντρικό υπολογιστή:" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "No response." -msgstr "Δεν λήφθηκε απόκριση." - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, return code:" msgstr "Το αίτημα απέτυχε, κώδικας επιστροφής:" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Req. Failed." -msgstr "Το αίτημα απέτυχε." - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, too many redirects" msgstr "Το αίτημα απέτυχε, πάρα πολλές ανακατευθήνσεις" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Redirect Loop." -msgstr "Βρόχος ανακατευθήνσεων." - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Failed:" -msgstr "Απέτυχε:" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Bad download hash, assuming file has been tampered with." msgstr "" "Εσφαλμένος κωδικός κατακερματισμού, θα θεωρηθεί ότι το αρχείο έχει αλοιωθεί." @@ -3138,14 +3281,6 @@ msgid "Resolving.." msgstr "Επίλυση..." #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Connecting.." -msgstr "Σύνδεση.." - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Requesting.." -msgstr "Γίνεται αίτημα.." - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Error making request" msgstr "Σφάλμα κατά την πραγματοποίηση αιτήματος" @@ -3258,6 +3393,39 @@ msgid "Move Action" msgstr "Ενέργεια μετακίνησης" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create new vertical guide" +msgstr "Δημιουργία νέου αρχείου δεσμής ενεργειών" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove vertical guide" +msgstr "Αφαίρεση μεταβλητής" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Move horizontal guide" +msgstr "Μετακίνηση σημείου στην καμπύλη" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create new horizontal guide" +msgstr "Δημιουργία νέου αρχείου δεσμής ενεργειών" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove horizontal guide" +msgstr "Αφαίρεση άκυρων κλειδιών" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new horizontal and vertical guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Edit IK Chain" msgstr "Επεξεργασία Αλυσίδας IK" @@ -3266,14 +3434,12 @@ msgid "Edit CanvasItem" msgstr "Επεξεργασία στοιχείου κανβά" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Anchors only" -msgstr "Άγκυρα" +msgstr "Μόνο άγκυρες" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Change Anchors and Margins" -msgstr "Αλλαγή αγκυρών" +msgstr "Αλλαγή αγκύρων και περιθωρίων" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Change Anchors" @@ -3331,9 +3497,8 @@ msgid "Pan Mode" msgstr "Λειτουργία Μετακίνησης κάμερας" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Toggles snapping" -msgstr "Εναλλαγή σημείου διακοπής" +msgstr "Εναλλαγή κουμπώματος" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -3341,23 +3506,20 @@ msgid "Use Snap" msgstr "Χρήση κουμπώματος" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Snapping options" -msgstr "Επιλογές κίνησης" +msgstr "Επιλογές κουμπώματος" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Snap to grid" -msgstr "Λειτουργία κουμπώματος:" +msgstr "κουμπώματος στο πλέγμα" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Rotation Snap" msgstr "Χρήση κουμπώματος περιστροφής" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Configure Snap..." -msgstr "Διαμόρφωση κουμπώματος.." +msgstr "Διαμόρφωση κουμπώματος..." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Snap Relative" @@ -3369,30 +3531,36 @@ msgstr "Χρήση κουμπώματος εικονοστοιχείου" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Smart snapping" -msgstr "" +msgstr "Έξυπνο κούμπωμα" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Snap to parent" -msgstr "Επικάλυψη γονέα" +msgstr "Κούμπωμα στον γονέα" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Snap to node anchor" -msgstr "" +msgstr "Κούμπωμα στην άγκυρα του κόμβου" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Snap to node sides" -msgstr "" +msgstr "Κούμπωμα στις πλευρές του κόμβου" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Snap to other nodes" -msgstr "" +msgstr "Κούμπωμα σε άλλους κόμβους" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Snap to guides" +msgstr "κουμπώματος στο πλέγμα" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Lock the selected object in place (can't be moved)." msgstr "Κλείδωμα του επιλεγμένου αντικείμένου (Δεν μπορεί να μετακινηθεί)." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Unlock the selected object (can be moved)." msgstr "Ξεκλείδωμα του επιλεγμένου αντικείμένου (Μπορεί να μετακινηθεί)." @@ -3435,14 +3603,17 @@ msgid "Show Grid" msgstr "Εμφάνιση πλέγματος" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Show helpers" -msgstr "Εμφάνιση οστών" +msgstr "Εμφάνιση βοηθών" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Show rulers" -msgstr "Εμφάνιση οστών" +msgstr "Εμφάνιση χαράκων" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Show guides" +msgstr "Εμφάνιση χαράκων" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Selection" @@ -3453,9 +3624,8 @@ msgid "Frame Selection" msgstr "Πλαισίωμα επιλογής" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Layout" -msgstr "Αποθήκευση διάταξης" +msgstr "Διάταξη" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Insert Keys" @@ -3479,20 +3649,19 @@ msgstr "Εκκαθάριση στάσης" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Drag pivot from mouse position" -msgstr "" +msgstr "Σύρσιμο κέντρου από την θέση του ποντικιού" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Set pivot at mouse position" -msgstr "Ορισμός θέσης εξόδου καμπύλης" +msgstr "Ορισμός κέντρου στον κέρσορα" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Multiply grid step by 2" -msgstr "" +msgstr "Πολλαπλασιαμός βήματος πλέγματος με 2" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Divide grid step by 2" -msgstr "" +msgstr "Διαίρεση βήματος πλέγματος με 2" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" @@ -3572,25 +3741,23 @@ msgstr "Αναπροσαρμογή από την σκηνή" #: editor/plugins/curve_editor_plugin.cpp msgid "Flat0" -msgstr "" +msgstr "Επίπεδο 0" #: editor/plugins/curve_editor_plugin.cpp msgid "Flat1" -msgstr "" +msgstr "Επίπεδο 1" #: editor/plugins/curve_editor_plugin.cpp -#, fuzzy msgid "Ease in" -msgstr "Ομαλή κίνηση προς τα μέσα" +msgstr "Ομαλά μέσα" #: editor/plugins/curve_editor_plugin.cpp -#, fuzzy msgid "Ease out" -msgstr "Ομαλή κίνηση προς τα έξω" +msgstr "Ομαλά έξω" #: editor/plugins/curve_editor_plugin.cpp msgid "Smoothstep" -msgstr "" +msgstr "Ομαλό βήμα" #: editor/plugins/curve_editor_plugin.cpp msgid "Modify Curve Point" @@ -3636,6 +3803,10 @@ msgstr "Εναλλαγή γραμμικής εφαπτομένης καμπύλ msgid "Hold Shift to edit tangents individually" msgstr "Πατήστε το Shift για να επεξεργαστείτε εφαπτομένες μεμονωμένα" +#: editor/plugins/gi_probe_editor_plugin.cpp +msgid "Bake GI Probe" +msgstr "" + #: editor/plugins/gradient_editor_plugin.cpp msgid "Add/Remove Color Ramp Point" msgstr "Προσθήκη αφαίρεση σημείου διαβάθμισης χρωμάτων" @@ -3670,6 +3841,10 @@ msgid "Create Occluder Polygon" msgstr "Δημιουργία πολυγώνου εμποδίου" #: editor/plugins/light_occluder_2d_editor_plugin.cpp +msgid "Create a new polygon from scratch." +msgstr "Δημιουργία νέου πολυγώνου από την αρχή." + +#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Edit existing polygon:" msgstr "Επεξεργασία υπαρκτού πολυγώνου:" @@ -3685,58 +3860,6 @@ msgstr "Ctrl+Αριστερό κλικ: Διαχωρσμός τμήματος." msgid "RMB: Erase Point." msgstr "Δεξί κλικ: Διαγραφή σημείου." -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Remove Point from Line2D" -msgstr "Διαγραφή σημείου από την δισδιάστατη γραμμή" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Add Point to Line2D" -msgstr "Πρόσθεσε σημείο στην δισδυάστατη γραμμή" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Move Point in Line2D" -msgstr "Μετακίινηση σημείου στην δισδιάστατη γραμμή" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Select Points" -msgstr "Επιλογή σημείων" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Shift+Drag: Select Control Points" -msgstr "Shift + Σύρσιμο: Επιλογή σημείψν ελέγχου" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Click: Add Point" -msgstr "Κλικ: Προσθήκη σημείου" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Right Click: Delete Point" -msgstr "Δεξί κλικ: Διαγραφή σημείου" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Add Point (in empty space)" -msgstr "Προσθήκη σημείου (σε άδειο χώρο)" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Split Segment (in line)" -msgstr "Διαχωρισμός τμήματος (στη γραμμή)" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Delete Point" -msgstr "Διαγραφή σημείου" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "Το πλέγμα είναι άδειο!" @@ -3920,73 +4043,64 @@ msgid "Bake!" msgstr "Προεπεξεργάσου!" #: editor/plugins/navigation_mesh_editor_plugin.cpp -#, fuzzy msgid "Bake the navigation mesh.\n" -msgstr "Δημιουργία πλέγματος πλοήγησης" +msgstr "Προετοιμασία του πλέγματος πλοήγησης.\n" #: editor/plugins/navigation_mesh_editor_plugin.cpp -#, fuzzy msgid "Clear the navigation mesh." -msgstr "Δημιουργία πλέγματος πλοήγησης" +msgstr "Εκκαθάριση του πλέγματος πλοήγησης." #: editor/plugins/navigation_mesh_generator.cpp msgid "Setting up Configuration..." -msgstr "" +msgstr "Ρύθμιση παραμέτρων..." #: editor/plugins/navigation_mesh_generator.cpp msgid "Calculating grid size..." -msgstr "" +msgstr "Υπολογισμός μεγέθους πλέγματος..." #: editor/plugins/navigation_mesh_generator.cpp -#, fuzzy msgid "Creating heightfield..." -msgstr "Δημιουργία οκταδικού δέντρου φωτός" +msgstr "Δημιουργία πεδίου ύψους..." #: editor/plugins/navigation_mesh_generator.cpp -#, fuzzy msgid "Marking walkable triangles..." -msgstr "Μεταφράσιμες συμβολοσειρές..." +msgstr "Επισήμανση βατών τριγώνων..." #: editor/plugins/navigation_mesh_generator.cpp msgid "Constructing compact heightfield..." -msgstr "" +msgstr "Δημιουργία συμπυκνωμένου πεδίου ύψους..." #: editor/plugins/navigation_mesh_generator.cpp msgid "Eroding walkable area..." -msgstr "" +msgstr "Διάβρωση βατής περιοχής..." #: editor/plugins/navigation_mesh_generator.cpp -#, fuzzy msgid "Partitioning..." -msgstr "Προειδοποίηση" +msgstr "Διαμερισμός..." #: editor/plugins/navigation_mesh_generator.cpp -#, fuzzy msgid "Creating contours..." -msgstr "Δημιουργία υφής οκταδικού δέντρου" +msgstr "Δημιουργία περιγραμμάτων..." #: editor/plugins/navigation_mesh_generator.cpp -#, fuzzy msgid "Creating polymesh..." -msgstr "Δημιουργία πλέγματος περιγράμματος.." +msgstr "Δημιουργία πολύ-πλέγματος..." #: editor/plugins/navigation_mesh_generator.cpp -#, fuzzy msgid "Converting to native navigation mesh..." -msgstr "Δημιουργία πλέγματος πλοήγησης" +msgstr "Μετατροπή σε εγγενή πλέγμα πλοήγησης..." #: editor/plugins/navigation_mesh_generator.cpp msgid "Navigation Mesh Generator Setup:" -msgstr "" +msgstr "Ρύθμιση γενήτριας πλέγματος πλοήγησης:" #: editor/plugins/navigation_mesh_generator.cpp -#, fuzzy msgid "Parsing Geometry..." -msgstr "Ανάλυση γεωμετρίας" +msgstr "Ανάλυση γεωμετρίας..." #: editor/plugins/navigation_mesh_generator.cpp msgid "Done!" -msgstr "" +msgstr "Τέλος!" #: editor/plugins/navigation_polygon_editor_plugin.cpp msgid "Create Navigation Polygon" @@ -4147,16 +4261,46 @@ msgid "Move Out-Control in Curve" msgstr "Μετακίνηση ελεγκτή εξόδου στην καμπύλη" #: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Select Points" +msgstr "Επιλογή σημείων" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Shift+Drag: Select Control Points" +msgstr "Shift + Σύρσιμο: Επιλογή σημείψν ελέγχου" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Click: Add Point" +msgstr "Κλικ: Προσθήκη σημείου" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Right Click: Delete Point" +msgstr "Δεξί κλικ: Διαγραφή σημείου" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Select Control Points (Shift+Drag)" msgstr "Επλογή σημείων ελέγχου (Shift + Σύρσιμο)" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Add Point (in empty space)" +msgstr "Προσθήκη σημείου (σε άδειο χώρο)" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Split Segment (in curve)" msgstr "Διαχωρισμός τμήματος (στην καμπύλη)" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Delete Point" +msgstr "Διαγραφή σημείου" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Close Curve" msgstr "κλείσιμο καμπύλης" @@ -4165,17 +4309,14 @@ msgid "Curve Point #" msgstr "Σημείο καμπύλης #" #: editor/plugins/path_editor_plugin.cpp -#, fuzzy msgid "Set Curve Point Position" msgstr "Ορισμός θέσης σημείου καμπύλης" #: editor/plugins/path_editor_plugin.cpp -#, fuzzy msgid "Set Curve In Position" msgstr "Ορισμός θέσης εισόδου καμπύλης" #: editor/plugins/path_editor_plugin.cpp -#, fuzzy msgid "Set Curve Out Position" msgstr "Ορισμός θέσης εξόδου καμπύλης" @@ -4296,7 +4437,6 @@ msgstr "Φόρτωση πόρου" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Paste" @@ -4343,6 +4483,21 @@ msgid " Class Reference" msgstr " Αναφορά κλασεων" #: editor/plugins/script_editor_plugin.cpp +#, fuzzy +msgid "Sort" +msgstr "Ταξινόμηση:" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Up" +msgstr "Μετακίνηση πάνω" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Down" +msgstr "Μετακίνηση κάτω" + +#: editor/plugins/script_editor_plugin.cpp msgid "Next script" msgstr "Επόμενη δεσμή ενεργειών" @@ -4394,6 +4549,10 @@ msgstr "Κλείσιμο τεκμηρίωσης" msgid "Close All" msgstr "Κλείσιμο όλων" +#: editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "Εκτέλεση" @@ -4404,13 +4563,11 @@ msgstr "Εναλλαγή πλαισίου δεσμών ενεργειών" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find.." msgstr "Εύρεση.." #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Next" msgstr "Εύρεση επόμενου" @@ -4518,33 +4675,22 @@ msgstr "Πεζά" msgid "Capitalize" msgstr "Κεφαλαιοποίηση" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" msgstr "Αποκοπή" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Copy" msgstr "Αντιγραφή" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Select All" msgstr "Επιλογή όλων" -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Up" -msgstr "Μετακίνηση πάνω" - -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Down" -msgstr "Μετακίνηση κάτω" - #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "Διαγραφή γραμμής" @@ -4566,6 +4712,23 @@ msgid "Clone Down" msgstr "Κλωνοποίηση κάτω" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Fold Line" +msgstr "Πήγαινε στη γραμμή" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold Line" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Fold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Complete Symbol" msgstr "Συμπλήρωση συμβόλου" @@ -4611,12 +4774,10 @@ msgid "Convert To Lowercase" msgstr "Μετατροπή σε πεζά" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Previous" msgstr "Έυρεση προηγούμενου" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Replace.." msgstr "Αντικατάσταση.." @@ -4625,7 +4786,6 @@ msgid "Goto Function.." msgstr "Πήγαινε σε συνάρτηση.." #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Goto Line.." msgstr "Πήγαινε σε γραμμή.." @@ -4790,6 +4950,16 @@ msgid "View Plane Transform." msgstr "Μετασχηματισμός στο επίπεδο θέασης." #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Scaling: " +msgstr "Κλιμάκωση:" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Translating: " +msgstr "Μεταφράσεις:" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Rotating %s degrees." msgstr "Περιστροφή %s μοίρες." @@ -4871,6 +5041,10 @@ msgid "Vertices" msgstr "Κορυφές" #: editor/plugins/spatial_editor_plugin.cpp +msgid "FPS" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Align with view" msgstr "Στοίχηση με την προβολή" @@ -4903,6 +5077,16 @@ msgid "View Information" msgstr "Εμφάνιση πληροφοριών" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "View FPS" +msgstr "Προβολή αρχείων" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Half Resolution" +msgstr "Μεγέθυνση επιλογής" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Audio Listener" msgstr "Ακροατής ήχου" @@ -5033,6 +5217,11 @@ msgid "Tool Scale" msgstr "Εργαλείο κλιμάκωσης" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Toggle Freelook" +msgstr "Εναλλαγή πλήρους οθόνης" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Transform" msgstr "Μετασχηματισμός" @@ -5202,14 +5391,12 @@ msgid "Insert Empty (After)" msgstr "Εισαγωγή άδειου (Μετά)" #: editor/plugins/sprite_frames_editor_plugin.cpp -#, fuzzy msgid "Move (Before)" -msgstr "Μετακίνηση κόμβων" +msgstr "Μετακίνηση (Πριν)" #: editor/plugins/sprite_frames_editor_plugin.cpp -#, fuzzy msgid "Move (After)" -msgstr "Μετκίνιση αριστερά" +msgstr "Μετκίνιση (Μετά)" #: editor/plugins/style_box_editor_plugin.cpp msgid "StyleBox Preview:" @@ -5286,11 +5473,11 @@ msgstr "Αφαίρεση όλων" #: editor/plugins/theme_editor_plugin.cpp msgid "Edit theme.." -msgstr "" +msgstr "Επεξεργασία θέματος.." #: editor/plugins/theme_editor_plugin.cpp msgid "Theme editing menu." -msgstr "" +msgstr "Μενού επεξεργασίας θέματος." #: editor/plugins/theme_editor_plugin.cpp msgid "Add Class Items" @@ -5309,6 +5496,11 @@ msgid "Create Empty Editor Template" msgstr "Δημιουργία άδειου προτύπου επεξεργαστή" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Create From Current Editor Theme" +msgstr "Δημιουργία άδειου προτύπου επεξεργαστή" + +#: editor/plugins/theme_editor_plugin.cpp msgid "CheckBox Radio1" msgstr "Κουμπί επιλογής1" @@ -5426,9 +5618,8 @@ msgid "Mirror Y" msgstr "Συμμετρία στον άξονα Υ" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Paint Tile" -msgstr "Βάψιμο TileMap" +msgstr "Βάψιμο πλακιδίου" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Pick Tile" @@ -5483,7 +5674,8 @@ msgid "Runnable" msgstr "Εκτελέσιμο" #: editor/project_export.cpp -msgid "Delete patch '" +#, fuzzy +msgid "Delete patch '%s' from list?" msgstr "Διαγραφή ενημέρωσης '" #: editor/project_export.cpp @@ -5491,9 +5683,9 @@ msgid "Delete preset '%s'?" msgstr "Διαγραφή διαμόρφωσης '%s';" #: editor/project_export.cpp -#, fuzzy msgid "Export templates for this platform are missing/corrupted: " -msgstr "Τα πρότυπα εξαγωγής για αυτή την πλατφόρτμα λείπουν:" +msgstr "" +"Τα πρότυπα εξαγωγής για αυτή την πλατφόρτμα λείπουν ή είναι κατεστραμμένα: " #: editor/project_export.cpp msgid "Presets" @@ -5570,9 +5762,9 @@ msgid "Export templates for this platform are missing:" msgstr "Τα πρότυπα εξαγωγής για αυτή την πλατφόρτμα λείπουν:" #: editor/project_export.cpp -#, fuzzy msgid "Export templates for this platform are missing/corrupted:" -msgstr "Τα πρότυπα εξαγωγής για αυτή την πλατφόρτμα λείπουν:" +msgstr "" +"Τα πρότυπα εξαγωγής για αυτή την πλατφόρτμα λείπουν ή είναι κατεστραμμένα:" #: editor/project_export.cpp msgid "Export With Debug" @@ -5581,21 +5773,24 @@ msgstr "Εξαγωγή με αποσφαλμάτωση" #: editor/project_manager.cpp #, fuzzy msgid "The path does not exist." -msgstr "Το αρχείο δεν υπάρχει." +msgstr "Η διαδρομή δεν υπάρχει." #: editor/project_manager.cpp msgid "Please choose a 'project.godot' file." -msgstr "" +msgstr "Παρακαλούμε επιλέκτε ένα αρχείο 'project.godot'." #: editor/project_manager.cpp msgid "" "Your project will be created in a non empty folder (you might want to create " "a new folder)." msgstr "" +"Το έργο θα δημιουργηθεί σε έναν μη-άδειο φάκελο (Ίσως θέλετε να " +"δημιουργήσετε έναν καινούργιο)." #: editor/project_manager.cpp msgid "Please choose a folder that does not contain a 'project.godot' file." msgstr "" +"Παρακαλούμε επιλέξτε έναν φάκελο που δεν περιέχει ένα αρχείο 'project.godot'." #: editor/project_manager.cpp msgid "Imported Project" @@ -5603,25 +5798,24 @@ msgstr "Εισαγμένο έργο" #: editor/project_manager.cpp msgid " " -msgstr "" +msgstr " " #: editor/project_manager.cpp msgid "It would be a good idea to name your project." -msgstr "" +msgstr "Είναι καλή ιδέα να ονομάσετε το έργο σας." #: editor/project_manager.cpp msgid "Invalid project path (changed anything?)." msgstr "Μη έγκυρη διαδρομή έργου (Αλλάξατε τίποτα;)." #: editor/project_manager.cpp -#, fuzzy msgid "Couldn't get project.godot in project path." -msgstr "Δεν ήταν δυνατή η δημιουργία του project.godot στη διαδρομή έργου." +msgstr "Δεν βρέθηκε το project.godot στη διαδρομή του έργου." #: editor/project_manager.cpp -#, fuzzy msgid "Couldn't edit project.godot in project path." -msgstr "Δεν ήταν δυνατή η δημιουργία του project.godot στη διαδρομή έργου." +msgstr "" +"Δεν ήταν δυνατή η επεξεργασία του project.godot στη διαδρομή του έργου." #: editor/project_manager.cpp msgid "Couldn't create project.godot in project path." @@ -5632,14 +5826,12 @@ msgid "The following files failed extraction from package:" msgstr "Η εξαγωγή των ακόλουθων αρχείων από το πακέτο απέτυχε:" #: editor/project_manager.cpp -#, fuzzy msgid "Rename Project" -msgstr "Ανώνυμο έργο" +msgstr "Μετονομασία έργου" #: editor/project_manager.cpp -#, fuzzy msgid "Couldn't get project.godot in the project path." -msgstr "Δεν ήταν δυνατή η δημιουργία του project.godot στη διαδρομή έργου." +msgstr "Δεν βρέθηκε το project.godot στη διαδρομή του έργου." #: editor/project_manager.cpp msgid "New Game Project" @@ -5662,7 +5854,6 @@ msgid "Project Name:" msgstr "Όνομα έργου:" #: editor/project_manager.cpp -#, fuzzy msgid "Create folder" msgstr "Δημιουργία φακέλου" @@ -5683,9 +5874,8 @@ msgid "Unnamed Project" msgstr "Ανώνυμο έργο" #: editor/project_manager.cpp -#, fuzzy msgid "Can't open project" -msgstr "Δεν είναι δυνατή η εκτέλεση του έργου" +msgstr "Δεν ήταν δυνατό το άνοιγμα του έργου" #: editor/project_manager.cpp msgid "Are you sure to open more than one project?" @@ -5724,6 +5914,9 @@ msgid "" "Language changed.\n" "The UI will update next time the editor or project manager starts." msgstr "" +"Η γλώσσα άλλαξε.\n" +"Το περιβάλλον θα αλλάξει την επόμενη φορά που θα ξεκινήσει ο επεξεργαστής ή " +"ο διαχειριστής έργων." #: editor/project_manager.cpp msgid "" @@ -5757,9 +5950,8 @@ msgid "Exit" msgstr "Έξοδος" #: editor/project_manager.cpp -#, fuzzy msgid "Restart Now" -msgstr "Επανεκκίνηση (δευτερόλεπτα):" +msgstr "Επανεκκίνηση τώρα" #: editor/project_manager.cpp msgid "Can't run project" @@ -5798,10 +5990,6 @@ msgid "Add Input Action Event" msgstr "Προσθήκη συμβάντος εισόδου" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Meta+" -msgstr "Meta+" - -#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp msgid "Shift+" msgstr "Shift+" @@ -5919,31 +6107,29 @@ msgid "Add Global Property" msgstr "Προσθήκη καθολικής ιδιότητας" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Select a setting item first!" msgstr "Επιλέξτε ένα αντικείμενο ρύθμισης πρώτα!" #: editor/project_settings_editor.cpp -msgid "No property '" +#, fuzzy +msgid "No property '%s' exists." msgstr "Δεν υπάρχει ιδιότητα '" #: editor/project_settings_editor.cpp -msgid "Setting '" -msgstr "Ρυθμίση '" +msgid "Setting '%s' is internal, and it can't be deleted." +msgstr "" #: editor/project_settings_editor.cpp msgid "Delete Item" msgstr "Διαγραφή αντικειμένου" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Can't contain '/' or ':'" -msgstr "Δεν ήταν δυνατή η σύνδεση στον κεντρικό υπολογιστή:" +msgstr "Δεν μπορεί να περιέχει '/' ή ':'" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Already existing" -msgstr "Η ενέργεια '%s' υπάρχει ήδη!" +msgstr "Υπάρχει ήδη" #: editor/project_settings_editor.cpp msgid "Error saving settings." @@ -5986,13 +6172,12 @@ msgid "Remove Resource Remap Option" msgstr "Αφαίρεση επιλογής ανακατεύθυνσης πόρου" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Changed Locale Filter" -msgstr "Αλλαγή χρόνου ανάμειξης" +msgstr "Αλλαγή φίλτρου τοπικών ρυθμίσεων" #: editor/project_settings_editor.cpp msgid "Changed Locale Filter Mode" -msgstr "" +msgstr "Αλλαγή λειτουργίας φίλτρου τοπικών ρυθμίσεων" #: editor/project_settings_editor.cpp msgid "Project Settings (project.godot)" @@ -6055,28 +6240,24 @@ msgid "Locale" msgstr "Περιοχή" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Locales Filter" -msgstr "Περιοχή" +msgstr "Φίλτρο τοπικών ρυθμίσεων" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Show all locales" -msgstr "Εμφάνιση οστών" +msgstr "Εμφάνιση όλων των τοπικών ρυθμίσεων" #: editor/project_settings_editor.cpp msgid "Show only selected locales" -msgstr "" +msgstr "Εμφάνιση μόνο επιλεγμένων τοπικών ρυθμίσεων" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Filter mode:" -msgstr "Φιλτράρισμα κόμβων" +msgstr "Λειτουργία φιλτραρίσματος:" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Locales:" -msgstr "Περιοχή" +msgstr "Περιοχές:" #: editor/project_settings_editor.cpp msgid "AutoLoad" @@ -6127,18 +6308,16 @@ msgid "New Script" msgstr "Νεα δεσμή ενεργειών" #: editor/property_editor.cpp -#, fuzzy msgid "Make Unique" -msgstr "Δημιουργία οστών" +msgstr "Κάνε μοναδικό" #: editor/property_editor.cpp msgid "Show in File System" msgstr "Εμφάνιση στο σύστημα αρχείων" #: editor/property_editor.cpp -#, fuzzy msgid "Convert To %s" -msgstr "Μετατροπή σε..." +msgstr "Μετατροπή σε %s" #: editor/property_editor.cpp msgid "Error loading file: Not a resource!" @@ -6177,9 +6356,8 @@ msgid "Select Property" msgstr "Επιλογή ιδιότητας" #: editor/property_selector.cpp -#, fuzzy msgid "Select Virtual Method" -msgstr "Επιλογή μεθόδου" +msgstr "Επιλογή εικονικής μεθόδου" #: editor/property_selector.cpp msgid "Select Method" @@ -6417,6 +6595,16 @@ msgid "Clear a script for the selected node." msgstr "Εκκαθάριση δεσμής ενεργειών για τον επιλεγμένο κόμβο." #: editor/scene_tree_dock.cpp +#, fuzzy +msgid "Remote" +msgstr "Αφαίρεση" + +#: editor/scene_tree_dock.cpp +#, fuzzy +msgid "Local" +msgstr "Περιοχή" + +#: editor/scene_tree_dock.cpp msgid "Clear Inheritance? (No Undo!)" msgstr "Εκκαθάριση κληρονομικότητας; (Δεν γίνεται ανέραιση!)" @@ -6539,12 +6727,11 @@ msgstr "Μη έγκυρη βασική διαδρομή" #: editor/script_create_dialog.cpp msgid "Directory of the same name exists" -msgstr "" +msgstr "Υπάρχει ήδη ένας κατάλογος με το ίδιο όνομα" #: editor/script_create_dialog.cpp -#, fuzzy msgid "File exists, will be reused" -msgstr "Το αρχείο υπάρχει. Θέλετε να το αντικαταστήσετε;" +msgstr "Το αρχείο υπάρχει, θα επαναχρησιμοποιηθεί" #: editor/script_create_dialog.cpp msgid "Invalid extension" @@ -6611,6 +6798,11 @@ msgid "Attach Node Script" msgstr "Σύνδεση δεσμής ενεργειών κόμβου" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Remote " +msgstr "Αφαίρεση" + +#: editor/script_editor_debugger.cpp msgid "Bytes:" msgstr "Ψηφιολέξεις:" @@ -6633,6 +6825,8 @@ msgstr "Συνάρτηση:" #: editor/script_editor_debugger.cpp msgid "Pick one or more items from the list to display the graph." msgstr "" +"Επιλέξτε ένα ή περισσότερα αντικείμενα από την λίστα για να εμφανιστεί το " +"γράφημα." #: editor/script_editor_debugger.cpp msgid "Errors" @@ -6667,18 +6861,6 @@ msgid "Stack Trace (if applicable):" msgstr "Ιχνηλάτηση στοίβας (Εάν υφίσταται):" #: editor/script_editor_debugger.cpp -msgid "Remote Inspector" -msgstr "Απομακρυσμένος επιθεωρητής" - -#: editor/script_editor_debugger.cpp -msgid "Live Scene Tree:" -msgstr "Ζωντανό δέντρο σκηνής:" - -#: editor/script_editor_debugger.cpp -msgid "Remote Object Properties: " -msgstr "Απομακρυσμένες ιδιότητες αντικειμένου: " - -#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "Πρόγραμμα δημιουργίας προφιλ" @@ -6795,69 +6977,67 @@ msgid "Change Probe Extents" msgstr "Αλλαγή διαστάσεων αισθητήρα" #: modules/gdnative/gd_native_library_editor.cpp -#, fuzzy msgid "Library" -msgstr "Βιβλιοθήκη πλεγμάτων..." +msgstr "Βιβλιοθήκη" #: modules/gdnative/gd_native_library_editor.cpp -#, fuzzy msgid "Status" -msgstr "Κατάσταση:" +msgstr "Κατάσταση" #: modules/gdnative/gd_native_library_editor.cpp msgid "Libraries: " -msgstr "" +msgstr "Βιβλιοθήκες: " #: modules/gdnative/register_types.cpp msgid "GDNative" -msgstr "" +msgstr "GDNative" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Invalid type argument to convert(), use TYPE_* constants." msgstr "" "Μη έγκυρη παράμετρος στην convert(). Χρησιμοποιήστε τις σταθερές TYPE_*." -#: modules/gdscript/gd_functions.cpp modules/mono/glue/glue_header.h +#: modules/gdscript/gdscript_functions.cpp modules/mono/glue/glue_header.h #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Not enough bytes for decoding bytes, or invalid format." msgstr "Δεν υπάρχουν αρκετά byte για την αποκωδικοποίηση, ή άκυρη μορφή." -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "step argument is zero!" msgstr "Η παράμετρος step είναι μηδέν!" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not a script with an instance" msgstr "Δεν είναι δεσμή ενεργειών με στιγμιότυπο" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a script" msgstr "Δεν είναι βασισμένο σε δεσμή ενεργειών" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a resource file" msgstr "Δεν βασίζεται σε αρχείο πόρων" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (missing @path)" msgstr "Άκυρη μορφή λεξικού στιγμιοτύπων (λείπει το @path)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (can't load script at @path)" msgstr "" "Άκυρη μορφή λεξικού στιγμιοτύπων (αδύνατη η φόρτωση της δεσμής ενεργειών στο " "@path)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (invalid script at @path)" msgstr "Άκυρη μορφή λεξικού στιγμιοτύπων (Μη έγκυρη δεσμή ενεργειών στο @path)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary (invalid subclasses)" msgstr "Άκυρη μορφή λεξικού στιγμιοτύπων (άκυρες υπό-κλάσεις)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Object can't provide a length." msgstr "Το αντικείμενο δεν έχει μήκος." @@ -6870,18 +7050,26 @@ msgid "GridMap Duplicate Selection" msgstr "GridMap Διπλασιασμός επιλογής" #: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Floor:" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +#, fuzzy +msgid "Grid Map" +msgstr "Κούμπωμα στο πλέγμα" + +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Snap View" msgstr "Κούμπωμα όψης" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy -msgid "Prev Level (%sDown Wheel)" -msgstr "Προηγούμενο επίπεδο (" +msgid "Previous Floor" +msgstr "Προηγούμενη καρτέλα" #: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy -msgid "Next Level (%sUp Wheel)" -msgstr "Επόμενο επίπεδο (" +msgid "Next Floor" +msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clip Disabled" @@ -6948,12 +7136,9 @@ msgid "Erase Area" msgstr "Διαγραφή περσιοχής" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Selection -> Duplicate" -msgstr "Επιλογή -> Διπλασιασμός" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Selection -> Clear" -msgstr "Επιλογή -> Εκκαθάριση" +#, fuzzy +msgid "Clear Selection" +msgstr "Κεντράρισμα επιλογής" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Settings" @@ -6965,7 +7150,7 @@ msgstr "Επιλογή απόστασης:" #: modules/mono/editor/mono_bottom_panel.cpp msgid "Builds" -msgstr "" +msgstr "Δόμηση" #: modules/visual_script/visual_script.cpp msgid "" @@ -7082,7 +7267,8 @@ msgid "Duplicate VisualScript Nodes" msgstr "Διπλασιασμός κόμβων VisualScript" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Getter. Hold Shift to drop a generic signature." +#, fuzzy +msgid "Hold %s to drop a Getter. Hold Shift to drop a generic signature." msgstr "" "Πατήστε παρατεταμένα το κουμπί Meta για να προσθέσετε έναν Getter. Πατήστε " "παρατεταμένα το Shift για να προσθέσετε μία γενική υπογραφή." @@ -7094,7 +7280,8 @@ msgstr "" "παρατεταμένα το Shift για να προσθέσετε μία γενική υπογραφή." #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a simple reference to the node." +#, fuzzy +msgid "Hold %s to drop a simple reference to the node." msgstr "" "Πατήστε παρατεταμένα το κουμπί Meta για να προσθέσετε μία απλή αναφορά στον " "κόμβο." @@ -7105,7 +7292,8 @@ msgstr "" "Πατήστε παρατεταμένα το Ctrl για να προσθέσετε μία απλή αναφορά στον κόμβο." #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Variable Setter." +#, fuzzy +msgid "Hold %s to drop a Variable Setter." msgstr "" "Πατήστε παρατεταμένα το κουμπί Meta για να προσθέσετε έναν Setter μεταβλητής." @@ -7179,7 +7367,7 @@ msgstr "Πάρε" #: modules/visual_script/visual_script_editor.cpp msgid "Script already has function '%s'" -msgstr "" +msgstr "Η δεσμή ενεργειών έχει ήδη συνάρτηση '%s'" #: modules/visual_script/visual_script_editor.cpp msgid "Change Input Value" @@ -7335,12 +7523,23 @@ msgid "Could not write file:\n" msgstr "Δεν ήταν δυνατό το γράψιμο στο αρχείο:\n" #: platform/javascript/export/export.cpp -msgid "Could not read file:\n" +msgid "Could not open template for export:\n" +msgstr "Δεν ήταν δυνατό το άνοιγμα προτύπου για εξαγωγή:\n" + +#: platform/javascript/export/export.cpp +#, fuzzy +msgid "Invalid export template:\n" +msgstr "Εγκατάσταση προτύπων εξαγωγής" + +#: platform/javascript/export/export.cpp +#, fuzzy +msgid "Could not read custom HTML shell:\n" msgstr "Δεν ήταν δυνατή η ανάγνωση του αρχείου:\n" #: platform/javascript/export/export.cpp -msgid "Could not open template for export:\n" -msgstr "Δεν ήταν δυνατό το άνοιγμα προτύπου για εξαγωγή:\n" +#, fuzzy +msgid "Could not read boot splash image file:\n" +msgstr "Δεν ήταν δυνατή η ανάγνωση του αρχείου:\n" #: scene/2d/animated_sprite.cpp msgid "" @@ -7463,22 +7662,6 @@ msgstr "" "Η ιδιότητα Path πρέπει να δείχνει σε έναν έγκυρο κόμβο Node2D για να " "δουλέψει." -#: 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 σε " -"λειτουργία '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 "" -"Το Viewport που ορίστηκε στην ιδιότητα 'path' πρέπει να είναι σε λειτουργία " -"'render target' για να δουλέψει αυτό to sprite." - #: scene/2d/visibility_notifier_2d.cpp msgid "" "VisibilityEnable2D works best when used with the edited scene root directly " @@ -7553,6 +7736,15 @@ msgstr "" "Ένα σχήμα πρέπει να δοθεί στο CollisionShape για να λειτουργήσει. " "Δημιουργήστε ένα πόρο σχήματος για αυτό!" +#: scene/3d/gi_probe.cpp +#, fuzzy +msgid "Plotting Meshes" +msgstr "Συνδυασμός εικόνων" + +#: scene/3d/gi_probe.cpp +msgid "Finishing Plot" +msgstr "" + #: scene/3d/navigation_mesh.cpp msgid "A NavigationMesh resource must be set or created for this node to work." msgstr "" @@ -7609,6 +7801,8 @@ msgid "" "VehicleWheel serves to provide a wheel system to a VehicleBody. Please use " "it as a child of a VehicleBody." msgstr "" +"Το VehicleWheel δίνει ένα σύστημα τροχών για το VehicleBody. Παρακαλούμε " +"χρησιμοποιήστε το ως παιδί του VehicleBody." #: scene/gui/color_picker.cpp msgid "Raw Mode" @@ -7651,6 +7845,10 @@ msgstr "" "Χρησιμοποιήστε ένα container ως παιδί (VBox, HBox, κτλ), ή ένα Control και " "ορίστε το προσαρμοσμένο ελάχιστο μέγεθος χειροκίνητα." +#: scene/gui/tree.cpp +msgid "(Other)" +msgstr "" + #: scene/main/scene_tree.cpp msgid "" "Default Environment as specified in Project Setings (Rendering -> Viewport -" @@ -7687,6 +7885,69 @@ msgstr "Σφάλμα κατά την φόρτωση της γραμματοσε msgid "Invalid font size." msgstr "Μη έγκυρο μέγεθος γραμματοσειράς." +#~ msgid "Cannot navigate to '" +#~ msgstr "Αδύνατη η πλοήγηση στο '" + +#~ msgid "" +#~ "\n" +#~ "Source: " +#~ msgstr "" +#~ "\n" +#~ "Πηγή: " + +#~ msgid "Remove Point from Line2D" +#~ msgstr "Διαγραφή σημείου από την δισδιάστατη γραμμή" + +#~ msgid "Add Point to Line2D" +#~ msgstr "Πρόσθεσε σημείο στην δισδυάστατη γραμμή" + +#~ msgid "Move Point in Line2D" +#~ msgstr "Μετακίινηση σημείου στην δισδιάστατη γραμμή" + +#~ msgid "Split Segment (in line)" +#~ msgstr "Διαχωρισμός τμήματος (στη γραμμή)" + +#~ msgid "Meta+" +#~ msgstr "Meta+" + +#~ msgid "Setting '" +#~ msgstr "Ρυθμίση '" + +#~ msgid "Remote Inspector" +#~ msgstr "Απομακρυσμένος επιθεωρητής" + +#~ msgid "Live Scene Tree:" +#~ msgstr "Ζωντανό δέντρο σκηνής:" + +#~ msgid "Remote Object Properties: " +#~ msgstr "Απομακρυσμένες ιδιότητες αντικειμένου: " + +#~ msgid "Prev Level (%sDown Wheel)" +#~ msgstr "Προηγούμενο επίπεδο (%sΚάτω Ροδέλα)" + +#~ msgid "Next Level (%sUp Wheel)" +#~ msgstr "Επόμενο επίπεδο (%sΠάνω ροδέλα)" + +#~ msgid "Selection -> Duplicate" +#~ msgstr "Επιλογή -> Διπλασιασμός" + +#~ msgid "Selection -> Clear" +#~ msgstr "Επιλογή -> Εκκαθάριση" + +#~ msgid "" +#~ "Path property must point to a valid Viewport node to work. Such Viewport " +#~ "must be set to 'render target' mode." +#~ msgstr "" +#~ "Η ιδιότητα Path πρέπει να δείχνει σε έναν έγκυρο κόμβο τύπου Viewport σε " +#~ "λειτουργία 'render target' για να δουλέψει." + +#~ msgid "" +#~ "The Viewport set in the path property must be set as 'render target' in " +#~ "order for this sprite to work." +#~ msgstr "" +#~ "Το Viewport που ορίστηκε στην ιδιότητα 'path' πρέπει να είναι σε " +#~ "λειτουργία 'render target' για να δουλέψει αυτό to sprite." + #~ msgid "Filter:" #~ msgstr "Φίλτρο:" @@ -7711,9 +7972,6 @@ msgstr "Μη έγκυρο μέγεθος γραμματοσειράς." #~ msgid "Removed:" #~ msgstr "Αφαιρέθηκαν:" -#~ msgid "Error saving atlas:" -#~ msgstr "Σφάλμα κατά την αποθήκευση άτλαντα:" - #~ msgid "Could not save atlas subtexture:" #~ msgstr "Αδύνατη η αποθήκευση υπό-εικόνας άτλαντα:" @@ -8106,9 +8364,6 @@ msgstr "Μη έγκυρο μέγεθος γραμματοσειράς." #~ msgid "Cropping Images" #~ msgstr "Περικοπή Εικόνων" -#~ msgid "Blitting Images" -#~ msgstr "Συνδυασμός εικόνων" - #~ msgid "Couldn't save atlas image:" #~ msgstr "Δεν ήταν δυνατή η αποθήκευση εικόνας άτλαντα:" @@ -8487,6 +8742,3 @@ msgstr "Μη έγκυρο μέγεθος γραμματοσειράς." #~ msgid "Save Translatable Strings" #~ msgstr "Αποθήκευση μεταφράσιμων συμβολοσειρών" - -#~ msgid "Install Export Templates" -#~ msgstr "Εγκατάσταση προτύπων εξαγωγής" diff --git a/editor/translations/es.po b/editor/translations/es.po index dd4b811bff..10a535f20d 100644 --- a/editor/translations/es.po +++ b/editor/translations/es.po @@ -9,7 +9,7 @@ # Carlos López <genetita@gmail.com>, 2016. # Lisandro Lorea <lisandrolorea@gmail.com>, 2016-2017. # Rabid Orange <theorangerabid@gmail.com>, 2017. -# Roger BR <drai_kin@hotmail.com>, 2016. +# Roger Blanco Ribera <roger.blancoribera@gmail.com>, 2016-2017. # Sebastian Silva <sebastian@fuentelibre.org>, 2016. # Swyter <swyterzone@gmail.com>, 2016-2017. # @@ -17,8 +17,8 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2017-10-23 01:48+0000\n" -"Last-Translator: Lisandro Lorea <lisandrolorea@gmail.com>\n" +"PO-Revision-Date: 2017-11-18 08:50+0000\n" +"Last-Translator: Roger Blanco Ribera <roger.blancoribera@gmail.com>\n" "Language-Team: Spanish <https://hosted.weblate.org/projects/godot-engine/" "godot/es/>\n" "Language: es\n" @@ -26,7 +26,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 2.17\n" +"X-Generator: Weblate 2.18-dev\n" #: editor/animation_editor.cpp msgid "Disabled" @@ -110,6 +110,7 @@ msgid "Anim Delete Keys" msgstr "Borrar claves de animación" #: editor/animation_editor.cpp editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Duplicate Selection" msgstr "Duplicar selección" @@ -650,6 +651,13 @@ msgstr "Editor de dependencias" msgid "Search Replacement Resource:" msgstr "Buscar reemplazo de recurso:" +#: editor/dependency_editor.cpp editor/editor_file_dialog.cpp +#: editor/editor_help.cpp editor/editor_node.cpp editor/filesystem_dock.cpp +#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp +#: editor/quick_open.cpp scene/gui/file_dialog.cpp +msgid "Open" +msgstr "Abrir" + #: editor/dependency_editor.cpp msgid "Owners Of:" msgstr "Dueños de:" @@ -726,6 +734,16 @@ msgstr "¿Quieres eliminar los archivos seleccionados?" msgid "Delete" msgstr "Eliminar" +#: editor/dictionary_property_edit.cpp +#, fuzzy +msgid "Change Dictionary Key" +msgstr "Cambiar nombre de animación:" + +#: editor/dictionary_property_edit.cpp +#, fuzzy +msgid "Change Dictionary Value" +msgstr "Cambiar valor del «array»" + #: editor/editor_about.cpp msgid "Thanks from the Godot community!" msgstr "¡Muchas gracias de parte de la comunidad de Godot!" @@ -1191,12 +1209,6 @@ msgstr "Reconocidos" msgid "All Files (*)" msgstr "Todos los archivos (*)" -#: editor/editor_file_dialog.cpp editor/editor_help.cpp editor/editor_node.cpp -#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_selector.cpp editor/quick_open.cpp scene/gui/file_dialog.cpp -msgid "Open" -msgstr "Abrir" - #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Open a File" msgstr "Abrir un archivo" @@ -1571,6 +1583,13 @@ msgid "" msgstr "" #: editor/editor_node.cpp +msgid "" +"This is a remote object so changes to it will not be kept.\n" +"Please read the documentation relevant to debugging to better understand " +"this workflow." +msgstr "" + +#: editor/editor_node.cpp msgid "Copy Params" msgstr "Copiar parámetros" @@ -1696,6 +1715,11 @@ msgid "Export Mesh Library" msgstr "Exportar biblioteca de modelos" #: editor/editor_node.cpp +#, fuzzy +msgid "This operation can't be done without a root node." +msgstr "Esta operación no puede realizarse sin una escena." + +#: editor/editor_node.cpp msgid "Export Tile Set" msgstr "Exportar Tile Set" @@ -1841,12 +1865,23 @@ msgid "Switch Scene Tab" msgstr "Cambiar pestaña de escena" #: editor/editor_node.cpp -msgid "%d more file(s)" +#, fuzzy +msgid "%d more files or folders" +msgstr "%d archivos o carpetas más" + +#: editor/editor_node.cpp +#, fuzzy +msgid "%d more folders" msgstr "%d archivos más" #: editor/editor_node.cpp -msgid "%d more file(s) or folder(s)" -msgstr "%d archivos o carpetas más" +#, fuzzy +msgid "%d more files" +msgstr "%d archivos más" + +#: editor/editor_node.cpp +msgid "Dock Position" +msgstr "" #: editor/editor_node.cpp msgid "Distraction Free Mode" @@ -1858,6 +1893,11 @@ msgid "Toggle distraction-free mode." msgstr "Modo sin distracciones" #: editor/editor_node.cpp +#, fuzzy +msgid "Add a new scene." +msgstr "Añadir nuevas pistas." + +#: editor/editor_node.cpp msgid "Scene" msgstr "Escena" @@ -1924,13 +1964,12 @@ msgid "TileSet.." msgstr "TileSet.." #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp -#: scene/gui/text_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Undo" msgstr "Deshacer" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp +#: scene/gui/line_edit.cpp msgid "Redo" msgstr "Rehacer" @@ -2455,6 +2494,11 @@ msgid "(Current)" msgstr "Actual:" #: editor/export_template_manager.cpp +#, fuzzy +msgid "Retrieving mirrors, please wait.." +msgstr "Error de conexion, por favor intente otra vez." + +#: editor/export_template_manager.cpp msgid "Remove template version '%s'?" msgstr "Eliminar diseño de versión '%s'?" @@ -2493,6 +2537,112 @@ msgid "Importing:" msgstr "Importando:" #: editor/export_template_manager.cpp +msgid "" +"No download links found for this version. Direct download is only available " +"for official releases." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't resolve." +msgstr "No se ha podido resolver." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't connect." +msgstr "No se puede conectar." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "No response." +msgstr "No responde." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Req. Failed." +msgstr "Solicitud fallida." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Redirect Loop." +msgstr "Bucle de redireccionamiento." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Failed:" +msgstr "Fallido:" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't write file." +msgstr "No se pudo cargar el tile:" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Download Complete." +msgstr "Error de Descarga" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Error requesting url: " +msgstr "Error al guardar atlas:" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connecting to Mirror.." +msgstr "Conectando.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Disconnected" +msgstr "Desconectar" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Resolving" +msgstr "Resolviendo…" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't Resolve" +msgstr "No se ha podido resolver." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Connecting.." +msgstr "Conectando.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't Conect" +msgstr "No se puede conectar." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connected" +msgstr "Conectar" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Requesting.." +msgstr "Solicitando.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Downloading" +msgstr "Abajo" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connection Error" +msgstr "Conectando.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "SSL Handshake Error" +msgstr "Errores de carga" + +#: editor/export_template_manager.cpp #, fuzzy msgid "Current Version:" msgstr "Escena actual" @@ -2522,6 +2672,16 @@ msgstr "¿Quieres eliminar los archivos seleccionados?" msgid "Export Template Manager" msgstr "Cargando plantillas de exportación" +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Download Templates" +msgstr "Remover Item" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Select mirror from list: " +msgstr "Seleccionar dispositivo de la lista" + #: editor/file_type_cache.cpp msgid "Can't open file_type_cache.cch for writing, not saving file type cache!" msgstr "" @@ -2529,8 +2689,8 @@ msgstr "" "de tipos de archivo!" #: editor/filesystem_dock.cpp -msgid "Cannot navigate to '" -msgstr "No se puede navegar a '" +msgid "Cannot navigate to '%s' as it has not been found in the file system!" +msgstr "" #: editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails" @@ -2548,13 +2708,6 @@ msgstr "" #: editor/filesystem_dock.cpp #, fuzzy -msgid "" -"\n" -"Source: " -msgstr "Fuente:" - -#: editor/filesystem_dock.cpp -#, fuzzy msgid "Cannot move/rename resources root." msgstr "No se puede cargar/procesar la tipografía elegida." @@ -2839,8 +2992,8 @@ msgid "Remove Poly And Point" msgstr "Quitar polígono y punto" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." +#, fuzzy +msgid "Create a new polygon from scratch" msgstr "Crea un nuevo polígono desde cero." #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -2855,6 +3008,11 @@ msgstr "" "Control + Click izquierdo: Dividir segmento.\n" "Click derecho: Borrar punto." +#: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy +msgid "Delete points" +msgstr "Eliminar punto" + #: editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" msgstr "Des/activar reproducción automática" @@ -3193,18 +3351,10 @@ msgid "Can't resolve hostname:" msgstr "No se ha podido resolver el nombre de Dominio:" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't resolve." -msgstr "No se ha podido resolver." - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Connection error, please try again." msgstr "Error de conexion, por favor intente otra vez." #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't connect." -msgstr "No se puede conectar." - -#: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy msgid "Can't connect to host:" msgstr "No se puede conectar al host:" @@ -3214,32 +3364,16 @@ msgid "No response from host:" msgstr "No hay respuesta desde el host:" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "No response." -msgstr "No responde." - -#: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy msgid "Request failed, return code:" msgstr "Petición falida, código de retorno:" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Req. Failed." -msgstr "Solicitud fallida." - -#: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy msgid "Request failed, too many redirects" msgstr "Petición fallida, demasiadas redirecciones" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Redirect Loop." -msgstr "Bucle de redireccionamiento." - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Failed:" -msgstr "Fallido:" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Bad download hash, assuming file has been tampered with." msgstr "Error de descarga, al pareser el archivo ha sido manipulado." @@ -3264,17 +3398,8 @@ msgid "Fetching:" msgstr "Buscando:" #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Resolving.." -msgstr "Guardando…" - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Connecting.." -msgstr "Conectando.." - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Requesting.." -msgstr "Solicitando.." +msgstr "Resolviendo…" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Error making request" @@ -3389,6 +3514,39 @@ msgid "Move Action" msgstr "Mover acción" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create new vertical guide" +msgstr "Crear script" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove vertical guide" +msgstr "Quitar variable" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Move horizontal guide" +msgstr "Mover Punto en Curva" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create new horizontal guide" +msgstr "Crear script" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove horizontal guide" +msgstr "Quitar claves incorrectas" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new horizontal and vertical guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Edit IK Chain" msgstr "Editar Cadena IK" @@ -3520,10 +3678,17 @@ msgid "Snap to other nodes" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Snap to guides" +msgstr "Modo de fijado:" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Lock the selected object in place (can't be moved)." msgstr "Inmovilizar el objeto." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Unlock the selected object (can be moved)." msgstr "Liberar el objeto." @@ -3577,6 +3742,11 @@ msgid "Show rulers" msgstr "Crear huesos" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Show guides" +msgstr "Crear huesos" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Selection" msgstr "Centrar selección" @@ -3781,6 +3951,10 @@ msgstr "Cambiar tangente de curva lineal" msgid "Hold Shift to edit tangents individually" msgstr "Mantén Mayus para editar las tangentes individualmente" +#: editor/plugins/gi_probe_editor_plugin.cpp +msgid "Bake GI Probe" +msgstr "" + #: editor/plugins/gradient_editor_plugin.cpp #, fuzzy msgid "Add/Remove Color Ramp Point" @@ -3816,6 +3990,10 @@ msgid "Create Occluder Polygon" msgstr "Crear polígono oclusor" #: editor/plugins/light_occluder_2d_editor_plugin.cpp +msgid "Create a new polygon from scratch." +msgstr "Crea un nuevo polígono desde cero." + +#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Edit existing polygon:" msgstr "Editar polígono existente:" @@ -3831,63 +4009,6 @@ msgstr "Ctrl + LMB: Partir segmento." msgid "RMB: Erase Point." msgstr "Clic derecho: Borrar punto." -#: editor/plugins/line_2d_editor_plugin.cpp -#, fuzzy -msgid "Remove Point from Line2D" -msgstr "Borrar punto de curva" - -#: editor/plugins/line_2d_editor_plugin.cpp -#, fuzzy -msgid "Add Point to Line2D" -msgstr "Añadir punto a curva" - -#: editor/plugins/line_2d_editor_plugin.cpp -#, fuzzy -msgid "Move Point in Line2D" -msgstr "Mover Punto en Curva" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Select Points" -msgstr "Seleccionar puntos" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Shift+Drag: Select Control Points" -msgstr "Mayús + arrastrar: Seleccionar puntos de control" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -#, fuzzy -msgid "Click: Add Point" -msgstr "Clic: Añadir punto" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Right Click: Delete Point" -msgstr "Clic derecho: Eliminar punto" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Add Point (in empty space)" -msgstr "Añadir punto (en espacio vacío)" - -#: editor/plugins/line_2d_editor_plugin.cpp -#, fuzzy -msgid "Split Segment (in line)" -msgstr "Dividir segmento (en curva)" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Delete Point" -msgstr "Eliminar punto" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "¡El modelo está vacío!" @@ -4318,16 +4439,47 @@ msgid "Move Out-Control in Curve" msgstr "Mover Out-Control en Curva" #: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Select Points" +msgstr "Seleccionar puntos" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Shift+Drag: Select Control Points" +msgstr "Mayús + arrastrar: Seleccionar puntos de control" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +#, fuzzy +msgid "Click: Add Point" +msgstr "Clic: Añadir punto" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Right Click: Delete Point" +msgstr "Clic derecho: Eliminar punto" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Select Control Points (Shift+Drag)" msgstr "Seleccionar puntos de control (Mayús + arrastrar)" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Add Point (in empty space)" +msgstr "Añadir punto (en espacio vacío)" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Split Segment (in curve)" msgstr "Dividir segmento (en curva)" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Delete Point" +msgstr "Eliminar punto" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Close Curve" msgstr "Cerrar curva" @@ -4469,7 +4621,6 @@ msgstr "Cargar recurso" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Paste" @@ -4517,6 +4668,21 @@ msgid " Class Reference" msgstr " Referencia de clase" #: editor/plugins/script_editor_plugin.cpp +#, fuzzy +msgid "Sort" +msgstr "Ordenar:" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Up" +msgstr "Subir" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Down" +msgstr "Bajar" + +#: editor/plugins/script_editor_plugin.cpp msgid "Next script" msgstr "Script siguiente" @@ -4569,6 +4735,10 @@ msgstr "Cerrar documentación" msgid "Close All" msgstr "Cerrar" +#: editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "Ejecutar" @@ -4580,13 +4750,11 @@ msgstr "Añadir/quitar favorito" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find.." msgstr "Buscar.." #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Next" msgstr "Buscar siguiente" @@ -4698,35 +4866,24 @@ msgstr "Minúscula" #: editor/plugins/script_text_editor.cpp msgid "Capitalize" -msgstr "Insertar mayúsculas" +msgstr "Convertir en Mayúsculas" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" msgstr "Cortar" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Copy" msgstr "Copiar" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Select All" msgstr "Seleccionar todo" -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Up" -msgstr "Subir" - -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Down" -msgstr "Bajar" - #: editor/plugins/script_text_editor.cpp #, fuzzy msgid "Delete Line" @@ -4749,6 +4906,23 @@ msgid "Clone Down" msgstr "Clonar hacia abajo" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Fold Line" +msgstr "Ir a línea" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold Line" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Fold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Complete Symbol" msgstr "Completar símbolo" @@ -4797,12 +4971,10 @@ msgid "Convert To Lowercase" msgstr "Convertir a…" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Previous" msgstr "Buscar anterior" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Replace.." msgstr "Reemplazar.." @@ -4811,7 +4983,6 @@ msgid "Goto Function.." msgstr "Ir a función.." #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Goto Line.." msgstr "Ir a línea.." @@ -4978,6 +5149,16 @@ msgid "View Plane Transform." msgstr "Ver transformación en plano." #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Scaling: " +msgstr "Escala:" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Translating: " +msgstr "Traducciones:" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Rotating %s degrees." msgstr "Girando %s grados." @@ -5064,6 +5245,10 @@ msgid "Vertices" msgstr "Vértice" #: editor/plugins/spatial_editor_plugin.cpp +msgid "FPS" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Align with view" msgstr "Alinear con vista" @@ -5099,6 +5284,16 @@ msgid "View Information" msgstr "Ver información" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "View FPS" +msgstr "Ver Archivos" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Half Resolution" +msgstr "Escalar selección" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Audio Listener" msgstr "Oyente de Audio" @@ -5242,6 +5437,11 @@ msgid "Tool Scale" msgstr "Escala:" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Toggle Freelook" +msgstr "Modo pantalla completa" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Transform" msgstr "Transformar" @@ -5521,6 +5721,11 @@ msgid "Create Empty Editor Template" msgstr "Crear plantilla de editor vacía" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Create From Current Editor Theme" +msgstr "Crear plantilla de editor vacía" + +#: editor/plugins/theme_editor_plugin.cpp msgid "CheckBox Radio1" msgstr "CheckBox Radio1" @@ -5701,7 +5906,7 @@ msgstr "Activar" #: editor/project_export.cpp #, fuzzy -msgid "Delete patch '" +msgid "Delete patch '%s' from list?" msgstr "Eliminar entrada" #: editor/project_export.cpp @@ -6038,10 +6243,6 @@ msgid "Add Input Action Event" msgstr "Añadir evento de acción de entrada" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Meta+" -msgstr "Meta+" - -#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp msgid "Shift+" msgstr "Mayús+" @@ -6169,13 +6370,12 @@ msgstr "¡Selecciona un item primero!" #: editor/project_settings_editor.cpp #, fuzzy -msgid "No property '" +msgid "No property '%s' exists." msgstr "Propiedad:" #: editor/project_settings_editor.cpp -#, fuzzy -msgid "Setting '" -msgstr "Ajustes" +msgid "Setting '%s' is internal, and it can't be deleted." +msgstr "" #: editor/project_settings_editor.cpp #, fuzzy @@ -6429,9 +6629,8 @@ msgid "Sections:" msgstr "Selecciones:" #: editor/property_selector.cpp -#, fuzzy msgid "Select Property" -msgstr "Seleccionar puntos" +msgstr "Seleccionar Propiedad" #: editor/property_selector.cpp #, fuzzy @@ -6678,6 +6877,16 @@ msgid "Clear a script for the selected node." msgstr "Crear un nuevo script para el nodo seleccionado." #: editor/scene_tree_dock.cpp +#, fuzzy +msgid "Remote" +msgstr "Quitar" + +#: editor/scene_tree_dock.cpp +#, fuzzy +msgid "Local" +msgstr "Idioma" + +#: editor/scene_tree_dock.cpp msgid "Clear Inheritance? (No Undo!)" msgstr "¿Quieres limpiar la herencia? (No se puede deshacer)" @@ -6694,9 +6903,8 @@ msgid "Toggle CanvasItem Visible" msgstr "Act/Desact. CanvasItem Visible" #: editor/scene_tree_editor.cpp -#, fuzzy msgid "Node configuration warning:" -msgstr "Alerta de configuración de Nodos:" +msgstr "Alerta de configuración de nodos:" #: editor/scene_tree_editor.cpp #, fuzzy @@ -6892,6 +7100,11 @@ msgid "Attach Node Script" msgstr "Crear script de nodo" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Remote " +msgstr "Quitar" + +#: editor/script_editor_debugger.cpp msgid "Bytes:" msgstr "Bytes:" @@ -6948,18 +7161,6 @@ msgid "Stack Trace (if applicable):" msgstr "Stack Trace (si aplica):" #: editor/script_editor_debugger.cpp -msgid "Remote Inspector" -msgstr "Inspector Remoto" - -#: editor/script_editor_debugger.cpp -msgid "Live Scene Tree:" -msgstr "Árbol de Escenas en Vivo:" - -#: editor/script_editor_debugger.cpp -msgid "Remote Object Properties: " -msgstr "Propiedades de Objeto Remoto: " - -#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "Profiler" @@ -7094,57 +7295,57 @@ msgstr "" msgid "GDNative" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Invalid type argument to convert(), use TYPE_* constants." msgstr "" "El argumento para convert() no es correcto, prueba utilizando constantes " "TYPE_*." -#: modules/gdscript/gd_functions.cpp modules/mono/glue/glue_header.h +#: modules/gdscript/gdscript_functions.cpp modules/mono/glue/glue_header.h #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Not enough bytes for decoding bytes, or invalid format." msgstr "" "O no hay suficientes bytes para decodificar bytes o el formato no es " "correcto." -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "step argument is zero!" msgstr "¡El argumento «step» es cero!" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not a script with an instance" msgstr "No es un script con una instancia" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a script" msgstr "No está basado en un script" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a resource file" msgstr "No está basado en un archivo de recursos" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (missing @path)" msgstr "El formato de diccionario de instancias no es correcto (falta @path)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (can't load script at @path)" msgstr "" "El formato de diccionario de instancias no es correcto (no se puede cargar " "el script en @path)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (invalid script at @path)" msgstr "" "El formato de diccionario de instancias no es correcto (script incorrecto en " "@path)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary (invalid subclasses)" msgstr "El diccionario de instancias no es correcto (subclases erróneas)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Object can't provide a length." msgstr "El objeto no puede proporcionar una longitud." @@ -7159,19 +7360,27 @@ msgid "GridMap Duplicate Selection" msgstr "Duplicar selección" #: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Floor:" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +#, fuzzy +msgid "Grid Map" +msgstr "Adherir a cuadrícula" + +#: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy msgid "Snap View" msgstr "Vista superior" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy -msgid "Prev Level (%sDown Wheel)" -msgstr "Nivel anterior (" +msgid "Previous Floor" +msgstr "Pestaña anterior" #: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy -msgid "Next Level (%sUp Wheel)" -msgstr "Siguiente nivel (" +msgid "Next Floor" +msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy @@ -7252,13 +7461,8 @@ msgstr "Borrar TileMap" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy -msgid "Selection -> Duplicate" -msgstr "Sólo selección" - -#: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy -msgid "Selection -> Clear" -msgstr "Sólo selección" +msgid "Clear Selection" +msgstr "Centrar selección" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy @@ -7397,7 +7601,8 @@ msgid "Duplicate VisualScript Nodes" msgstr "Duplicar Nodo(s) de Gráfico" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Getter. Hold Shift to drop a generic signature." +#, fuzzy +msgid "Hold %s to drop a Getter. Hold Shift to drop a generic signature." msgstr "" "Mantén pulsado Meta para quitar un «Setter». Mantén pulsado Mayús para " "quitar una firma genérica." @@ -7409,7 +7614,8 @@ msgstr "" "quitar una firma genérica." #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a simple reference to the node." +#, fuzzy +msgid "Hold %s to drop a simple reference to the node." msgstr "Mantén pulsado Meta para quitar una referencia simple del nodo." #: modules/visual_script/visual_script_editor.cpp @@ -7417,7 +7623,8 @@ msgid "Hold Ctrl to drop a simple reference to the node." msgstr "Mantén pulsado Ctrl para quitar una referencia simple del nodo." #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Variable Setter." +#, fuzzy +msgid "Hold %s to drop a Variable Setter." msgstr "Mantén pulsado Meta para quitar un «Setter» de variable." #: modules/visual_script/visual_script_editor.cpp @@ -7667,13 +7874,23 @@ msgstr "No se pudo cargar el tile:" #: platform/javascript/export/export.cpp #, fuzzy -msgid "Could not read file:\n" +msgid "Could not open template for export:\n" +msgstr "No se pudo crear la carpeta." + +#: platform/javascript/export/export.cpp +#, fuzzy +msgid "Invalid export template:\n" +msgstr "Instalar plantillas de exportación" + +#: platform/javascript/export/export.cpp +#, fuzzy +msgid "Could not read custom HTML shell:\n" msgstr "No se pudo cargar el tile:" #: platform/javascript/export/export.cpp #, fuzzy -msgid "Could not open template for export:\n" -msgstr "No se pudo crear la carpeta." +msgid "Could not read boot splash image file:\n" +msgstr "No se pudo cargar el tile:" #: scene/2d/animated_sprite.cpp msgid "" @@ -7794,22 +8011,6 @@ msgstr "" msgid "Path property must point to a valid Node2D node to work." msgstr "La propiedad Path debe apuntar a un nodo Node2D válido para funcionar." -#: 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 "" -"La propiedad Path debe apuntar a un nodo Viewport válido para funcionar. " -"Dicho Viewport debe ser seteado a modo '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 "" -"El Viewport seteado en la propiedad path debe ser seteado como 'render " -"target' para que este sprite funcione." - #: scene/2d/visibility_notifier_2d.cpp msgid "" "VisibilityEnable2D works best when used with the edited scene root directly " @@ -7884,6 +8085,15 @@ msgstr "" "Se debe proveer un shape para que CollisionShape funcione. Creale un recurso " "shape!" +#: scene/3d/gi_probe.cpp +#, fuzzy +msgid "Plotting Meshes" +msgstr "Copiando datos de imágenes" + +#: scene/3d/gi_probe.cpp +msgid "Finishing Plot" +msgstr "" + #: scene/3d/navigation_mesh.cpp msgid "A NavigationMesh resource must be set or created for this node to work." msgstr "" @@ -7986,8 +8196,11 @@ msgstr "" "Usa un container como hijo (VBox,HBox,etc), o un Control y ajusta el tamaño " "mínimo personalizado manualmente." +#: scene/gui/tree.cpp +msgid "(Other)" +msgstr "" + #: scene/main/scene_tree.cpp -#, fuzzy msgid "" "Default Environment as specified in Project Setings (Rendering -> Viewport -" "> Default Environment) could not be loaded." @@ -8023,6 +8236,77 @@ msgstr "Error al cargar la tipografía." msgid "Invalid font size." msgstr "Tamaño de tipografía incorrecto." +#~ msgid "Cannot navigate to '" +#~ msgstr "No se puede navegar a '" + +#, fuzzy +#~ msgid "" +#~ "\n" +#~ "Source: " +#~ msgstr "Fuente:" + +#, fuzzy +#~ msgid "Remove Point from Line2D" +#~ msgstr "Borrar punto de curva" + +#, fuzzy +#~ msgid "Add Point to Line2D" +#~ msgstr "Añadir punto a curva" + +#, fuzzy +#~ msgid "Move Point in Line2D" +#~ msgstr "Mover Punto en Curva" + +#, fuzzy +#~ msgid "Split Segment (in line)" +#~ msgstr "Dividir segmento (en curva)" + +#~ msgid "Meta+" +#~ msgstr "Meta+" + +#, fuzzy +#~ msgid "Setting '" +#~ msgstr "Ajustes" + +#~ msgid "Remote Inspector" +#~ msgstr "Inspector Remoto" + +#~ msgid "Live Scene Tree:" +#~ msgstr "Árbol de Escenas en Vivo:" + +#~ msgid "Remote Object Properties: " +#~ msgstr "Propiedades de Objeto Remoto: " + +#, fuzzy +#~ msgid "Prev Level (%sDown Wheel)" +#~ msgstr "Nivel anterior (" + +#, fuzzy +#~ msgid "Next Level (%sUp Wheel)" +#~ msgstr "Siguiente nivel (" + +#, fuzzy +#~ msgid "Selection -> Duplicate" +#~ msgstr "Sólo selección" + +#, fuzzy +#~ msgid "Selection -> Clear" +#~ msgstr "Sólo selección" + +#~ msgid "" +#~ "Path property must point to a valid Viewport node to work. Such Viewport " +#~ "must be set to 'render target' mode." +#~ msgstr "" +#~ "La propiedad Path debe apuntar a un nodo Viewport válido para funcionar. " +#~ "Dicho Viewport debe ser seteado a modo 'render target'." + +#~ msgid "" +#~ "The Viewport set in the path property must be set as 'render target' in " +#~ "order for this sprite to work." +#~ msgstr "" +#~ "El Viewport seteado en la propiedad path debe ser seteado como 'render " +#~ "target' para que este sprite funcione." + #~ msgid "Filter:" #~ msgstr "Filtro:" @@ -8049,9 +8333,6 @@ msgstr "Tamaño de tipografía incorrecto." #~ msgid "Removed:" #~ msgstr "Eliminado:" -#~ msgid "Error saving atlas:" -#~ msgstr "Error al guardar atlas:" - #~ msgid "Could not save atlas subtexture:" #~ msgstr "No se pudo guardar la subtextura del altas:" @@ -8446,9 +8727,6 @@ msgstr "Tamaño de tipografía incorrecto." #~ msgid "Cropping Images" #~ msgstr "Recortando imágenes" -#~ msgid "Blitting Images" -#~ msgstr "Copiando datos de imágenes" - #~ msgid "Couldn't save atlas image:" #~ msgstr "No se pudo guardar la imagen de atlas:" @@ -8860,9 +9138,6 @@ msgstr "Tamaño de tipografía incorrecto." #~ msgid "Save Translatable Strings" #~ msgstr "Guardar cadenas traducibles" -#~ msgid "Install Export Templates" -#~ msgstr "Instalar plantillas de exportación" - #~ msgid "Edit Script Options" #~ msgstr "Editar opciones de script" diff --git a/editor/translations/es_AR.po b/editor/translations/es_AR.po index 3d0c4ee410..2c3910fd42 100644 --- a/editor/translations/es_AR.po +++ b/editor/translations/es_AR.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2017-10-23 00:50+0000\n" +"PO-Revision-Date: 2017-11-01 18:55+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" @@ -103,6 +103,7 @@ msgid "Anim Delete Keys" msgstr "Borrar Claves de Anim" #: editor/animation_editor.cpp editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Duplicate Selection" msgstr "Duplicar Selección" @@ -637,6 +638,13 @@ msgstr "Editor de Dependencias" msgid "Search Replacement Resource:" msgstr "Buscar Reemplazo de Recurso:" +#: editor/dependency_editor.cpp editor/editor_file_dialog.cpp +#: editor/editor_help.cpp editor/editor_node.cpp editor/filesystem_dock.cpp +#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp +#: editor/quick_open.cpp scene/gui/file_dialog.cpp +msgid "Open" +msgstr "Abrir" + #: editor/dependency_editor.cpp msgid "Owners Of:" msgstr "Dueños De:" @@ -711,6 +719,16 @@ msgstr "Eliminar archivos seleccionados?" msgid "Delete" msgstr "Eliminar" +#: editor/dictionary_property_edit.cpp +#, fuzzy +msgid "Change Dictionary Key" +msgstr "Cambiar Nombre de Animación:" + +#: editor/dictionary_property_edit.cpp +#, fuzzy +msgid "Change Dictionary Value" +msgstr "Cambiar Valor del Array" + #: editor/editor_about.cpp msgid "Thanks from the Godot community!" msgstr "Gracias de parte de la comunidad Godot!" @@ -1136,12 +1154,6 @@ msgstr "Todas Reconocidas" msgid "All Files (*)" msgstr "Todos los Archivos (*)" -#: editor/editor_file_dialog.cpp editor/editor_help.cpp editor/editor_node.cpp -#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_selector.cpp editor/quick_open.cpp scene/gui/file_dialog.cpp -msgid "Open" -msgstr "Abrir" - #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Open a File" msgstr "Abrir un Archivo" @@ -1513,6 +1525,18 @@ msgstr "" "mejor este workflow." #: editor/editor_node.cpp +#, fuzzy +msgid "" +"This is a remote object so changes to it will not be kept.\n" +"Please read the documentation relevant to debugging to better understand " +"this workflow." +msgstr "" +"Este recurso pertenece a una escena que fue importada, por lo tanto no es " +"editable.\n" +"Por favor leé la documentación relevante a importar escenas para entender " +"mejor este workflow." + +#: editor/editor_node.cpp msgid "Copy Params" msgstr "Copiar Params" @@ -1633,6 +1657,11 @@ msgid "Export Mesh Library" msgstr "Exportar Librería de Meshes" #: editor/editor_node.cpp +#, fuzzy +msgid "This operation can't be done without a root node." +msgstr "Esta operación no puede hacerse sin un nodo seleccionado." + +#: editor/editor_node.cpp msgid "Export Tile Set" msgstr "Exportar Tile Set" @@ -1699,32 +1728,33 @@ msgid "Pick a Main Scene" msgstr "Elegí una Escena Principal" #: editor/editor_node.cpp -#, fuzzy msgid "Unable to enable addon plugin at: '%s' parsing of config failed." -msgstr "No se pudo activar el plugin de addon en : '" +msgstr "" +"No se pudo activar el plugin de addon en: '%s' falló el parseo de la " +"configuración." #: editor/editor_node.cpp -#, fuzzy msgid "Unable to find script field for addon plugin at: 'res://addons/%s'." msgstr "" "No se pudo encontrar el campo script para el plugin de addon en: 'res://" -"addons/" +"addons/%s'." #: editor/editor_node.cpp -#, fuzzy msgid "Unable to load addon script from path: '%s'." -msgstr "No se pudo cargar el script de addon desde la ruta: '" +msgstr "No se pudo cargar el script de addon desde la ruta: '%s'." #: editor/editor_node.cpp -#, fuzzy msgid "" "Unable to load addon script from path: '%s' Base type is not EditorPlugin." -msgstr "No se pudo cargar el script de addon desde la ruta: '" +msgstr "" +"No se pudo cargar el script de addon desde la ruta: El tipo base de '%s' no " +"es EditorPlugin." #: editor/editor_node.cpp -#, fuzzy msgid "Unable to load addon script from path: '%s' Script is not in tool mode." -msgstr "No se pudo cargar el script de addon desde la ruta: '" +msgstr "" +"No se pudo cargar el script de addon desde la ruta: El script '%s' no esta " +"en modo tool." #: editor/editor_node.cpp msgid "" @@ -1775,12 +1805,23 @@ msgid "Switch Scene Tab" msgstr "Cambiar Pestaña de Escena" #: editor/editor_node.cpp -msgid "%d more file(s)" +#, fuzzy +msgid "%d more files or folders" +msgstr "%d archivo(s) o carpeta(s) más" + +#: editor/editor_node.cpp +#, fuzzy +msgid "%d more folders" msgstr "%d archivo(s) más" #: editor/editor_node.cpp -msgid "%d more file(s) or folder(s)" -msgstr "%d archivo(s) o carpeta(s) más" +#, fuzzy +msgid "%d more files" +msgstr "%d archivo(s) más" + +#: editor/editor_node.cpp +msgid "Dock Position" +msgstr "" #: editor/editor_node.cpp msgid "Distraction Free Mode" @@ -1791,6 +1832,11 @@ msgid "Toggle distraction-free mode." msgstr "Act./Desact. modo sin distracciones." #: editor/editor_node.cpp +#, fuzzy +msgid "Add a new scene." +msgstr "Agregar nuevos tracks." + +#: editor/editor_node.cpp msgid "Scene" msgstr "Escena" @@ -1855,13 +1901,12 @@ msgid "TileSet.." msgstr "TileSet.." #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp -#: scene/gui/text_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Undo" msgstr "Deshacer" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp +#: scene/gui/line_edit.cpp msgid "Redo" msgstr "Rehacer" @@ -2268,9 +2313,8 @@ msgid "Frame %" msgstr "Frame %" #: editor/editor_profiler.cpp -#, fuzzy msgid "Physics Frame %" -msgstr "Fixed Frame %" +msgstr "Frames de Física %" #: editor/editor_profiler.cpp editor/script_editor_debugger.cpp msgid "Time:" @@ -2366,6 +2410,11 @@ msgid "(Current)" msgstr "(Actual)" #: editor/export_template_manager.cpp +#, fuzzy +msgid "Retrieving mirrors, please wait.." +msgstr "Error de conexión, por favor intentá de nuevo." + +#: editor/export_template_manager.cpp msgid "Remove template version '%s'?" msgstr "Quitar plantilla version '%s'?" @@ -2402,6 +2451,112 @@ msgid "Importing:" msgstr "Importando:" #: editor/export_template_manager.cpp +msgid "" +"No download links found for this version. Direct download is only available " +"for official releases." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't resolve." +msgstr "No se ha podido resolver." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't connect." +msgstr "No se puede conectar." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "No response." +msgstr "Sin respuesta." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Req. Failed." +msgstr "Solicitud fallida." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Redirect Loop." +msgstr "Bucle de redireccionamiento." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Failed:" +msgstr "Fallido:" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't write file." +msgstr "No se pudo escribir el archivo:\n" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Download Complete." +msgstr "Error de Descarga" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Error requesting url: " +msgstr "Error al guardar atlas:" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connecting to Mirror.." +msgstr "Conectando.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Disconnected" +msgstr "Desconectar" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Resolving" +msgstr "Resolviendo.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't Resolve" +msgstr "No se ha podido resolver." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Connecting.." +msgstr "Conectando.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't Conect" +msgstr "No se puede conectar." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connected" +msgstr "Conectar" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Requesting.." +msgstr "Solicitando.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Downloading" +msgstr "Descargar" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connection Error" +msgstr "Conectando.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "SSL Handshake Error" +msgstr "Erroes de carga" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "Version Actual:" @@ -2425,6 +2580,16 @@ msgstr "Elegir archivo de plantilla" msgid "Export Template Manager" msgstr "Gestor de Plantillas de Exportación" +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Download Templates" +msgstr "Plantillas" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Select mirror from list: " +msgstr "Seleccionar dispositivo de la lista" + #: editor/file_type_cache.cpp msgid "Can't open file_type_cache.cch for writing, not saving file type cache!" msgstr "" @@ -2432,8 +2597,8 @@ msgstr "" "de tipos de archivo!" #: editor/filesystem_dock.cpp -msgid "Cannot navigate to '" -msgstr "No se puede navegar a '" +msgid "Cannot navigate to '%s' as it has not been found in the file system!" +msgstr "" #: editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails" @@ -2453,14 +2618,6 @@ msgstr "" "reimportá manualmente." #: editor/filesystem_dock.cpp -msgid "" -"\n" -"Source: " -msgstr "" -"\n" -"Fuente: " - -#: editor/filesystem_dock.cpp msgid "Cannot move/rename resources root." msgstr "No se puede mover/renombrar la raiz de recursos." @@ -2721,8 +2878,8 @@ msgid "Remove Poly And Point" msgstr "Remover Polígono y Punto" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." +#, fuzzy +msgid "Create a new polygon from scratch" msgstr "Crear un nuevo polígono de cero." #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -2737,6 +2894,11 @@ msgstr "" "Ctrl+Click izq: Dividir Segmento.\n" "Click der: Eliminar Punto." +#: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy +msgid "Delete points" +msgstr "Eliminar Punto" + #: editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" msgstr "Activar/Desact. Autoplay" @@ -3073,18 +3235,10 @@ msgid "Can't resolve hostname:" msgstr "No se ha podido resolver el nombre del host:" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't resolve." -msgstr "No se ha podido resolver." - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Connection error, please try again." msgstr "Error de conexión, por favor intentá de nuevo." #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't connect." -msgstr "No se puede conectar." - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Can't connect to host:" msgstr "No se puede conectar al host:" @@ -3093,30 +3247,14 @@ msgid "No response from host:" msgstr "No hay respuesta desde el host:" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "No response." -msgstr "Sin respuesta." - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, return code:" msgstr "Solicitud fallida. Código de retorno:" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Req. Failed." -msgstr "Solicitud fallida." - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, too many redirects" msgstr "Solicitud fallida, demasiadas redireccinoes" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Redirect Loop." -msgstr "Bucle de redireccionamiento." - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Failed:" -msgstr "Fallido:" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Bad download hash, assuming file has been tampered with." msgstr "Hash de descarga incorrecto, asumiendo que el archivo fue manipulado." @@ -3145,14 +3283,6 @@ msgid "Resolving.." msgstr "Resolviendo.." #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Connecting.." -msgstr "Conectando.." - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Requesting.." -msgstr "Solicitando.." - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Error making request" msgstr "Error al realizar la solicitud" @@ -3265,6 +3395,39 @@ msgid "Move Action" msgstr "Mover Acción" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create new vertical guide" +msgstr "Crear script nuevo" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove vertical guide" +msgstr "Quitar Variable" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Move horizontal guide" +msgstr "Mover Punto en Curva" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create new horizontal guide" +msgstr "Crear script nuevo" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove horizontal guide" +msgstr "Quitar claves inválidas" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new horizontal and vertical guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Edit IK Chain" msgstr "Editar Cadena IK" @@ -3389,10 +3552,17 @@ msgid "Snap to other nodes" msgstr "Alinear a otros nodos" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Snap to guides" +msgstr "Alinear a la grilla" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Lock the selected object in place (can't be moved)." msgstr "Inmovilizar Objeto." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Unlock the selected object (can be moved)." msgstr "Desinmovilizar Objeto." @@ -3443,6 +3613,11 @@ msgid "Show rulers" msgstr "Mostrar reglas" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Show guides" +msgstr "Mostrar reglas" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Selection" msgstr "Centrar Selección" @@ -3629,6 +3804,10 @@ msgstr "Act./Desact. Tangente Lineal de Curva" msgid "Hold Shift to edit tangents individually" msgstr "Mantené Shift para editar tangentes individualmente" +#: editor/plugins/gi_probe_editor_plugin.cpp +msgid "Bake GI Probe" +msgstr "" + #: editor/plugins/gradient_editor_plugin.cpp msgid "Add/Remove Color Ramp Point" msgstr "Agregar/Quitar Punto de Rampa de Color" @@ -3663,6 +3842,10 @@ msgid "Create Occluder Polygon" msgstr "Crear Polígono Oclusor" #: editor/plugins/light_occluder_2d_editor_plugin.cpp +msgid "Create a new polygon from scratch." +msgstr "Crear un nuevo polígono de cero." + +#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Edit existing polygon:" msgstr "Editar polígono existente:" @@ -3678,58 +3861,6 @@ msgstr "Ctrl+Click Izq.: Partir Segmento en Dos." msgid "RMB: Erase Point." msgstr "Click Der.: Borrar Punto." -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Remove Point from Line2D" -msgstr "Remover Punto de Line2D" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Add Point to Line2D" -msgstr "Agregar Punto a Line2D" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Move Point in Line2D" -msgstr "Mover Punto en Line2D" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Select Points" -msgstr "Seleccionar Puntos" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Shift+Drag: Select Control Points" -msgstr "Shift+Arrastrar: Seleccionar Puntos de Control" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Click: Add Point" -msgstr "Click: Agregar Punto" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Right Click: Delete Point" -msgstr "Click Derecho: Eliminar Punto" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Add Point (in empty space)" -msgstr "Agregar Punto (en espacio vacío)" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Split Segment (in line)" -msgstr "Partir Segmento (en línea)" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Delete Point" -msgstr "Eliminar Punto" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "El Mesh esta vacío!" @@ -3944,7 +4075,6 @@ msgid "Eroding walkable area..." msgstr "Erocionando area caminable..." #: editor/plugins/navigation_mesh_generator.cpp -#, fuzzy msgid "Partitioning..." msgstr "Particionando..." @@ -4130,16 +4260,46 @@ msgid "Move Out-Control in Curve" msgstr "Mover Out-Control en Curva" #: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Select Points" +msgstr "Seleccionar Puntos" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Shift+Drag: Select Control Points" +msgstr "Shift+Arrastrar: Seleccionar Puntos de Control" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Click: Add Point" +msgstr "Click: Agregar Punto" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Right Click: Delete Point" +msgstr "Click Derecho: Eliminar Punto" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Select Control Points (Shift+Drag)" msgstr "Seleccionar Puntos de Control (Shift+Arrastrar)" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Add Point (in empty space)" +msgstr "Agregar Punto (en espacio vacío)" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Split Segment (in curve)" msgstr "Partir Segmento (en curva)" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Delete Point" +msgstr "Eliminar Punto" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Close Curve" msgstr "Cerrar Curva" @@ -4276,7 +4436,6 @@ msgstr "Cargar Recurso" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Paste" @@ -4323,6 +4482,21 @@ msgid " Class Reference" msgstr " Referencia de Clases" #: editor/plugins/script_editor_plugin.cpp +#, fuzzy +msgid "Sort" +msgstr "Ordenar:" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Up" +msgstr "Subir" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Down" +msgstr "Bajar" + +#: editor/plugins/script_editor_plugin.cpp msgid "Next script" msgstr "Script siguiente" @@ -4374,6 +4548,10 @@ msgstr "Cerrar Docs" msgid "Close All" msgstr "Cerrar Todos" +#: editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "Ejecutar" @@ -4384,13 +4562,11 @@ msgstr "Act/Desact. Panel de Scripts" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find.." msgstr "Encontrar.." #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Next" msgstr "Encontrar Siguiente" @@ -4498,33 +4674,22 @@ msgstr "Minúsculas" msgid "Capitalize" msgstr "Capitalizar" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" msgstr "Cortar" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Copy" msgstr "Copiar" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Select All" msgstr "Seleccionar Todo" -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Up" -msgstr "Subir" - -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Down" -msgstr "Bajar" - #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "Eliminar Línea" @@ -4546,6 +4711,23 @@ msgid "Clone Down" msgstr "Clonar hacia Abajo" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Fold Line" +msgstr "Ir a Línea" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold Line" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Fold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Complete Symbol" msgstr "Completar Símbolo" @@ -4591,12 +4773,10 @@ msgid "Convert To Lowercase" msgstr "Convertir A Minúscula" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Previous" msgstr "Encontrar Anterior" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Replace.." msgstr "Reemplazar.." @@ -4605,7 +4785,6 @@ msgid "Goto Function.." msgstr "Ir a Función.." #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Goto Line.." msgstr "Ir a Línea.." @@ -4770,6 +4949,16 @@ msgid "View Plane Transform." msgstr "Ver Transformación en Plano." #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Scaling: " +msgstr "Escala:" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Translating: " +msgstr "Traducciones:" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Rotating %s degrees." msgstr "Torando %s grados." @@ -4850,6 +5039,10 @@ msgid "Vertices" msgstr "Vértices" #: editor/plugins/spatial_editor_plugin.cpp +msgid "FPS" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Align with view" msgstr "Alinear con vista" @@ -4882,6 +5075,16 @@ msgid "View Information" msgstr "Ver Información" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "View FPS" +msgstr "Ver Archivos" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Half Resolution" +msgstr "Escalar Selección" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Audio Listener" msgstr "Oyente de Audio" @@ -5012,6 +5215,11 @@ msgid "Tool Scale" msgstr "Herramienta Escalar" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Toggle Freelook" +msgstr "Act./Desact. Pantalla Completa" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Transform" msgstr "Transformar" @@ -5263,11 +5471,11 @@ msgstr "Quitar Todos" #: editor/plugins/theme_editor_plugin.cpp msgid "Edit theme.." -msgstr "" +msgstr "Editar tema.." #: editor/plugins/theme_editor_plugin.cpp msgid "Theme editing menu." -msgstr "" +msgstr "Menu de edición de temas." #: editor/plugins/theme_editor_plugin.cpp msgid "Add Class Items" @@ -5286,6 +5494,11 @@ msgid "Create Empty Editor Template" msgstr "Crear Plantilla de Editor Vacía" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Create From Current Editor Theme" +msgstr "Crear Plantilla de Editor Vacía" + +#: editor/plugins/theme_editor_plugin.cpp msgid "CheckBox Radio1" msgstr "CheckBox Radio1" @@ -5459,7 +5672,8 @@ msgid "Runnable" msgstr "Ejecutable" #: editor/project_export.cpp -msgid "Delete patch '" +#, fuzzy +msgid "Delete patch '%s' from list?" msgstr "Eliminar parche '" #: editor/project_export.cpp @@ -5557,6 +5771,7 @@ msgid "Export With Debug" msgstr "Exportar Como Debug" #: editor/project_manager.cpp +#, fuzzy msgid "The path does not exist." msgstr "La ruta no existe." @@ -5699,6 +5914,9 @@ msgid "" "Language changed.\n" "The UI will update next time the editor or project manager starts." msgstr "" +"Lenguaje cambiado.\n" +"La interfaz de usuario se actualizara la próxima vez que el editor o gestor " +"de proyectos inicie." #: editor/project_manager.cpp msgid "" @@ -5733,9 +5951,8 @@ msgid "Exit" msgstr "Salir" #: editor/project_manager.cpp -#, fuzzy msgid "Restart Now" -msgstr "Reiniciar (s):" +msgstr "Reiniciar Ahora" #: editor/project_manager.cpp msgid "Can't run project" @@ -5774,10 +5991,6 @@ msgid "Add Input Action Event" msgstr "Agregar Evento de Acción de Entrada" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Meta+" -msgstr "Meta+" - -#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp msgid "Shift+" msgstr "Shift+" @@ -5899,12 +6112,13 @@ msgid "Select a setting item first!" msgstr "Selecciona un ítem primero!" #: editor/project_settings_editor.cpp -msgid "No property '" +#, fuzzy +msgid "No property '%s' exists." msgstr "No existe la propiedad '" #: editor/project_settings_editor.cpp -msgid "Setting '" -msgstr "Ajuste '" +msgid "Setting '%s' is internal, and it can't be deleted." +msgstr "" #: editor/project_settings_editor.cpp msgid "Delete Item" @@ -5959,13 +6173,12 @@ msgid "Remove Resource Remap Option" msgstr "Remover Opción de Remapeo de Recursos" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Changed Locale Filter" -msgstr "Cambiar Tiempo de Blend" +msgstr "Cambiar Filtro de Locale" #: editor/project_settings_editor.cpp msgid "Changed Locale Filter Mode" -msgstr "" +msgstr "Cambiar Modo de Filtro de Locale" #: editor/project_settings_editor.cpp msgid "Project Settings (project.godot)" @@ -6028,28 +6241,24 @@ msgid "Locale" msgstr "Locale" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Locales Filter" -msgstr "Filtro de Imágenes:" +msgstr "Filtro de Locales" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Show all locales" -msgstr "Mostrar Huesos" +msgstr "Mostrar todos los locales" #: editor/project_settings_editor.cpp msgid "Show only selected locales" -msgstr "" +msgstr "Mostrar solo los locales seleccionados" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Filter mode:" -msgstr "Filtrar nodos" +msgstr "Filtrar modo:" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Locales:" -msgstr "Locale" +msgstr "Locales:" #: editor/project_settings_editor.cpp msgid "AutoLoad" @@ -6383,6 +6592,16 @@ msgid "Clear a script for the selected node." msgstr "Reestablecer un script para el nodo seleccionado." #: editor/scene_tree_dock.cpp +#, fuzzy +msgid "Remote" +msgstr "Quitar" + +#: editor/scene_tree_dock.cpp +#, fuzzy +msgid "Local" +msgstr "Locale" + +#: editor/scene_tree_dock.cpp msgid "Clear Inheritance? (No Undo!)" msgstr "Limpiar Herencia? (Imposible Deshacer!)" @@ -6575,6 +6794,11 @@ msgid "Attach Node Script" msgstr "Adjuntar Script de Nodo" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Remote " +msgstr "Quitar" + +#: editor/script_editor_debugger.cpp msgid "Bytes:" msgstr "Bytes:" @@ -6631,18 +6855,6 @@ msgid "Stack Trace (if applicable):" msgstr "Stack Trace (si aplica):" #: editor/script_editor_debugger.cpp -msgid "Remote Inspector" -msgstr "Inspector Remoto" - -#: editor/script_editor_debugger.cpp -msgid "Live Scene Tree:" -msgstr "Árbol de Escenas en Vivo:" - -#: editor/script_editor_debugger.cpp -msgid "Remote Object Properties: " -msgstr "Propiedades de Objeto Remoto: " - -#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "Profiler" @@ -6774,53 +6986,53 @@ msgstr "Bibliotecas: " msgid "GDNative" msgstr "GDNative" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Invalid type argument to convert(), use TYPE_* constants." msgstr "Argumento de tipo inválido para convert(), usá constantes TYPE_*." -#: modules/gdscript/gd_functions.cpp modules/mono/glue/glue_header.h +#: modules/gdscript/gdscript_functions.cpp modules/mono/glue/glue_header.h #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Not enough bytes for decoding bytes, or invalid format." msgstr "" "No hay suficientes bytes para decodificar bytes, o el formato es inválido." -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "step argument is zero!" msgstr "el argumento step es cero!" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not a script with an instance" msgstr "No es un script con una instancia" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a script" msgstr "No está basado en un script" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a resource file" msgstr "No está basado en un archivo de recursos" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (missing @path)" msgstr "Formato de diccionario de instancias inválido (@path faltante)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (can't load script at @path)" msgstr "" "Formato de diccionario de instancias inválido (no se puede cargar el script " "en @path)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (invalid script at @path)" msgstr "" "Formato de diccionario de instancias inválido (script inválido en @path)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary (invalid subclasses)" msgstr "Diccionario de instancias inválido (subclases inválidas)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Object can't provide a length." msgstr "El objeto no puede proveer un largo." @@ -6833,16 +7045,26 @@ msgid "GridMap Duplicate Selection" msgstr "Duplicar Selección en GridMap" #: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Floor:" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +#, fuzzy +msgid "Grid Map" +msgstr "Snap de Grilla" + +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Snap View" msgstr "Anclar Vista" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Prev Level (%sDown Wheel)" -msgstr "Nivel Previo (%sRueda Abajo)" +#, fuzzy +msgid "Previous Floor" +msgstr "Pestaña anterior" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Next Level (%sUp Wheel)" -msgstr "Nivel Siguiente (%sRueda Arriba)" +msgid "Next Floor" +msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clip Disabled" @@ -6909,12 +7131,9 @@ msgid "Erase Area" msgstr "Borrar Área" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Selection -> Duplicate" -msgstr "Selección -> Duplicar" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Selection -> Clear" -msgstr "Selección -> Restablecer" +#, fuzzy +msgid "Clear Selection" +msgstr "Centrar Selección" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Settings" @@ -7042,7 +7261,8 @@ msgid "Duplicate VisualScript Nodes" msgstr "Duplicar Nodos VisualScript" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Getter. Hold Shift to drop a generic signature." +#, fuzzy +msgid "Hold %s to drop a Getter. Hold Shift to drop a generic signature." msgstr "" "Mantené pulsado Meta para depositar un Getter. Mantené pulsado Shift para " "depositar una firma generica." @@ -7054,7 +7274,8 @@ msgstr "" "depositar una firma genérica." #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a simple reference to the node." +#, fuzzy +msgid "Hold %s to drop a simple reference to the node." msgstr "Mantené pulsado Meta para depositar una referencia simple al nodo." #: modules/visual_script/visual_script_editor.cpp @@ -7062,7 +7283,8 @@ msgid "Hold Ctrl to drop a simple reference to the node." msgstr "Mantené pulsado Ctrl para depositar una referencia simple al nodo." #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Variable Setter." +#, fuzzy +msgid "Hold %s to drop a Variable Setter." msgstr "Mantené pulsado Meta para depositar un Variable Setter." #: modules/visual_script/visual_script_editor.cpp @@ -7292,12 +7514,23 @@ msgid "Could not write file:\n" msgstr "No se pudo escribir el archivo:\n" #: platform/javascript/export/export.cpp -msgid "Could not read file:\n" +msgid "Could not open template for export:\n" +msgstr "No se pudo abrir la plantilla para exportar:\n" + +#: platform/javascript/export/export.cpp +#, fuzzy +msgid "Invalid export template:\n" +msgstr "Instalar Templates de Exportación" + +#: platform/javascript/export/export.cpp +#, fuzzy +msgid "Could not read custom HTML shell:\n" msgstr "No se pudo leer el archivo:\n" #: platform/javascript/export/export.cpp -msgid "Could not open template for export:\n" -msgstr "No se pudo abrir la plantilla para exportar:\n" +#, fuzzy +msgid "Could not read boot splash image file:\n" +msgstr "No se pudo leer el archivo:\n" #: scene/2d/animated_sprite.cpp msgid "" @@ -7416,22 +7649,6 @@ msgstr "" msgid "Path property must point to a valid Node2D node to work." msgstr "La propiedad Path debe apuntar a un nodo Node2D válido para funcionar." -#: 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 "" -"La propiedad Path debe apuntar a un nodo Viewport válido para funcionar. " -"Dicho Viewport debe ser seteado a modo '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 "" -"El Viewport seteado en la propiedad path debe ser seteado como 'render " -"target' para que este sprite funcione." - #: scene/2d/visibility_notifier_2d.cpp msgid "" "VisibilityEnable2D works best when used with the edited scene root directly " @@ -7504,6 +7721,15 @@ msgstr "" "Se debe proveer un shape para que CollisionShape funcione. Creale un recurso " "shape!" +#: scene/3d/gi_probe.cpp +#, fuzzy +msgid "Plotting Meshes" +msgstr "Haciendo Blitting de Imágenes" + +#: scene/3d/gi_probe.cpp +msgid "Finishing Plot" +msgstr "" + #: scene/3d/navigation_mesh.cpp msgid "A NavigationMesh resource must be set or created for this node to work." msgstr "" @@ -7600,6 +7826,10 @@ msgstr "" "Usá un container como hijo (VBox, HBox, etc), o un Control y seteá el tamaño " "mínimo personalizado de forma manual." +#: scene/gui/tree.cpp +msgid "(Other)" +msgstr "" + #: scene/main/scene_tree.cpp msgid "" "Default Environment as specified in Project Setings (Rendering -> Viewport -" @@ -7636,6 +7866,69 @@ msgstr "Error cargando tipografía." msgid "Invalid font size." msgstr "Tamaño de tipografía inválido." +#~ msgid "Cannot navigate to '" +#~ msgstr "No se puede navegar a '" + +#~ msgid "" +#~ "\n" +#~ "Source: " +#~ msgstr "" +#~ "\n" +#~ "Fuente: " + +#~ msgid "Remove Point from Line2D" +#~ msgstr "Remover Punto de Line2D" + +#~ msgid "Add Point to Line2D" +#~ msgstr "Agregar Punto a Line2D" + +#~ msgid "Move Point in Line2D" +#~ msgstr "Mover Punto en Line2D" + +#~ msgid "Split Segment (in line)" +#~ msgstr "Partir Segmento (en línea)" + +#~ msgid "Meta+" +#~ msgstr "Meta+" + +#~ msgid "Setting '" +#~ msgstr "Ajuste '" + +#~ msgid "Remote Inspector" +#~ msgstr "Inspector Remoto" + +#~ msgid "Live Scene Tree:" +#~ msgstr "Árbol de Escenas en Vivo:" + +#~ msgid "Remote Object Properties: " +#~ msgstr "Propiedades de Objeto Remoto: " + +#~ msgid "Prev Level (%sDown Wheel)" +#~ msgstr "Nivel Previo (%sRueda Abajo)" + +#~ msgid "Next Level (%sUp Wheel)" +#~ msgstr "Nivel Siguiente (%sRueda Arriba)" + +#~ msgid "Selection -> Duplicate" +#~ msgstr "Selección -> Duplicar" + +#~ msgid "Selection -> Clear" +#~ msgstr "Selección -> Restablecer" + +#~ msgid "" +#~ "Path property must point to a valid Viewport node to work. Such Viewport " +#~ "must be set to 'render target' mode." +#~ msgstr "" +#~ "La propiedad Path debe apuntar a un nodo Viewport válido para funcionar. " +#~ "Dicho Viewport debe ser seteado a modo 'render target'." + +#~ msgid "" +#~ "The Viewport set in the path property must be set as 'render target' in " +#~ "order for this sprite to work." +#~ msgstr "" +#~ "El Viewport seteado en la propiedad path debe ser seteado como 'render " +#~ "target' para que este sprite funcione." + #~ msgid "Filter:" #~ msgstr "Filtro:" @@ -7660,9 +7953,6 @@ msgstr "Tamaño de tipografía inválido." #~ msgid "Removed:" #~ msgstr "Removido:" -#~ msgid "Error saving atlas:" -#~ msgstr "Error al guardar atlas:" - #~ msgid "Could not save atlas subtexture:" #~ msgstr "No se pudo guardar la subtextura de altas:" @@ -8052,9 +8342,6 @@ msgstr "Tamaño de tipografía inválido." #~ msgid "Cropping Images" #~ msgstr "Cropeando Imágenes" -#~ msgid "Blitting Images" -#~ msgstr "Haciendo Blitting de Imágenes" - #~ msgid "Couldn't save atlas image:" #~ msgstr "No se pudo guardar la imagen de atlas:" @@ -8443,9 +8730,6 @@ msgstr "Tamaño de tipografía inválido." #~ msgid "Save Translatable Strings" #~ msgstr "Guardar Strings Traducibles" -#~ msgid "Install Export Templates" -#~ msgstr "Instalar Templates de Exportación" - #~ msgid "Edit Script Options" #~ msgstr "Editar Opciones de Script" diff --git a/editor/translations/fa.po b/editor/translations/fa.po index 87e473d49c..f1fb67ca83 100644 --- a/editor/translations/fa.po +++ b/editor/translations/fa.po @@ -102,6 +102,7 @@ msgid "Anim Delete Keys" msgstr "کلیدها را در انیمیشن حذف کن" #: editor/animation_editor.cpp editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Duplicate Selection" msgstr "انتخاب شده را به دو تا تکثیر کن" @@ -640,6 +641,13 @@ msgstr "ویرایشگر بستگی" msgid "Search Replacement Resource:" msgstr "منبع جایگزینی را جستجو کن:" +#: editor/dependency_editor.cpp editor/editor_file_dialog.cpp +#: editor/editor_help.cpp editor/editor_node.cpp editor/filesystem_dock.cpp +#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp +#: editor/quick_open.cpp scene/gui/file_dialog.cpp +msgid "Open" +msgstr "باز کن" + #: editor/dependency_editor.cpp msgid "Owners Of:" msgstr "مالکانِ:" @@ -714,6 +722,15 @@ msgstr "آیا پروندههای انتخاب شده حذف شود؟" msgid "Delete" msgstr "حذف کن" +#: editor/dictionary_property_edit.cpp +msgid "Change Dictionary Key" +msgstr "" + +#: editor/dictionary_property_edit.cpp +#, fuzzy +msgid "Change Dictionary Value" +msgstr "مقدار آرایه را تغییر بده" + #: editor/editor_about.cpp msgid "Thanks from the Godot community!" msgstr "" @@ -1143,12 +1160,6 @@ msgstr "همه ی موارد شناخته شده اند." msgid "All Files (*)" msgstr "تمام پروندهها (*)" -#: editor/editor_file_dialog.cpp editor/editor_help.cpp editor/editor_node.cpp -#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_selector.cpp editor/quick_open.cpp scene/gui/file_dialog.cpp -msgid "Open" -msgstr "باز کن" - #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Open a File" msgstr "یک پرونده را باز کن" @@ -1515,6 +1526,13 @@ msgid "" msgstr "" #: editor/editor_node.cpp +msgid "" +"This is a remote object so changes to it will not be kept.\n" +"Please read the documentation relevant to debugging to better understand " +"this workflow." +msgstr "" + +#: editor/editor_node.cpp msgid "Copy Params" msgstr "" @@ -1625,6 +1643,10 @@ msgid "Export Mesh Library" msgstr "" #: editor/editor_node.cpp +msgid "This operation can't be done without a root node." +msgstr "" + +#: editor/editor_node.cpp msgid "Export Tile Set" msgstr "" @@ -1752,11 +1774,20 @@ msgid "Switch Scene Tab" msgstr "" #: editor/editor_node.cpp -msgid "%d more file(s)" +msgid "%d more files or folders" +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "%d more folders" +msgstr "نمیتواند یک پوشه ایجاد شود." + +#: editor/editor_node.cpp +msgid "%d more files" msgstr "" #: editor/editor_node.cpp -msgid "%d more file(s) or folder(s)" +msgid "Dock Position" msgstr "" #: editor/editor_node.cpp @@ -1768,6 +1799,11 @@ msgid "Toggle distraction-free mode." msgstr "" #: editor/editor_node.cpp +#, fuzzy +msgid "Add a new scene." +msgstr "ترکهای جدید اضافه کن." + +#: editor/editor_node.cpp msgid "Scene" msgstr "صحنه" @@ -1832,13 +1868,12 @@ msgid "TileSet.." msgstr "" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp -#: scene/gui/text_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Undo" msgstr "خنثی کردن (Undo)" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp +#: scene/gui/line_edit.cpp msgid "Redo" msgstr "" @@ -2329,6 +2364,10 @@ msgid "(Current)" msgstr "" #: editor/export_template_manager.cpp +msgid "Retrieving mirrors, please wait.." +msgstr "" + +#: editor/export_template_manager.cpp msgid "Remove template version '%s'?" msgstr "" @@ -2363,6 +2402,113 @@ msgid "Importing:" msgstr "" #: editor/export_template_manager.cpp +msgid "" +"No download links found for this version. Direct download is only available " +"for official releases." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't resolve." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#, fuzzy +msgid "Can't connect." +msgstr "در حال اتصال..." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "No response." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Req. Failed." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Redirect Loop." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Failed:" +msgstr "" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't write file." +msgstr "نمیتواند یک پوشه ایجاد شود." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Download Complete." +msgstr "خطاهای بارگذاری" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Error requesting url: " +msgstr "خطای بارگذاری قلم." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connecting to Mirror.." +msgstr "در حال اتصال..." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Disconnected" +msgstr "عدم اتصال" + +#: editor/export_template_manager.cpp +msgid "Resolving" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Can't Resolve" +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#, fuzzy +msgid "Connecting.." +msgstr "در حال اتصال..." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't Conect" +msgstr "در حال اتصال..." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connected" +msgstr "اتصال" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#, fuzzy +msgid "Requesting.." +msgstr "آزمودن" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Downloading" +msgstr "خطاهای بارگذاری" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connection Error" +msgstr "در حال اتصال..." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "SSL Handshake Error" +msgstr "خطاهای بارگذاری" + +#: editor/export_template_manager.cpp #, fuzzy msgid "Current Version:" msgstr "نسخه:" @@ -2390,12 +2536,21 @@ msgstr "آیا پروندههای انتخاب شده حذف شود؟" msgid "Export Template Manager" msgstr "" +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Download Templates" +msgstr "برداشتن انتخاب شده" + +#: editor/export_template_manager.cpp +msgid "Select mirror from list: " +msgstr "" + #: editor/file_type_cache.cpp msgid "Can't open file_type_cache.cch for writing, not saving file type cache!" msgstr "" #: editor/filesystem_dock.cpp -msgid "Cannot navigate to '" +msgid "Cannot navigate to '%s' as it has not been found in the file system!" msgstr "" #: editor/filesystem_dock.cpp @@ -2413,13 +2568,6 @@ msgid "" msgstr "" #: editor/filesystem_dock.cpp -#, fuzzy -msgid "" -"\n" -"Source: " -msgstr "منبع" - -#: editor/filesystem_dock.cpp msgid "Cannot move/rename resources root." msgstr "" @@ -2684,8 +2832,7 @@ msgid "Remove Poly And Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." +msgid "Create a new polygon from scratch" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -2696,6 +2843,11 @@ msgid "" "RMB: Erase Point." msgstr "" +#: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy +msgid "Delete points" +msgstr "حذف کن" + #: editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" msgstr "" @@ -3034,20 +3186,11 @@ msgid "Can't resolve hostname:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't resolve." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Connection error, please try again." msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy -msgid "Can't connect." -msgstr "در حال اتصال..." - -#: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Can't connect to host:" msgstr "اتصال به گره:" @@ -3056,30 +3199,14 @@ msgid "No response from host:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "No response." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, return code:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Req. Failed." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, too many redirects" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Redirect Loop." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Failed:" -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Bad download hash, assuming file has been tampered with." msgstr "" @@ -3109,16 +3236,6 @@ msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy -msgid "Connecting.." -msgstr "در حال اتصال..." - -#: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy -msgid "Requesting.." -msgstr "آزمودن" - -#: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Error making request" msgstr "خطای بارگذاری قلم." @@ -3232,6 +3349,38 @@ msgid "Move Action" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create new vertical guide" +msgstr "جدید ایجاد کن" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove vertical guide" +msgstr "برداشتن متغیر" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move horizontal guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create new horizontal guide" +msgstr "جدید ایجاد کن" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove horizontal guide" +msgstr "کلیدهای نامعتبر را حذف کن" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new horizontal and vertical guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Edit IK Chain" msgstr "" @@ -3353,10 +3502,16 @@ msgid "Snap to other nodes" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snap to guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Lock the selected object in place (can't be moved)." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Unlock the selected object (can be moved)." msgstr "" @@ -3407,6 +3562,10 @@ msgid "Show rulers" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Show guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Selection" msgstr "" @@ -3600,6 +3759,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/gi_probe_editor_plugin.cpp +msgid "Bake GI Probe" +msgstr "" + #: editor/plugins/gradient_editor_plugin.cpp msgid "Add/Remove Color Ramp Point" msgstr "" @@ -3632,6 +3795,10 @@ msgid "Create Occluder Polygon" msgstr "" #: editor/plugins/light_occluder_2d_editor_plugin.cpp +msgid "Create a new polygon from scratch." +msgstr "" + +#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Edit existing polygon:" msgstr "" @@ -3647,59 +3814,6 @@ msgstr "" msgid "RMB: Erase Point." msgstr "" -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Remove Point from Line2D" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#, fuzzy -msgid "Add Point to Line2D" -msgstr "برو به خط" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Move Point in Line2D" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Select Points" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Shift+Drag: Select Control Points" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Click: Add Point" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Right Click: Delete Point" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Add Point (in empty space)" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Split Segment (in line)" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Delete Point" -msgstr "" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "" @@ -4097,16 +4211,46 @@ msgid "Move Out-Control in Curve" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Select Points" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Shift+Drag: Select Control Points" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Click: Add Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Right Click: Delete Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Select Control Points (Shift+Drag)" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Add Point (in empty space)" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Split Segment (in curve)" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Delete Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Close Curve" msgstr "" @@ -4247,7 +4391,6 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Paste" @@ -4292,6 +4435,21 @@ msgid " Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#, fuzzy +msgid "Sort" +msgstr "مرتبسازی:" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Up" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Down" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Next script" msgstr "" @@ -4344,6 +4502,10 @@ msgstr "" msgid "Close All" msgstr "بستن" +#: editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "" @@ -4354,13 +4516,11 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find.." msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Next" msgstr "" @@ -4466,33 +4626,22 @@ msgstr "" msgid "Capitalize" msgstr "" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" msgstr "بریدن" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Copy" msgstr "کپی کردن" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Select All" msgstr "انتخاب همه" -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Up" -msgstr "" - -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Down" -msgstr "" - #: editor/plugins/script_text_editor.cpp #, fuzzy msgid "Delete Line" @@ -4515,6 +4664,23 @@ msgid "Clone Down" msgstr "" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Fold Line" +msgstr "برو به خط" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold Line" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Fold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Complete Symbol" msgstr "" @@ -4561,12 +4727,10 @@ msgid "Convert To Lowercase" msgstr "اتصال به گره:" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Previous" msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Replace.." msgstr "" @@ -4575,7 +4739,6 @@ msgid "Goto Function.." msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Goto Line.." msgstr "" @@ -4740,6 +4903,15 @@ msgid "View Plane Transform." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Scaling: " +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Translating: " +msgstr "انتقال" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Rotating %s degrees." msgstr "" @@ -4821,6 +4993,10 @@ msgid "Vertices" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "FPS" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Align with view" msgstr "" @@ -4853,6 +5029,16 @@ msgid "View Information" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "View FPS" +msgstr "پرونده:" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Half Resolution" +msgstr "انتخاب شده را تغییر مقیاس بده" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Audio Listener" msgstr "" @@ -4984,6 +5170,11 @@ msgid "Tool Scale" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Toggle Freelook" +msgstr "حالت تمام صفحه" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Transform" msgstr "" @@ -5261,6 +5452,10 @@ msgid "Create Empty Editor Template" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Create From Current Editor Theme" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "CheckBox Radio1" msgstr "" @@ -5437,7 +5632,7 @@ msgstr "" #: editor/project_export.cpp #, fuzzy -msgid "Delete patch '" +msgid "Delete patch '%s' from list?" msgstr "حذف کن" #: editor/project_export.cpp @@ -5741,10 +5936,6 @@ msgid "Add Input Action Event" msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Meta+" -msgstr "+Meta" - -#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp msgid "Shift+" msgstr "+Shift" @@ -5867,13 +6058,12 @@ msgid "Select a setting item first!" msgstr "" #: editor/project_settings_editor.cpp -msgid "No property '" +msgid "No property '%s' exists." msgstr "" #: editor/project_settings_editor.cpp -#, fuzzy -msgid "Setting '" -msgstr "ترجیحات" +msgid "Setting '%s' is internal, and it can't be deleted." +msgstr "" #: editor/project_settings_editor.cpp #, fuzzy @@ -6354,6 +6544,15 @@ msgid "Clear a script for the selected node." msgstr "" #: editor/scene_tree_dock.cpp +#, fuzzy +msgid "Remote" +msgstr "برداشتن" + +#: editor/scene_tree_dock.cpp +msgid "Local" +msgstr "" + +#: editor/scene_tree_dock.cpp msgid "Clear Inheritance? (No Undo!)" msgstr "" @@ -6548,6 +6747,11 @@ msgid "Attach Node Script" msgstr "صحنه جدید" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Remote " +msgstr "برداشتن" + +#: editor/script_editor_debugger.cpp msgid "Bytes:" msgstr "" @@ -6604,18 +6808,6 @@ msgid "Stack Trace (if applicable):" msgstr "" #: editor/script_editor_debugger.cpp -msgid "Remote Inspector" -msgstr "" - -#: editor/script_editor_debugger.cpp -msgid "Live Scene Tree:" -msgstr "" - -#: editor/script_editor_debugger.cpp -msgid "Remote Object Properties: " -msgstr "" - -#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -6749,56 +6941,56 @@ msgstr "" msgid "GDNative" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Invalid type argument to convert(), use TYPE_* constants." msgstr "" "نوع آرگومان برای متد ()convert نامعتبر است ، از ثابت های *_TYPE استفاده " "کنید ." -#: modules/gdscript/gd_functions.cpp modules/mono/glue/glue_header.h +#: modules/gdscript/gdscript_functions.cpp modules/mono/glue/glue_header.h #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Not enough bytes for decoding bytes, or invalid format." msgstr "" "تعداد بایت های مورد نظر برای رمزگشایی بایت ها کافی نیست ، و یا فرمت نامعتبر " "است ." -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "step argument is zero!" msgstr "آرگومان step صفر است!" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp #, fuzzy msgid "Not a script with an instance" msgstr "اسکریپتی با یک نمونه نیست ." -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a script" msgstr "بر اساس یک اسکریپت نیست." -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a resource file" msgstr "بر اساس یک فایل منبع نیست." -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (missing @path)" msgstr "فرمت دیکشنری نمونه نامعتبر (pass@ مفقود)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (can't load script at @path)" msgstr "" "فرمت نمونه ی دیکشنری نامعتبر است . ( نمی توان اسکریپت را از مسیر path@ " "بارگذاری کرد.)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (invalid script at @path)" msgstr "فرمت دیکشنری نمونه نامعتبر (اسکریپت نامعتبر در path@)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary (invalid subclasses)" msgstr "نمونه ی دیکشنری نامعتبر است . (زیرکلاسهای نامعتبر)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Object can't provide a length." msgstr "" @@ -6813,15 +7005,24 @@ msgid "GridMap Duplicate Selection" msgstr "انتخاب شده را به دو تا تکثیر کن" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Snap View" +msgid "Floor:" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Prev Level (%sDown Wheel)" +msgid "Grid Map" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Next Level (%sUp Wheel)" +msgid "Snap View" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +#, fuzzy +msgid "Previous Floor" +msgstr "زبانه قبلی" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Next Floor" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp @@ -6892,13 +7093,8 @@ msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy -msgid "Selection -> Duplicate" -msgstr "تنها در قسمت انتخاب شده" - -#: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy -msgid "Selection -> Clear" -msgstr "تنها در قسمت انتخاب شده" +msgid "Clear Selection" +msgstr "انتخاب شده را تغییر مقیاس بده" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy @@ -7034,7 +7230,7 @@ msgid "Duplicate VisualScript Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Getter. Hold Shift to drop a generic signature." +msgid "Hold %s to drop a Getter. Hold Shift to drop a generic signature." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -7042,7 +7238,7 @@ msgid "Hold Ctrl to drop a Getter. Hold Shift to drop a generic signature." msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a simple reference to the node." +msgid "Hold %s to drop a simple reference to the node." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -7050,7 +7246,7 @@ msgid "Hold Ctrl to drop a simple reference to the node." msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Variable Setter." +msgid "Hold %s to drop a Variable Setter." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -7296,12 +7492,22 @@ msgstr "نمیتواند یک پوشه ایجاد شود." #: platform/javascript/export/export.cpp #, fuzzy -msgid "Could not read file:\n" +msgid "Could not open template for export:\n" msgstr "نمیتواند یک پوشه ایجاد شود." #: platform/javascript/export/export.cpp #, fuzzy -msgid "Could not open template for export:\n" +msgid "Invalid export template:\n" +msgstr "نام دارایی ایندکس نامعتبر." + +#: platform/javascript/export/export.cpp +#, fuzzy +msgid "Could not read custom HTML shell:\n" +msgstr "نمیتواند یک پوشه ایجاد شود." + +#: platform/javascript/export/export.cpp +#, fuzzy +msgid "Could not read boot splash image file:\n" msgstr "نمیتواند یک پوشه ایجاد شود." #: scene/2d/animated_sprite.cpp @@ -7418,22 +7624,6 @@ msgstr "" msgid "Path property must point to a valid Node2D node to work." msgstr "دارایی Path باید به یک گره Node2D معتبر اشاره کند تا کار کند." -#: 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 "" -"Viewport تنظیم شده در داریی path باید به صورت render target برای این اسپرایت " -"تنظیم شود تا کار کند." - #: scene/2d/visibility_notifier_2d.cpp msgid "" "VisibilityEnable2D works best when used with the edited scene root directly " @@ -7504,6 +7694,14 @@ msgstr "" "باید یک شکل برای CollisionShape فراهم شده باشد تا عمل کند. لطفا یک منبع شکل " "برای آن ایجاد کنید!" +#: scene/3d/gi_probe.cpp +msgid "Plotting Meshes" +msgstr "" + +#: scene/3d/gi_probe.cpp +msgid "Finishing Plot" +msgstr "" + #: scene/3d/navigation_mesh.cpp msgid "A NavigationMesh resource must be set or created for this node to work." msgstr "یک منبع NavigationMesh باید برای یک گره تنظیم یا ایجاد شود تا کار کند." @@ -7591,6 +7789,10 @@ msgid "" "minimum size manually." msgstr "" +#: scene/gui/tree.cpp +msgid "(Other)" +msgstr "" + #: scene/main/scene_tree.cpp msgid "" "Default Environment as specified in Project Setings (Rendering -> Viewport -" @@ -7625,6 +7827,45 @@ msgstr "خطای بارگذاری قلم." msgid "Invalid font size." msgstr "اندازهی قلم نامعتبر." +#, fuzzy +#~ msgid "" +#~ "\n" +#~ "Source: " +#~ msgstr "منبع" + +#, fuzzy +#~ msgid "Add Point to Line2D" +#~ msgstr "برو به خط" + +#~ msgid "Meta+" +#~ msgstr "+Meta" + +#, fuzzy +#~ msgid "Setting '" +#~ msgstr "ترجیحات" + +#, fuzzy +#~ msgid "Selection -> Duplicate" +#~ msgstr "تنها در قسمت انتخاب شده" + +#, fuzzy +#~ msgid "Selection -> Clear" +#~ msgstr "تنها در قسمت انتخاب شده" + +#~ 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 تنظیم شود." + +#~ msgid "" +#~ "The Viewport set in the path property must be set as 'render target' in " +#~ "order for this sprite to work." +#~ msgstr "" +#~ "Viewport تنظیم شده در داریی path باید به صورت render target برای این " +#~ "اسپرایت تنظیم شود تا کار کند." + #~ msgid "Filter:" #~ msgstr "صافی:" diff --git a/editor/translations/fi.po b/editor/translations/fi.po index 12cafa85fc..75dc63cf12 100644 --- a/editor/translations/fi.po +++ b/editor/translations/fi.po @@ -4,19 +4,20 @@ # This file is distributed under the same license as the Godot source code. # # ekeimaja <ekeimaja@gmail.com>, 2017. +# Jarmo Riikonen <amatrelan@gmail.com>, 2017. # msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2017-08-25 14:41+0000\n" -"Last-Translator: ekeimaja <ekeimaja@gmail.com>\n" +"PO-Revision-Date: 2017-10-31 22:45+0000\n" +"Last-Translator: Jarmo Riikonen <amatrelan@gmail.com>\n" "Language-Team: Finnish <https://hosted.weblate.org/projects/godot-engine/" "godot/fi/>\n" "Language: fi\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.17-dev\n" +"X-Generator: Weblate 2.17\n" #: editor/animation_editor.cpp msgid "Disabled" @@ -102,6 +103,7 @@ msgid "Anim Delete Keys" msgstr "Poista avaimet" #: editor/animation_editor.cpp editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Duplicate Selection" msgstr "Monista valinta" @@ -639,6 +641,13 @@ msgstr "Riippuvuusmuokkain" msgid "Search Replacement Resource:" msgstr "" +#: editor/dependency_editor.cpp editor/editor_file_dialog.cpp +#: editor/editor_help.cpp editor/editor_node.cpp editor/filesystem_dock.cpp +#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp +#: editor/quick_open.cpp scene/gui/file_dialog.cpp +msgid "Open" +msgstr "Avaa" + #: editor/dependency_editor.cpp msgid "Owners Of:" msgstr "" @@ -711,6 +720,16 @@ msgstr "Poista valitut tiedostot?" msgid "Delete" msgstr "Poista" +#: editor/dictionary_property_edit.cpp +#, fuzzy +msgid "Change Dictionary Key" +msgstr "Vaihda animaation nimi:" + +#: editor/dictionary_property_edit.cpp +#, fuzzy +msgid "Change Dictionary Value" +msgstr "Vaihda taulukon arvoa" + #: editor/editor_about.cpp msgid "Thanks from the Godot community!" msgstr "Kiitos Godot-yhteisöltä!" @@ -1149,12 +1168,6 @@ msgstr "Kaikki tunnistettu" msgid "All Files (*)" msgstr "Kaikki tiedostot (*)" -#: editor/editor_file_dialog.cpp editor/editor_help.cpp editor/editor_node.cpp -#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_selector.cpp editor/quick_open.cpp scene/gui/file_dialog.cpp -msgid "Open" -msgstr "Avaa" - #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Open a File" msgstr "Avaa tiedosto" @@ -1528,6 +1541,13 @@ msgid "" msgstr "" #: editor/editor_node.cpp +msgid "" +"This is a remote object so changes to it will not be kept.\n" +"Please read the documentation relevant to debugging to better understand " +"this workflow." +msgstr "" + +#: editor/editor_node.cpp msgid "Copy Params" msgstr "Kopioi parametrit" @@ -1648,6 +1668,11 @@ msgid "Export Mesh Library" msgstr "Tuo Mesh-kirjasto" #: editor/editor_node.cpp +#, fuzzy +msgid "This operation can't be done without a root node." +msgstr "Tätä toimintoa ei voi tehdä ilman Sceneä." + +#: editor/editor_node.cpp msgid "Export Tile Set" msgstr "Tuo tileset" @@ -1783,11 +1808,21 @@ msgstr "Vaihda Scenen välilehteä" #: editor/editor_node.cpp #, fuzzy -msgid "%d more file(s)" +msgid "%d more files or folders" msgstr "%d muuta tiedostoa" #: editor/editor_node.cpp -msgid "%d more file(s) or folder(s)" +#, fuzzy +msgid "%d more folders" +msgstr "%d muuta tiedostoa" + +#: editor/editor_node.cpp +#, fuzzy +msgid "%d more files" +msgstr "%d muuta tiedostoa" + +#: editor/editor_node.cpp +msgid "Dock Position" msgstr "" #: editor/editor_node.cpp @@ -1799,8 +1834,13 @@ msgid "Toggle distraction-free mode." msgstr "" #: editor/editor_node.cpp +#, fuzzy +msgid "Add a new scene." +msgstr "Lisää uusia raitoja." + +#: editor/editor_node.cpp msgid "Scene" -msgstr "Scene" +msgstr "Näkymä" #: editor/editor_node.cpp msgid "Go to previously opened scene." @@ -1863,13 +1903,12 @@ msgid "TileSet.." msgstr "" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp -#: scene/gui/text_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Undo" msgstr "Peru" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp +#: scene/gui/line_edit.cpp msgid "Redo" msgstr "Tee uudelleen" @@ -2365,6 +2404,10 @@ msgid "(Current)" msgstr "(Nykyinen)" #: editor/export_template_manager.cpp +msgid "Retrieving mirrors, please wait.." +msgstr "" + +#: editor/export_template_manager.cpp msgid "Remove template version '%s'?" msgstr "Poista mallin versio '%s'?" @@ -2399,6 +2442,114 @@ msgid "Importing:" msgstr "Tuodaan:" #: editor/export_template_manager.cpp +msgid "" +"No download links found for this version. Direct download is only available " +"for official releases." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't resolve." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#, fuzzy +msgid "Can't connect." +msgstr "Yhdistä..." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "No response." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Req. Failed." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Redirect Loop." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Failed:" +msgstr "" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't write file." +msgstr "Ei voitu kirjoittaa tiedostoa:\n" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Download Complete." +msgstr "Lataa" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Error requesting url: " +msgstr "Virhe tallennettaessa atlas-kuvaa:" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connecting to Mirror.." +msgstr "Yhdistä..." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Disconnected" +msgstr "Katkaise yhteys" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Resolving" +msgstr "Tallennetaan..." + +#: editor/export_template_manager.cpp +msgid "Can't Resolve" +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#, fuzzy +msgid "Connecting.." +msgstr "Yhdistä..." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't Conect" +msgstr "Yhdistä..." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connected" +msgstr "Yhdistä" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#, fuzzy +msgid "Requesting.." +msgstr "Testaus" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Downloading" +msgstr "Lataa" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connection Error" +msgstr "Yhdistä..." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "SSL Handshake Error" +msgstr "Lataa virheet" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "Nykyinen versio:" @@ -2422,13 +2573,22 @@ msgstr "Valitse mallin tiedosto" msgid "Export Template Manager" msgstr "" +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Download Templates" +msgstr "Poista malli" + +#: editor/export_template_manager.cpp +msgid "Select mirror from list: " +msgstr "" + #: editor/file_type_cache.cpp msgid "Can't open file_type_cache.cch for writing, not saving file type cache!" msgstr "" #: editor/filesystem_dock.cpp -msgid "Cannot navigate to '" -msgstr "Ei voida navigoida '" +msgid "Cannot navigate to '%s' as it has not been found in the file system!" +msgstr "" #: editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails" @@ -2445,13 +2605,6 @@ msgid "" msgstr "" #: editor/filesystem_dock.cpp -#, fuzzy -msgid "" -"\n" -"Source: " -msgstr "Lähde:" - -#: editor/filesystem_dock.cpp msgid "Cannot move/rename resources root." msgstr "" @@ -2723,8 +2876,8 @@ msgid "Remove Poly And Point" msgstr "Poista polygoni ja piste" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." +#, fuzzy +msgid "Create a new polygon from scratch" msgstr "Luo uusi piste tyhjästä." #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -2735,6 +2888,11 @@ msgid "" "RMB: Erase Point." msgstr "" +#: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy +msgid "Delete points" +msgstr "Poista piste" + #: editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" msgstr "" @@ -3072,20 +3230,11 @@ msgid "Can't resolve hostname:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't resolve." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Connection error, please try again." msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy -msgid "Can't connect." -msgstr "Yhdistä..." - -#: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Can't connect to host:" msgstr "Yhdistä Nodeen:" @@ -3094,31 +3243,15 @@ msgid "No response from host:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "No response." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy msgid "Request failed, return code:" msgstr "Pyydetty tiedostomuoto tuntematon:" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Req. Failed." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, too many redirects" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Redirect Loop." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Failed:" -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Bad download hash, assuming file has been tampered with." msgstr "" @@ -3149,16 +3282,6 @@ msgstr "Tallennetaan..." #: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy -msgid "Connecting.." -msgstr "Yhdistä..." - -#: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy -msgid "Requesting.." -msgstr "Testaus" - -#: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Error making request" msgstr "Virhe tallennettaessa resurssia!" @@ -3273,6 +3396,39 @@ msgid "Move Action" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create new vertical guide" +msgstr "Luo uusi skripti" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove vertical guide" +msgstr "Poista muuttuja" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Move horizontal guide" +msgstr "Siirrä pistettä käyrällä" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create new horizontal guide" +msgstr "Luo uusi skripti" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove horizontal guide" +msgstr "Poista virheelliset avaimet" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new horizontal and vertical guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Edit IK Chain" msgstr "" @@ -3399,10 +3555,17 @@ msgid "Snap to other nodes" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Snap to guides" +msgstr "Laajenna Parentiin" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Lock the selected object in place (can't be moved)." msgstr "Lukitse valitut objektit paikalleen (ei voi liikutella)." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Unlock the selected object (can be moved)." msgstr "Poista valittujen objektien lukitus (voi liikutella)." @@ -3456,6 +3619,11 @@ msgid "Show rulers" msgstr "Näytä luut" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Show guides" +msgstr "Näytä luut" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Selection" msgstr "Valinta keskikohtaan" @@ -3656,6 +3824,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/gi_probe_editor_plugin.cpp +msgid "Bake GI Probe" +msgstr "" + #: editor/plugins/gradient_editor_plugin.cpp msgid "Add/Remove Color Ramp Point" msgstr "" @@ -3688,6 +3860,10 @@ msgid "Create Occluder Polygon" msgstr "" #: editor/plugins/light_occluder_2d_editor_plugin.cpp +msgid "Create a new polygon from scratch." +msgstr "Luo uusi piste tyhjästä." + +#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Edit existing polygon:" msgstr "Muokkaa olemassaolevaa polygonia:" @@ -3703,58 +3879,6 @@ msgstr "" msgid "RMB: Erase Point." msgstr "OHP: Pyyhi piste." -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Remove Point from Line2D" -msgstr "Poista piste Line2D:stä" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Add Point to Line2D" -msgstr "Lisää piste Line2D:hen" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Move Point in Line2D" -msgstr "Siirrä pistettä LIne 2D:ssä" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Select Points" -msgstr "Valitse pisteet" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Shift+Drag: Select Control Points" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Click: Add Point" -msgstr "Klikkaa: lisää piste" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Right Click: Delete Point" -msgstr "Oikea klikkaus: Poista piste" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Add Point (in empty space)" -msgstr "Lisää piste (tyhjyydessä)" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Split Segment (in line)" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Delete Point" -msgstr "Poista piste" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "" @@ -4164,16 +4288,46 @@ msgid "Move Out-Control in Curve" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Select Points" +msgstr "Valitse pisteet" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Shift+Drag: Select Control Points" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Click: Add Point" +msgstr "Klikkaa: lisää piste" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Right Click: Delete Point" +msgstr "Oikea klikkaus: Poista piste" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Select Control Points (Shift+Drag)" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Add Point (in empty space)" +msgstr "Lisää piste (tyhjyydessä)" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Split Segment (in curve)" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Delete Point" +msgstr "Poista piste" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Close Curve" msgstr "Sulje käyrä" @@ -4316,7 +4470,6 @@ msgstr "Lataa resurssi" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Paste" @@ -4362,6 +4515,21 @@ msgid " Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#, fuzzy +msgid "Sort" +msgstr "Lajittele:" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Up" +msgstr "Siirrä ylös" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Down" +msgstr "Siirrä alas" + +#: editor/plugins/script_editor_plugin.cpp msgid "Next script" msgstr "Seuraava skripti" @@ -4413,6 +4581,10 @@ msgstr "Sulje dokumentaatio" msgid "Close All" msgstr "Sulje kaikki" +#: editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "Aja" @@ -4424,13 +4596,11 @@ msgstr "Näytä suosikit" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find.." msgstr "Etsi..." #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Next" msgstr "Etsi seuraava" @@ -4541,33 +4711,22 @@ msgstr "" msgid "Capitalize" msgstr "" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" msgstr "Leikkaa" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Copy" msgstr "Kopioi" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Select All" msgstr "Valitse kaikki" -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Up" -msgstr "Siirrä ylös" - -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Down" -msgstr "Siirrä alas" - #: editor/plugins/script_text_editor.cpp #, fuzzy msgid "Delete Line" @@ -4590,6 +4749,23 @@ msgid "Clone Down" msgstr "Kloonaa alas" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Fold Line" +msgstr "Mene riville" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold Line" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Fold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Complete Symbol" msgstr "" @@ -4637,12 +4813,10 @@ msgid "Convert To Lowercase" msgstr "Muunna..." #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Previous" msgstr "Etsi edellinen" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Replace.." msgstr "Korvaa..." @@ -4651,7 +4825,6 @@ msgid "Goto Function.." msgstr "Mene funktioon..." #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Goto Line.." msgstr "Mene riville..." @@ -4816,6 +4989,16 @@ msgid "View Plane Transform." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Scaling: " +msgstr "Skaalaus:" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Translating: " +msgstr "Siirtymä" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Rotating %s degrees." msgstr "Kierto %s astetta." @@ -4901,6 +5084,10 @@ msgid "Vertices" msgstr "Ominaisuudet:" #: editor/plugins/spatial_editor_plugin.cpp +msgid "FPS" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Align with view" msgstr "Kohdista näkymään" @@ -4936,6 +5123,16 @@ msgid "View Information" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "View FPS" +msgstr " Tiedostot" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Half Resolution" +msgstr "Skaalaa valintaa" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Audio Listener" msgstr "" @@ -5073,6 +5270,11 @@ msgid "Tool Scale" msgstr "Skaalaus:" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Toggle Freelook" +msgstr "Siirry koko näytön tilaan" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Transform" msgstr "Muunna" @@ -5355,6 +5557,10 @@ msgid "Create Empty Editor Template" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Create From Current Editor Theme" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "CheckBox Radio1" msgstr "" @@ -5534,7 +5740,7 @@ msgid "Runnable" msgstr "Suoritettava" #: editor/project_export.cpp -msgid "Delete patch '" +msgid "Delete patch '%s' from list?" msgstr "" #: editor/project_export.cpp @@ -5844,10 +6050,6 @@ msgid "Add Input Action Event" msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Meta+" -msgstr "" - -#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp msgid "Shift+" msgstr "" @@ -5970,13 +6172,12 @@ msgid "Select a setting item first!" msgstr "" #: editor/project_settings_editor.cpp -msgid "No property '" +msgid "No property '%s' exists." msgstr "" #: editor/project_settings_editor.cpp -#, fuzzy -msgid "Setting '" -msgstr "Asetukset" +msgid "Setting '%s' is internal, and it can't be deleted." +msgstr "" #: editor/project_settings_editor.cpp #, fuzzy @@ -6456,6 +6657,16 @@ msgid "Clear a script for the selected node." msgstr "" #: editor/scene_tree_dock.cpp +#, fuzzy +msgid "Remote" +msgstr "Poista" + +#: editor/scene_tree_dock.cpp +#, fuzzy +msgid "Local" +msgstr "Skaalaus:" + +#: editor/scene_tree_dock.cpp msgid "Clear Inheritance? (No Undo!)" msgstr "" @@ -6649,6 +6860,11 @@ msgid "Attach Node Script" msgstr "Liitä Noden skripti" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Remote " +msgstr "Poista" + +#: editor/script_editor_debugger.cpp msgid "Bytes:" msgstr "Tavu(j)a:" @@ -6705,18 +6921,6 @@ msgid "Stack Trace (if applicable):" msgstr "" #: editor/script_editor_debugger.cpp -msgid "Remote Inspector" -msgstr "" - -#: editor/script_editor_debugger.cpp -msgid "Live Scene Tree:" -msgstr "" - -#: editor/script_editor_debugger.cpp -msgid "Remote Object Properties: " -msgstr "" - -#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -6850,49 +7054,49 @@ msgstr "" msgid "GDNative" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Invalid type argument to convert(), use TYPE_* constants." msgstr "" -#: modules/gdscript/gd_functions.cpp modules/mono/glue/glue_header.h +#: modules/gdscript/gdscript_functions.cpp modules/mono/glue/glue_header.h #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Not enough bytes for decoding bytes, or invalid format." msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "step argument is zero!" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not a script with an instance" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a script" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a resource file" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (missing @path)" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (can't load script at @path)" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (invalid script at @path)" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary (invalid subclasses)" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Object can't provide a length." msgstr "" @@ -6907,16 +7111,26 @@ msgid "GridMap Duplicate Selection" msgstr "Monista valinta" #: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Floor:" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +#, fuzzy +msgid "Grid Map" +msgstr "Ruudukko" + +#: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy msgid "Snap View" msgstr "Huippunäkymä" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Prev Level (%sDown Wheel)" -msgstr "" +#, fuzzy +msgid "Previous Floor" +msgstr "Edellinen välilehti" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Next Level (%sUp Wheel)" +msgid "Next Floor" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp @@ -6991,13 +7205,8 @@ msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy -msgid "Selection -> Duplicate" -msgstr "Pelkkä valinta" - -#: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy -msgid "Selection -> Clear" -msgstr "Pelkkä valinta" +msgid "Clear Selection" +msgstr "Valinta keskikohtaan" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy @@ -7124,7 +7333,7 @@ msgid "Duplicate VisualScript Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Getter. Hold Shift to drop a generic signature." +msgid "Hold %s to drop a Getter. Hold Shift to drop a generic signature." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -7132,7 +7341,7 @@ msgid "Hold Ctrl to drop a Getter. Hold Shift to drop a generic signature." msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a simple reference to the node." +msgid "Hold %s to drop a simple reference to the node." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -7140,7 +7349,7 @@ msgid "Hold Ctrl to drop a simple reference to the node." msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Variable Setter." +msgid "Hold %s to drop a Variable Setter." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -7375,12 +7584,23 @@ msgid "Could not write file:\n" msgstr "Ei voitu kirjoittaa tiedostoa:\n" #: platform/javascript/export/export.cpp -msgid "Could not read file:\n" +msgid "Could not open template for export:\n" +msgstr "" + +#: platform/javascript/export/export.cpp +#, fuzzy +msgid "Invalid export template:\n" +msgstr "Hallitse vietäviä Templateja" + +#: platform/javascript/export/export.cpp +#, fuzzy +msgid "Could not read custom HTML shell:\n" msgstr "Ei voitu lukea tiedostoa:\n" #: platform/javascript/export/export.cpp -msgid "Could not open template for export:\n" -msgstr "" +#, fuzzy +msgid "Could not read boot splash image file:\n" +msgstr "Ei voitu lukea tiedostoa:\n" #: scene/2d/animated_sprite.cpp msgid "" @@ -7473,18 +7693,6 @@ msgstr "" msgid "Path property must point to a valid Node2D node to work." msgstr "Polku täytyy olla määritetty toimivaan Node2D solmuun toimiakseen." -#: 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 " @@ -7543,6 +7751,14 @@ msgid "" "shape resource for it!" msgstr "" +#: scene/3d/gi_probe.cpp +msgid "Plotting Meshes" +msgstr "" + +#: scene/3d/gi_probe.cpp +msgid "Finishing Plot" +msgstr "" + #: scene/3d/navigation_mesh.cpp msgid "A NavigationMesh resource must be set or created for this node to work." msgstr "" @@ -7627,6 +7843,10 @@ msgstr "" "Käytä containeria lapsena (VBox, HBox, jne), tai Control:ia ja aseta haluttu " "minimikoko manuaalisesti." +#: scene/gui/tree.cpp +msgid "(Other)" +msgstr "" + #: scene/main/scene_tree.cpp msgid "" "Default Environment as specified in Project Setings (Rendering -> Viewport -" @@ -7661,6 +7881,36 @@ msgstr "Virhe fontin latauksessa." msgid "Invalid font size." msgstr "Virheellinen fonttikoko." +#~ msgid "Cannot navigate to '" +#~ msgstr "Ei voida navigoida '" + +#, fuzzy +#~ msgid "" +#~ "\n" +#~ "Source: " +#~ msgstr "Lähde:" + +#~ msgid "Remove Point from Line2D" +#~ msgstr "Poista piste Line2D:stä" + +#~ msgid "Add Point to Line2D" +#~ msgstr "Lisää piste Line2D:hen" + +#~ msgid "Move Point in Line2D" +#~ msgstr "Siirrä pistettä LIne 2D:ssä" + +#, fuzzy +#~ msgid "Setting '" +#~ msgstr "Asetukset" + +#, fuzzy +#~ msgid "Selection -> Duplicate" +#~ msgstr "Pelkkä valinta" + +#, fuzzy +#~ msgid "Selection -> Clear" +#~ msgstr "Pelkkä valinta" + #~ msgid "Filter:" #~ msgstr "Suodatin:" @@ -7679,9 +7929,6 @@ msgstr "Virheellinen fonttikoko." #~ msgid "Removed:" #~ msgstr "Poistettu:" -#~ msgid "Error saving atlas:" -#~ msgstr "Virhe tallennettaessa atlas-kuvaa:" - #~ msgid "Error loading scene." #~ msgstr "Virhe ladatessa Sceneä." @@ -7984,9 +8231,6 @@ msgstr "Virheellinen fonttikoko." #~ msgid "Import Languages:" #~ msgstr "Tuo kielet:" -#~ msgid "Translation" -#~ msgstr "Siirtymä" - #~ msgid "Transfer to Lightmaps:" #~ msgstr "Muunna Lightmapiksi:" diff --git a/editor/translations/fr.po b/editor/translations/fr.po index 9e2f80498d..55b5e0a283 100644 --- a/editor/translations/fr.po +++ b/editor/translations/fr.po @@ -10,6 +10,7 @@ # finkiki <specialpopol@gmx.fr>, 2016. # Gilles Roudiere <gilles.roudiere@gmail.com>, 2017. # Hugo Locurcio <hugo.l@openmailbox.org>, 2016-2017. +# Kanabenki <lucien.menassol@gmail.com>, 2017. # keltwookie <keltwookie@protonmail.com>, 2017. # Marc <marc.gilleron@gmail.com>, 2016-2017. # Nathan Lovato <nathan.lovato.art@gmail.com>, 2017. @@ -26,8 +27,8 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2017-10-25 22:46+0000\n" -"Last-Translator: Robin Arys <robinarys@hotmail.com>\n" +"PO-Revision-Date: 2017-11-15 02:45+0000\n" +"Last-Translator: Kanabenki <lucien.menassol@gmail.com>\n" "Language-Team: French <https://hosted.weblate.org/projects/godot-engine/" "godot/fr/>\n" "Language: fr\n" @@ -35,7 +36,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 2.17\n" +"X-Generator: Weblate 2.18-dev\n" #: editor/animation_editor.cpp msgid "Disabled" @@ -118,6 +119,7 @@ msgid "Anim Delete Keys" msgstr "Anim Supprimer Clés" #: editor/animation_editor.cpp editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Duplicate Selection" msgstr "Dupliquer la sélection" @@ -655,6 +657,13 @@ msgstr "Éditeur de dépendances" msgid "Search Replacement Resource:" msgstr "Recherche ressource de remplacement :" +#: editor/dependency_editor.cpp editor/editor_file_dialog.cpp +#: editor/editor_help.cpp editor/editor_node.cpp editor/filesystem_dock.cpp +#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp +#: editor/quick_open.cpp scene/gui/file_dialog.cpp +msgid "Open" +msgstr "Ouvrir" + #: editor/dependency_editor.cpp msgid "Owners Of:" msgstr "Propriétaires de :" @@ -733,6 +742,16 @@ msgstr "Supprimer les fichiers sélectionnés ?" msgid "Delete" msgstr "Supprimer" +#: editor/dictionary_property_edit.cpp +#, fuzzy +msgid "Change Dictionary Key" +msgstr "Modifier le nom de l'animation :" + +#: editor/dictionary_property_edit.cpp +#, fuzzy +msgid "Change Dictionary Value" +msgstr "Modifier valeur du tableau" + #: editor/editor_about.cpp msgid "Thanks from the Godot community!" msgstr "La communauté Godot vous dit merci !" @@ -767,32 +786,31 @@ msgstr "Auteurs" #: editor/editor_about.cpp msgid "Platinum Sponsors" -msgstr "" +msgstr "Sponsors Platine" #: editor/editor_about.cpp msgid "Gold Sponsors" -msgstr "" +msgstr "Sponsors Or" #: editor/editor_about.cpp msgid "Mini Sponsors" -msgstr "" +msgstr "Mini Sponsors" #: editor/editor_about.cpp msgid "Gold Donors" -msgstr "" +msgstr "Donateurs Or" #: editor/editor_about.cpp msgid "Silver Donors" -msgstr "" +msgstr "Donateurs Argent" #: editor/editor_about.cpp -#, fuzzy msgid "Bronze Donors" -msgstr "Cloner en dessous" +msgstr "Donateurs Bronze" #: editor/editor_about.cpp msgid "Donors" -msgstr "" +msgstr "Donateurs" #: editor/editor_about.cpp msgid "License" @@ -918,9 +936,8 @@ msgid "Duplicate" msgstr "Dupliquer" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Reset Volume" -msgstr "Réinitialiser le zoom" +msgstr "Réinitialiser le volume" #: editor/editor_audio_buses.cpp msgid "Delete Effect" @@ -943,9 +960,8 @@ msgid "Duplicate Audio Bus" msgstr "Dupliquer le transport audio" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Reset Bus Volume" -msgstr "Réinitialiser le zoom" +msgstr "Réinitialiser le volume de bus" #: editor/editor_audio_buses.cpp msgid "Move Audio Bus" @@ -1161,12 +1177,6 @@ msgstr "Tous les types de fichiers reconnus" msgid "All Files (*)" msgstr "Tous les fichiers (*)" -#: editor/editor_file_dialog.cpp editor/editor_help.cpp editor/editor_node.cpp -#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_selector.cpp editor/quick_open.cpp scene/gui/file_dialog.cpp -msgid "Open" -msgstr "Ouvrir" - #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Open a File" msgstr "Ouvrir un fichier" @@ -1234,9 +1244,8 @@ msgid "Move Favorite Down" msgstr "Déplacer le favori vers le bas" #: editor/editor_file_dialog.cpp -#, fuzzy msgid "Go to parent folder" -msgstr "Impossible de créer le dossier." +msgstr "Aller au dossier parent" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Directories & Files:" @@ -1297,27 +1306,24 @@ msgid "Brief Description:" msgstr "Brève description :" #: editor/editor_help.cpp -#, fuzzy msgid "Members" -msgstr "Membres :" +msgstr "Membres" #: editor/editor_help.cpp modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "Membres :" #: editor/editor_help.cpp -#, fuzzy msgid "Public Methods" -msgstr "Méthodes publiques :" +msgstr "Méthodes Publiques" #: editor/editor_help.cpp msgid "Public Methods:" msgstr "Méthodes publiques :" #: editor/editor_help.cpp -#, fuzzy msgid "GUI Theme Items" -msgstr "Items de thème GUI :" +msgstr "Items de thème GUI" #: editor/editor_help.cpp msgid "GUI Theme Items:" @@ -1328,9 +1334,8 @@ msgid "Signals:" msgstr "Signaux :" #: editor/editor_help.cpp -#, fuzzy msgid "Enumerations" -msgstr "Recensements :" +msgstr "Énumérations" #: editor/editor_help.cpp msgid "Enumerations:" @@ -1341,23 +1346,20 @@ msgid "enum " msgstr "enum_ " #: editor/editor_help.cpp -#, fuzzy msgid "Constants" -msgstr "Constantes :" +msgstr "Constantes" #: editor/editor_help.cpp msgid "Constants:" msgstr "Constantes :" #: editor/editor_help.cpp -#, fuzzy msgid "Description" -msgstr "Description :" +msgstr "Description" #: editor/editor_help.cpp -#, fuzzy msgid "Properties" -msgstr "Propriétés :" +msgstr "Propriétés" #: editor/editor_help.cpp msgid "Property Description:" @@ -1534,6 +1536,13 @@ msgid "" msgstr "" #: editor/editor_node.cpp +msgid "" +"This is a remote object so changes to it will not be kept.\n" +"Please read the documentation relevant to debugging to better understand " +"this workflow." +msgstr "" + +#: editor/editor_node.cpp msgid "Copy Params" msgstr "Copier paramètres" @@ -1656,6 +1665,11 @@ msgid "Export Mesh Library" msgstr "Exporter une bibliothèque de maillages" #: editor/editor_node.cpp +#, fuzzy +msgid "This operation can't be done without a root node." +msgstr "Cette opération ne peut être réalisée sans noeud sélectionné." + +#: editor/editor_node.cpp msgid "Export Tile Set" msgstr "Exporter un ensemble de tuiles" @@ -1798,12 +1812,23 @@ msgid "Switch Scene Tab" msgstr "Basculer entre les onglets de scène" #: editor/editor_node.cpp -msgid "%d more file(s)" +#, fuzzy +msgid "%d more files or folders" +msgstr "%d fichier(s) ou dossier(s) supplémentaire(s)" + +#: editor/editor_node.cpp +#, fuzzy +msgid "%d more folders" msgstr "%d fichier(s) supplémentaire(s)" #: editor/editor_node.cpp -msgid "%d more file(s) or folder(s)" -msgstr "%d fichier(s) ou dossier(s) supplémentaire(s)" +#, fuzzy +msgid "%d more files" +msgstr "%d fichier(s) supplémentaire(s)" + +#: editor/editor_node.cpp +msgid "Dock Position" +msgstr "" #: editor/editor_node.cpp msgid "Distraction Free Mode" @@ -1814,6 +1839,11 @@ msgid "Toggle distraction-free mode." msgstr "Basculer vers mode sans-distraction." #: editor/editor_node.cpp +#, fuzzy +msgid "Add a new scene." +msgstr "Ajouter de nouvelles pistes." + +#: editor/editor_node.cpp msgid "Scene" msgstr "Scène" @@ -1878,13 +1908,12 @@ msgid "TileSet.." msgstr "TileSet…" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp -#: scene/gui/text_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Undo" msgstr "Annuler" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp +#: scene/gui/line_edit.cpp msgid "Redo" msgstr "Refaire" @@ -2391,6 +2420,11 @@ msgid "(Current)" msgstr "(Actuel)" #: editor/export_template_manager.cpp +#, fuzzy +msgid "Retrieving mirrors, please wait.." +msgstr "Erreur de connection, veuillez essayer à nouveau." + +#: editor/export_template_manager.cpp msgid "Remove template version '%s'?" msgstr "Supprimer la version '%s' du modèle ?" @@ -2427,6 +2461,112 @@ msgid "Importing:" msgstr "Importation :" #: editor/export_template_manager.cpp +msgid "" +"No download links found for this version. Direct download is only available " +"for official releases." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't resolve." +msgstr "Impossible à résoudre." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't connect." +msgstr "Connection impossible." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "No response." +msgstr "Pas de réponse." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Req. Failed." +msgstr "Req. a Échoué." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Redirect Loop." +msgstr "Boucle de Redirection." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Failed:" +msgstr "Échec:" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't write file." +msgstr "Impossible d'écrire le fichier:\n" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Download Complete." +msgstr "Erreur de téléchargement" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Error requesting url: " +msgstr "Erreur de sauvegarde de l'atlas :" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connecting to Mirror.." +msgstr "Connexion en cours.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Disconnected" +msgstr "Déconnecter" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Resolving" +msgstr "Résolution.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't Resolve" +msgstr "Impossible à résoudre." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Connecting.." +msgstr "Connexion en cours.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't Conect" +msgstr "Connection impossible." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connected" +msgstr "Connecter" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Requesting.." +msgstr "Envoi d'une requête.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Downloading" +msgstr "Télécharger" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connection Error" +msgstr "Connexion en cours.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "SSL Handshake Error" +msgstr "Erreurs de chargement" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "Version courante :" @@ -2450,6 +2590,16 @@ msgstr "Sélectionner le fichier de modèle" msgid "Export Template Manager" msgstr "Gestionnaire d'export de modèles" +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Download Templates" +msgstr "Modèles" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Select mirror from list: " +msgstr "Sélectionner appareil depuis la liste" + #: editor/file_type_cache.cpp msgid "Can't open file_type_cache.cch for writing, not saving file type cache!" msgstr "" @@ -2457,8 +2607,8 @@ msgstr "" "sera pas sauvé !" #: editor/filesystem_dock.cpp -msgid "Cannot navigate to '" -msgstr "Ne peux pas acceder à '" +msgid "Cannot navigate to '%s' as it has not been found in the file system!" +msgstr "" #: editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails" @@ -2475,14 +2625,6 @@ msgid "" msgstr "" #: editor/filesystem_dock.cpp -msgid "" -"\n" -"Source: " -msgstr "" -"\n" -"Source : " - -#: editor/filesystem_dock.cpp #, fuzzy msgid "Cannot move/rename resources root." msgstr "Impossible de charger ou traiter la police source." @@ -2761,8 +2903,8 @@ msgid "Remove Poly And Point" msgstr "Retirer Polygone et Point" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." +#, fuzzy +msgid "Create a new polygon from scratch" msgstr "Créer un nouveau polygone à partir de rien." #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -2777,6 +2919,11 @@ msgstr "" "Ctrl+Bouton gauche : Diviser section.\n" "Bouton droit: Effeacer point." +#: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy +msgid "Delete points" +msgstr "Supprimer le point" + #: editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" msgstr "Activer/désactiver la lecture automatique" @@ -3112,18 +3259,10 @@ msgid "Can't resolve hostname:" msgstr "Impossible de résoudre le nom de l'hôte:" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't resolve." -msgstr "Impossible à résoudre." - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Connection error, please try again." msgstr "Erreur de connection, veuillez essayer à nouveau." #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't connect." -msgstr "Connection impossible." - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Can't connect to host:" msgstr "Connection à l'hôte impossible:" @@ -3132,30 +3271,14 @@ msgid "No response from host:" msgstr "Pas de réponse de l'hôte:" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "No response." -msgstr "Pas de réponse." - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, return code:" msgstr "La requête a échoué, code retourné:" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Req. Failed." -msgstr "Req. a Échoué." - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, too many redirects" msgstr "La requête a échoué, trop de redirections" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Redirect Loop." -msgstr "Boucle de Redirection." - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Failed:" -msgstr "Échec:" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Bad download hash, assuming file has been tampered with." msgstr "Vérification du téléchargement échouée, le fichier a été altéré." @@ -3184,14 +3307,6 @@ msgid "Resolving.." msgstr "Résolution.." #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Connecting.." -msgstr "Connexion en cours.." - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Requesting.." -msgstr "Envoi d'une requête.." - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Error making request" msgstr "Erreur lors de la requête" @@ -3304,6 +3419,39 @@ msgid "Move Action" msgstr "Déplacer l'action" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create new vertical guide" +msgstr "Créer nouveau fichier de script" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove vertical guide" +msgstr "Supprimer la variable" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Move horizontal guide" +msgstr "Déplacer le point dans la courbe" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create new horizontal guide" +msgstr "Créer nouveau fichier de script" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove horizontal guide" +msgstr "Supprimer les clés invalides" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new horizontal and vertical guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Edit IK Chain" msgstr "Modifier la chaîne IK" @@ -3435,10 +3583,17 @@ msgid "Snap to other nodes" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Snap to guides" +msgstr "Mode d'aimantation :" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Lock the selected object in place (can't be moved)." msgstr "Verrouiller l'objet sélectionné (il ne pourra plus être déplacé)." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Unlock the selected object (can be moved)." msgstr "Déverouiller l'objet sélectionné (il pourra être déplacé de nouveau)." @@ -3491,6 +3646,11 @@ msgid "Show rulers" msgstr "Afficher les os" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Show guides" +msgstr "Afficher les os" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Selection" msgstr "Centrer sur la sélection" @@ -3683,6 +3843,10 @@ msgstr "Basculer vers tangente linéaire de courbe" msgid "Hold Shift to edit tangents individually" msgstr "Maintenez l'appui sur Maj pour éditer les tangentes individuellement" +#: editor/plugins/gi_probe_editor_plugin.cpp +msgid "Bake GI Probe" +msgstr "" + #: editor/plugins/gradient_editor_plugin.cpp msgid "Add/Remove Color Ramp Point" msgstr "Ajouter/supprimer un point de rampe de couleur" @@ -3716,6 +3880,10 @@ msgid "Create Occluder Polygon" msgstr "Créer un polygone occulteur" #: editor/plugins/light_occluder_2d_editor_plugin.cpp +msgid "Create a new polygon from scratch." +msgstr "Créer un nouveau polygone à partir de rien." + +#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Edit existing polygon:" msgstr "Modifier un polygone existant :" @@ -3731,58 +3899,6 @@ msgstr "Contrôle + Bouton gauche : séparer le segment." msgid "RMB: Erase Point." msgstr "Bouton droit : effacer un point." -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Remove Point from Line2D" -msgstr "Supprimer point de Line2D" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Add Point to Line2D" -msgstr "Ajouter point à Line2D" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Move Point in Line2D" -msgstr "Déplacer point de Line2D" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Select Points" -msgstr "Sélectionner des points" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Shift+Drag: Select Control Points" -msgstr "Maj. + Glisser : sélectionner des points de contrôle" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Click: Add Point" -msgstr "Clic : ajouter un point" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Right Click: Delete Point" -msgstr "Clic droit : supprimer un point" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Add Point (in empty space)" -msgstr "Ajouter un point (dans un espace vide)" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Split Segment (in line)" -msgstr "Diviser le segment (dans la ligne)" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Delete Point" -msgstr "Supprimer le point" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "Le maillage est vide !" @@ -4196,16 +4312,46 @@ msgid "Move Out-Control in Curve" msgstr "Déplacer Out-Control dans courbe" #: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Select Points" +msgstr "Sélectionner des points" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Shift+Drag: Select Control Points" +msgstr "Maj. + Glisser : sélectionner des points de contrôle" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Click: Add Point" +msgstr "Clic : ajouter un point" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Right Click: Delete Point" +msgstr "Clic droit : supprimer un point" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Select Control Points (Shift+Drag)" msgstr "Sélectionner les points de contrôle (Maj. + glisser)" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Add Point (in empty space)" +msgstr "Ajouter un point (dans un espace vide)" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Split Segment (in curve)" msgstr "Diviser le segment (en courbe)" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Delete Point" +msgstr "Supprimer le point" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Close Curve" msgstr "Fermer la courbe" @@ -4345,7 +4491,6 @@ msgstr "Charger une ressource" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Paste" @@ -4390,6 +4535,21 @@ msgid " Class Reference" msgstr " Référence de classe" #: editor/plugins/script_editor_plugin.cpp +#, fuzzy +msgid "Sort" +msgstr "Trier :" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Up" +msgstr "Déplacer vers le haut" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Down" +msgstr "Déplacer vers le bas" + +#: editor/plugins/script_editor_plugin.cpp msgid "Next script" msgstr "Script suivant" @@ -4441,6 +4601,10 @@ msgstr "Fermer les documentations" msgid "Close All" msgstr "Fermer tout" +#: editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "Lancer" @@ -4451,13 +4615,11 @@ msgstr "Basculer vers le panneau de scripts" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find.." msgstr "Trouver…" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Next" msgstr "Trouver le suivant" @@ -4565,33 +4727,22 @@ msgstr "Minuscule" msgid "Capitalize" msgstr "Capitaliser" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" msgstr "Couper" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Copy" msgstr "Copier" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Select All" msgstr "Tout sélectionner" -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Up" -msgstr "Déplacer vers le haut" - -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Down" -msgstr "Déplacer vers le bas" - #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "Supprimer ligne" @@ -4613,6 +4764,23 @@ msgid "Clone Down" msgstr "Cloner en dessous" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Fold Line" +msgstr "Aller à la ligne" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold Line" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Fold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Complete Symbol" msgstr "Compléter le symbole" @@ -4658,12 +4826,10 @@ msgid "Convert To Lowercase" msgstr "Convertir en minuscule" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Previous" msgstr "trouver précédente" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Replace.." msgstr "Remplacer…" @@ -4672,7 +4838,6 @@ msgid "Goto Function.." msgstr "Aller à la fonction…" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Goto Line.." msgstr "Aller à la ligne…" @@ -4837,6 +5002,16 @@ msgid "View Plane Transform." msgstr "Transformation du plan de vue." #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Scaling: " +msgstr "Échelle :" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Translating: " +msgstr "Traductions :" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Rotating %s degrees." msgstr "Rotation de %s degrés." @@ -4917,6 +5092,10 @@ msgid "Vertices" msgstr "Vertex" #: editor/plugins/spatial_editor_plugin.cpp +msgid "FPS" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Align with view" msgstr "Aligner avec la vue" @@ -4949,6 +5128,16 @@ msgid "View Information" msgstr "Voir information" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "View FPS" +msgstr "Voir Fichiers" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Half Resolution" +msgstr "Mettre à l'échelle la sélection" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Audio Listener" msgstr "Écouteur audio" @@ -5079,6 +5268,11 @@ msgid "Tool Scale" msgstr "Outil échelle" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Toggle Freelook" +msgstr "Basculer le mode plein écran" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Transform" msgstr "Transformation" @@ -5355,6 +5549,11 @@ msgid "Create Empty Editor Template" msgstr "Créer un nouveau modèle d'éditeur" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Create From Current Editor Theme" +msgstr "Créer un nouveau modèle d'éditeur" + +#: editor/plugins/theme_editor_plugin.cpp msgid "CheckBox Radio1" msgstr "Case à cocher Radio1" @@ -5529,7 +5728,8 @@ msgid "Runnable" msgstr "Activable" #: editor/project_export.cpp -msgid "Delete patch '" +#, fuzzy +msgid "Delete patch '%s' from list?" msgstr "Supprimer patch" #: editor/project_export.cpp @@ -5845,10 +6045,6 @@ msgid "Add Input Action Event" msgstr "Ajouter un événement d'action d'entrée" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Meta+" -msgstr "Méta+" - -#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp msgid "Shift+" msgstr "Maj+" @@ -5971,12 +6167,13 @@ msgid "Select a setting item first!" msgstr "Choisissez d'abord un élément de réglage !" #: editor/project_settings_editor.cpp -msgid "No property '" +#, fuzzy +msgid "No property '%s' exists." msgstr "Pas de propriété" #: editor/project_settings_editor.cpp -msgid "Setting '" -msgstr "Paramètre" +msgid "Setting '%s' is internal, and it can't be deleted." +msgstr "" #: editor/project_settings_editor.cpp msgid "Delete Item" @@ -6460,6 +6657,16 @@ msgid "Clear a script for the selected node." msgstr "Effacer un script pour le nœud sélectionné." #: editor/scene_tree_dock.cpp +#, fuzzy +msgid "Remote" +msgstr "Supprimer" + +#: editor/scene_tree_dock.cpp +#, fuzzy +msgid "Local" +msgstr "Langue" + +#: editor/scene_tree_dock.cpp msgid "Clear Inheritance? (No Undo!)" msgstr "Effacer l'héritage ? (Pas de retour en arrière !)" @@ -6653,6 +6860,11 @@ msgid "Attach Node Script" msgstr "Attacher script de nœud" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Remote " +msgstr "Supprimer" + +#: editor/script_editor_debugger.cpp msgid "Bytes:" msgstr "Octets :" @@ -6709,18 +6921,6 @@ msgid "Stack Trace (if applicable):" msgstr "Trace de pile (si applicable) :" #: editor/script_editor_debugger.cpp -msgid "Remote Inspector" -msgstr "Inspecteur distant" - -#: editor/script_editor_debugger.cpp -msgid "Live Scene Tree:" -msgstr "Arbre des scènes en direct :" - -#: editor/script_editor_debugger.cpp -msgid "Remote Object Properties: " -msgstr "Propriétés de l'objet distant : " - -#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "Profileur" @@ -6854,54 +7054,54 @@ msgstr "" msgid "GDNative" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Invalid type argument to convert(), use TYPE_* constants." msgstr "" "Argument de type incorrect dans convert(), utilisez les constantes TYPE_*." -#: modules/gdscript/gd_functions.cpp modules/mono/glue/glue_header.h +#: modules/gdscript/gdscript_functions.cpp modules/mono/glue/glue_header.h #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Not enough bytes for decoding bytes, or invalid format." msgstr "Pas assez d'octets pour les octets de décodage, ou format non valide." -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "step argument is zero!" msgstr "L'argument du pas est zéro !" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not a script with an instance" msgstr "N'est pas un script avec une instance" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a script" msgstr "N'est pas basé sur un script" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a resource file" msgstr "N'est pas basé sur un fichier de ressource" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (missing @path)" msgstr "Instance invalide pour le format de dictionnaire (@path manquant)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (can't load script at @path)" msgstr "" "Instance invalide pour le format de dictionnaire (impossible de charger le " "script depuis @path)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (invalid script at @path)" msgstr "" "Instance invalide pour le format de dictionnaire (script invalide dans @path)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary (invalid subclasses)" msgstr "" "Instance invalide pour le format de dictionnaire (sous-classes invalides)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Object can't provide a length." msgstr "L'objet ne peut fournir une longueur." @@ -6914,18 +7114,26 @@ msgid "GridMap Duplicate Selection" msgstr "Sélection de la duplication de GridMap" #: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Floor:" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +#, fuzzy +msgid "Grid Map" +msgstr "Aimanter à la grille" + +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Snap View" msgstr "Vue instantanée" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy -msgid "Prev Level (%sDown Wheel)" -msgstr "Niveau de prévisualisation (" +msgid "Previous Floor" +msgstr "Onglet precedent" #: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy -msgid "Next Level (%sUp Wheel)" -msgstr "Niveau suivant (" +msgid "Next Floor" +msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clip Disabled" @@ -6992,12 +7200,9 @@ msgid "Erase Area" msgstr "Effacer zone" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Selection -> Duplicate" -msgstr "Sélection -> Dupliquer" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Selection -> Clear" -msgstr "Sélection -> Effacer" +#, fuzzy +msgid "Clear Selection" +msgstr "Centrer sur la sélection" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Settings" @@ -7126,7 +7331,8 @@ msgid "Duplicate VisualScript Nodes" msgstr "Dupliquer noeuds VisualScript" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Getter. Hold Shift to drop a generic signature." +#, fuzzy +msgid "Hold %s to drop a Getter. Hold Shift to drop a generic signature." msgstr "" "Maintenir Meta pour déposer un accesseur. Maintenir Maj pour déposer une " "signature générique." @@ -7138,7 +7344,8 @@ msgstr "" "signature générique." #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a simple reference to the node." +#, fuzzy +msgid "Hold %s to drop a simple reference to the node." msgstr "Maintenir Meta pour déposer une référence simple au nœud." #: modules/visual_script/visual_script_editor.cpp @@ -7146,7 +7353,8 @@ msgid "Hold Ctrl to drop a simple reference to the node." msgstr "Maintenir Ctrl pour déposer une référence simple au nœud." #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Variable Setter." +#, fuzzy +msgid "Hold %s to drop a Variable Setter." msgstr "Maintenir Meta pour déposer un mutateur de variable." #: modules/visual_script/visual_script_editor.cpp @@ -7376,12 +7584,23 @@ msgid "Could not write file:\n" msgstr "Impossible d'écrire le fichier:\n" #: platform/javascript/export/export.cpp -msgid "Could not read file:\n" +msgid "Could not open template for export:\n" +msgstr "Impossible d'ouvrir le modèle pour exportation:\n" + +#: platform/javascript/export/export.cpp +#, fuzzy +msgid "Invalid export template:\n" +msgstr "Installer les modèles d'exportation" + +#: platform/javascript/export/export.cpp +#, fuzzy +msgid "Could not read custom HTML shell:\n" msgstr "Impossible de lire le fichier:\n" #: platform/javascript/export/export.cpp -msgid "Could not open template for export:\n" -msgstr "Impossible d'ouvrir le modèle pour exportation:\n" +#, fuzzy +msgid "Could not read boot splash image file:\n" +msgstr "Impossible de lire le fichier:\n" #: scene/2d/animated_sprite.cpp msgid "" @@ -7506,22 +7725,6 @@ msgstr "" "La propriété Path doit pointer vers un nœud de type Node2D valide pour " "fonctionner." -#: 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 "" -"La propriété Path doit pointer vers un nœud de type Viewport valide pour " -"fonctionner. Ce Viewport doit utiliser le mode « 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 "" -"Le Viewport défini dans la propriété Path doit utiliser le mode « render " -"target » pour que cette sprite fonctionne." - #: scene/2d/visibility_notifier_2d.cpp msgid "" "VisibilityEnable2D works best when used with the edited scene root directly " @@ -7592,6 +7795,15 @@ msgstr "" "Une CollisionShape nécessite une forme pour fonctionner. Créez une ressource " "de forme pour cette CollisionShape !" +#: scene/3d/gi_probe.cpp +#, fuzzy +msgid "Plotting Meshes" +msgstr "Découpage des images" + +#: scene/3d/gi_probe.cpp +msgid "Finishing Plot" +msgstr "" + #: scene/3d/navigation_mesh.cpp msgid "A NavigationMesh resource must be set or created for this node to work." msgstr "" @@ -7690,6 +7902,10 @@ msgstr "" "Utilisez un conteneur comme enfant (VBox, HBox, etc.) ou un contrôle et " "définissez manuellement la taille minimale personnalisée." +#: scene/gui/tree.cpp +msgid "(Other)" +msgstr "" + #: scene/main/scene_tree.cpp msgid "" "Default Environment as specified in Project Setings (Rendering -> Viewport -" @@ -7726,6 +7942,71 @@ msgstr "Erreur lors du chargement de la police." msgid "Invalid font size." msgstr "Taille de police invalide." +#~ msgid "Cannot navigate to '" +#~ msgstr "Ne peux pas acceder à '" + +#~ msgid "" +#~ "\n" +#~ "Source: " +#~ msgstr "" +#~ "\n" +#~ "Source : " + +#~ msgid "Remove Point from Line2D" +#~ msgstr "Supprimer point de Line2D" + +#~ msgid "Add Point to Line2D" +#~ msgstr "Ajouter point à Line2D" + +#~ msgid "Move Point in Line2D" +#~ msgstr "Déplacer point de Line2D" + +#~ msgid "Split Segment (in line)" +#~ msgstr "Diviser le segment (dans la ligne)" + +#~ msgid "Meta+" +#~ msgstr "Méta+" + +#~ msgid "Setting '" +#~ msgstr "Paramètre" + +#~ msgid "Remote Inspector" +#~ msgstr "Inspecteur distant" + +#~ msgid "Live Scene Tree:" +#~ msgstr "Arbre des scènes en direct :" + +#~ msgid "Remote Object Properties: " +#~ msgstr "Propriétés de l'objet distant : " + +#, fuzzy +#~ msgid "Prev Level (%sDown Wheel)" +#~ msgstr "Niveau de prévisualisation (" + +#, fuzzy +#~ msgid "Next Level (%sUp Wheel)" +#~ msgstr "Niveau suivant (" + +#~ msgid "Selection -> Duplicate" +#~ msgstr "Sélection -> Dupliquer" + +#~ msgid "Selection -> Clear" +#~ msgstr "Sélection -> Effacer" + +#~ msgid "" +#~ "Path property must point to a valid Viewport node to work. Such Viewport " +#~ "must be set to 'render target' mode." +#~ msgstr "" +#~ "La propriété Path doit pointer vers un nœud de type Viewport valide pour " +#~ "fonctionner. Ce Viewport doit utiliser le mode « render target »." + +#~ msgid "" +#~ "The Viewport set in the path property must be set as 'render target' in " +#~ "order for this sprite to work." +#~ msgstr "" +#~ "Le Viewport défini dans la propriété Path doit utiliser le mode « render " +#~ "target » pour que cette sprite fonctionne." + #~ msgid "Filter:" #~ msgstr "Filtre:" @@ -7750,9 +8031,6 @@ msgstr "Taille de police invalide." #~ msgid "Removed:" #~ msgstr "Supprimé :" -#~ msgid "Error saving atlas:" -#~ msgstr "Erreur de sauvegarde de l'atlas :" - #~ msgid "Could not save atlas subtexture:" #~ msgstr "Impossible d'enregistrer la sous-texture atlas :" @@ -8143,9 +8421,6 @@ msgstr "Taille de police invalide." #~ msgid "Cropping Images" #~ msgstr "Rognage des images" -#~ msgid "Blitting Images" -#~ msgstr "Découpage des images" - #~ msgid "Couldn't save atlas image:" #~ msgstr "Impossible d'enregistrer l'image d'atlas :" @@ -8536,9 +8811,6 @@ msgstr "Taille de police invalide." #~ msgid "Save Translatable Strings" #~ msgstr "Enregistrer les chaînes traduisibles" -#~ msgid "Install Export Templates" -#~ msgstr "Installer les modèles d'exportation" - #~ msgid "Edit Script Options" #~ msgstr "Modifier les options du script" diff --git a/editor/translations/hu.po b/editor/translations/hu.po index 07457b4692..8508149f3c 100644 --- a/editor/translations/hu.po +++ b/editor/translations/hu.po @@ -99,6 +99,7 @@ msgid "Anim Delete Keys" msgstr "" #: editor/animation_editor.cpp editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Duplicate Selection" msgstr "" @@ -628,6 +629,13 @@ msgstr "" msgid "Search Replacement Resource:" msgstr "" +#: editor/dependency_editor.cpp editor/editor_file_dialog.cpp +#: editor/editor_help.cpp editor/editor_node.cpp editor/filesystem_dock.cpp +#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp +#: editor/quick_open.cpp scene/gui/file_dialog.cpp +msgid "Open" +msgstr "" + #: editor/dependency_editor.cpp msgid "Owners Of:" msgstr "" @@ -698,6 +706,14 @@ msgstr "" msgid "Delete" msgstr "" +#: editor/dictionary_property_edit.cpp +msgid "Change Dictionary Key" +msgstr "" + +#: editor/dictionary_property_edit.cpp +msgid "Change Dictionary Value" +msgstr "" + #: editor/editor_about.cpp msgid "Thanks from the Godot community!" msgstr "" @@ -1113,12 +1129,6 @@ msgstr "" msgid "All Files (*)" msgstr "" -#: editor/editor_file_dialog.cpp editor/editor_help.cpp editor/editor_node.cpp -#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_selector.cpp editor/quick_open.cpp scene/gui/file_dialog.cpp -msgid "Open" -msgstr "" - #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Open a File" msgstr "" @@ -1471,6 +1481,13 @@ msgid "" msgstr "" #: editor/editor_node.cpp +msgid "" +"This is a remote object so changes to it will not be kept.\n" +"Please read the documentation relevant to debugging to better understand " +"this workflow." +msgstr "" + +#: editor/editor_node.cpp msgid "Copy Params" msgstr "" @@ -1580,6 +1597,10 @@ msgid "Export Mesh Library" msgstr "" #: editor/editor_node.cpp +msgid "This operation can't be done without a root node." +msgstr "" + +#: editor/editor_node.cpp msgid "Export Tile Set" msgstr "" @@ -1705,11 +1726,19 @@ msgid "Switch Scene Tab" msgstr "" #: editor/editor_node.cpp -msgid "%d more file(s)" +msgid "%d more files or folders" +msgstr "" + +#: editor/editor_node.cpp +msgid "%d more folders" +msgstr "" + +#: editor/editor_node.cpp +msgid "%d more files" msgstr "" #: editor/editor_node.cpp -msgid "%d more file(s) or folder(s)" +msgid "Dock Position" msgstr "" #: editor/editor_node.cpp @@ -1721,6 +1750,10 @@ msgid "Toggle distraction-free mode." msgstr "" #: editor/editor_node.cpp +msgid "Add a new scene." +msgstr "" + +#: editor/editor_node.cpp msgid "Scene" msgstr "" @@ -1785,13 +1818,12 @@ msgid "TileSet.." msgstr "" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp -#: scene/gui/text_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Undo" msgstr "" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp +#: scene/gui/line_edit.cpp msgid "Redo" msgstr "" @@ -2272,6 +2304,10 @@ msgid "(Current)" msgstr "" #: editor/export_template_manager.cpp +msgid "Retrieving mirrors, please wait.." +msgstr "" + +#: editor/export_template_manager.cpp msgid "Remove template version '%s'?" msgstr "" @@ -2306,6 +2342,100 @@ msgid "Importing:" msgstr "" #: editor/export_template_manager.cpp +msgid "" +"No download links found for this version. Direct download is only available " +"for official releases." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't resolve." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't connect." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "No response." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Req. Failed." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Redirect Loop." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Failed:" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Can't write file." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Download Complete." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Error requesting url: " +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Connecting to Mirror.." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Disconnected" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Resolving" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Can't Resolve" +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Connecting.." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Can't Conect" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Connected" +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Requesting.." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Downloading" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Connection Error" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "SSL Handshake Error" +msgstr "" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "" @@ -2329,12 +2459,20 @@ msgstr "" msgid "Export Template Manager" msgstr "" +#: editor/export_template_manager.cpp +msgid "Download Templates" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Select mirror from list: " +msgstr "" + #: editor/file_type_cache.cpp msgid "Can't open file_type_cache.cch for writing, not saving file type cache!" msgstr "" #: editor/filesystem_dock.cpp -msgid "Cannot navigate to '" +msgid "Cannot navigate to '%s' as it has not been found in the file system!" msgstr "" #: editor/filesystem_dock.cpp @@ -2352,12 +2490,6 @@ msgid "" msgstr "" #: editor/filesystem_dock.cpp -msgid "" -"\n" -"Source: " -msgstr "" - -#: editor/filesystem_dock.cpp msgid "Cannot move/rename resources root." msgstr "" @@ -2615,8 +2747,7 @@ msgid "Remove Poly And Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." +msgid "Create a new polygon from scratch" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -2627,6 +2758,10 @@ msgid "" "RMB: Erase Point." msgstr "" +#: editor/plugins/abstract_polygon_2d_editor.cpp +msgid "Delete points" +msgstr "" + #: editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" msgstr "" @@ -2961,18 +3096,10 @@ msgid "Can't resolve hostname:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't resolve." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Connection error, please try again." msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't connect." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Can't connect to host:" msgstr "" @@ -2981,30 +3108,14 @@ msgid "No response from host:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "No response." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, return code:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Req. Failed." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, too many redirects" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Redirect Loop." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Failed:" -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Bad download hash, assuming file has been tampered with." msgstr "" @@ -3033,14 +3144,6 @@ msgid "Resolving.." msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Connecting.." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Requesting.." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Error making request" msgstr "" @@ -3153,6 +3256,34 @@ msgid "Move Action" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Remove vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move horizontal guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new horizontal guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Remove horizontal guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new horizontal and vertical guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Edit IK Chain" msgstr "" @@ -3273,10 +3404,16 @@ msgid "Snap to other nodes" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snap to guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Lock the selected object in place (can't be moved)." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Unlock the selected object (can be moved)." msgstr "" @@ -3327,6 +3464,10 @@ msgid "Show rulers" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Show guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Selection" msgstr "" @@ -3511,6 +3652,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/gi_probe_editor_plugin.cpp +msgid "Bake GI Probe" +msgstr "" + #: editor/plugins/gradient_editor_plugin.cpp msgid "Add/Remove Color Ramp Point" msgstr "" @@ -3543,6 +3688,10 @@ msgid "Create Occluder Polygon" msgstr "" #: editor/plugins/light_occluder_2d_editor_plugin.cpp +msgid "Create a new polygon from scratch." +msgstr "" + +#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Edit existing polygon:" msgstr "" @@ -3558,58 +3707,6 @@ msgstr "" msgid "RMB: Erase Point." msgstr "" -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Remove Point from Line2D" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Add Point to Line2D" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Move Point in Line2D" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Select Points" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Shift+Drag: Select Control Points" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Click: Add Point" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Right Click: Delete Point" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Add Point (in empty space)" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Split Segment (in line)" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Delete Point" -msgstr "" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "" @@ -4007,16 +4104,46 @@ msgid "Move Out-Control in Curve" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Select Points" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Shift+Drag: Select Control Points" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Click: Add Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Right Click: Delete Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Select Control Points (Shift+Drag)" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Add Point (in empty space)" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Split Segment (in curve)" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Delete Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Close Curve" msgstr "" @@ -4153,7 +4280,6 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Paste" @@ -4198,6 +4324,20 @@ msgid " Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +msgid "Sort" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Up" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Down" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Next script" msgstr "" @@ -4249,6 +4389,10 @@ msgstr "" msgid "Close All" msgstr "" +#: editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "" @@ -4259,13 +4403,11 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find.." msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Next" msgstr "" @@ -4369,33 +4511,22 @@ msgstr "" msgid "Capitalize" msgstr "" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Copy" msgstr "" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Select All" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Up" -msgstr "" - -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Down" -msgstr "" - #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "" @@ -4417,6 +4548,22 @@ msgid "Clone Down" msgstr "" #: editor/plugins/script_text_editor.cpp +msgid "Fold Line" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold Line" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Fold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Complete Symbol" msgstr "" @@ -4462,12 +4609,10 @@ msgid "Convert To Lowercase" msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Previous" msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Replace.." msgstr "" @@ -4476,7 +4621,6 @@ msgid "Goto Function.." msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Goto Line.." msgstr "" @@ -4641,6 +4785,14 @@ msgid "View Plane Transform." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Scaling: " +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Translating: " +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Rotating %s degrees." msgstr "" @@ -4721,6 +4873,10 @@ msgid "Vertices" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "FPS" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Align with view" msgstr "" @@ -4753,6 +4909,14 @@ msgid "View Information" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "View FPS" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Half Resolution" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Audio Listener" msgstr "" @@ -4880,6 +5044,10 @@ msgid "Tool Scale" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Toggle Freelook" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Transform" msgstr "" @@ -5154,6 +5322,10 @@ msgid "Create Empty Editor Template" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Create From Current Editor Theme" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "CheckBox Radio1" msgstr "" @@ -5327,7 +5499,7 @@ msgid "Runnable" msgstr "" #: editor/project_export.cpp -msgid "Delete patch '" +msgid "Delete patch '%s' from list?" msgstr "" #: editor/project_export.cpp @@ -5620,10 +5792,6 @@ msgid "Add Input Action Event" msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Meta+" -msgstr "" - -#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp msgid "Shift+" msgstr "" @@ -5745,11 +5913,11 @@ msgid "Select a setting item first!" msgstr "" #: editor/project_settings_editor.cpp -msgid "No property '" +msgid "No property '%s' exists." msgstr "" #: editor/project_settings_editor.cpp -msgid "Setting '" +msgid "Setting '%s' is internal, and it can't be deleted." msgstr "" #: editor/project_settings_editor.cpp @@ -6216,6 +6384,14 @@ msgid "Clear a script for the selected node." msgstr "" #: editor/scene_tree_dock.cpp +msgid "Remote" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Local" +msgstr "" + +#: editor/scene_tree_dock.cpp msgid "Clear Inheritance? (No Undo!)" msgstr "" @@ -6398,6 +6574,10 @@ msgid "Attach Node Script" msgstr "" #: editor/script_editor_debugger.cpp +msgid "Remote " +msgstr "" + +#: editor/script_editor_debugger.cpp msgid "Bytes:" msgstr "" @@ -6454,18 +6634,6 @@ msgid "Stack Trace (if applicable):" msgstr "" #: editor/script_editor_debugger.cpp -msgid "Remote Inspector" -msgstr "" - -#: editor/script_editor_debugger.cpp -msgid "Live Scene Tree:" -msgstr "" - -#: editor/script_editor_debugger.cpp -msgid "Remote Object Properties: " -msgstr "" - -#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -6597,49 +6765,49 @@ msgstr "" msgid "GDNative" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Invalid type argument to convert(), use TYPE_* constants." msgstr "" -#: modules/gdscript/gd_functions.cpp modules/mono/glue/glue_header.h +#: modules/gdscript/gdscript_functions.cpp modules/mono/glue/glue_header.h #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Not enough bytes for decoding bytes, or invalid format." msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "step argument is zero!" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not a script with an instance" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a script" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a resource file" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (missing @path)" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (can't load script at @path)" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (invalid script at @path)" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary (invalid subclasses)" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Object can't provide a length." msgstr "" @@ -6652,15 +6820,23 @@ msgid "GridMap Duplicate Selection" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Floor:" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Grid Map" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Snap View" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Prev Level (%sDown Wheel)" +msgid "Previous Floor" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Next Level (%sUp Wheel)" +msgid "Next Floor" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp @@ -6728,11 +6904,7 @@ msgid "Erase Area" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Selection -> Duplicate" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Selection -> Clear" +msgid "Clear Selection" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp @@ -6854,7 +7026,7 @@ msgid "Duplicate VisualScript Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Getter. Hold Shift to drop a generic signature." +msgid "Hold %s to drop a Getter. Hold Shift to drop a generic signature." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -6862,7 +7034,7 @@ msgid "Hold Ctrl to drop a Getter. Hold Shift to drop a generic signature." msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a simple reference to the node." +msgid "Hold %s to drop a simple reference to the node." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -6870,7 +7042,7 @@ msgid "Hold Ctrl to drop a simple reference to the node." msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Variable Setter." +msgid "Hold %s to drop a Variable Setter." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -7096,11 +7268,19 @@ msgid "Could not write file:\n" msgstr "" #: platform/javascript/export/export.cpp -msgid "Could not read file:\n" +msgid "Could not open template for export:\n" msgstr "" #: platform/javascript/export/export.cpp -msgid "Could not open template for export:\n" +msgid "Invalid export template:\n" +msgstr "" + +#: platform/javascript/export/export.cpp +msgid "Could not read custom HTML shell:\n" +msgstr "" + +#: platform/javascript/export/export.cpp +msgid "Could not read boot splash image file:\n" msgstr "" #: scene/2d/animated_sprite.cpp @@ -7192,18 +7372,6 @@ msgstr "" msgid "Path property must point to a valid Node2D node to work." 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 " @@ -7262,6 +7430,14 @@ msgid "" "shape resource for it!" msgstr "" +#: scene/3d/gi_probe.cpp +msgid "Plotting Meshes" +msgstr "" + +#: scene/3d/gi_probe.cpp +msgid "Finishing Plot" +msgstr "" + #: scene/3d/navigation_mesh.cpp msgid "A NavigationMesh resource must be set or created for this node to work." msgstr "" @@ -7339,6 +7515,10 @@ msgid "" "minimum size manually." msgstr "" +#: scene/gui/tree.cpp +msgid "(Other)" +msgstr "" + #: scene/main/scene_tree.cpp msgid "" "Default Environment as specified in Project Setings (Rendering -> Viewport -" diff --git a/editor/translations/id.po b/editor/translations/id.po index 06fc7eb599..d58b8cca72 100644 --- a/editor/translations/id.po +++ b/editor/translations/id.po @@ -114,6 +114,7 @@ msgid "Anim Delete Keys" msgstr "Hapus Kunci Anim" #: editor/animation_editor.cpp editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Duplicate Selection" msgstr "Duplikat Pilihan" @@ -661,6 +662,13 @@ msgstr "Editor Ketergantungan" msgid "Search Replacement Resource:" msgstr "Cari Resource Pengganti:" +#: editor/dependency_editor.cpp editor/editor_file_dialog.cpp +#: editor/editor_help.cpp editor/editor_node.cpp editor/filesystem_dock.cpp +#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp +#: editor/quick_open.cpp scene/gui/file_dialog.cpp +msgid "Open" +msgstr "Buka" + #: editor/dependency_editor.cpp msgid "Owners Of:" msgstr "Pemilik Dari:" @@ -739,6 +747,15 @@ msgstr "Hapus file yang dipilih?" msgid "Delete" msgstr "Hapus" +#: editor/dictionary_property_edit.cpp +msgid "Change Dictionary Key" +msgstr "" + +#: editor/dictionary_property_edit.cpp +#, fuzzy +msgid "Change Dictionary Value" +msgstr "Ubah Nilai Array" + #: editor/editor_about.cpp msgid "Thanks from the Godot community!" msgstr "" @@ -1170,12 +1187,6 @@ msgstr "Semua diakui" msgid "All Files (*)" msgstr "Semua File-file (*)" -#: editor/editor_file_dialog.cpp editor/editor_help.cpp editor/editor_node.cpp -#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_selector.cpp editor/quick_open.cpp scene/gui/file_dialog.cpp -msgid "Open" -msgstr "Buka" - #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Open a File" msgstr "Buka sebuah File" @@ -1552,6 +1563,13 @@ msgid "" msgstr "" #: editor/editor_node.cpp +msgid "" +"This is a remote object so changes to it will not be kept.\n" +"Please read the documentation relevant to debugging to better understand " +"this workflow." +msgstr "" + +#: editor/editor_node.cpp msgid "Copy Params" msgstr "Salin Parameter" @@ -1674,6 +1692,11 @@ msgid "Export Mesh Library" msgstr "Ekspor Mesh Library" #: editor/editor_node.cpp +#, fuzzy +msgid "This operation can't be done without a root node." +msgstr "Tindakan ini tidak dapat dibatalkan. Pulihkan saja?" + +#: editor/editor_node.cpp msgid "Export Tile Set" msgstr "Ekspor Tile Set" @@ -1806,12 +1829,23 @@ msgid "Switch Scene Tab" msgstr "Pilih Tab Scene" #: editor/editor_node.cpp -msgid "%d more file(s)" +#, fuzzy +msgid "%d more files or folders" +msgstr "%d file atau folder lagi" + +#: editor/editor_node.cpp +#, fuzzy +msgid "%d more folders" msgstr "%d file lagi" #: editor/editor_node.cpp -msgid "%d more file(s) or folder(s)" -msgstr "%d file atau folder lagi" +#, fuzzy +msgid "%d more files" +msgstr "%d file lagi" + +#: editor/editor_node.cpp +msgid "Dock Position" +msgstr "" #: editor/editor_node.cpp msgid "Distraction Free Mode" @@ -1823,6 +1857,11 @@ msgid "Toggle distraction-free mode." msgstr "Mode Tanpa Gangguan" #: editor/editor_node.cpp +#, fuzzy +msgid "Add a new scene." +msgstr "Tambah tracks baru." + +#: editor/editor_node.cpp msgid "Scene" msgstr "Suasana" @@ -1887,13 +1926,12 @@ msgid "TileSet.." msgstr "" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp -#: scene/gui/text_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Undo" msgstr "Batal" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp +#: scene/gui/line_edit.cpp msgid "Redo" msgstr "" @@ -2384,6 +2422,11 @@ msgid "(Current)" msgstr "" #: editor/export_template_manager.cpp +#, fuzzy +msgid "Retrieving mirrors, please wait.." +msgstr "Gangguan koneks, silakan coba lagi." + +#: editor/export_template_manager.cpp msgid "Remove template version '%s'?" msgstr "" @@ -2420,6 +2463,112 @@ msgid "Importing:" msgstr "Mengimpor:" #: editor/export_template_manager.cpp +msgid "" +"No download links found for this version. Direct download is only available " +"for official releases." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't resolve." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#, fuzzy +msgid "Can't connect." +msgstr "Menyambungkan.." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "No response." +msgstr "Tidak ada respon." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Req. Failed." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Redirect Loop." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Failed:" +msgstr "" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't write file." +msgstr "Tidak dapat membuat folder." + +#: editor/export_template_manager.cpp +msgid "Download Complete." +msgstr "" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Error requesting url: " +msgstr "Gagal menyimpan atlas:" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connecting to Mirror.." +msgstr "Menyambungkan.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Disconnected" +msgstr "Tidak tersambung" + +#: editor/export_template_manager.cpp +msgid "Resolving" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Can't Resolve" +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#, fuzzy +msgid "Connecting.." +msgstr "Menyambungkan.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't Conect" +msgstr "Menyambungkan.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connected" +msgstr "Menghubungkan" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#, fuzzy +msgid "Requesting.." +msgstr "Menguji" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Downloading" +msgstr "Error memuat:" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connection Error" +msgstr "Menyambungkan.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "SSL Handshake Error" +msgstr "Muat Galat" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "" @@ -2446,12 +2595,21 @@ msgstr "Hapus file yang dipilih?" msgid "Export Template Manager" msgstr "Memuat Ekspor Template-template." +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Download Templates" +msgstr "Hapus Pilihan" + +#: editor/export_template_manager.cpp +msgid "Select mirror from list: " +msgstr "" + #: editor/file_type_cache.cpp msgid "Can't open file_type_cache.cch for writing, not saving file type cache!" msgstr "" #: editor/filesystem_dock.cpp -msgid "Cannot navigate to '" +msgid "Cannot navigate to '%s' as it has not been found in the file system!" msgstr "" #: editor/filesystem_dock.cpp @@ -2469,13 +2627,6 @@ msgid "" msgstr "" #: editor/filesystem_dock.cpp -#, fuzzy -msgid "" -"\n" -"Source: " -msgstr "Resource" - -#: editor/filesystem_dock.cpp msgid "Cannot move/rename resources root." msgstr "" @@ -2747,8 +2898,7 @@ msgid "Remove Poly And Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." +msgid "Create a new polygon from scratch" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -2759,6 +2909,11 @@ msgid "" "RMB: Erase Point." msgstr "" +#: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy +msgid "Delete points" +msgstr "Hapus" + #: editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" msgstr "" @@ -3097,21 +3252,12 @@ msgid "Can't resolve hostname:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't resolve." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy msgid "Connection error, please try again." msgstr "Gangguan koneks, silakan coba lagi." #: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy -msgid "Can't connect." -msgstr "Menyambungkan.." - -#: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Can't connect to host:" msgstr "Sambungkan Ke Node:" @@ -3120,31 +3266,15 @@ msgid "No response from host:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "No response." -msgstr "Tidak ada respon." - -#: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy msgid "Request failed, return code:" msgstr "Format file yang diminta tidak diketahui:" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Req. Failed." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, too many redirects" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Redirect Loop." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Failed:" -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Bad download hash, assuming file has been tampered with." msgstr "" @@ -3174,16 +3304,6 @@ msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy -msgid "Connecting.." -msgstr "Menyambungkan.." - -#: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy -msgid "Requesting.." -msgstr "Menguji" - -#: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Error making request" msgstr "Error menyimpan resource!" @@ -3296,6 +3416,38 @@ msgid "Move Action" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create new vertical guide" +msgstr "Buat Subskribsi" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove vertical guide" +msgstr "Hapus Variabel" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move horizontal guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create new horizontal guide" +msgstr "Buat Subskribsi" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove horizontal guide" +msgstr "Hapus Tombol-tombol yang tidak sah" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new horizontal and vertical guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Edit IK Chain" msgstr "" @@ -3417,10 +3569,16 @@ msgid "Snap to other nodes" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snap to guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Lock the selected object in place (can't be moved)." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Unlock the selected object (can be moved)." msgstr "" @@ -3471,6 +3629,10 @@ msgid "Show rulers" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Show guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Selection" msgstr "" @@ -3663,6 +3825,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/gi_probe_editor_plugin.cpp +msgid "Bake GI Probe" +msgstr "" + #: editor/plugins/gradient_editor_plugin.cpp msgid "Add/Remove Color Ramp Point" msgstr "" @@ -3695,6 +3861,10 @@ msgid "Create Occluder Polygon" msgstr "" #: editor/plugins/light_occluder_2d_editor_plugin.cpp +msgid "Create a new polygon from scratch." +msgstr "" + +#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Edit existing polygon:" msgstr "" @@ -3710,59 +3880,6 @@ msgstr "" msgid "RMB: Erase Point." msgstr "" -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Remove Point from Line2D" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#, fuzzy -msgid "Add Point to Line2D" -msgstr "Pergi ke Barisan" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Move Point in Line2D" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Select Points" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Shift+Drag: Select Control Points" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Click: Add Point" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Right Click: Delete Point" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Add Point (in empty space)" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Split Segment (in line)" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Delete Point" -msgstr "" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "" @@ -4161,16 +4278,46 @@ msgid "Move Out-Control in Curve" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Select Points" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Shift+Drag: Select Control Points" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Click: Add Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Right Click: Delete Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Select Control Points (Shift+Drag)" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Add Point (in empty space)" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Split Segment (in curve)" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Delete Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Close Curve" msgstr "" @@ -4311,7 +4458,6 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Paste" @@ -4356,6 +4502,21 @@ msgid " Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#, fuzzy +msgid "Sort" +msgstr "Sortir:" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Up" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Down" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Next script" msgstr "" @@ -4407,6 +4568,10 @@ msgstr "Tutup Dokumentasi" msgid "Close All" msgstr "Tutup Semua" +#: editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "Jalankan" @@ -4418,13 +4583,11 @@ msgstr "Beralih Favorit" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find.." msgstr "Cari.." #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Next" msgstr "Pencarian Selanjutnya" @@ -4530,33 +4693,22 @@ msgstr "" msgid "Capitalize" msgstr "" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" msgstr "Potong" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Copy" msgstr "Kopy" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Select All" msgstr "Pilih Semua" -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Up" -msgstr "" - -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Down" -msgstr "" - #: editor/plugins/script_text_editor.cpp #, fuzzy msgid "Delete Line" @@ -4579,6 +4731,23 @@ msgid "Clone Down" msgstr "" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Fold Line" +msgstr "Pergi ke Baris" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold Line" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Fold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Complete Symbol" msgstr "" @@ -4625,12 +4794,10 @@ msgid "Convert To Lowercase" msgstr "Sambungkan Ke Node:" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Previous" msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Replace.." msgstr "" @@ -4639,7 +4806,6 @@ msgid "Goto Function.." msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Goto Line.." msgstr "" @@ -4804,6 +4970,15 @@ msgid "View Plane Transform." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Scaling: " +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Translating: " +msgstr "Transisi" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Rotating %s degrees." msgstr "" @@ -4886,6 +5061,10 @@ msgid "Vertices" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "FPS" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Align with view" msgstr "" @@ -4918,6 +5097,16 @@ msgid "View Information" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "View FPS" +msgstr "File:" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Half Resolution" +msgstr "Beri Skala Seleksi" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Audio Listener" msgstr "" @@ -5052,6 +5241,11 @@ msgid "Tool Scale" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Toggle Freelook" +msgstr "Mode Layar Penuh" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Transform" msgstr "" @@ -5329,6 +5523,10 @@ msgid "Create Empty Editor Template" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Create From Current Editor Theme" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "CheckBox Radio1" msgstr "" @@ -5506,7 +5704,7 @@ msgstr "Aktifkan" #: editor/project_export.cpp #, fuzzy -msgid "Delete patch '" +msgid "Delete patch '%s' from list?" msgstr "Hapus Penampilan" #: editor/project_export.cpp @@ -5816,10 +6014,6 @@ msgid "Add Input Action Event" msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Meta+" -msgstr "Meta+" - -#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp msgid "Shift+" msgstr "Shift+" @@ -5944,13 +6138,12 @@ msgid "Select a setting item first!" msgstr "" #: editor/project_settings_editor.cpp -msgid "No property '" +msgid "No property '%s' exists." msgstr "" #: editor/project_settings_editor.cpp -#, fuzzy -msgid "Setting '" -msgstr "Mengatur.." +msgid "Setting '%s' is internal, and it can't be deleted." +msgstr "" #: editor/project_settings_editor.cpp #, fuzzy @@ -6435,6 +6628,15 @@ msgid "Clear a script for the selected node." msgstr "" #: editor/scene_tree_dock.cpp +#, fuzzy +msgid "Remote" +msgstr "Hapus" + +#: editor/scene_tree_dock.cpp +msgid "Local" +msgstr "" + +#: editor/scene_tree_dock.cpp msgid "Clear Inheritance? (No Undo!)" msgstr "" @@ -6629,6 +6831,11 @@ msgid "Attach Node Script" msgstr "Scene Baru" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Remote " +msgstr "Hapus" + +#: editor/script_editor_debugger.cpp msgid "Bytes:" msgstr "" @@ -6685,18 +6892,6 @@ msgid "Stack Trace (if applicable):" msgstr "" #: editor/script_editor_debugger.cpp -msgid "Remote Inspector" -msgstr "" - -#: editor/script_editor_debugger.cpp -msgid "Live Scene Tree:" -msgstr "" - -#: editor/script_editor_debugger.cpp -msgid "Remote Object Properties: " -msgstr "" - -#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -6832,50 +7027,50 @@ msgstr "" msgid "GDNative" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Invalid type argument to convert(), use TYPE_* constants." msgstr "" "Tipe argument salah dalam menggunakan convert(), gunakan konstanta TYPE_*." -#: modules/gdscript/gd_functions.cpp modules/mono/glue/glue_header.h +#: modules/gdscript/gdscript_functions.cpp modules/mono/glue/glue_header.h #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Not enough bytes for decoding bytes, or invalid format." msgstr "Tidak cukup bytes untuk menerjemahkan, atau format tidak sah." -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "step argument is zero!" msgstr "Argumen langkah adalah nol!" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not a script with an instance" msgstr "Bukan skrip dengan contoh" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a script" msgstr "Tidak berbasis pada skrip" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a resource file" msgstr "Tidak berbasis pada resource file" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (missing @path)" msgstr "Format kamus acuan tidak sah (@path hilang)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (can't load script at @path)" msgstr "Format kamus acuan tidak sah (tidak dapat memuat script pada @path)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (invalid script at @path)" msgstr "Format kamus acuan tidak sah (skrip tidak sah pada @path)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary (invalid subclasses)" msgstr "Kamus acuan tidak sah (sub kelas tidak sah)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Object can't provide a length." msgstr "" @@ -6890,15 +7085,24 @@ msgid "GridMap Duplicate Selection" msgstr "Duplikat Pilihan" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Snap View" +msgid "Floor:" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Grid Map" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Prev Level (%sDown Wheel)" +msgid "Snap View" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Next Level (%sUp Wheel)" +#, fuzzy +msgid "Previous Floor" +msgstr "Tab sebelumnya" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Next Floor" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp @@ -6969,13 +7173,8 @@ msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy -msgid "Selection -> Duplicate" -msgstr "Hanya yang Dipilih" - -#: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy -msgid "Selection -> Clear" -msgstr "Hanya yang Dipilih" +msgid "Clear Selection" +msgstr "Beri Skala Seleksi" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Settings" @@ -7109,7 +7308,8 @@ msgid "Duplicate VisualScript Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Getter. Hold Shift to drop a generic signature." +#, fuzzy +msgid "Hold %s to drop a Getter. Hold Shift to drop a generic signature." msgstr "" "Tahan Meta untuk meletakkan sebuah Getter. Tahan Shift untuk meletakkan " "generic signature." @@ -7119,7 +7319,7 @@ msgid "Hold Ctrl to drop a Getter. Hold Shift to drop a generic signature." msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a simple reference to the node." +msgid "Hold %s to drop a simple reference to the node." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -7127,7 +7327,7 @@ msgid "Hold Ctrl to drop a simple reference to the node." msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Variable Setter." +msgid "Hold %s to drop a Variable Setter." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -7372,12 +7572,22 @@ msgstr "Tidak dapat membuat folder." #: platform/javascript/export/export.cpp #, fuzzy -msgid "Could not read file:\n" +msgid "Could not open template for export:\n" msgstr "Tidak dapat membuat folder." #: platform/javascript/export/export.cpp #, fuzzy -msgid "Could not open template for export:\n" +msgid "Invalid export template:\n" +msgstr "Memuat Ekspor Template-template." + +#: platform/javascript/export/export.cpp +#, fuzzy +msgid "Could not read custom HTML shell:\n" +msgstr "Tidak dapat membuat folder." + +#: platform/javascript/export/export.cpp +#, fuzzy +msgid "Could not read boot splash image file:\n" msgstr "Tidak dapat membuat folder." #: scene/2d/animated_sprite.cpp @@ -7498,22 +7708,6 @@ msgid "Path property must point to a valid Node2D node to work." msgstr "" "Properti path harus menunjuk pada sebuah node Node2D yang sah untuk bekerja." -#: 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 "" -"Properti path harus menunjuk pada node Viewport yang sah untuk bekerja. " -"Viewport tersebut harus diatur ke mode '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 "" -"Pengaturan Vieport dalam properti path harus diatur sebagai 'render target' " -"agar sprite bekerja." - #: scene/2d/visibility_notifier_2d.cpp msgid "" "VisibilityEnable2D works best when used with the edited scene root directly " @@ -7584,6 +7778,14 @@ msgstr "" "Sebuah bentuk harus disediakan untuk CollisionShape untuk fungsi. Mohon " "ciptakan sebuah resource bentuk untuk itu!" +#: scene/3d/gi_probe.cpp +msgid "Plotting Meshes" +msgstr "" + +#: scene/3d/gi_probe.cpp +msgid "Finishing Plot" +msgstr "" + #: scene/3d/navigation_mesh.cpp msgid "A NavigationMesh resource must be set or created for this node to work." msgstr "" @@ -7676,6 +7878,10 @@ msgid "" "minimum size manually." msgstr "" +#: scene/gui/tree.cpp +msgid "(Other)" +msgstr "" + #: scene/main/scene_tree.cpp #, fuzzy msgid "" @@ -7715,6 +7921,45 @@ msgstr "Error memuat font." msgid "Invalid font size." msgstr "Ukuran font tidak sah." +#, fuzzy +#~ msgid "" +#~ "\n" +#~ "Source: " +#~ msgstr "Resource" + +#, fuzzy +#~ msgid "Add Point to Line2D" +#~ msgstr "Pergi ke Barisan" + +#~ msgid "Meta+" +#~ msgstr "Meta+" + +#, fuzzy +#~ msgid "Setting '" +#~ msgstr "Mengatur.." + +#, fuzzy +#~ msgid "Selection -> Duplicate" +#~ msgstr "Hanya yang Dipilih" + +#, fuzzy +#~ msgid "Selection -> Clear" +#~ msgstr "Hanya yang Dipilih" + +#~ msgid "" +#~ "Path property must point to a valid Viewport node to work. Such Viewport " +#~ "must be set to 'render target' mode." +#~ msgstr "" +#~ "Properti path harus menunjuk pada node Viewport yang sah untuk bekerja. " +#~ "Viewport tersebut harus diatur ke mode 'render target'." + +#~ msgid "" +#~ "The Viewport set in the path property must be set as 'render target' in " +#~ "order for this sprite to work." +#~ msgstr "" +#~ "Pengaturan Vieport dalam properti path harus diatur sebagai 'render " +#~ "target' agar sprite bekerja." + #~ msgid "Filter:" #~ msgstr "Filter:" @@ -7734,9 +7979,6 @@ msgstr "Ukuran font tidak sah." #~ msgid "Removed:" #~ msgstr "Dihapus:" -#~ msgid "Error saving atlas:" -#~ msgstr "Gagal menyimpan atlas:" - #~ msgid "Could not save atlas subtexture:" #~ msgstr "Tidak dapat menyimpan sub tekstur atlas:" diff --git a/editor/translations/it.po b/editor/translations/it.po index 45c48d6ac4..17489b7861 100644 --- a/editor/translations/it.po +++ b/editor/translations/it.po @@ -105,6 +105,7 @@ msgid "Anim Delete Keys" msgstr "Anim Elimina Key" #: editor/animation_editor.cpp editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Duplicate Selection" msgstr "Duplica Selezione" @@ -641,6 +642,13 @@ msgstr "Editor Dipendenze" msgid "Search Replacement Resource:" msgstr "Cerca Risorsa di Rimpiazzo:" +#: editor/dependency_editor.cpp editor/editor_file_dialog.cpp +#: editor/editor_help.cpp editor/editor_node.cpp editor/filesystem_dock.cpp +#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp +#: editor/quick_open.cpp scene/gui/file_dialog.cpp +msgid "Open" +msgstr "Apri" + #: editor/dependency_editor.cpp msgid "Owners Of:" msgstr "Proprietari Di:" @@ -714,6 +722,16 @@ msgstr "Eliminare i file selezionati?" msgid "Delete" msgstr "Elimina" +#: editor/dictionary_property_edit.cpp +#, fuzzy +msgid "Change Dictionary Key" +msgstr "Cambia Nome Animazione:" + +#: editor/dictionary_property_edit.cpp +#, fuzzy +msgid "Change Dictionary Value" +msgstr "Cambia Valore Array" + #: editor/editor_about.cpp msgid "Thanks from the Godot community!" msgstr "Grazie dalla comunità di Godot!" @@ -1139,12 +1157,6 @@ msgstr "Tutti i Riconosciuti" msgid "All Files (*)" msgstr "Tutti i File (*)" -#: editor/editor_file_dialog.cpp editor/editor_help.cpp editor/editor_node.cpp -#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_selector.cpp editor/quick_open.cpp scene/gui/file_dialog.cpp -msgid "Open" -msgstr "Apri" - #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Open a File" msgstr "Apri un File" @@ -1517,6 +1529,18 @@ msgstr "" "scene per comprendere meglio questo workflow." #: editor/editor_node.cpp +#, fuzzy +msgid "" +"This is a remote object so changes to it will not be kept.\n" +"Please read the documentation relevant to debugging to better understand " +"this workflow." +msgstr "" +"Questa risorsa appartiene a una scena che è stata importata, di conseguenza " +"non è modificabile.\n" +"Si consiglia di leggere la documentazione riguardante l'importazione delle " +"scene per comprendere al meglio questo workflow." + +#: editor/editor_node.cpp msgid "Copy Params" msgstr "Copia parametri" @@ -1637,6 +1661,11 @@ msgid "Export Mesh Library" msgstr "Esporta Libreria Mesh" #: editor/editor_node.cpp +#, fuzzy +msgid "This operation can't be done without a root node." +msgstr "Questa operazione non può essere eseguita senza un nodo selezionato." + +#: editor/editor_node.cpp msgid "Export Tile Set" msgstr "Esporta Tile Set" @@ -1777,12 +1806,23 @@ msgid "Switch Scene Tab" msgstr "Cambia Tab di Scena" #: editor/editor_node.cpp -msgid "%d more file(s)" +#, fuzzy +msgid "%d more files or folders" +msgstr "% altri file o cartelle" + +#: editor/editor_node.cpp +#, fuzzy +msgid "%d more folders" msgstr "%d altri file" #: editor/editor_node.cpp -msgid "%d more file(s) or folder(s)" -msgstr "% altri file o cartelle" +#, fuzzy +msgid "%d more files" +msgstr "%d altri file" + +#: editor/editor_node.cpp +msgid "Dock Position" +msgstr "" #: editor/editor_node.cpp msgid "Distraction Free Mode" @@ -1793,6 +1833,11 @@ msgid "Toggle distraction-free mode." msgstr "Abilita modalità senza distrazioni." #: editor/editor_node.cpp +#, fuzzy +msgid "Add a new scene." +msgstr "Aggiungi nuova traccia." + +#: editor/editor_node.cpp msgid "Scene" msgstr "Scena" @@ -1857,13 +1902,12 @@ msgid "TileSet.." msgstr "TileSet.." #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp -#: scene/gui/text_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Undo" msgstr "Annulla" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp +#: scene/gui/line_edit.cpp msgid "Redo" msgstr "Redo" @@ -2367,6 +2411,11 @@ msgid "(Current)" msgstr "(Corrente)" #: editor/export_template_manager.cpp +#, fuzzy +msgid "Retrieving mirrors, please wait.." +msgstr "Errore di connessione, si prega di riprovare." + +#: editor/export_template_manager.cpp msgid "Remove template version '%s'?" msgstr "Rimuovere versione '%s' del template?" @@ -2403,6 +2452,112 @@ msgid "Importing:" msgstr "Importo:" #: editor/export_template_manager.cpp +msgid "" +"No download links found for this version. Direct download is only available " +"for official releases." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't resolve." +msgstr "Impossibile risolvete." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't connect." +msgstr "Impossibile connettersi." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "No response." +msgstr "Nessuna risposta." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Req. Failed." +msgstr "Rich. Fall." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Redirect Loop." +msgstr "Ridirigi Loop." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Failed:" +msgstr "Fallito:" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't write file." +msgstr "Impossibile scrivere file:\n" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Download Complete." +msgstr "Errore durante il download" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Error requesting url: " +msgstr "Errore di salvataggio dell'atlas:" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connecting to Mirror.." +msgstr "Connettendo.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Disconnected" +msgstr "Disconnetti" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Resolving" +msgstr "Risolvendo.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't Resolve" +msgstr "Impossibile risolvete." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Connecting.." +msgstr "Connettendo.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't Conect" +msgstr "Impossibile connettersi." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connected" +msgstr "Connetti" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Requesting.." +msgstr "Richiedendo.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Downloading" +msgstr "Scarica" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connection Error" +msgstr "Connettendo.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "SSL Handshake Error" +msgstr "Carica Errori" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "Versione Corrente:" @@ -2426,6 +2581,16 @@ msgstr "Seleziona file template" msgid "Export Template Manager" msgstr "Gestore Template Esportazione" +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Download Templates" +msgstr "Templates" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Select mirror from list: " +msgstr "Seleziona il dispositivo dall'elenco" + #: editor/file_type_cache.cpp msgid "Can't open file_type_cache.cch for writing, not saving file type cache!" msgstr "" @@ -2433,8 +2598,8 @@ msgstr "" "tipi di file!" #: editor/filesystem_dock.cpp -msgid "Cannot navigate to '" -msgstr "Impossibile navigare a '" +msgid "Cannot navigate to '%s' as it has not been found in the file system!" +msgstr "" #: editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails" @@ -2454,14 +2619,6 @@ msgstr "" "reimportarlo manualmente." #: editor/filesystem_dock.cpp -msgid "" -"\n" -"Source: " -msgstr "" -"\n" -"Sorgente: " - -#: editor/filesystem_dock.cpp msgid "Cannot move/rename resources root." msgstr "Impossibile spostare/rinominare risorse root." @@ -2726,8 +2883,8 @@ msgid "Remove Poly And Point" msgstr "Rimuovi Poligono e Punto" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." +#, fuzzy +msgid "Create a new polygon from scratch" msgstr "Crea un nuovo poligono dal nulla." #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -2738,6 +2895,11 @@ msgid "" "RMB: Erase Point." msgstr "" +#: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy +msgid "Delete points" +msgstr "Elimina Punto" + #: editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" msgstr "Abilità Autoplay" @@ -3074,18 +3236,10 @@ msgid "Can't resolve hostname:" msgstr "Impossibile risolvere l'hostname:" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't resolve." -msgstr "Impossibile risolvete." - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Connection error, please try again." msgstr "Errore di connessione, si prega di riprovare." #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't connect." -msgstr "Impossibile connettersi." - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Can't connect to host:" msgstr "Impossibile connetersi all'host:" @@ -3094,30 +3248,14 @@ msgid "No response from host:" msgstr "Nessuna risposta dall'host:" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "No response." -msgstr "Nessuna risposta." - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, return code:" msgstr "Richiesta fallita, codice di return:" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Req. Failed." -msgstr "Rich. Fall." - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, too many redirects" msgstr "Richiesta fallita, troppi ridirezionamenti" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Redirect Loop." -msgstr "Ridirigi Loop." - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Failed:" -msgstr "Fallito:" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Bad download hash, assuming file has been tampered with." msgstr "Hash di download non buono, si presume il file sia stato manipolato." @@ -3146,14 +3284,6 @@ msgid "Resolving.." msgstr "Risolvendo.." #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Connecting.." -msgstr "Connettendo.." - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Requesting.." -msgstr "Richiedendo.." - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Error making request" msgstr "Errore nel fare richiesta" @@ -3266,6 +3396,39 @@ msgid "Move Action" msgstr "Azione di spostamento" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create new vertical guide" +msgstr "Crea nuovo file script" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove vertical guide" +msgstr "Rimuovi Variabile" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Move horizontal guide" +msgstr "Sposta Punto in curva" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create new horizontal guide" +msgstr "Crea nuovo file script" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove horizontal guide" +msgstr "Rimuovi key invalidi" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new horizontal and vertical guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Edit IK Chain" msgstr "Modifica Catena IK" @@ -3397,10 +3560,17 @@ msgid "Snap to other nodes" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Snap to guides" +msgstr "Modalità Snap:" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Lock the selected object in place (can't be moved)." msgstr "Blocca l'oggetto selezionato sul posto (non può essere mosso)." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Unlock the selected object (can be moved)." msgstr "Sblocca l'oggetto selezionato (può essere mosso)." @@ -3453,6 +3623,11 @@ msgid "Show rulers" msgstr "Mostra Ossa" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Show guides" +msgstr "Mostra Ossa" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Selection" msgstr "Centra Selezione" @@ -3649,6 +3824,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/gi_probe_editor_plugin.cpp +msgid "Bake GI Probe" +msgstr "" + #: editor/plugins/gradient_editor_plugin.cpp msgid "Add/Remove Color Ramp Point" msgstr "Aggiungi/Rimuovi Punto Rampa Colori" @@ -3681,6 +3860,10 @@ msgid "Create Occluder Polygon" msgstr "Crea Poligono di occlusione" #: editor/plugins/light_occluder_2d_editor_plugin.cpp +msgid "Create a new polygon from scratch." +msgstr "Crea un nuovo poligono dal nulla." + +#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Edit existing polygon:" msgstr "Modifica poligono esistente:" @@ -3696,58 +3879,6 @@ msgstr "Ctrl+LMB: dividi Segmento." msgid "RMB: Erase Point." msgstr "RMB: Elimina Punto." -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Remove Point from Line2D" -msgstr "Rimuovi Punto da Line2D" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Add Point to Line2D" -msgstr "Aggiungi Punto a Line2D" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Move Point in Line2D" -msgstr "Sposta Punto in Line2D" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Select Points" -msgstr "Selezione Punti" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Shift+Drag: Select Control Points" -msgstr "Shift+Trascina: Seleziona Punti di Controllo" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Click: Add Point" -msgstr "Click: Aggiungi Punto" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Right Click: Delete Point" -msgstr "Click Destro: Elimina Punto" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Add Point (in empty space)" -msgstr "Aggiungi Punto (in sapzio vuoto)" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Split Segment (in line)" -msgstr "Spezza Segmento (in linea)" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Delete Point" -msgstr "Elimina Punto" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "La mesh è vuota!" @@ -4159,16 +4290,46 @@ msgid "Move Out-Control in Curve" msgstr "Sposta Out-Control sulla Curva" #: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Select Points" +msgstr "Selezione Punti" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Shift+Drag: Select Control Points" +msgstr "Shift+Trascina: Seleziona Punti di Controllo" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Click: Add Point" +msgstr "Click: Aggiungi Punto" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Right Click: Delete Point" +msgstr "Click Destro: Elimina Punto" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Select Control Points (Shift+Drag)" msgstr "Seleziona Punti di Controllo (Shift+Trascina)" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Add Point (in empty space)" +msgstr "Aggiungi Punto (in sapzio vuoto)" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Split Segment (in curve)" msgstr "Spezza Segmento (in curva)" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Delete Point" +msgstr "Elimina Punto" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Close Curve" msgstr "Chiudi curva" @@ -4308,7 +4469,6 @@ msgstr "Carica Risorsa" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Paste" @@ -4353,6 +4513,21 @@ msgid " Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#, fuzzy +msgid "Sort" +msgstr "Ordina:" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Up" +msgstr "Sposta Su" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Down" +msgstr "Sposta giù" + +#: editor/plugins/script_editor_plugin.cpp msgid "Next script" msgstr "Script successivo" @@ -4404,6 +4579,10 @@ msgstr "Chiudi Documentazione" msgid "Close All" msgstr "Chiudi Tutto" +#: editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "Esegui" @@ -4415,13 +4594,11 @@ msgstr "Attiva Preferito" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find.." msgstr "Trova.." #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Next" msgstr "Trova Successivo" @@ -4530,33 +4707,22 @@ msgstr "Minuscolo" msgid "Capitalize" msgstr "Aggiungi maiuscola iniziale" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" msgstr "Taglia" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Copy" msgstr "Copia" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Select All" msgstr "Seleziona tutti" -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Up" -msgstr "Sposta Su" - -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Down" -msgstr "Sposta giù" - #: editor/plugins/script_text_editor.cpp #, fuzzy msgid "Delete Line" @@ -4579,6 +4745,23 @@ msgid "Clone Down" msgstr "Clona Sotto" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Fold Line" +msgstr "Vai alla Linea" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold Line" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Fold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Complete Symbol" msgstr "Completa Simbolo" @@ -4624,12 +4807,10 @@ msgid "Convert To Lowercase" msgstr "Converti In Minuscolo" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Previous" msgstr "Trova Precedente" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Replace.." msgstr "Rimpiazza.." @@ -4638,7 +4819,6 @@ msgid "Goto Function.." msgstr "Vai a Funzione.." #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Goto Line.." msgstr "Vai a Linea.." @@ -4803,6 +4983,16 @@ msgid "View Plane Transform." msgstr "Visualizza Tranform del Piano." #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Scaling: " +msgstr "Scala:" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Translating: " +msgstr "Traduzioni:" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Rotating %s degrees." msgstr "Ruotando di %s gradi." @@ -4883,6 +5073,10 @@ msgid "Vertices" msgstr "Vertici" #: editor/plugins/spatial_editor_plugin.cpp +msgid "FPS" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Align with view" msgstr "Allinea a vista" @@ -4915,6 +5109,16 @@ msgid "View Information" msgstr "Visualizza Informazioni" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "View FPS" +msgstr "Vedi Files" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Half Resolution" +msgstr "Scala Selezione" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Audio Listener" msgstr "Audio Listener" @@ -5046,6 +5250,11 @@ msgid "Tool Scale" msgstr "Strumento Scala" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Toggle Freelook" +msgstr "Abilita/Disabilita Fullscreen" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Transform" msgstr "Transform" @@ -5325,6 +5534,11 @@ msgid "Create Empty Editor Template" msgstr "Crea Template Editor Vuota" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Create From Current Editor Theme" +msgstr "Crea Template Editor Vuota" + +#: editor/plugins/theme_editor_plugin.cpp msgid "CheckBox Radio1" msgstr "CheckBox Radio1" @@ -5502,7 +5716,8 @@ msgid "Runnable" msgstr "Eseguibile" #: editor/project_export.cpp -msgid "Delete patch '" +#, fuzzy +msgid "Delete patch '%s' from list?" msgstr "Elimina patch '" #: editor/project_export.cpp @@ -5819,10 +6034,6 @@ msgid "Add Input Action Event" msgstr "Aggiungi Evento di Azione Input" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Meta+" -msgstr "Meta+" - -#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp msgid "Shift+" msgstr "Shift+" @@ -5946,13 +6157,12 @@ msgstr "" #: editor/project_settings_editor.cpp #, fuzzy -msgid "No property '" +msgid "No property '%s' exists." msgstr "Proprietà:" #: editor/project_settings_editor.cpp -#, fuzzy -msgid "Setting '" -msgstr "Impostazioni" +msgid "Setting '%s' is internal, and it can't be deleted." +msgstr "" #: editor/project_settings_editor.cpp #, fuzzy @@ -6438,6 +6648,16 @@ msgid "Clear a script for the selected node." msgstr "Svuota uno script per il nodo selezionato." #: editor/scene_tree_dock.cpp +#, fuzzy +msgid "Remote" +msgstr "Rimuovi" + +#: editor/scene_tree_dock.cpp +#, fuzzy +msgid "Local" +msgstr "Locale" + +#: editor/scene_tree_dock.cpp msgid "Clear Inheritance? (No Undo!)" msgstr "Liberare ereditarietà? (No Undo!)" @@ -6634,6 +6854,11 @@ msgid "Attach Node Script" msgstr "Allega Script Nodo" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Remote " +msgstr "Rimuovi" + +#: editor/script_editor_debugger.cpp msgid "Bytes:" msgstr "Bytes:" @@ -6690,18 +6915,6 @@ msgid "Stack Trace (if applicable):" msgstr "Stack Trace (se applicabile):" #: editor/script_editor_debugger.cpp -msgid "Remote Inspector" -msgstr "Inspector Remoto" - -#: editor/script_editor_debugger.cpp -msgid "Live Scene Tree:" -msgstr "Scene Tree Live:" - -#: editor/script_editor_debugger.cpp -msgid "Remote Object Properties: " -msgstr "Proprietà Oggetto Remoto: " - -#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "Profiler" @@ -6835,52 +7048,52 @@ msgstr "" msgid "GDNative" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Invalid type argument to convert(), use TYPE_* constants." msgstr "Argomento tipo invalido per convert(), usare le costanti TYPE_*." -#: modules/gdscript/gd_functions.cpp modules/mono/glue/glue_header.h +#: modules/gdscript/gdscript_functions.cpp modules/mono/glue/glue_header.h #: modules/visual_script/visual_script_builtin_funcs.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 +#: modules/gdscript/gdscript_functions.cpp msgid "step argument is zero!" msgstr "step argument è zero!" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not a script with an instance" msgstr "Non è uno script con un istanza" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a script" msgstr "Non si basa su uno script" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a resource file" msgstr "Non si basa su un file risorsa" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (missing @path)" msgstr "Istanza invalida formato dizionario (manca @path)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_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 +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (invalid script at @path)" msgstr "Istanza invalida formato dizionario (script invalido in @path)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary (invalid subclasses)" msgstr "Istanza invalida formato dizionario (sottoclassi invalide)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Object can't provide a length." msgstr "" @@ -6895,16 +7108,26 @@ msgid "GridMap Duplicate Selection" msgstr "Duplica Selezione" #: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Floor:" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +#, fuzzy +msgid "Grid Map" +msgstr "Snap Griglia" + +#: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy msgid "Snap View" msgstr "Vista dall'Alto" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Prev Level (%sDown Wheel)" -msgstr "" +#, fuzzy +msgid "Previous Floor" +msgstr "Scheda precedente" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Next Level (%sUp Wheel)" +msgid "Next Floor" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp @@ -6980,13 +7203,8 @@ msgstr "Cancella TileMap" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy -msgid "Selection -> Duplicate" -msgstr "Solo Selezione" - -#: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy -msgid "Selection -> Clear" -msgstr "Solo Selezione" +msgid "Clear Selection" +msgstr "Centra Selezione" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy @@ -7122,7 +7340,8 @@ msgid "Duplicate VisualScript Nodes" msgstr "Duplica Nodo(i) Grafico" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Getter. Hold Shift to drop a generic signature." +#, fuzzy +msgid "Hold %s to drop a Getter. Hold Shift to drop a generic signature." msgstr "" "Mantieni premuto Meta per rilasciare un Getter. Mantieni premuto Shift per " "rilasciare una firma generica." @@ -7134,7 +7353,8 @@ msgstr "" "per rilasciare una firma generica." #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a simple reference to the node." +#, fuzzy +msgid "Hold %s to drop a simple reference to the node." msgstr "Mantieni premuto Meta per rilasciare un riferimento semplice al nodo." #: modules/visual_script/visual_script_editor.cpp @@ -7142,7 +7362,8 @@ msgid "Hold Ctrl to drop a simple reference to the node." msgstr "Mantieni premuto Ctrl per rilasciare un riferimento semplice al nodo." #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Variable Setter." +#, fuzzy +msgid "Hold %s to drop a Variable Setter." msgstr "Mantieni premuto Meta per rilasciare un Setter Variabile." #: modules/visual_script/visual_script_editor.cpp @@ -7382,12 +7603,23 @@ msgid "Could not write file:\n" msgstr "Impossibile scrivere file:\n" #: platform/javascript/export/export.cpp -msgid "Could not read file:\n" +msgid "Could not open template for export:\n" +msgstr "Impossibile aprire template per l'esportazione:\n" + +#: platform/javascript/export/export.cpp +#, fuzzy +msgid "Invalid export template:\n" +msgstr "Installa Template di Esportazione" + +#: platform/javascript/export/export.cpp +#, fuzzy +msgid "Could not read custom HTML shell:\n" msgstr "Impossibile leggere file:\n" #: platform/javascript/export/export.cpp -msgid "Could not open template for export:\n" -msgstr "Impossibile aprire template per l'esportazione:\n" +#, fuzzy +msgid "Could not read boot splash image file:\n" +msgstr "Impossibile leggere file:\n" #: scene/2d/animated_sprite.cpp msgid "" @@ -7511,22 +7743,6 @@ msgid "Path property must point to a valid Node2D node to work." msgstr "" "La proprietà path deve puntare ad un nodo Node2D valido per funzionare." -#: 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 "" -"La proprietà path deve puntare a un nodo Viewport valido per poter " -"funzionare. Tale Viewport deve essere impostata in modalità '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 "" -"Il Viewport impostato nella proprietà path deve essere impostato come " -"'render target' affinché questa sprite funzioni." - #: scene/2d/visibility_notifier_2d.cpp msgid "" "VisibilityEnable2D works best when used with the edited scene root directly " @@ -7596,6 +7812,15 @@ msgstr "" "Perché CollisionShape funzioni deve essere fornita una forma. Si prega di " "creare una risorsa forma (shape)!" +#: scene/3d/gi_probe.cpp +#, fuzzy +msgid "Plotting Meshes" +msgstr "Bliting Immagini" + +#: scene/3d/gi_probe.cpp +msgid "Finishing Plot" +msgstr "" + #: scene/3d/navigation_mesh.cpp msgid "A NavigationMesh resource must be set or created for this node to work." msgstr "" @@ -7690,6 +7915,10 @@ msgstr "" "Usa un container come figlio (VBox,HBox,etc), o un Control impostando la " "dimensione minima manualmente." +#: scene/gui/tree.cpp +msgid "(Other)" +msgstr "" + #: scene/main/scene_tree.cpp msgid "" "Default Environment as specified in Project Setings (Rendering -> Viewport -" @@ -7726,6 +7955,67 @@ msgstr "Errore caricamento font." msgid "Invalid font size." msgstr "Dimensione font Invalida." +#~ msgid "Cannot navigate to '" +#~ msgstr "Impossibile navigare a '" + +#~ msgid "" +#~ "\n" +#~ "Source: " +#~ msgstr "" +#~ "\n" +#~ "Sorgente: " + +#~ msgid "Remove Point from Line2D" +#~ msgstr "Rimuovi Punto da Line2D" + +#~ msgid "Add Point to Line2D" +#~ msgstr "Aggiungi Punto a Line2D" + +#~ msgid "Move Point in Line2D" +#~ msgstr "Sposta Punto in Line2D" + +#~ msgid "Split Segment (in line)" +#~ msgstr "Spezza Segmento (in linea)" + +#~ msgid "Meta+" +#~ msgstr "Meta+" + +#, fuzzy +#~ msgid "Setting '" +#~ msgstr "Impostazioni" + +#~ msgid "Remote Inspector" +#~ msgstr "Inspector Remoto" + +#~ msgid "Live Scene Tree:" +#~ msgstr "Scene Tree Live:" + +#~ msgid "Remote Object Properties: " +#~ msgstr "Proprietà Oggetto Remoto: " + +#, fuzzy +#~ msgid "Selection -> Duplicate" +#~ msgstr "Solo Selezione" + +#, fuzzy +#~ msgid "Selection -> Clear" +#~ msgstr "Solo Selezione" + +#~ msgid "" +#~ "Path property must point to a valid Viewport node to work. Such Viewport " +#~ "must be set to 'render target' mode." +#~ msgstr "" +#~ "La proprietà path deve puntare a un nodo Viewport valido per poter " +#~ "funzionare. Tale Viewport deve essere impostata in modalità 'render " +#~ "target'." + +#~ msgid "" +#~ "The Viewport set in the path property must be set as 'render target' in " +#~ "order for this sprite to work." +#~ msgstr "" +#~ "Il Viewport impostato nella proprietà path deve essere impostato come " +#~ "'render target' affinché questa sprite funzioni." + #~ msgid "Filter:" #~ msgstr "Filtro:" @@ -7750,9 +8040,6 @@ msgstr "Dimensione font Invalida." #~ msgid "Removed:" #~ msgstr "Rimosso:" -#~ msgid "Error saving atlas:" -#~ msgstr "Errore di salvataggio dell'atlas:" - #~ msgid "Could not save atlas subtexture:" #~ msgstr "Impossibile salvare la substruttura dell'atlas:" @@ -8145,9 +8432,6 @@ msgstr "Dimensione font Invalida." #~ msgid "Cropping Images" #~ msgstr "Tagliando Immagini" -#~ msgid "Blitting Images" -#~ msgstr "Bliting Immagini" - #~ msgid "Couldn't save atlas image:" #~ msgstr "Impossibile salvare l'immagine di atlas:" @@ -8527,9 +8811,6 @@ msgstr "Dimensione font Invalida." #~ msgid "Save Translatable Strings" #~ msgstr "Salva Stringhe Traducibili" -#~ msgid "Install Export Templates" -#~ msgstr "Installa Template di Esportazione" - #~ msgid "Edit Script Options" #~ msgstr "Modifica le opzioni di script" diff --git a/editor/translations/ja.po b/editor/translations/ja.po index 59d3b9499b..ea9ca84dfb 100644 --- a/editor/translations/ja.po +++ b/editor/translations/ja.po @@ -109,6 +109,7 @@ msgid "Anim Delete Keys" msgstr "Anim キー削除" #: editor/animation_editor.cpp editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Duplicate Selection" msgstr "選択範囲を複製" @@ -705,6 +706,13 @@ msgstr "依存関係エディタ" msgid "Search Replacement Resource:" msgstr "置換するリソースを探す:" +#: editor/dependency_editor.cpp editor/editor_file_dialog.cpp +#: editor/editor_help.cpp editor/editor_node.cpp editor/filesystem_dock.cpp +#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp +#: editor/quick_open.cpp scene/gui/file_dialog.cpp +msgid "Open" +msgstr "開く" + #: editor/dependency_editor.cpp #, fuzzy msgid "Owners Of:" @@ -791,6 +799,16 @@ msgstr "選択したファイルを消去しますか?" msgid "Delete" msgstr "消去" +#: editor/dictionary_property_edit.cpp +#, fuzzy +msgid "Change Dictionary Key" +msgstr "アニメーションの名前を変更:" + +#: editor/dictionary_property_edit.cpp +#, fuzzy +msgid "Change Dictionary Value" +msgstr "配列の値を変更" + #: editor/editor_about.cpp msgid "Thanks from the Godot community!" msgstr "Godotコミュニティより感謝を!" @@ -1269,12 +1287,6 @@ msgstr "知られているすべての" msgid "All Files (*)" msgstr "すべてのファイル(*)" -#: editor/editor_file_dialog.cpp editor/editor_help.cpp editor/editor_node.cpp -#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_selector.cpp editor/quick_open.cpp scene/gui/file_dialog.cpp -msgid "Open" -msgstr "開く" - #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Open a File" msgstr "ファイルを開く" @@ -1689,6 +1701,13 @@ msgid "" msgstr "" #: editor/editor_node.cpp +msgid "" +"This is a remote object so changes to it will not be kept.\n" +"Please read the documentation relevant to debugging to better understand " +"this workflow." +msgstr "" + +#: editor/editor_node.cpp #, fuzzy msgid "Copy Params" msgstr "パラメーターをコピーする" @@ -1828,6 +1847,11 @@ msgid "Export Mesh Library" msgstr "メッシュライブラリのエクスポート" #: editor/editor_node.cpp +#, fuzzy +msgid "This operation can't be done without a root node." +msgstr "この処理にはシーンが必要です." + +#: editor/editor_node.cpp msgid "Export Tile Set" msgstr "タイルセットのエクスポート" @@ -1975,13 +1999,22 @@ msgstr "シーンタブを切り替える" #: editor/editor_node.cpp #, fuzzy -msgid "%d more file(s)" +msgid "%d more files or folders" +msgstr "%d 多いファイルかフォルダ" + +#: editor/editor_node.cpp +#, fuzzy +msgid "%d more folders" msgstr "%d 多いファイル" #: editor/editor_node.cpp #, fuzzy -msgid "%d more file(s) or folder(s)" -msgstr "%d 多いファイルかフォルダ" +msgid "%d more files" +msgstr "%d 多いファイル" + +#: editor/editor_node.cpp +msgid "Dock Position" +msgstr "" #: editor/editor_node.cpp msgid "Distraction Free Mode" @@ -1994,6 +2027,11 @@ msgstr "最低限モード" #: editor/editor_node.cpp #, fuzzy +msgid "Add a new scene." +msgstr "新しいトラックを追加。" + +#: editor/editor_node.cpp +#, fuzzy msgid "Scene" msgstr "シーン" @@ -2071,13 +2109,12 @@ msgid "TileSet.." msgstr "タイルセット.." #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp -#: scene/gui/text_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Undo" msgstr "元に戻す" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp +#: scene/gui/line_edit.cpp #, fuzzy msgid "Redo" msgstr "再実行" @@ -2665,6 +2702,11 @@ msgstr "(現在の)" #: editor/export_template_manager.cpp #, fuzzy +msgid "Retrieving mirrors, please wait.." +msgstr "接続失敗 再試行を" + +#: editor/export_template_manager.cpp +#, fuzzy msgid "Remove template version '%s'?" msgstr "テンプレート バージョン'%s'を除去しますか?" @@ -2707,6 +2749,120 @@ msgid "Importing:" msgstr "インポート:" #: editor/export_template_manager.cpp +msgid "" +"No download links found for this version. Direct download is only available " +"for official releases." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#, fuzzy +msgid "Can't resolve." +msgstr "解決できません." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#, fuzzy +msgid "Can't connect." +msgstr "接続失敗." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#, fuzzy +msgid "No response." +msgstr "応答がありません." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#, fuzzy +msgid "Req. Failed." +msgstr "リクエスト失敗." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#, fuzzy +msgid "Redirect Loop." +msgstr "リダイレクトのループ." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#, fuzzy +msgid "Failed:" +msgstr "失敗:" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't write file." +msgstr "ファイルに書き込みできませんでした:\n" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Download Complete." +msgstr "ダウンロード失敗" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Error requesting url: " +msgstr "アトラスの保存に失敗しました:" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connecting to Mirror.." +msgstr "接続中.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Disconnected" +msgstr "切断" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Resolving" +msgstr "解決中.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't Resolve" +msgstr "解決できません." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#, fuzzy +msgid "Connecting.." +msgstr "接続中.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't Conect" +msgstr "接続失敗." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connected" +msgstr "接続" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#, fuzzy +msgid "Requesting.." +msgstr "リクエスト中.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Downloading" +msgstr "ダウンロード" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connection Error" +msgstr "接続中.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "SSL Handshake Error" +msgstr "読み込みエラー" + +#: editor/export_template_manager.cpp #, fuzzy msgid "Current Version:" msgstr "現在のバージョン:" @@ -2736,6 +2892,15 @@ msgstr "すべて選択" msgid "Export Template Manager" msgstr "エクスポート テンプレート マネージャー" +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Download Templates" +msgstr "選択しているものを削除" + +#: editor/export_template_manager.cpp +msgid "Select mirror from list: " +msgstr "" + #: editor/file_type_cache.cpp #, fuzzy msgid "Can't open file_type_cache.cch for writing, not saving file type cache!" @@ -2744,9 +2909,8 @@ msgstr "" "保存できません!" #: editor/filesystem_dock.cpp -#, fuzzy -msgid "Cannot navigate to '" -msgstr "~に移動できません" +msgid "Cannot navigate to '%s' as it has not been found in the file system!" +msgstr "" #: editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails" @@ -2764,13 +2928,6 @@ msgstr "" #: editor/filesystem_dock.cpp #, fuzzy -msgid "" -"\n" -"Source: " -msgstr "ソース:" - -#: editor/filesystem_dock.cpp -#, fuzzy msgid "Cannot move/rename resources root." msgstr "ソースのフォントを読み込み/処理できません." @@ -3069,9 +3226,8 @@ msgid "Remove Poly And Point" msgstr "ポリゴンとポイントを除去" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp #, fuzzy -msgid "Create a new polygon from scratch." +msgid "Create a new polygon from scratch" msgstr "新規にポリゴンを生成する" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -3082,6 +3238,11 @@ msgid "" "RMB: Erase Point." msgstr "" +#: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy +msgid "Delete points" +msgstr "ポイント=点を除去" + #: editor/plugins/animation_player_editor_plugin.cpp #, fuzzy msgid "Toggle Autoplay" @@ -3478,21 +3639,11 @@ msgstr "ホスト名を解決できません:" #: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy -msgid "Can't resolve." -msgstr "解決できません." - -#: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Connection error, please try again." msgstr "接続失敗 再試行を" #: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy -msgid "Can't connect." -msgstr "接続失敗." - -#: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Can't connect to host:" msgstr "ホストに接続できません:" @@ -3503,36 +3654,16 @@ msgstr "ホストから応答がありません:" #: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy -msgid "No response." -msgstr "応答がありません." - -#: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Request failed, return code:" msgstr "リクエスト失敗 リターン コード:" #: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy -msgid "Req. Failed." -msgstr "リクエスト失敗." - -#: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Request failed, too many redirects" msgstr "リクエスト失敗 リダイレクトの回数が多すぎます" #: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy -msgid "Redirect Loop." -msgstr "リダイレクトのループ." - -#: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy -msgid "Failed:" -msgstr "失敗:" - -#: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Bad download hash, assuming file has been tampered with." msgstr "ダウンロード内容のハッシュが不整合 改ざんの可能性があります." @@ -3568,16 +3699,6 @@ msgstr "解決中.." #: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy -msgid "Connecting.." -msgstr "接続中.." - -#: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy -msgid "Requesting.." -msgstr "リクエスト中.." - -#: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Error making request" msgstr "リクエスト発行エラー" @@ -3714,6 +3835,39 @@ msgid "Move Action" msgstr "移動動作" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create new vertical guide" +msgstr "フォルダを作成" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove vertical guide" +msgstr "無効なキーを削除" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Move horizontal guide" +msgstr "曲線のポイントを移動" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create new horizontal guide" +msgstr "フォルダを作成" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove horizontal guide" +msgstr "無効なキーを削除" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new horizontal and vertical guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy msgid "Edit IK Chain" msgstr "IK(インバース キネマティクス)チェーンの編集" @@ -3861,10 +4015,17 @@ msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy +msgid "Snap to guides" +msgstr "Snapモード:" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy msgid "Lock the selected object in place (can't be moved)." msgstr "選択したオブジェクトをロックして移動不能とする." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp #, fuzzy msgid "Unlock the selected object (can be moved)." msgstr "選択したオブジェクトをロック解除して移動可能とする." @@ -3927,6 +4088,11 @@ msgstr "ボーンを表示する" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy +msgid "Show guides" +msgstr "ボーンを表示する" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy msgid "Center Selection" msgstr "選択対象を中央に" @@ -4135,6 +4301,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/gi_probe_editor_plugin.cpp +msgid "Bake GI Probe" +msgstr "" + #: editor/plugins/gradient_editor_plugin.cpp msgid "Add/Remove Color Ramp Point" msgstr "色変化の傾斜に、ポイント=点を追加または除去する" @@ -4168,6 +4338,11 @@ msgid "Create Occluder Polygon" msgstr "オクルージョンを生じるポリゴンを生成" #: editor/plugins/light_occluder_2d_editor_plugin.cpp +#, fuzzy +msgid "Create a new polygon from scratch." +msgstr "新規にポリゴンを生成する" + +#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Edit existing polygon:" msgstr "既存のポリゴンを編集:" @@ -4184,63 +4359,6 @@ msgstr "Ctrl+マウス左ボタン: セグメントを分割" msgid "RMB: Erase Point." msgstr "マウス右ボタン:ポイント=点を除去." -#: editor/plugins/line_2d_editor_plugin.cpp -#, fuzzy -msgid "Remove Point from Line2D" -msgstr "Line2Dからポイント=点を除去" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Add Point to Line2D" -msgstr "Line2Dにポイント=点を追加" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Move Point in Line2D" -msgstr "Line2D のポイント=点を移動" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Select Points" -msgstr "ポイント=点を選択" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -#, fuzzy -msgid "Shift+Drag: Select Control Points" -msgstr "Shift+ドラッグ:コントロールポイントを選択" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -#, fuzzy -msgid "Click: Add Point" -msgstr "クリック:ポイント=点を追加" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -#, fuzzy -msgid "Right Click: Delete Point" -msgstr "右クリック:ポイント=点を除去" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -#, fuzzy -msgid "Add Point (in empty space)" -msgstr "ポイント=点を追加(空白に)" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Split Segment (in line)" -msgstr "セグメント分割(線分内で)" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Delete Point" -msgstr "ポイント=点を除去" - #: editor/plugins/mesh_instance_editor_plugin.cpp #, fuzzy msgid "Mesh is empty!" @@ -4715,17 +4833,51 @@ msgid "Move Out-Control in Curve" msgstr "曲線のOut-ハンドルを移動する" #: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Select Points" +msgstr "ポイント=点を選択" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +#, fuzzy +msgid "Shift+Drag: Select Control Points" +msgstr "Shift+ドラッグ:コントロールポイントを選択" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +#, fuzzy +msgid "Click: Add Point" +msgstr "クリック:ポイント=点を追加" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +#, fuzzy +msgid "Right Click: Delete Point" +msgstr "右クリック:ポイント=点を除去" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Select Control Points (Shift+Drag)" msgstr "コントロールポイントを選ぶ (Shift+Drag)" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp #, fuzzy +msgid "Add Point (in empty space)" +msgstr "ポイント=点を追加(空白に)" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +#, fuzzy msgid "Split Segment (in curve)" msgstr "分割する(曲線を)" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Delete Point" +msgstr "ポイント=点を除去" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Close Curve" msgstr "曲線を閉じる" @@ -4885,7 +5037,6 @@ msgstr "リソースを読み込む" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Paste" @@ -4933,6 +5084,21 @@ msgid " Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#, fuzzy +msgid "Sort" +msgstr "並べ替え:" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Up" +msgstr "上に移動" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Down" +msgstr "下に移動" + +#: editor/plugins/script_editor_plugin.cpp msgid "Next script" msgstr "次のスクリプト" @@ -4989,6 +5155,10 @@ msgstr "閉じる" msgid "Close All" msgstr "閉じる" +#: editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "実行" @@ -5000,14 +5170,12 @@ msgstr "お気に入りを切り替える" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #, fuzzy msgid "Find.." msgstr "検索.." #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #, fuzzy msgid "Find Next" msgstr "次を探す" @@ -5121,33 +5289,22 @@ msgstr "小文字" msgid "Capitalize" msgstr "先頭を大文字に" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" msgstr "切り取り" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Copy" msgstr "コピー" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Select All" msgstr "すべて選択" -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Up" -msgstr "上に移動" - -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Down" -msgstr "下に移動" - #: editor/plugins/script_text_editor.cpp #, fuzzy msgid "Delete Line" @@ -5173,6 +5330,23 @@ msgstr "複製してダウンロード" #: editor/plugins/script_text_editor.cpp #, fuzzy +msgid "Fold Line" +msgstr "行に移動" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold Line" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Fold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy msgid "Complete Symbol" msgstr "記号すべて" @@ -5219,12 +5393,10 @@ msgid "Convert To Lowercase" msgstr "小文字に変換" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Previous" msgstr "前を検索" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Replace.." msgstr "置き換え.." @@ -5234,7 +5406,6 @@ msgid "Goto Function.." msgstr "関数~に移動.." #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #, fuzzy msgid "Goto Line.." msgstr "~行に移動.." @@ -5418,6 +5589,16 @@ msgid "View Plane Transform." msgstr "ビュー平面トランスフォーム." #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Scaling: " +msgstr "縮尺:" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Translating: " +msgstr "翻訳:" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Rotating %s degrees." msgstr "%s 度回転." @@ -5499,6 +5680,10 @@ msgid "Vertices" msgstr "頂点" #: editor/plugins/spatial_editor_plugin.cpp +msgid "FPS" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Align with view" msgstr "シーンビューにカメラを合わせる(Align With View)" @@ -5536,6 +5721,16 @@ msgid "View Information" msgstr "情報を表示" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "View FPS" +msgstr "ビューファイル:" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Half Resolution" +msgstr "縮尺(Scale)の選択" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Audio Listener" msgstr "" @@ -5674,6 +5869,11 @@ msgstr "拡大縮小ツール" #: editor/plugins/spatial_editor_plugin.cpp #, fuzzy +msgid "Toggle Freelook" +msgstr "フルスクリーンの切り替え" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy msgid "Transform" msgstr "トランスフォーム" @@ -5968,6 +6168,11 @@ msgstr "空のエディタテンプレートを生成" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy +msgid "Create From Current Editor Theme" +msgstr "空のエディタテンプレートを生成" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy msgid "CheckBox Radio1" msgstr "チェックボックス Radio1" @@ -6154,7 +6359,7 @@ msgstr "実行可能" #: editor/project_export.cpp #, fuzzy -msgid "Delete patch '" +msgid "Delete patch '%s' from list?" msgstr "パッチ除去'" #: editor/project_export.cpp @@ -6491,10 +6696,6 @@ msgid "Add Input Action Event" msgstr "入力アクションイベントを追加" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Meta+" -msgstr "Meta+" - -#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp msgid "Shift+" msgstr "Shift+" @@ -6627,13 +6828,12 @@ msgstr "" #: editor/project_settings_editor.cpp #, fuzzy -msgid "No property '" +msgid "No property '%s' exists." msgstr "プロパティ:" #: editor/project_settings_editor.cpp -#, fuzzy -msgid "Setting '" -msgstr "設定" +msgid "Setting '%s' is internal, and it can't be deleted." +msgstr "" #: editor/project_settings_editor.cpp #, fuzzy @@ -7166,6 +7366,16 @@ msgstr "選択したノードのスクリプトをクリア" #: editor/scene_tree_dock.cpp #, fuzzy +msgid "Remote" +msgstr "削除" + +#: editor/scene_tree_dock.cpp +#, fuzzy +msgid "Local" +msgstr "ロケール" + +#: editor/scene_tree_dock.cpp +#, fuzzy msgid "Clear Inheritance? (No Undo!)" msgstr "継承をクリアしますか?(undoできません!)" @@ -7379,6 +7589,11 @@ msgid "Attach Node Script" msgstr "ノードにスクリプトを添付する" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Remote " +msgstr "削除" + +#: editor/script_editor_debugger.cpp msgid "Bytes:" msgstr "バイト:" @@ -7437,18 +7652,6 @@ msgid "Stack Trace (if applicable):" msgstr "スタックトレース(可能なら):" #: editor/script_editor_debugger.cpp -msgid "Remote Inspector" -msgstr "リモートインスペクター" - -#: editor/script_editor_debugger.cpp -msgid "Live Scene Tree:" -msgstr "" - -#: editor/script_editor_debugger.cpp -msgid "Remote Object Properties: " -msgstr "リモートオブジェクトのプロパティ: " - -#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "プロファイラー" @@ -7588,55 +7791,55 @@ msgstr "" msgid "GDNative" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp #, fuzzy msgid "Invalid type argument to convert(), use TYPE_* constants." msgstr "Convert()に対して無効な型の引数です。TYPE_* 定数を使ってください。" -#: modules/gdscript/gd_functions.cpp modules/mono/glue/glue_header.h +#: modules/gdscript/gdscript_functions.cpp modules/mono/glue/glue_header.h #: modules/visual_script/visual_script_builtin_funcs.cpp #, fuzzy msgid "Not enough bytes for decoding bytes, or invalid format." msgstr "デコードバイトのバイトは十分ではありません。または無効な形式です。" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "step argument is zero!" msgstr "ステップ引数はゼロです!" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not a script with an instance" msgstr "インスタンスを使用していないスクリプトです" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a script" msgstr "スクリプトに基づいていません" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a resource file" msgstr "リソースファイルに基づいていません" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp #, fuzzy msgid "Invalid instance dictionary format (missing @path)" msgstr "無効なインスタンス辞書形式です ( @path が見つかりません)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp #, fuzzy msgid "Invalid instance dictionary format (can't load script at @path)" msgstr "無効なインスタンス辞書形式です (@path でスクリプトを読み込めません)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp #, fuzzy msgid "Invalid instance dictionary format (invalid script at @path)" msgstr "無効なインスタンス辞書形式です (@path で無効なスクリプト)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp #, fuzzy msgid "Invalid instance dictionary (invalid subclasses)" msgstr "無効なインスタンス辞書です (無効なサブクラス)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Object can't provide a length." msgstr "" @@ -7651,16 +7854,26 @@ msgid "GridMap Duplicate Selection" msgstr "選択範囲を複製" #: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Floor:" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +#, fuzzy +msgid "Grid Map" +msgstr "グリッドSnap" + +#: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy msgid "Snap View" msgstr "上面図" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Prev Level (%sDown Wheel)" -msgstr "" +#, fuzzy +msgid "Previous Floor" +msgstr "以前のタブ" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Next Level (%sUp Wheel)" +msgid "Next Floor" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp @@ -7736,13 +7949,8 @@ msgstr "タイルマップを消去" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy -msgid "Selection -> Duplicate" -msgstr "選択範囲のみ" - -#: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy -msgid "Selection -> Clear" -msgstr "選択範囲のみ" +msgid "Clear Selection" +msgstr "選択対象を中央に" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy @@ -7891,7 +8099,7 @@ msgstr "グラフノードを複製" #: modules/visual_script/visual_script_editor.cpp #, fuzzy -msgid "Hold Meta to drop a Getter. Hold Shift to drop a generic signature." +msgid "Hold %s to drop a Getter. Hold Shift to drop a generic signature." msgstr "" "メタキーを保持してgetterを落とす.Shiftキーを保持してジェネリックを指示する." @@ -7903,7 +8111,7 @@ msgstr "" #: modules/visual_script/visual_script_editor.cpp #, fuzzy -msgid "Hold Meta to drop a simple reference to the node." +msgid "Hold %s to drop a simple reference to the node." msgstr "メタキーを保持して単純参照(simple reference)を落とす." #: modules/visual_script/visual_script_editor.cpp @@ -7913,7 +8121,7 @@ msgstr "Ctrlキーを保持して単純参照(simple reference)を落とす." #: modules/visual_script/visual_script_editor.cpp #, fuzzy -msgid "Hold Meta to drop a Variable Setter." +msgid "Hold %s to drop a Variable Setter." msgstr "メタキーを保持して変数のsetterを落とす" #: modules/visual_script/visual_script_editor.cpp @@ -8187,13 +8395,24 @@ msgid "Could not write file:\n" msgstr "ファイルに書き込みできませんでした:\n" #: platform/javascript/export/export.cpp -msgid "Could not read file:\n" +#, fuzzy +msgid "Could not open template for export:\n" +msgstr "エクスポートするテンプレートを開けません:\n" + +#: platform/javascript/export/export.cpp +#, fuzzy +msgid "Invalid export template:\n" +msgstr "テンプレート エクスポートを管理" + +#: platform/javascript/export/export.cpp +#, fuzzy +msgid "Could not read custom HTML shell:\n" msgstr "ファイルを読めませんでした:\n" #: platform/javascript/export/export.cpp #, fuzzy -msgid "Could not open template for export:\n" -msgstr "エクスポートするテンプレートを開けません:\n" +msgid "Could not read boot splash image file:\n" +msgstr "ファイルを読めませんでした:\n" #: scene/2d/animated_sprite.cpp msgid "" @@ -8314,23 +8533,6 @@ msgid "Path property must point to a valid Node2D node to work." msgstr "" "Path プロパティは、動作するように有効な Node2D ノードを示す必要があります。" -#: 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 プロパティは、動作するように有効なビューポート ノードをポイントする必要" -"があります。このようなビューポートは、'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 "" -"Path プロパティに設定したビューポートは、このスプライトの動作する順序で " -"'render target' として設定する必要があります。" - #: scene/2d/visibility_notifier_2d.cpp msgid "" "VisibilityEnable2D works best when used with the edited scene root directly " @@ -8400,6 +8602,15 @@ msgstr "" "関数の CollisionShape の形状を指定する必要があります。それのためのシェイプリ" "ソースを作成してください!" +#: scene/3d/gi_probe.cpp +#, fuzzy +msgid "Plotting Meshes" +msgstr "イメージを配置(Blit)" + +#: scene/3d/gi_probe.cpp +msgid "Finishing Plot" +msgstr "" + #: scene/3d/navigation_mesh.cpp msgid "A NavigationMesh resource must be set or created for this node to work." msgstr "" @@ -8499,6 +8710,10 @@ msgstr "" "を子とするか、コントロールをカスタム最小サイズにマニュアルで指定して使用して" "ください." +#: scene/gui/tree.cpp +msgid "(Other)" +msgstr "" + #: scene/main/scene_tree.cpp #, fuzzy msgid "" @@ -8536,6 +8751,65 @@ msgstr "フォント読み込みエラー。" msgid "Invalid font size." msgstr "無効なフォント サイズです。" +#, fuzzy +#~ msgid "Cannot navigate to '" +#~ msgstr "~に移動できません" + +#, fuzzy +#~ msgid "" +#~ "\n" +#~ "Source: " +#~ msgstr "ソース:" + +#, fuzzy +#~ msgid "Remove Point from Line2D" +#~ msgstr "Line2Dからポイント=点を除去" + +#~ msgid "Add Point to Line2D" +#~ msgstr "Line2Dにポイント=点を追加" + +#~ msgid "Move Point in Line2D" +#~ msgstr "Line2D のポイント=点を移動" + +#~ msgid "Split Segment (in line)" +#~ msgstr "セグメント分割(線分内で)" + +#~ msgid "Meta+" +#~ msgstr "Meta+" + +#, fuzzy +#~ msgid "Setting '" +#~ msgstr "設定" + +#~ msgid "Remote Inspector" +#~ msgstr "リモートインスペクター" + +#~ msgid "Remote Object Properties: " +#~ msgstr "リモートオブジェクトのプロパティ: " + +#, fuzzy +#~ msgid "Selection -> Duplicate" +#~ msgstr "選択範囲のみ" + +#, fuzzy +#~ msgid "Selection -> Clear" +#~ msgstr "選択範囲のみ" + +#~ msgid "" +#~ "Path property must point to a valid Viewport node to work. Such Viewport " +#~ "must be set to 'render target' mode." +#~ msgstr "" +#~ "Path プロパティは、動作するように有効なビューポート ノードをポイントする必" +#~ "要があります。このようなビューポートは、'render target' モードに設定する必" +#~ "要があります。" + +#~ msgid "" +#~ "The Viewport set in the path property must be set as 'render target' in " +#~ "order for this sprite to work." +#~ msgstr "" +#~ "Path プロパティに設定したビューポートは、このスプライトの動作する順序で " +#~ "'render target' として設定する必要があります。" + #~ msgid "Filter:" #~ msgstr "フィルター:" @@ -8562,10 +8836,6 @@ msgstr "無効なフォント サイズです。" #~ msgstr "取り除いたのは:" #, fuzzy -#~ msgid "Error saving atlas:" -#~ msgstr "アトラスの保存に失敗しました:" - -#, fuzzy #~ msgid "Could not save atlas subtexture:" #~ msgstr "アトラスの要素であるテクスチャの保存ができません:" @@ -9044,10 +9314,6 @@ msgstr "無効なフォント サイズです。" #~ msgstr "イメージをクロッピング(トリミング)" #, fuzzy -#~ msgid "Blitting Images" -#~ msgstr "イメージを配置(Blit)" - -#, fuzzy #~ msgid "Couldn't save atlas image:" #~ msgstr "アトラスイメージを保存できませんでした:" diff --git a/editor/translations/ko.po b/editor/translations/ko.po index 02141b6dc3..99d73d786e 100644 --- a/editor/translations/ko.po +++ b/editor/translations/ko.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2017-10-24 20:47+0000\n" +"PO-Revision-Date: 2017-11-14 12:48+0000\n" "Last-Translator: 박한얼 <volzhs@gmail.com>\n" "Language-Team: Korean <https://hosted.weblate.org/projects/godot-engine/" "godot/ko/>\n" @@ -19,7 +19,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 2.17\n" +"X-Generator: Weblate 2.18-dev\n" #: editor/animation_editor.cpp msgid "Disabled" @@ -102,6 +102,7 @@ msgid "Anim Delete Keys" msgstr "키 삭제" #: editor/animation_editor.cpp editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Duplicate Selection" msgstr "선택키 복제" @@ -637,6 +638,13 @@ msgstr "종속 관계 편집기" msgid "Search Replacement Resource:" msgstr "대체 리소스 검색:" +#: editor/dependency_editor.cpp editor/editor_file_dialog.cpp +#: editor/editor_help.cpp editor/editor_node.cpp editor/filesystem_dock.cpp +#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp +#: editor/quick_open.cpp scene/gui/file_dialog.cpp +msgid "Open" +msgstr "열기" + #: editor/dependency_editor.cpp msgid "Owners Of:" msgstr "소유자:" @@ -709,6 +717,16 @@ msgstr "선택된 파일들을 삭제하시겠습니까?" msgid "Delete" msgstr "삭제" +#: editor/dictionary_property_edit.cpp +#, fuzzy +msgid "Change Dictionary Key" +msgstr "애니메이션 이름 변경:" + +#: editor/dictionary_property_edit.cpp +#, fuzzy +msgid "Change Dictionary Value" +msgstr "배열 값 변경" + #: editor/editor_about.cpp msgid "Thanks from the Godot community!" msgstr "Godot 커뮤니티에 감사드립니다!" @@ -847,9 +865,8 @@ msgid "Toggle Audio Bus Mute" msgstr "오디오 버스 뮤트 토글" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Toggle Audio Bus Bypass Effects" -msgstr "오디오 버스 이펙트 무시 토글" +msgstr "오디오 버스 바이패스 이펙트 토글" #: editor/editor_audio_buses.cpp msgid "Select Audio Bus Send" @@ -880,7 +897,6 @@ msgid "Mute" msgstr "뮤트" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Bypass" msgstr "바이패스" @@ -1131,12 +1147,6 @@ msgstr "인식 가능한 모든 파일" msgid "All Files (*)" msgstr "모든 파일 (*)" -#: editor/editor_file_dialog.cpp editor/editor_help.cpp editor/editor_node.cpp -#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_selector.cpp editor/quick_open.cpp scene/gui/file_dialog.cpp -msgid "Open" -msgstr "열기" - #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Open a File" msgstr "파일 열기" @@ -1326,7 +1336,6 @@ msgid "Property Description:" msgstr "속성 설명:" #: editor/editor_help.cpp -#, fuzzy msgid "" "There is currently no description for this property. Please help us by " "[color=$color][url=$url]contributing one[/url][/color]!" @@ -1506,6 +1515,17 @@ msgstr "" "를 확인해주십시오." #: editor/editor_node.cpp +#, fuzzy +msgid "" +"This is a remote object so changes to it will not be kept.\n" +"Please read the documentation relevant to debugging to better understand " +"this workflow." +msgstr "" +"이 리소스는 가져왔던 씬에 속한 것이므로 수정할 수 없습니다.\n" +"관련 작업 절차를 더 잘 이해하려면 씬 가져오기(scene importing)과 관련된 문서" +"를 확인해주십시오." + +#: editor/editor_node.cpp msgid "Copy Params" msgstr "속성 복사" @@ -1621,6 +1641,11 @@ msgid "Export Mesh Library" msgstr "메쉬 라이브러리 내보내기" #: editor/editor_node.cpp +#, fuzzy +msgid "This operation can't be done without a root node." +msgstr "이 작업은 선택된 노드가 없을때는 불가합니다." + +#: editor/editor_node.cpp msgid "Export Tile Set" msgstr "타일 셋 내보내기" @@ -1685,19 +1710,16 @@ msgid "Pick a Main Scene" msgstr "메인 씬 선택" #: editor/editor_node.cpp -#, fuzzy msgid "Unable to enable addon plugin at: '%s' parsing of config failed." -msgstr "이 곳에 있는 확장기능 플러그인을 활성화할 수 없습니다: '" +msgstr "확장기능 플러그인을 활성화할 수 없습니다: '%s' 설정 해석 실패." #: editor/editor_node.cpp -#, fuzzy msgid "Unable to find script field for addon plugin at: 'res://addons/%s'." -msgstr "이 곳에 있는 확장기능 플러그인을 활성화할 수 없습니다: '" +msgstr "확장기능 플러그인을 찾을 수 없습니다: 'res://addons/%s'." #: editor/editor_node.cpp -#, fuzzy msgid "Unable to load addon script from path: '%s'." -msgstr "이 곳에 있는 확장기능 플러그인을 활성화할 수 없습니다: '" +msgstr "확장기능 스크립트를 로드할 수 없습니다: '%s'." #: editor/editor_node.cpp msgid "" @@ -1755,12 +1777,23 @@ msgid "Switch Scene Tab" msgstr "씬 탭 전환" #: editor/editor_node.cpp -msgid "%d more file(s)" +#, fuzzy +msgid "%d more files or folders" +msgstr "%d개 추가 파일 또는 폴더" + +#: editor/editor_node.cpp +#, fuzzy +msgid "%d more folders" msgstr "%d개 추가파일" #: editor/editor_node.cpp -msgid "%d more file(s) or folder(s)" -msgstr "%d개 추가 파일 또는 폴더" +#, fuzzy +msgid "%d more files" +msgstr "%d개 추가파일" + +#: editor/editor_node.cpp +msgid "Dock Position" +msgstr "" #: editor/editor_node.cpp msgid "Distraction Free Mode" @@ -1771,6 +1804,11 @@ msgid "Toggle distraction-free mode." msgstr "집중 모드 토글." #: editor/editor_node.cpp +#, fuzzy +msgid "Add a new scene." +msgstr "새 트랙 추가." + +#: editor/editor_node.cpp msgid "Scene" msgstr "씬" @@ -1835,13 +1873,12 @@ msgid "TileSet.." msgstr "타일 셋.." #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp -#: scene/gui/text_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Undo" msgstr "되돌리기" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp +#: scene/gui/line_edit.cpp msgid "Redo" msgstr "다시 실행" @@ -2248,9 +2285,8 @@ msgid "Frame %" msgstr "프레임 %" #: editor/editor_profiler.cpp -#, fuzzy msgid "Physics Frame %" -msgstr "고정 프레임 %" +msgstr "물리 프레임 %" #: editor/editor_profiler.cpp editor/script_editor_debugger.cpp msgid "Time:" @@ -2343,6 +2379,10 @@ msgid "(Current)" msgstr "(현재)" #: editor/export_template_manager.cpp +msgid "Retrieving mirrors, please wait.." +msgstr "" + +#: editor/export_template_manager.cpp msgid "Remove template version '%s'?" msgstr "" @@ -2377,6 +2417,111 @@ msgid "Importing:" msgstr "가져오는 중:" #: editor/export_template_manager.cpp +msgid "" +"No download links found for this version. Direct download is only available " +"for official releases." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't resolve." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't connect." +msgstr "연결할 수 없음." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "No response." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Req. Failed." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Redirect Loop." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Failed:" +msgstr "" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't write file." +msgstr "타일을 찾을 수 없음:" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Download Complete." +msgstr "다운로드 에러" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Error requesting url: " +msgstr "아틀라스 저장 중 에러:" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connecting to Mirror.." +msgstr "연결중.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Disconnected" +msgstr "연결해제" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Resolving" +msgstr "해결 중.." + +#: editor/export_template_manager.cpp +msgid "Can't Resolve" +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Connecting.." +msgstr "연결중.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't Conect" +msgstr "연결할 수 없음." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connected" +msgstr "연결" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Requesting.." +msgstr "요청중.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Downloading" +msgstr "다운로드" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connection Error" +msgstr "연결중.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "SSL Handshake Error" +msgstr "로드 에러" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "현재 버전:" @@ -2400,12 +2545,22 @@ msgstr "템플릿 파일 선택" msgid "Export Template Manager" msgstr "내보내기 템플릿 매니저" +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Download Templates" +msgstr "템플릿" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Select mirror from list: " +msgstr "목록에서 기기를 선택하세요" + #: editor/file_type_cache.cpp msgid "Can't open file_type_cache.cch for writing, not saving file type cache!" msgstr "file_type_cache.cch를 열수 없어서, 파일 타입 캐쉬를 저장하지 않습니다!" #: editor/filesystem_dock.cpp -msgid "Cannot navigate to '" +msgid "Cannot navigate to '%s' as it has not been found in the file system!" msgstr "" #: editor/filesystem_dock.cpp @@ -2423,14 +2578,6 @@ msgid "" msgstr "" #: editor/filesystem_dock.cpp -msgid "" -"\n" -"Source: " -msgstr "" -"\n" -"소스: " - -#: editor/filesystem_dock.cpp msgid "Cannot move/rename resources root." msgstr "리소스 루트를 옮기거나 이름을 변경할 수 없습니다." @@ -2689,8 +2836,8 @@ msgid "Remove Poly And Point" msgstr "폴리곤과 포인트 삭제" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." +#, fuzzy +msgid "Create a new polygon from scratch" msgstr "처음부터 새로운 폴리곤 만들기." #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -2701,6 +2848,11 @@ msgid "" "RMB: Erase Point." msgstr "" +#: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy +msgid "Delete points" +msgstr "포인트 삭제" + #: editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" msgstr "자동 재생 전환" @@ -3035,18 +3187,10 @@ msgid "Can't resolve hostname:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't resolve." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Connection error, please try again." msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't connect." -msgstr "연결할 수 없음." - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Can't connect to host:" msgstr "호스트에 연결할 수 없음:" @@ -3055,30 +3199,14 @@ msgid "No response from host:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "No response." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, return code:" msgstr "요청 실패, 리턴 코드:" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Req. Failed." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, too many redirects" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Redirect Loop." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Failed:" -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Bad download hash, assuming file has been tampered with." msgstr "" @@ -3107,14 +3235,6 @@ msgid "Resolving.." msgstr "해결 중.." #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Connecting.." -msgstr "연결중.." - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Requesting.." -msgstr "요청중.." - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Error making request" msgstr "요청 에러" @@ -3227,6 +3347,39 @@ msgid "Move Action" msgstr "이동 액션" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create new vertical guide" +msgstr "새 스크립트 파일 만들기" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove vertical guide" +msgstr "변수 제거" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Move horizontal guide" +msgstr "커브의 포인트 이동" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create new horizontal guide" +msgstr "새 스크립트 파일 만들기" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove horizontal guide" +msgstr "유효하지 않은 키 삭제" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new horizontal and vertical guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Edit IK Chain" msgstr "IK 체인 편집" @@ -3349,10 +3502,17 @@ msgid "Snap to other nodes" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Snap to guides" +msgstr "그리드에 맞춤" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Lock the selected object in place (can't be moved)." msgstr "선택된 오브젝트를 잠급니다 (이동불가)." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Unlock the selected object (can be moved)." msgstr "선택된 오브젝트를 잠금 해제합니다 (이동가능)." @@ -3403,6 +3563,11 @@ msgid "Show rulers" msgstr "자 보기" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Show guides" +msgstr "자 보기" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Selection" msgstr "선택항목 화면 중앙에 표시" @@ -3589,6 +3754,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/gi_probe_editor_plugin.cpp +msgid "Bake GI Probe" +msgstr "" + #: editor/plugins/gradient_editor_plugin.cpp msgid "Add/Remove Color Ramp Point" msgstr "칼라 램프 포인트 추가/삭제" @@ -3621,6 +3790,10 @@ msgid "Create Occluder Polygon" msgstr "Occluder 폴리곤 만들기" #: editor/plugins/light_occluder_2d_editor_plugin.cpp +msgid "Create a new polygon from scratch." +msgstr "처음부터 새로운 폴리곤 만들기." + +#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Edit existing polygon:" msgstr "기존 폴리곤 편집:" @@ -3636,58 +3809,6 @@ msgstr "컨트롤+좌클릭: 세그먼트 분할." msgid "RMB: Erase Point." msgstr "우클릭: 포인트 삭제." -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Remove Point from Line2D" -msgstr "Line2D에서 포인트 삭제" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Add Point to Line2D" -msgstr "Line2D에 포인트 추가" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Move Point in Line2D" -msgstr "Line2D의 포인트 이동" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Select Points" -msgstr "포인트 선택" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Shift+Drag: Select Control Points" -msgstr "쉬푸트+드래그: 컨트롤 포인트 선택" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Click: Add Point" -msgstr "클릭: 포인트 추가" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Right Click: Delete Point" -msgstr "우클릭: 포인트 삭제" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Add Point (in empty space)" -msgstr "포인트 추가 (빈 공간)" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Split Segment (in line)" -msgstr "세그먼트 분할 (라인)" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Delete Point" -msgstr "포인트 삭제" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "메쉬가 비었습니다!" @@ -3901,7 +4022,6 @@ msgid "Eroding walkable area..." msgstr "" #: editor/plugins/navigation_mesh_generator.cpp -#, fuzzy msgid "Partitioning..." msgstr "분할중..." @@ -4053,9 +4173,8 @@ msgid "Emission Source: " msgstr "에미션 소스: " #: editor/plugins/particles_editor_plugin.cpp -#, fuzzy msgid "Generate Visibility AABB" -msgstr "AABB 생성" +msgstr "가시성 AABB 생성" #: editor/plugins/path_2d_editor_plugin.cpp msgid "Remove Point from Curve" @@ -4087,16 +4206,46 @@ msgid "Move Out-Control in Curve" msgstr "커브의 아웃-컨트롤 이동" #: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Select Points" +msgstr "포인트 선택" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Shift+Drag: Select Control Points" +msgstr "쉬푸트+드래그: 컨트롤 포인트 선택" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Click: Add Point" +msgstr "클릭: 포인트 추가" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Right Click: Delete Point" +msgstr "우클릭: 포인트 삭제" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Select Control Points (Shift+Drag)" msgstr "컨트롤 포인트 선택 (쉬프트+드래그)" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Add Point (in empty space)" +msgstr "포인트 추가 (빈 공간)" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Split Segment (in curve)" msgstr "세그먼트 분할 (커브)" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Delete Point" +msgstr "포인트 삭제" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Close Curve" msgstr "커브 닫기" @@ -4233,7 +4382,6 @@ msgstr "리소스 로드" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Paste" @@ -4280,6 +4428,21 @@ msgid " Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#, fuzzy +msgid "Sort" +msgstr "정렬:" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Up" +msgstr "위로 이동" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Down" +msgstr "아래로 이동" + +#: editor/plugins/script_editor_plugin.cpp msgid "Next script" msgstr "다음 스크립트" @@ -4331,6 +4494,10 @@ msgstr "문서 닫기" msgid "Close All" msgstr "모두 닫기" +#: editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "실행" @@ -4341,13 +4508,11 @@ msgstr "스크립트 패널 토글" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find.." msgstr "찾기.." #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Next" msgstr "다음 찾기" @@ -4453,33 +4618,22 @@ msgstr "" msgid "Capitalize" msgstr "" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" msgstr "잘라내기" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Copy" msgstr "복사하기" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Select All" msgstr "전체선택" -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Up" -msgstr "위로 이동" - -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Down" -msgstr "아래로 이동" - #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "라인 삭제" @@ -4501,6 +4655,23 @@ msgid "Clone Down" msgstr "아래로 복제" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Fold Line" +msgstr "라인으로 이동" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold Line" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Fold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Complete Symbol" msgstr "자동 완성" @@ -4546,12 +4717,10 @@ msgid "Convert To Lowercase" msgstr "소문자로 변환" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Previous" msgstr "이전 찾기" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Replace.." msgstr "변경.." @@ -4560,7 +4729,6 @@ msgid "Goto Function.." msgstr "함수로 이동.." #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Goto Line.." msgstr "라인으로 이동.." @@ -4725,6 +4893,16 @@ msgid "View Plane Transform." msgstr "뷰 평면 변형." #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Scaling: " +msgstr "크기:" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Translating: " +msgstr "번역:" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Rotating %s degrees." msgstr "%s도로 회전." @@ -4805,6 +4983,10 @@ msgid "Vertices" msgstr "버틱스" #: editor/plugins/spatial_editor_plugin.cpp +msgid "FPS" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Align with view" msgstr "뷰에 정렬" @@ -4837,6 +5019,16 @@ msgid "View Information" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "View FPS" +msgstr "파일 보기" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Half Resolution" +msgstr "선택키 스케일 조절" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Audio Listener" msgstr "오디오 리스너" @@ -4967,6 +5159,11 @@ msgid "Tool Scale" msgstr "크기조절 툴" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Toggle Freelook" +msgstr "전체화면 토글" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Transform" msgstr "변환" @@ -5241,6 +5438,11 @@ msgid "Create Empty Editor Template" msgstr "빈 에디터 템플릿 만들기" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Create From Current Editor Theme" +msgstr "빈 에디터 템플릿 만들기" + +#: editor/plugins/theme_editor_plugin.cpp msgid "CheckBox Radio1" msgstr "CheckBox Radio1" @@ -5322,16 +5524,14 @@ msgid "Paint TileMap" msgstr "타일맵 칠하기" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Line Draw" -msgstr "직선형" +msgstr "직선 그리기" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Rectangle Paint" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Bucket Fill" msgstr "채우기" @@ -5360,9 +5560,8 @@ msgid "Mirror Y" msgstr "Y축 뒤집기" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Paint Tile" -msgstr "타일맵 칠하기" +msgstr "타일 칠하기" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Pick Tile" @@ -5413,28 +5612,25 @@ msgid "Error" msgstr "에러" #: editor/project_export.cpp -#, fuzzy msgid "Runnable" -msgstr "활성화" +msgstr "실행가능" #: editor/project_export.cpp #, fuzzy -msgid "Delete patch '" +msgid "Delete patch '%s' from list?" msgstr "입력 삭제" #: editor/project_export.cpp -#, fuzzy msgid "Delete preset '%s'?" -msgstr "선택된 파일들을 삭제하시겠습니까?" +msgstr "'%s' 프리셋을 삭제하시겠습니까?" #: editor/project_export.cpp msgid "Export templates for this platform are missing/corrupted: " msgstr "" #: editor/project_export.cpp -#, fuzzy msgid "Presets" -msgstr "프리셋.." +msgstr "프리셋" #: editor/project_export.cpp editor/project_settings_editor.cpp msgid "Add.." @@ -5445,64 +5641,54 @@ msgid "Resources" msgstr "리소스" #: editor/project_export.cpp -#, fuzzy msgid "Export all resources in the project" -msgstr "프로젝트의 모든 리소스 내보내기." +msgstr "프로젝트의 모든 리소스 내보내기" #: editor/project_export.cpp -#, fuzzy msgid "Export selected scenes (and dependencies)" -msgstr "선택된 리소스 내보내기 (종속된 리소스 포함)." +msgstr "선택된 리소스 내보내기 (종속된 리소스 포함)" #: editor/project_export.cpp -#, fuzzy msgid "Export selected resources (and dependencies)" -msgstr "선택된 리소스 내보내기 (종속된 리소스 포함)." +msgstr "선택된 리소스 내보내기 (종속된 리소스 포함)" #: editor/project_export.cpp msgid "Export Mode:" msgstr "내보내기 모드:" #: editor/project_export.cpp -#, fuzzy msgid "Resources to export:" msgstr "내보낼 리소스:" #: editor/project_export.cpp -#, fuzzy msgid "" "Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" -msgstr "내보내기 시, 포함시킬 파일 (콤마로 구분, 예: *.json, *.txt):" +msgstr "리소스가 아닌 파일 내보내기 필터 (콤마로 구분, 예: *.json, *.txt)" #: editor/project_export.cpp -#, fuzzy msgid "" "Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" -msgstr "내보내기 시, 제외시킬 파일 (콤마로 구분, 예: *.json, *.txt):" +msgstr "프로젝트에서 제외시킬 파일 필터 (콤마로 구분, 예: *.json, *.txt)" #: editor/project_export.cpp -#, fuzzy msgid "Patches" -msgstr "일치:" +msgstr "패치" #: editor/project_export.cpp -#, fuzzy msgid "Make Patch" -msgstr "대상 경로:" +msgstr "패치 만들기" #: editor/project_export.cpp -#, fuzzy msgid "Features" -msgstr "텍스쳐" +msgstr "기능" #: editor/project_export.cpp msgid "Custom (comma-separated):" msgstr "" #: editor/project_export.cpp -#, fuzzy msgid "Feature List:" -msgstr "함수 목록:" +msgstr "기능 목록:" #: editor/project_export.cpp msgid "Export PCK/Zip" @@ -5517,19 +5703,17 @@ msgid "Export templates for this platform are missing/corrupted:" msgstr "" #: editor/project_export.cpp -#, fuzzy msgid "Export With Debug" -msgstr "타일 셋 내보내기" +msgstr "디버그와 함께 내보내기" #: editor/project_manager.cpp #, fuzzy msgid "The path does not exist." -msgstr "파일이 존재하지 않습니다." +msgstr "경로가 존재하지 않습니다." #: editor/project_manager.cpp -#, fuzzy msgid "Please choose a 'project.godot' file." -msgstr "프로젝트 폴더 바깥에 내보내기를 하세요!" +msgstr "'project.godot' 파일을 선택하세요." #: editor/project_manager.cpp msgid "" @@ -5558,33 +5742,28 @@ msgid "Invalid project path (changed anything?)." msgstr "유효하지 않은 프로젝트 경로 (뭔가 변경하신 거라도?)." #: editor/project_manager.cpp -#, fuzzy msgid "Couldn't get project.godot in project path." -msgstr "프로젝트 경로에 engine.cfg를 생성할 수 없습니다." +msgstr "프로젝트 경로에 project.godot 파일을 찾을 수 없습니다." #: editor/project_manager.cpp -#, fuzzy msgid "Couldn't edit project.godot in project path." -msgstr "프로젝트 경로에 engine.cfg를 생성할 수 없습니다." +msgstr "프로젝트 경로에 project.godot 파일을 편집할 수 없습니다." #: editor/project_manager.cpp -#, fuzzy msgid "Couldn't create project.godot in project path." -msgstr "프로젝트 경로에 engine.cfg를 생성할 수 없습니다." +msgstr "프로젝트 경로에 project.godot 파일을 생성할 수 없습니다." #: editor/project_manager.cpp msgid "The following files failed extraction from package:" msgstr "다음의 파일들을 패키지로부터 추출하는데 실패했습니다:" #: editor/project_manager.cpp -#, fuzzy msgid "Rename Project" -msgstr "이름없는 프로젝트" +msgstr "프로젝트 이름 변경" #: editor/project_manager.cpp -#, fuzzy msgid "Couldn't get project.godot in the project path." -msgstr "프로젝트 경로에 engine.cfg를 생성할 수 없습니다." +msgstr "프로젝트 경로에 project.godot 파일을 찾을 수 없습니다." #: editor/project_manager.cpp msgid "New Game Project" @@ -5607,7 +5786,6 @@ msgid "Project Name:" msgstr "프로젝트 명:" #: editor/project_manager.cpp -#, fuzzy msgid "Create folder" msgstr "폴더 생성" @@ -5628,23 +5806,22 @@ msgid "Unnamed Project" msgstr "이름없는 프로젝트" #: editor/project_manager.cpp -#, fuzzy msgid "Can't open project" -msgstr "연결하기.." +msgstr "프로젝트를 열 수 없음" #: editor/project_manager.cpp msgid "Are you sure to open more than one project?" msgstr "두개 이상의 프로젝트를 열려는 것이 확실합니까?" #: editor/project_manager.cpp -#, fuzzy msgid "" "Can't run project: no main scene defined.\n" "Please edit the project and set the main scene in \"Project Settings\" under " "the \"Application\" category." msgstr "" -"메인 씬이 지정되지 않았습니다. 선택하시겠습니까?\n" -"나중에 \"프로젝트 설정\"의 'Application' 항목에서 변경할 수 있습니다." +"프로젝트를 실행할 수 없습니다: 메인씬이 지정되지 않았습니다.\n" +"프로젝트 설정을 수정하여 \"Application\" 카테고리에 \"Project Settings\"에서 " +"메인씬을 설정하세요." #: editor/project_manager.cpp msgid "" @@ -5690,23 +5867,20 @@ msgid "New Project" msgstr "새 프로젝트" #: editor/project_manager.cpp -#, fuzzy msgid "Templates" -msgstr "아이템 삭제" +msgstr "템플릿" #: editor/project_manager.cpp msgid "Exit" msgstr "종료" #: editor/project_manager.cpp -#, fuzzy msgid "Restart Now" -msgstr "재시작 (초):" +msgstr "지금 재시작" #: editor/project_manager.cpp -#, fuzzy msgid "Can't run project" -msgstr "연결하기.." +msgstr "프로젝트를 실행할 수 없음" #: editor/project_settings_editor.cpp msgid "Key " @@ -5741,10 +5915,6 @@ msgid "Add Input Action Event" msgstr "입력 액션 이벤트 추가" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Meta+" -msgstr "메타+" - -#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp msgid "Shift+" msgstr "쉬프트+" @@ -5806,18 +5976,16 @@ msgid "Change" msgstr "변경" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Joypad Axis Index:" -msgstr "조이스틱 축 인덱스:" +msgstr "조이패드 축 인덱스:" #: editor/project_settings_editor.cpp msgid "Axis" msgstr "축" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Joypad Button Index:" -msgstr "조이스틱 버튼 인덱스:" +msgstr "조이패드 버튼 인덱스:" #: editor/project_settings_editor.cpp msgid "Add Input Action" @@ -5828,9 +5996,8 @@ msgid "Erase Input Action Event" msgstr "입력 액션 이벤트 삭제" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Add Event" -msgstr "빈 프레임 추가" +msgstr "이벤트 추가" #: editor/project_settings_editor.cpp msgid "Device" @@ -5870,28 +6037,24 @@ msgstr "" #: editor/project_settings_editor.cpp #, fuzzy -msgid "No property '" +msgid "No property '%s' exists." msgstr "속성:" #: editor/project_settings_editor.cpp -#, fuzzy -msgid "Setting '" -msgstr "설정" +msgid "Setting '%s' is internal, and it can't be deleted." +msgstr "" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Delete Item" -msgstr "입력 삭제" +msgstr "아이템 삭제" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Can't contain '/' or ':'" -msgstr "호스트에 연결할 수 없음:" +msgstr "'/' 또는 ':' 문자를 포함할 수 없음" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Already existing" -msgstr "지속 전환" +msgstr "이미 존재함" #: editor/project_settings_editor.cpp msgid "Error saving settings." @@ -5934,18 +6097,16 @@ msgid "Remove Resource Remap Option" msgstr "리소스 리맵핑 옵션 제거" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Changed Locale Filter" -msgstr "연결 시간 변경" +msgstr "로케일 필터 변경됨" #: editor/project_settings_editor.cpp msgid "Changed Locale Filter Mode" msgstr "" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Project Settings (project.godot)" -msgstr "프로젝트 설정 (engine.cfg)" +msgstr "프로젝트 설정 (project.godot)" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp msgid "General" @@ -6004,37 +6165,32 @@ msgid "Locale" msgstr "지역" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Locales Filter" -msgstr "이미지 필터:" +msgstr "로케일 필터" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Show all locales" -msgstr "뼈대 보기" +msgstr "모든 로케일 보기" #: editor/project_settings_editor.cpp msgid "Show only selected locales" msgstr "" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Filter mode:" -msgstr "필터" +msgstr "필터 모드:" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Locales:" -msgstr "지역" +msgstr "로케일:" #: editor/project_settings_editor.cpp msgid "AutoLoad" msgstr "자동 로드" #: editor/property_editor.cpp -#, fuzzy msgid "Pick a Viewport" -msgstr "1개 뷰포트" +msgstr "뷰포트 선택" #: editor/property_editor.cpp msgid "Ease In" @@ -6069,7 +6225,6 @@ msgid "Assign" msgstr "할당" #: editor/property_editor.cpp -#, fuzzy msgid "Select Node" msgstr "노드 선택" @@ -6078,31 +6233,26 @@ msgid "New Script" msgstr "새 스크립트" #: editor/property_editor.cpp -#, fuzzy msgid "Make Unique" -msgstr "Bones 만들기" +msgstr "고유하게 만들기" #: editor/property_editor.cpp -#, fuzzy msgid "Show in File System" -msgstr "파일 시스템" +msgstr "파일 시스템에서 보기" #: editor/property_editor.cpp -#, fuzzy msgid "Convert To %s" -msgstr "변환.." +msgstr "%s로 변환" #: editor/property_editor.cpp msgid "Error loading file: Not a resource!" msgstr "파일 로드 에러: 리소스가 아닙니다!" #: editor/property_editor.cpp -#, fuzzy msgid "Selected node is not a Viewport!" -msgstr "가져올 노드들 선택" +msgstr "선택된 노드는 Viewport가 아닙니다!" #: editor/property_editor.cpp -#, fuzzy msgid "Pick a Node" msgstr "노드 선택" @@ -6131,9 +6281,8 @@ msgid "Select Property" msgstr "속성 선택" #: editor/property_selector.cpp -#, fuzzy msgid "Select Virtual Method" -msgstr "메소드 선택" +msgstr "가상 메소드 선택" #: editor/property_selector.cpp msgid "Select Method" @@ -6286,9 +6435,8 @@ msgid "Error duplicating scene to save it." msgstr "저장하기 위해 씬을 복제하는 중에 에러가 발생했습니다." #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Sub-Resources:" -msgstr "리소스:" +msgstr "서브-리소스:" #: editor/scene_tree_dock.cpp msgid "Clear Inheritance" @@ -6331,9 +6479,8 @@ msgid "Save Branch as Scene" msgstr "선택 노드를 다른 씬으로 저장" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Copy Node Path" -msgstr "경로 복사" +msgstr "노드 경로 복사" #: editor/scene_tree_dock.cpp msgid "Delete (No Confirm)" @@ -6351,9 +6498,8 @@ msgstr "" "씬 파일을 노드로 추가합니다. 루트 노드가 없을 경우, 상속씬으로 만들어집니다." #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Filter nodes" -msgstr "필터" +msgstr "노드 필터" #: editor/scene_tree_dock.cpp msgid "Attach a new or existing script for the selected node." @@ -6364,6 +6510,16 @@ msgid "Clear a script for the selected node." msgstr "선택된 노드의 스크립트를 제거합니다." #: editor/scene_tree_dock.cpp +#, fuzzy +msgid "Remote" +msgstr "삭제" + +#: editor/scene_tree_dock.cpp +#, fuzzy +msgid "Local" +msgstr "지역" + +#: editor/scene_tree_dock.cpp msgid "Clear Inheritance? (No Undo!)" msgstr "상속을 없애시겠습니까? (되돌리기 불가!)" @@ -6406,9 +6562,8 @@ msgid "Instance:" msgstr "인스턴스:" #: editor/scene_tree_editor.cpp -#, fuzzy msgid "Open script" -msgstr "다음 스크립트" +msgstr "스크립트 열기" #: editor/scene_tree_editor.cpp msgid "" @@ -6423,9 +6578,8 @@ msgid "" msgstr "" #: editor/scene_tree_editor.cpp -#, fuzzy msgid "Toggle Visibility" -msgstr "Spatial 보이기 토글" +msgstr "보이기 토글" #: editor/scene_tree_editor.cpp msgid "Invalid node name, the following characters are not allowed:" @@ -6448,14 +6602,12 @@ msgid "Select a Node" msgstr "노드 선택" #: editor/script_create_dialog.cpp -#, fuzzy msgid "Error loading template '%s'" -msgstr "이미지 로드 에러:" +msgstr "'%s' 템플릿 로드 에러" #: editor/script_create_dialog.cpp -#, fuzzy msgid "Error - Could not create script in filesystem." -msgstr "파일 시스템에 스크립트를 생성할 수 없습니다." +msgstr "에러 - 파일 시스템에 스크립트를 생성할 수 없습니다." #: editor/script_create_dialog.cpp msgid "Error loading script from %s" @@ -6482,9 +6634,8 @@ msgid "Directory of the same name exists" msgstr "" #: editor/script_create_dialog.cpp -#, fuzzy msgid "File exists, will be reused" -msgstr "파일이 존재합니다. 덮어쓰시겠습니까?" +msgstr "파일이 존재하여, 재사용합니다" #: editor/script_create_dialog.cpp msgid "Invalid extension" @@ -6495,23 +6646,20 @@ msgid "Wrong extension chosen" msgstr "" #: editor/script_create_dialog.cpp -#, fuzzy msgid "Invalid Path" -msgstr "유효하지 않은 경로." +msgstr "유효하지 않은 경로" #: editor/script_create_dialog.cpp msgid "Invalid class name" msgstr "유요하지 않은 클래스명" #: editor/script_create_dialog.cpp -#, fuzzy msgid "Invalid inherited parent name or path" -msgstr "유요하지 않은 인덱스 속성명." +msgstr "유요하지 않은 상속된 부모 이름 또는 경로" #: editor/script_create_dialog.cpp -#, fuzzy msgid "Script valid" -msgstr "스크립트" +msgstr "유효한 스크립트" #: editor/script_create_dialog.cpp msgid "Allowed: a-z, A-Z, 0-9 and _" @@ -6522,36 +6670,30 @@ msgid "Built-in script (into scene file)" msgstr "" #: editor/script_create_dialog.cpp -#, fuzzy msgid "Create new script file" -msgstr "새 스크립트 만들기" +msgstr "새 스크립트 파일 만들기" #: editor/script_create_dialog.cpp -#, fuzzy msgid "Load existing script file" -msgstr "기존 스크립트 로드하기" +msgstr "기존 스크립트 파일 로드하기" #: editor/script_create_dialog.cpp msgid "Language" msgstr "언어" #: editor/script_create_dialog.cpp -#, fuzzy msgid "Inherits" -msgstr "상속:" +msgstr "상속" #: editor/script_create_dialog.cpp -#, fuzzy msgid "Class Name" -msgstr "클래스명:" +msgstr "클래스명" #: editor/script_create_dialog.cpp -#, fuzzy msgid "Template" -msgstr "아이템 삭제" +msgstr "템플릿" #: editor/script_create_dialog.cpp -#, fuzzy msgid "Built-in Script" msgstr "내장 스크립트" @@ -6560,6 +6702,11 @@ msgid "Attach Node Script" msgstr "노드 스크립트 붙이기" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Remote " +msgstr "삭제" + +#: editor/script_editor_debugger.cpp msgid "Bytes:" msgstr "바이트:" @@ -6616,18 +6763,6 @@ msgid "Stack Trace (if applicable):" msgstr "스택 추적 (해당되는 경우):" #: editor/script_editor_debugger.cpp -msgid "Remote Inspector" -msgstr "원격 인스펙터" - -#: editor/script_editor_debugger.cpp -msgid "Live Scene Tree:" -msgstr "실시간 씬 트리:" - -#: editor/script_editor_debugger.cpp -msgid "Remote Object Properties: " -msgstr "원격 오브젝트 속성: " - -#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "프로파일러" @@ -6744,14 +6879,12 @@ msgid "Change Probe Extents" msgstr "프로브 범위 변경" #: modules/gdnative/gd_native_library_editor.cpp -#, fuzzy msgid "Library" -msgstr "메쉬 라이브러리.." +msgstr "라이브러리" #: modules/gdnative/gd_native_library_editor.cpp -#, fuzzy msgid "Status" -msgstr "상태:" +msgstr "상태" #: modules/gdnative/gd_native_library_editor.cpp msgid "Libraries: " @@ -6761,52 +6894,52 @@ msgstr "" msgid "GDNative" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Invalid type argument to convert(), use TYPE_* constants." msgstr "" "convert()하기 위한 인자 타입이 유효하지 않습니다, TYPE_* 상수를 사용하세요." -#: modules/gdscript/gd_functions.cpp modules/mono/glue/glue_header.h +#: modules/gdscript/gdscript_functions.cpp modules/mono/glue/glue_header.h #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Not enough bytes for decoding bytes, or invalid format." msgstr "디코딩할 바이트가 모자라거나, 유효하지 않은 형식입니다." -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "step argument is zero!" msgstr "스텝 인자가 제로입니다!" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not a script with an instance" msgstr "스크립트의 인스턴스가 아님" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a script" msgstr "스크립트에 기반하지 않음" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a resource file" msgstr "리소스 파일에 기반하지 않음" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (missing @path)" msgstr "유효하지 않은 인스턴스 Dictionary 형식 (@path 없음)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (can't load script at @path)" msgstr "" "유효하지 않은 인스턴스 Dictionary 형식 (@path 에서 스크립트를 로드할 수 없음)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (invalid script at @path)" msgstr "" "유효하지 않은 인스턴스 Dictionary 형식 (@path의 스크립트가 유효하지 않음)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary (invalid subclasses)" msgstr "유효하지 않은 인스턴스 Dictionary (서브클래스가 유효하지 않음)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Object can't provide a length." msgstr "" @@ -6821,16 +6954,26 @@ msgid "GridMap Duplicate Selection" msgstr "선택키 복제" #: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Floor:" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +#, fuzzy +msgid "Grid Map" +msgstr "그리드 스냅" + +#: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy msgid "Snap View" msgstr "상단 뷰" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Prev Level (%sDown Wheel)" -msgstr "" +#, fuzzy +msgid "Previous Floor" +msgstr "이전 탭" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Next Level (%sUp Wheel)" +msgid "Next Floor" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp @@ -6906,13 +7049,8 @@ msgstr "타일맵 지우기" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy -msgid "Selection -> Duplicate" -msgstr "선택영역만" - -#: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy -msgid "Selection -> Clear" -msgstr "선택영역만" +msgid "Clear Selection" +msgstr "선택항목 화면 중앙에 표시" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy @@ -7042,7 +7180,7 @@ msgid "Duplicate VisualScript Nodes" msgstr "그래프 노드 복제" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Getter. Hold Shift to drop a generic signature." +msgid "Hold %s to drop a Getter. Hold Shift to drop a generic signature." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -7050,7 +7188,7 @@ msgid "Hold Ctrl to drop a Getter. Hold Shift to drop a generic signature." msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a simple reference to the node." +msgid "Hold %s to drop a simple reference to the node." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -7058,7 +7196,7 @@ msgid "Hold Ctrl to drop a simple reference to the node." msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Variable Setter." +msgid "Hold %s to drop a Variable Setter." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -7297,13 +7435,23 @@ msgstr "타일을 찾을 수 없음:" #: platform/javascript/export/export.cpp #, fuzzy -msgid "Could not read file:\n" +msgid "Could not open template for export:\n" +msgstr "폴더를 만들 수 없습니다." + +#: platform/javascript/export/export.cpp +#, fuzzy +msgid "Invalid export template:\n" +msgstr "내보내기 템플릿 설치" + +#: platform/javascript/export/export.cpp +#, fuzzy +msgid "Could not read custom HTML shell:\n" msgstr "타일을 찾을 수 없음:" #: platform/javascript/export/export.cpp #, fuzzy -msgid "Could not open template for export:\n" -msgstr "폴더를 만들 수 없습니다." +msgid "Could not read boot splash image file:\n" +msgstr "타일을 찾을 수 없음:" #: scene/2d/animated_sprite.cpp msgid "" @@ -7412,22 +7560,6 @@ msgstr "" msgid "Path property must point to a valid Node2D node to work." msgstr "Path 속성은 유효한 Node2D 노드를 가리켜야 합니다." -#: 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 "" -"이 Sprite가 동작하기 위해서는 Path 속성에 지정된 Viewport가 'render target'으" -"로 설정되어야 합니다." - #: scene/2d/visibility_notifier_2d.cpp msgid "" "VisibilityEnable2D works best when used with the edited scene root directly " @@ -7496,6 +7628,15 @@ msgstr "" "CollisionShape이 기능을 하기 위해서는 모양이 제공되어야 합니다. 모양 리소스" "를 만드세요!" +#: scene/3d/gi_probe.cpp +#, fuzzy +msgid "Plotting Meshes" +msgstr "이미지 병합 중" + +#: scene/3d/gi_probe.cpp +msgid "Finishing Plot" +msgstr "" + #: scene/3d/navigation_mesh.cpp msgid "A NavigationMesh resource must be set or created for this node to work." msgstr "" @@ -7582,6 +7723,10 @@ msgid "" "minimum size manually." msgstr "" +#: scene/gui/tree.cpp +msgid "(Other)" +msgstr "" + #: scene/main/scene_tree.cpp msgid "" "Default Environment as specified in Project Setings (Rendering -> Viewport -" @@ -7616,6 +7761,63 @@ msgstr "폰트 로딩 에러." msgid "Invalid font size." msgstr "유요하지 않은 폰트 사이즈." +#~ msgid "" +#~ "\n" +#~ "Source: " +#~ msgstr "" +#~ "\n" +#~ "소스: " + +#~ msgid "Remove Point from Line2D" +#~ msgstr "Line2D에서 포인트 삭제" + +#~ msgid "Add Point to Line2D" +#~ msgstr "Line2D에 포인트 추가" + +#~ msgid "Move Point in Line2D" +#~ msgstr "Line2D의 포인트 이동" + +#~ msgid "Split Segment (in line)" +#~ msgstr "세그먼트 분할 (라인)" + +#~ msgid "Meta+" +#~ msgstr "메타+" + +#, fuzzy +#~ msgid "Setting '" +#~ msgstr "설정" + +#~ msgid "Remote Inspector" +#~ msgstr "원격 인스펙터" + +#~ msgid "Live Scene Tree:" +#~ msgstr "실시간 씬 트리:" + +#~ msgid "Remote Object Properties: " +#~ msgstr "원격 오브젝트 속성: " + +#, fuzzy +#~ msgid "Selection -> Duplicate" +#~ msgstr "선택영역만" + +#, fuzzy +#~ msgid "Selection -> Clear" +#~ msgstr "선택영역만" + +#~ 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' 모드로 설정되어야 합니다." + +#~ msgid "" +#~ "The Viewport set in the path property must be set as 'render target' in " +#~ "order for this sprite to work." +#~ msgstr "" +#~ "이 Sprite가 동작하기 위해서는 Path 속성에 지정된 Viewport가 'render " +#~ "target'으로 설정되어야 합니다." + #~ msgid "Filter:" #~ msgstr "필터:" @@ -7637,9 +7839,6 @@ msgstr "유요하지 않은 폰트 사이즈." #~ msgid "Removed:" #~ msgstr "제거됨:" -#~ msgid "Error saving atlas:" -#~ msgstr "아틀라스 저장 중 에러:" - #~ msgid "Could not save atlas subtexture:" #~ msgstr "아틀라스 서브 텍스쳐를 저장할 수 없습니다:" @@ -8019,9 +8218,6 @@ msgstr "유요하지 않은 폰트 사이즈." #~ msgid "Cropping Images" #~ msgstr "이미지 자르는 중" -#~ msgid "Blitting Images" -#~ msgstr "이미지 병합 중" - #~ msgid "Couldn't save atlas image:" #~ msgstr "아틀라스 이미지를 저장할 수 없음:" @@ -8382,9 +8578,6 @@ msgstr "유요하지 않은 폰트 사이즈." #~ msgid "Save Translatable Strings" #~ msgstr "번역가능한 문자열 저장" -#~ msgid "Install Export Templates" -#~ msgstr "내보내기 템플릿 설치" - #~ msgid "Edit Script Options" #~ msgstr "스크립트 옵션 편집" diff --git a/editor/translations/lt.po b/editor/translations/lt.po index b85e8e01aa..f899a0f7f7 100644 --- a/editor/translations/lt.po +++ b/editor/translations/lt.po @@ -100,6 +100,7 @@ msgid "Anim Delete Keys" msgstr "" #: editor/animation_editor.cpp editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Duplicate Selection" msgstr "" @@ -629,6 +630,13 @@ msgstr "" msgid "Search Replacement Resource:" msgstr "" +#: editor/dependency_editor.cpp editor/editor_file_dialog.cpp +#: editor/editor_help.cpp editor/editor_node.cpp editor/filesystem_dock.cpp +#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp +#: editor/quick_open.cpp scene/gui/file_dialog.cpp +msgid "Open" +msgstr "" + #: editor/dependency_editor.cpp msgid "Owners Of:" msgstr "" @@ -699,6 +707,14 @@ msgstr "" msgid "Delete" msgstr "" +#: editor/dictionary_property_edit.cpp +msgid "Change Dictionary Key" +msgstr "" + +#: editor/dictionary_property_edit.cpp +msgid "Change Dictionary Value" +msgstr "" + #: editor/editor_about.cpp msgid "Thanks from the Godot community!" msgstr "" @@ -1114,12 +1130,6 @@ msgstr "" msgid "All Files (*)" msgstr "" -#: editor/editor_file_dialog.cpp editor/editor_help.cpp editor/editor_node.cpp -#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_selector.cpp editor/quick_open.cpp scene/gui/file_dialog.cpp -msgid "Open" -msgstr "" - #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Open a File" msgstr "" @@ -1472,6 +1482,13 @@ msgid "" msgstr "" #: editor/editor_node.cpp +msgid "" +"This is a remote object so changes to it will not be kept.\n" +"Please read the documentation relevant to debugging to better understand " +"this workflow." +msgstr "" + +#: editor/editor_node.cpp msgid "Copy Params" msgstr "" @@ -1581,6 +1598,10 @@ msgid "Export Mesh Library" msgstr "" #: editor/editor_node.cpp +msgid "This operation can't be done without a root node." +msgstr "" + +#: editor/editor_node.cpp msgid "Export Tile Set" msgstr "" @@ -1706,11 +1727,19 @@ msgid "Switch Scene Tab" msgstr "" #: editor/editor_node.cpp -msgid "%d more file(s)" +msgid "%d more files or folders" +msgstr "" + +#: editor/editor_node.cpp +msgid "%d more folders" +msgstr "" + +#: editor/editor_node.cpp +msgid "%d more files" msgstr "" #: editor/editor_node.cpp -msgid "%d more file(s) or folder(s)" +msgid "Dock Position" msgstr "" #: editor/editor_node.cpp @@ -1722,6 +1751,10 @@ msgid "Toggle distraction-free mode." msgstr "" #: editor/editor_node.cpp +msgid "Add a new scene." +msgstr "" + +#: editor/editor_node.cpp msgid "Scene" msgstr "" @@ -1786,13 +1819,12 @@ msgid "TileSet.." msgstr "" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp -#: scene/gui/text_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Undo" msgstr "" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp +#: scene/gui/line_edit.cpp msgid "Redo" msgstr "" @@ -2273,6 +2305,10 @@ msgid "(Current)" msgstr "" #: editor/export_template_manager.cpp +msgid "Retrieving mirrors, please wait.." +msgstr "" + +#: editor/export_template_manager.cpp msgid "Remove template version '%s'?" msgstr "" @@ -2307,6 +2343,100 @@ msgid "Importing:" msgstr "" #: editor/export_template_manager.cpp +msgid "" +"No download links found for this version. Direct download is only available " +"for official releases." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't resolve." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't connect." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "No response." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Req. Failed." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Redirect Loop." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Failed:" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Can't write file." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Download Complete." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Error requesting url: " +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Connecting to Mirror.." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Disconnected" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Resolving" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Can't Resolve" +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Connecting.." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Can't Conect" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Connected" +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Requesting.." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Downloading" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Connection Error" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "SSL Handshake Error" +msgstr "" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "" @@ -2330,12 +2460,20 @@ msgstr "" msgid "Export Template Manager" msgstr "" +#: editor/export_template_manager.cpp +msgid "Download Templates" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Select mirror from list: " +msgstr "" + #: editor/file_type_cache.cpp msgid "Can't open file_type_cache.cch for writing, not saving file type cache!" msgstr "" #: editor/filesystem_dock.cpp -msgid "Cannot navigate to '" +msgid "Cannot navigate to '%s' as it has not been found in the file system!" msgstr "" #: editor/filesystem_dock.cpp @@ -2353,12 +2491,6 @@ msgid "" msgstr "" #: editor/filesystem_dock.cpp -msgid "" -"\n" -"Source: " -msgstr "" - -#: editor/filesystem_dock.cpp msgid "Cannot move/rename resources root." msgstr "" @@ -2616,8 +2748,7 @@ msgid "Remove Poly And Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." +msgid "Create a new polygon from scratch" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -2628,6 +2759,10 @@ msgid "" "RMB: Erase Point." msgstr "" +#: editor/plugins/abstract_polygon_2d_editor.cpp +msgid "Delete points" +msgstr "" + #: editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" msgstr "" @@ -2962,18 +3097,10 @@ msgid "Can't resolve hostname:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't resolve." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Connection error, please try again." msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't connect." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Can't connect to host:" msgstr "" @@ -2982,30 +3109,14 @@ msgid "No response from host:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "No response." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, return code:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Req. Failed." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, too many redirects" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Redirect Loop." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Failed:" -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Bad download hash, assuming file has been tampered with." msgstr "" @@ -3034,14 +3145,6 @@ msgid "Resolving.." msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Connecting.." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Requesting.." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Error making request" msgstr "" @@ -3154,6 +3257,34 @@ msgid "Move Action" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Remove vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move horizontal guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new horizontal guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Remove horizontal guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new horizontal and vertical guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Edit IK Chain" msgstr "" @@ -3274,10 +3405,16 @@ msgid "Snap to other nodes" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snap to guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Lock the selected object in place (can't be moved)." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Unlock the selected object (can be moved)." msgstr "" @@ -3328,6 +3465,10 @@ msgid "Show rulers" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Show guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Selection" msgstr "" @@ -3512,6 +3653,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/gi_probe_editor_plugin.cpp +msgid "Bake GI Probe" +msgstr "" + #: editor/plugins/gradient_editor_plugin.cpp msgid "Add/Remove Color Ramp Point" msgstr "" @@ -3544,6 +3689,10 @@ msgid "Create Occluder Polygon" msgstr "" #: editor/plugins/light_occluder_2d_editor_plugin.cpp +msgid "Create a new polygon from scratch." +msgstr "" + +#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Edit existing polygon:" msgstr "" @@ -3559,58 +3708,6 @@ msgstr "" msgid "RMB: Erase Point." msgstr "" -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Remove Point from Line2D" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Add Point to Line2D" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Move Point in Line2D" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Select Points" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Shift+Drag: Select Control Points" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Click: Add Point" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Right Click: Delete Point" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Add Point (in empty space)" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Split Segment (in line)" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Delete Point" -msgstr "" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "" @@ -4008,16 +4105,46 @@ msgid "Move Out-Control in Curve" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Select Points" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Shift+Drag: Select Control Points" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Click: Add Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Right Click: Delete Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Select Control Points (Shift+Drag)" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Add Point (in empty space)" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Split Segment (in curve)" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Delete Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Close Curve" msgstr "" @@ -4154,7 +4281,6 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Paste" @@ -4199,6 +4325,20 @@ msgid " Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +msgid "Sort" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Up" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Down" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Next script" msgstr "" @@ -4250,6 +4390,10 @@ msgstr "" msgid "Close All" msgstr "" +#: editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "" @@ -4260,13 +4404,11 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find.." msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Next" msgstr "" @@ -4370,33 +4512,22 @@ msgstr "" msgid "Capitalize" msgstr "" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Copy" msgstr "" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Select All" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Up" -msgstr "" - -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Down" -msgstr "" - #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "" @@ -4418,6 +4549,22 @@ msgid "Clone Down" msgstr "" #: editor/plugins/script_text_editor.cpp +msgid "Fold Line" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold Line" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Fold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Complete Symbol" msgstr "" @@ -4463,12 +4610,10 @@ msgid "Convert To Lowercase" msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Previous" msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Replace.." msgstr "" @@ -4477,7 +4622,6 @@ msgid "Goto Function.." msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Goto Line.." msgstr "" @@ -4642,6 +4786,14 @@ msgid "View Plane Transform." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Scaling: " +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Translating: " +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Rotating %s degrees." msgstr "" @@ -4722,6 +4874,10 @@ msgid "Vertices" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "FPS" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Align with view" msgstr "" @@ -4754,6 +4910,14 @@ msgid "View Information" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "View FPS" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Half Resolution" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Audio Listener" msgstr "" @@ -4881,6 +5045,10 @@ msgid "Tool Scale" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Toggle Freelook" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Transform" msgstr "" @@ -5155,6 +5323,10 @@ msgid "Create Empty Editor Template" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Create From Current Editor Theme" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "CheckBox Radio1" msgstr "" @@ -5328,7 +5500,7 @@ msgid "Runnable" msgstr "" #: editor/project_export.cpp -msgid "Delete patch '" +msgid "Delete patch '%s' from list?" msgstr "" #: editor/project_export.cpp @@ -5621,10 +5793,6 @@ msgid "Add Input Action Event" msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Meta+" -msgstr "" - -#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp msgid "Shift+" msgstr "" @@ -5746,11 +5914,11 @@ msgid "Select a setting item first!" msgstr "" #: editor/project_settings_editor.cpp -msgid "No property '" +msgid "No property '%s' exists." msgstr "" #: editor/project_settings_editor.cpp -msgid "Setting '" +msgid "Setting '%s' is internal, and it can't be deleted." msgstr "" #: editor/project_settings_editor.cpp @@ -6217,6 +6385,14 @@ msgid "Clear a script for the selected node." msgstr "" #: editor/scene_tree_dock.cpp +msgid "Remote" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Local" +msgstr "" + +#: editor/scene_tree_dock.cpp msgid "Clear Inheritance? (No Undo!)" msgstr "" @@ -6399,6 +6575,10 @@ msgid "Attach Node Script" msgstr "" #: editor/script_editor_debugger.cpp +msgid "Remote " +msgstr "" + +#: editor/script_editor_debugger.cpp msgid "Bytes:" msgstr "" @@ -6455,18 +6635,6 @@ msgid "Stack Trace (if applicable):" msgstr "" #: editor/script_editor_debugger.cpp -msgid "Remote Inspector" -msgstr "" - -#: editor/script_editor_debugger.cpp -msgid "Live Scene Tree:" -msgstr "" - -#: editor/script_editor_debugger.cpp -msgid "Remote Object Properties: " -msgstr "" - -#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -6598,49 +6766,49 @@ msgstr "" msgid "GDNative" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Invalid type argument to convert(), use TYPE_* constants." msgstr "" -#: modules/gdscript/gd_functions.cpp modules/mono/glue/glue_header.h +#: modules/gdscript/gdscript_functions.cpp modules/mono/glue/glue_header.h #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Not enough bytes for decoding bytes, or invalid format." msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "step argument is zero!" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not a script with an instance" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a script" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a resource file" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (missing @path)" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (can't load script at @path)" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (invalid script at @path)" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary (invalid subclasses)" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Object can't provide a length." msgstr "" @@ -6653,15 +6821,23 @@ msgid "GridMap Duplicate Selection" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Floor:" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Grid Map" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Snap View" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Prev Level (%sDown Wheel)" +msgid "Previous Floor" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Next Level (%sUp Wheel)" +msgid "Next Floor" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp @@ -6729,12 +6905,9 @@ msgid "Erase Area" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Selection -> Duplicate" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Selection -> Clear" -msgstr "" +#, fuzzy +msgid "Clear Selection" +msgstr "Panaikinti pasirinkimą" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Settings" @@ -6855,7 +7028,7 @@ msgid "Duplicate VisualScript Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Getter. Hold Shift to drop a generic signature." +msgid "Hold %s to drop a Getter. Hold Shift to drop a generic signature." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -6863,7 +7036,7 @@ msgid "Hold Ctrl to drop a Getter. Hold Shift to drop a generic signature." msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a simple reference to the node." +msgid "Hold %s to drop a simple reference to the node." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -6871,7 +7044,7 @@ msgid "Hold Ctrl to drop a simple reference to the node." msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Variable Setter." +msgid "Hold %s to drop a Variable Setter." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -7097,11 +7270,19 @@ msgid "Could not write file:\n" msgstr "" #: platform/javascript/export/export.cpp -msgid "Could not read file:\n" +msgid "Could not open template for export:\n" msgstr "" #: platform/javascript/export/export.cpp -msgid "Could not open template for export:\n" +msgid "Invalid export template:\n" +msgstr "" + +#: platform/javascript/export/export.cpp +msgid "Could not read custom HTML shell:\n" +msgstr "" + +#: platform/javascript/export/export.cpp +msgid "Could not read boot splash image file:\n" msgstr "" #: scene/2d/animated_sprite.cpp @@ -7193,18 +7374,6 @@ msgstr "" msgid "Path property must point to a valid Node2D node to work." 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 " @@ -7263,6 +7432,14 @@ msgid "" "shape resource for it!" msgstr "" +#: scene/3d/gi_probe.cpp +msgid "Plotting Meshes" +msgstr "" + +#: scene/3d/gi_probe.cpp +msgid "Finishing Plot" +msgstr "" + #: scene/3d/navigation_mesh.cpp msgid "A NavigationMesh resource must be set or created for this node to work." msgstr "" @@ -7340,6 +7517,10 @@ msgid "" "minimum size manually." msgstr "" +#: scene/gui/tree.cpp +msgid "(Other)" +msgstr "" + #: scene/main/scene_tree.cpp msgid "" "Default Environment as specified in Project Setings (Rendering -> Viewport -" diff --git a/editor/translations/nb.po b/editor/translations/nb.po index b4c3df0fb9..fd6c626512 100644 --- a/editor/translations/nb.po +++ b/editor/translations/nb.po @@ -100,6 +100,7 @@ msgid "Anim Delete Keys" msgstr "Anim Fjern Nøkler" #: editor/animation_editor.cpp editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Duplicate Selection" msgstr "Dupliser Utvalg" @@ -629,6 +630,13 @@ msgstr "" msgid "Search Replacement Resource:" msgstr "" +#: editor/dependency_editor.cpp editor/editor_file_dialog.cpp +#: editor/editor_help.cpp editor/editor_node.cpp editor/filesystem_dock.cpp +#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp +#: editor/quick_open.cpp scene/gui/file_dialog.cpp +msgid "Open" +msgstr "" + #: editor/dependency_editor.cpp msgid "Owners Of:" msgstr "" @@ -699,6 +707,15 @@ msgstr "" msgid "Delete" msgstr "" +#: editor/dictionary_property_edit.cpp +msgid "Change Dictionary Key" +msgstr "" + +#: editor/dictionary_property_edit.cpp +#, fuzzy +msgid "Change Dictionary Value" +msgstr "Anim Forandre Verdi" + #: editor/editor_about.cpp msgid "Thanks from the Godot community!" msgstr "" @@ -1120,12 +1137,6 @@ msgstr "" msgid "All Files (*)" msgstr "" -#: editor/editor_file_dialog.cpp editor/editor_help.cpp editor/editor_node.cpp -#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_selector.cpp editor/quick_open.cpp scene/gui/file_dialog.cpp -msgid "Open" -msgstr "" - #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Open a File" msgstr "" @@ -1481,6 +1492,13 @@ msgid "" msgstr "" #: editor/editor_node.cpp +msgid "" +"This is a remote object so changes to it will not be kept.\n" +"Please read the documentation relevant to debugging to better understand " +"this workflow." +msgstr "" + +#: editor/editor_node.cpp msgid "Copy Params" msgstr "" @@ -1590,6 +1608,10 @@ msgid "Export Mesh Library" msgstr "" #: editor/editor_node.cpp +msgid "This operation can't be done without a root node." +msgstr "" + +#: editor/editor_node.cpp msgid "Export Tile Set" msgstr "" @@ -1715,11 +1737,19 @@ msgid "Switch Scene Tab" msgstr "" #: editor/editor_node.cpp -msgid "%d more file(s)" +msgid "%d more files or folders" +msgstr "" + +#: editor/editor_node.cpp +msgid "%d more folders" +msgstr "" + +#: editor/editor_node.cpp +msgid "%d more files" msgstr "" #: editor/editor_node.cpp -msgid "%d more file(s) or folder(s)" +msgid "Dock Position" msgstr "" #: editor/editor_node.cpp @@ -1731,6 +1761,10 @@ msgid "Toggle distraction-free mode." msgstr "" #: editor/editor_node.cpp +msgid "Add a new scene." +msgstr "" + +#: editor/editor_node.cpp msgid "Scene" msgstr "" @@ -1795,13 +1829,12 @@ msgid "TileSet.." msgstr "" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp -#: scene/gui/text_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Undo" msgstr "" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp +#: scene/gui/line_edit.cpp msgid "Redo" msgstr "" @@ -2283,6 +2316,10 @@ msgid "(Current)" msgstr "" #: editor/export_template_manager.cpp +msgid "Retrieving mirrors, please wait.." +msgstr "" + +#: editor/export_template_manager.cpp msgid "Remove template version '%s'?" msgstr "" @@ -2317,6 +2354,103 @@ msgid "Importing:" msgstr "" #: editor/export_template_manager.cpp +msgid "" +"No download links found for this version. Direct download is only available " +"for official releases." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't resolve." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't connect." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "No response." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Req. Failed." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Redirect Loop." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Failed:" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Can't write file." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Download Complete." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Error requesting url: " +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Connecting to Mirror.." +msgstr "" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Disconnected" +msgstr "Diskret" + +#: editor/export_template_manager.cpp +msgid "Resolving" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Can't Resolve" +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Connecting.." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Can't Conect" +msgstr "" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connected" +msgstr "Kutt Noder" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Requesting.." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Downloading" +msgstr "" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connection Error" +msgstr "Kutt Noder" + +#: editor/export_template_manager.cpp +msgid "SSL Handshake Error" +msgstr "" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "" @@ -2340,12 +2474,20 @@ msgstr "" msgid "Export Template Manager" msgstr "" +#: editor/export_template_manager.cpp +msgid "Download Templates" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Select mirror from list: " +msgstr "" + #: editor/file_type_cache.cpp msgid "Can't open file_type_cache.cch for writing, not saving file type cache!" msgstr "" #: editor/filesystem_dock.cpp -msgid "Cannot navigate to '" +msgid "Cannot navigate to '%s' as it has not been found in the file system!" msgstr "" #: editor/filesystem_dock.cpp @@ -2363,12 +2505,6 @@ msgid "" msgstr "" #: editor/filesystem_dock.cpp -msgid "" -"\n" -"Source: " -msgstr "" - -#: editor/filesystem_dock.cpp msgid "Cannot move/rename resources root." msgstr "" @@ -2626,8 +2762,7 @@ msgid "Remove Poly And Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." +msgid "Create a new polygon from scratch" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -2638,6 +2773,11 @@ msgid "" "RMB: Erase Point." msgstr "" +#: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy +msgid "Delete points" +msgstr "Slett Valgte" + #: editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" msgstr "" @@ -2974,18 +3114,10 @@ msgid "Can't resolve hostname:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't resolve." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Connection error, please try again." msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't connect." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Can't connect to host:" msgstr "" @@ -2994,30 +3126,14 @@ msgid "No response from host:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "No response." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, return code:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Req. Failed." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, too many redirects" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Redirect Loop." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Failed:" -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Bad download hash, assuming file has been tampered with." msgstr "" @@ -3046,14 +3162,6 @@ msgid "Resolving.." msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Connecting.." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Requesting.." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Error making request" msgstr "" @@ -3166,6 +3274,35 @@ msgid "Move Action" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Remove vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move horizontal guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new horizontal guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove horizontal guide" +msgstr "Fjern Funksjon" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new horizontal and vertical guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Edit IK Chain" msgstr "" @@ -3286,10 +3423,16 @@ msgid "Snap to other nodes" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snap to guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Lock the selected object in place (can't be moved)." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Unlock the selected object (can be moved)." msgstr "" @@ -3340,6 +3483,10 @@ msgid "Show rulers" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Show guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Selection" msgstr "" @@ -3528,6 +3675,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/gi_probe_editor_plugin.cpp +msgid "Bake GI Probe" +msgstr "" + #: editor/plugins/gradient_editor_plugin.cpp msgid "Add/Remove Color Ramp Point" msgstr "" @@ -3560,6 +3711,10 @@ msgid "Create Occluder Polygon" msgstr "" #: editor/plugins/light_occluder_2d_editor_plugin.cpp +msgid "Create a new polygon from scratch." +msgstr "" + +#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Edit existing polygon:" msgstr "" @@ -3575,58 +3730,6 @@ msgstr "" msgid "RMB: Erase Point." msgstr "" -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Remove Point from Line2D" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Add Point to Line2D" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Move Point in Line2D" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Select Points" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Shift+Drag: Select Control Points" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Click: Add Point" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Right Click: Delete Point" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Add Point (in empty space)" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Split Segment (in line)" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Delete Point" -msgstr "" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "" @@ -4024,16 +4127,46 @@ msgid "Move Out-Control in Curve" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Select Points" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Shift+Drag: Select Control Points" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Click: Add Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Right Click: Delete Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Select Control Points (Shift+Drag)" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Add Point (in empty space)" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Split Segment (in curve)" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Delete Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Close Curve" msgstr "" @@ -4174,7 +4307,6 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Paste" @@ -4219,6 +4351,20 @@ msgid " Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +msgid "Sort" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Up" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Down" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Next script" msgstr "" @@ -4270,6 +4416,10 @@ msgstr "" msgid "Close All" msgstr "" +#: editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "" @@ -4280,13 +4430,11 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find.." msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Next" msgstr "" @@ -4390,33 +4538,22 @@ msgstr "" msgid "Capitalize" msgstr "" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Copy" msgstr "" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Select All" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Up" -msgstr "" - -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Down" -msgstr "" - #: editor/plugins/script_text_editor.cpp #, fuzzy msgid "Delete Line" @@ -4439,6 +4576,23 @@ msgid "Clone Down" msgstr "" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Fold Line" +msgstr "Slett Valgte" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold Line" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Fold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Complete Symbol" msgstr "" @@ -4484,12 +4638,10 @@ msgid "Convert To Lowercase" msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Previous" msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Replace.." msgstr "" @@ -4498,7 +4650,6 @@ msgid "Goto Function.." msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Goto Line.." msgstr "" @@ -4663,6 +4814,14 @@ msgid "View Plane Transform." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Scaling: " +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Translating: " +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Rotating %s degrees." msgstr "" @@ -4744,6 +4903,10 @@ msgid "Vertices" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "FPS" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Align with view" msgstr "" @@ -4776,6 +4939,14 @@ msgid "View Information" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "View FPS" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Half Resolution" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Audio Listener" msgstr "" @@ -4904,6 +5075,10 @@ msgid "Tool Scale" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Toggle Freelook" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Transform" msgstr "" @@ -5180,6 +5355,10 @@ msgid "Create Empty Editor Template" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Create From Current Editor Theme" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "CheckBox Radio1" msgstr "" @@ -5354,7 +5533,7 @@ msgid "Runnable" msgstr "" #: editor/project_export.cpp -msgid "Delete patch '" +msgid "Delete patch '%s' from list?" msgstr "" #: editor/project_export.cpp @@ -5647,10 +5826,6 @@ msgid "Add Input Action Event" msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Meta+" -msgstr "" - -#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp msgid "Shift+" msgstr "" @@ -5772,11 +5947,11 @@ msgid "Select a setting item first!" msgstr "" #: editor/project_settings_editor.cpp -msgid "No property '" +msgid "No property '%s' exists." msgstr "" #: editor/project_settings_editor.cpp -msgid "Setting '" +msgid "Setting '%s' is internal, and it can't be deleted." msgstr "" #: editor/project_settings_editor.cpp @@ -6249,6 +6424,15 @@ msgid "Clear a script for the selected node." msgstr "" #: editor/scene_tree_dock.cpp +#, fuzzy +msgid "Remote" +msgstr "Fjern Funksjon" + +#: editor/scene_tree_dock.cpp +msgid "Local" +msgstr "" + +#: editor/scene_tree_dock.cpp msgid "Clear Inheritance? (No Undo!)" msgstr "" @@ -6432,6 +6616,11 @@ msgid "Attach Node Script" msgstr "" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Remote " +msgstr "Fjern Funksjon" + +#: editor/script_editor_debugger.cpp msgid "Bytes:" msgstr "" @@ -6488,18 +6677,6 @@ msgid "Stack Trace (if applicable):" msgstr "" #: editor/script_editor_debugger.cpp -msgid "Remote Inspector" -msgstr "" - -#: editor/script_editor_debugger.cpp -msgid "Live Scene Tree:" -msgstr "" - -#: editor/script_editor_debugger.cpp -msgid "Remote Object Properties: " -msgstr "" - -#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -6631,49 +6808,49 @@ msgstr "" msgid "GDNative" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Invalid type argument to convert(), use TYPE_* constants." msgstr "Ugyldig argument til convert(), bruk TYPE_*-konstantene." -#: modules/gdscript/gd_functions.cpp modules/mono/glue/glue_header.h +#: modules/gdscript/gdscript_functions.cpp modules/mono/glue/glue_header.h #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Not enough bytes for decoding bytes, or invalid format." msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "step argument is zero!" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not a script with an instance" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a script" msgstr "Ikke basert på et skript" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a resource file" msgstr "Ikke basert på en ressursfil" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (missing @path)" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (can't load script at @path)" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (invalid script at @path)" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary (invalid subclasses)" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Object can't provide a length." msgstr "" @@ -6688,15 +6865,23 @@ msgid "GridMap Duplicate Selection" msgstr "Dupliser Utvalg" #: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Floor:" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Grid Map" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Snap View" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Prev Level (%sDown Wheel)" +msgid "Previous Floor" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Next Level (%sUp Wheel)" +msgid "Next Floor" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp @@ -6765,13 +6950,9 @@ msgid "Erase Area" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Selection -> Duplicate" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy -msgid "Selection -> Clear" -msgstr "Forandre Utvalgskurve" +msgid "Clear Selection" +msgstr "Fjern Utvalg" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Settings" @@ -6896,7 +7077,8 @@ msgid "Duplicate VisualScript Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Getter. Hold Shift to drop a generic signature." +#, fuzzy +msgid "Hold %s to drop a Getter. Hold Shift to drop a generic signature." msgstr "" "Hold Meta for å slippe en Getter. Hold Skift for å slippe en generisk " "signatur." @@ -6906,7 +7088,8 @@ msgid "Hold Ctrl to drop a Getter. Hold Shift to drop a generic signature." msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a simple reference to the node." +#, fuzzy +msgid "Hold %s to drop a simple reference to the node." msgstr "Hold Meta for å slippe en enkel referanse til noden." #: modules/visual_script/visual_script_editor.cpp @@ -6914,8 +7097,9 @@ msgid "Hold Ctrl to drop a simple reference to the node." msgstr "Hold Ctrl for å slippe en simpel referanse til noden." #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Variable Setter." -msgstr "" +#, fuzzy +msgid "Hold %s to drop a Variable Setter." +msgstr "Hold Meta for å slippe en enkel referanse til noden." #: modules/visual_script/visual_script_editor.cpp msgid "Hold Ctrl to drop a Variable Setter." @@ -7147,11 +7331,19 @@ msgid "Could not write file:\n" msgstr "" #: platform/javascript/export/export.cpp -msgid "Could not read file:\n" +msgid "Could not open template for export:\n" msgstr "" #: platform/javascript/export/export.cpp -msgid "Could not open template for export:\n" +msgid "Invalid export template:\n" +msgstr "" + +#: platform/javascript/export/export.cpp +msgid "Could not read custom HTML shell:\n" +msgstr "" + +#: platform/javascript/export/export.cpp +msgid "Could not read boot splash image file:\n" msgstr "" #: scene/2d/animated_sprite.cpp @@ -7243,18 +7435,6 @@ msgstr "" msgid "Path property must point to a valid Node2D node to work." 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 " @@ -7313,6 +7493,14 @@ msgid "" "shape resource for it!" msgstr "" +#: scene/3d/gi_probe.cpp +msgid "Plotting Meshes" +msgstr "" + +#: scene/3d/gi_probe.cpp +msgid "Finishing Plot" +msgstr "" + #: scene/3d/navigation_mesh.cpp msgid "A NavigationMesh resource must be set or created for this node to work." msgstr "" @@ -7390,6 +7578,10 @@ msgid "" "minimum size manually." msgstr "" +#: scene/gui/tree.cpp +msgid "(Other)" +msgstr "" + #: scene/main/scene_tree.cpp msgid "" "Default Environment as specified in Project Setings (Rendering -> Viewport -" @@ -7419,3 +7611,7 @@ msgstr "" #: scene/resources/dynamic_font.cpp msgid "Invalid font size." msgstr "" + +#, fuzzy +#~ msgid "Selection -> Clear" +#~ msgstr "Forandre Utvalgskurve" diff --git a/editor/translations/nl.po b/editor/translations/nl.po index a9ed678eac..a9af1fcc53 100644 --- a/editor/translations/nl.po +++ b/editor/translations/nl.po @@ -102,6 +102,7 @@ msgid "Anim Delete Keys" msgstr "Anim Verwijder Keys" #: editor/animation_editor.cpp editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Duplicate Selection" msgstr "Dupliceer Selectie" @@ -640,6 +641,13 @@ msgstr "Afhankelijkheden Editor" msgid "Search Replacement Resource:" msgstr "Zoek Vervangende Resource:" +#: editor/dependency_editor.cpp editor/editor_file_dialog.cpp +#: editor/editor_help.cpp editor/editor_node.cpp editor/filesystem_dock.cpp +#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp +#: editor/quick_open.cpp scene/gui/file_dialog.cpp +msgid "Open" +msgstr "Openen" + #: editor/dependency_editor.cpp msgid "Owners Of:" msgstr "Eigenaren Van:" @@ -715,6 +723,15 @@ msgstr "Verwijder geselecteerde bestanden?" msgid "Delete" msgstr "Verwijder" +#: editor/dictionary_property_edit.cpp +msgid "Change Dictionary Key" +msgstr "" + +#: editor/dictionary_property_edit.cpp +#, fuzzy +msgid "Change Dictionary Value" +msgstr "Wijzig Array Waarde" + #: editor/editor_about.cpp msgid "Thanks from the Godot community!" msgstr "Bedankt van de Godot gemeenschap!" @@ -1138,12 +1155,6 @@ msgstr "Alles Herkend" msgid "All Files (*)" msgstr "Alle Bestanden (*)" -#: editor/editor_file_dialog.cpp editor/editor_help.cpp editor/editor_node.cpp -#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_selector.cpp editor/quick_open.cpp scene/gui/file_dialog.cpp -msgid "Open" -msgstr "Openen" - #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Open a File" msgstr "Open een Bestand" @@ -1518,6 +1529,18 @@ msgstr "" "begrijpen." #: editor/editor_node.cpp +#, fuzzy +msgid "" +"This is a remote object so changes to it will not be kept.\n" +"Please read the documentation relevant to debugging to better understand " +"this workflow." +msgstr "" +"Dit bestand hoort bij een scene die geïmporteerd werd, dus het is niet " +"bewerkbaar.\n" +"Lees de documentatie over scenes importeren om deze workflow beter te " +"begrijpen." + +#: editor/editor_node.cpp msgid "Copy Params" msgstr "Kopieer Parameters" @@ -1636,6 +1659,12 @@ msgid "Export Mesh Library" msgstr "Exporteer Mesh Library" #: editor/editor_node.cpp +#, fuzzy +msgid "This operation can't be done without a root node." +msgstr "" +"Deze operatie kan niet uitgevoerd worden zonder een geselecteerde knoop." + +#: editor/editor_node.cpp msgid "Export Tile Set" msgstr "Exporteer Tile Set" @@ -1777,12 +1806,23 @@ msgid "Switch Scene Tab" msgstr "Scenetab Wisselen" #: editor/editor_node.cpp -msgid "%d more file(s)" +#, fuzzy +msgid "%d more files or folders" +msgstr "nog %d bestand(en) of folder(s)" + +#: editor/editor_node.cpp +#, fuzzy +msgid "%d more folders" msgstr "nog %d bestand(en)" #: editor/editor_node.cpp -msgid "%d more file(s) or folder(s)" -msgstr "nog %d bestand(en) of folder(s)" +#, fuzzy +msgid "%d more files" +msgstr "nog %d bestand(en)" + +#: editor/editor_node.cpp +msgid "Dock Position" +msgstr "" #: editor/editor_node.cpp msgid "Distraction Free Mode" @@ -1793,6 +1833,11 @@ msgid "Toggle distraction-free mode." msgstr "Afleidingsvrije modus veranderen." #: editor/editor_node.cpp +#, fuzzy +msgid "Add a new scene." +msgstr "Nieuwe tracks toevoegen." + +#: editor/editor_node.cpp msgid "Scene" msgstr "Scène" @@ -1857,13 +1902,12 @@ msgid "TileSet.." msgstr "TileSet..." #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp -#: scene/gui/text_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Undo" msgstr "Ongedaan Maken" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp +#: scene/gui/line_edit.cpp msgid "Redo" msgstr "Opnieuw" @@ -2352,6 +2396,11 @@ msgid "(Current)" msgstr "" #: editor/export_template_manager.cpp +#, fuzzy +msgid "Retrieving mirrors, please wait.." +msgstr "Verbindingsfout, probeer het nog eens." + +#: editor/export_template_manager.cpp msgid "Remove template version '%s'?" msgstr "" @@ -2387,6 +2436,108 @@ msgid "Importing:" msgstr "Aan Het Importeren:" #: editor/export_template_manager.cpp +msgid "" +"No download links found for this version. Direct download is only available " +"for official releases." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't resolve." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't connect." +msgstr "Kan niet verbinden." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "No response." +msgstr "Geen antwoord." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Req. Failed." +msgstr "Aanv. Mislukt." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Redirect Loop." +msgstr "Redirectlus." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Failed:" +msgstr "Mislukt:" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't write file." +msgstr "Map kon niet gemaakt worden." + +#: editor/export_template_manager.cpp +msgid "Download Complete." +msgstr "" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Error requesting url: " +msgstr "Error bij het opslaan van atlas:" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connecting to Mirror.." +msgstr "Verbinden.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Disconnected" +msgstr "Losmaken" + +#: editor/export_template_manager.cpp +msgid "Resolving" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Can't Resolve" +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Connecting.." +msgstr "Verbinden.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't Conect" +msgstr "Kan niet verbinden." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connected" +msgstr "Verbinden" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Requesting.." +msgstr "Opvragen..." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Downloading" +msgstr "Error bij het laden van:" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connection Error" +msgstr "Verbinden.." + +#: editor/export_template_manager.cpp +msgid "SSL Handshake Error" +msgstr "" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "" @@ -2412,12 +2563,21 @@ msgstr "Verwijder geselecteerde bestanden?" msgid "Export Template Manager" msgstr "" +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Download Templates" +msgstr "Verwijder Selectie" + +#: editor/export_template_manager.cpp +msgid "Select mirror from list: " +msgstr "" + #: editor/file_type_cache.cpp msgid "Can't open file_type_cache.cch for writing, not saving file type cache!" msgstr "" #: editor/filesystem_dock.cpp -msgid "Cannot navigate to '" +msgid "Cannot navigate to '%s' as it has not been found in the file system!" msgstr "" #: editor/filesystem_dock.cpp @@ -2435,13 +2595,6 @@ msgid "" msgstr "" #: editor/filesystem_dock.cpp -#, fuzzy -msgid "" -"\n" -"Source: " -msgstr "Resource" - -#: editor/filesystem_dock.cpp msgid "Cannot move/rename resources root." msgstr "" @@ -2708,8 +2861,7 @@ msgid "Remove Poly And Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." +msgid "Create a new polygon from scratch" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -2720,6 +2872,11 @@ msgid "" "RMB: Erase Point." msgstr "" +#: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy +msgid "Delete points" +msgstr "Verwijder" + #: editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" msgstr "" @@ -3056,18 +3213,10 @@ msgid "Can't resolve hostname:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't resolve." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Connection error, please try again." msgstr "Verbindingsfout, probeer het nog eens." #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't connect." -msgstr "Kan niet verbinden." - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Can't connect to host:" msgstr "Kan niet verbinden met host:" @@ -3076,30 +3225,14 @@ msgid "No response from host:" msgstr "Geen antwoord van host:" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "No response." -msgstr "Geen antwoord." - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, return code:" msgstr "Aanvraag mislukt, retourcode:" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Req. Failed." -msgstr "Aanv. Mislukt." - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, too many redirects" msgstr "Aanvraag mislukt, te veel redirects" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Redirect Loop." -msgstr "Redirectlus." - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Failed:" -msgstr "Mislukt:" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Bad download hash, assuming file has been tampered with." msgstr "" @@ -3128,14 +3261,6 @@ msgid "Resolving.." msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Connecting.." -msgstr "Verbinden.." - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Requesting.." -msgstr "Opvragen..." - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Error making request" msgstr "Fout bij opvragen" @@ -3249,6 +3374,38 @@ msgid "Move Action" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create new vertical guide" +msgstr "Subscriptie Maken" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove vertical guide" +msgstr "Verwijder Variabele" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move horizontal guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create new horizontal guide" +msgstr "Subscriptie Maken" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove horizontal guide" +msgstr "Verwijder ongeldige keys" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new horizontal and vertical guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Edit IK Chain" msgstr "" @@ -3370,10 +3527,16 @@ msgid "Snap to other nodes" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snap to guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Lock the selected object in place (can't be moved)." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Unlock the selected object (can be moved)." msgstr "" @@ -3424,6 +3587,10 @@ msgid "Show rulers" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Show guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Selection" msgstr "" @@ -3614,6 +3781,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/gi_probe_editor_plugin.cpp +msgid "Bake GI Probe" +msgstr "" + #: editor/plugins/gradient_editor_plugin.cpp msgid "Add/Remove Color Ramp Point" msgstr "" @@ -3646,6 +3817,10 @@ msgid "Create Occluder Polygon" msgstr "" #: editor/plugins/light_occluder_2d_editor_plugin.cpp +msgid "Create a new polygon from scratch." +msgstr "" + +#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Edit existing polygon:" msgstr "" @@ -3661,59 +3836,6 @@ msgstr "" msgid "RMB: Erase Point." msgstr "" -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Remove Point from Line2D" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#, fuzzy -msgid "Add Point to Line2D" -msgstr "Ga naar Regel" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Move Point in Line2D" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Select Points" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Shift+Drag: Select Control Points" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Click: Add Point" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Right Click: Delete Point" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Add Point (in empty space)" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Split Segment (in line)" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Delete Point" -msgstr "" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "" @@ -4112,16 +4234,46 @@ msgid "Move Out-Control in Curve" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Select Points" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Shift+Drag: Select Control Points" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Click: Add Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Right Click: Delete Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Select Control Points (Shift+Drag)" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Add Point (in empty space)" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Split Segment (in curve)" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Delete Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Close Curve" msgstr "" @@ -4262,7 +4414,6 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Paste" @@ -4307,6 +4458,21 @@ msgid " Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#, fuzzy +msgid "Sort" +msgstr "Sorteren:" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Up" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Down" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Next script" msgstr "" @@ -4358,6 +4524,10 @@ msgstr "" msgid "Close All" msgstr "" +#: editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "" @@ -4369,13 +4539,11 @@ msgstr "Toggle Favoriet" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find.." msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Next" msgstr "" @@ -4481,33 +4649,22 @@ msgstr "" msgid "Capitalize" msgstr "" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" msgstr "Knippen" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Copy" msgstr "Kopiëren" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Select All" msgstr "Alles Selecteren" -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Up" -msgstr "" - -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Down" -msgstr "" - #: editor/plugins/script_text_editor.cpp #, fuzzy msgid "Delete Line" @@ -4530,6 +4687,23 @@ msgid "Clone Down" msgstr "" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Fold Line" +msgstr "Ga naar Regel" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold Line" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Fold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Complete Symbol" msgstr "" @@ -4576,12 +4750,10 @@ msgid "Convert To Lowercase" msgstr "Verbind Aan Node:" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Previous" msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Replace.." msgstr "" @@ -4590,7 +4762,6 @@ msgid "Goto Function.." msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Goto Line.." msgstr "" @@ -4755,6 +4926,15 @@ msgid "View Plane Transform." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Scaling: " +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Translating: " +msgstr "Transitie" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Rotating %s degrees." msgstr "" @@ -4837,6 +5017,10 @@ msgid "Vertices" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "FPS" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Align with view" msgstr "" @@ -4869,6 +5053,16 @@ msgid "View Information" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "View FPS" +msgstr "Bekijk Bestanden" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Half Resolution" +msgstr "Schaal Selectie" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Audio Listener" msgstr "" @@ -5002,6 +5196,11 @@ msgid "Tool Scale" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Toggle Freelook" +msgstr "Toggle Favoriet" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Transform" msgstr "" @@ -5279,6 +5478,10 @@ msgid "Create Empty Editor Template" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Create From Current Editor Theme" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "CheckBox Radio1" msgstr "" @@ -5456,7 +5659,7 @@ msgstr "Inschakelen" #: editor/project_export.cpp #, fuzzy -msgid "Delete patch '" +msgid "Delete patch '%s' from list?" msgstr "Verwijder" #: editor/project_export.cpp @@ -5758,10 +5961,6 @@ msgid "Add Input Action Event" msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Meta+" -msgstr "Meta+" - -#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp msgid "Shift+" msgstr "Shift+" @@ -5884,13 +6083,12 @@ msgid "Select a setting item first!" msgstr "" #: editor/project_settings_editor.cpp -msgid "No property '" +msgid "No property '%s' exists." msgstr "" #: editor/project_settings_editor.cpp -#, fuzzy -msgid "Setting '" -msgstr "Aan Het Opzetten.." +msgid "Setting '%s' is internal, and it can't be deleted." +msgstr "" #: editor/project_settings_editor.cpp #, fuzzy @@ -6365,6 +6563,15 @@ msgid "Clear a script for the selected node." msgstr "" #: editor/scene_tree_dock.cpp +#, fuzzy +msgid "Remote" +msgstr "Verwijderen" + +#: editor/scene_tree_dock.cpp +msgid "Local" +msgstr "" + +#: editor/scene_tree_dock.cpp msgid "Clear Inheritance? (No Undo!)" msgstr "" @@ -6557,6 +6764,11 @@ msgid "Attach Node Script" msgstr "" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Remote " +msgstr "Verwijderen" + +#: editor/script_editor_debugger.cpp msgid "Bytes:" msgstr "" @@ -6613,18 +6825,6 @@ msgid "Stack Trace (if applicable):" msgstr "" #: editor/script_editor_debugger.cpp -msgid "Remote Inspector" -msgstr "" - -#: editor/script_editor_debugger.cpp -msgid "Live Scene Tree:" -msgstr "" - -#: editor/script_editor_debugger.cpp -msgid "Remote Object Properties: " -msgstr "" - -#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -6756,50 +6956,50 @@ msgstr "" msgid "GDNative" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Invalid type argument to convert(), use TYPE_* constants." msgstr "Ongeldige type argument voor convert(), gebruik TYPE_* constanten." -#: modules/gdscript/gd_functions.cpp modules/mono/glue/glue_header.h +#: modules/gdscript/gdscript_functions.cpp modules/mono/glue/glue_header.h #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Not enough bytes for decoding bytes, or invalid format." msgstr "Niet genoeg bytes om bytes te decoderen, of ongeldig formaat." -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "step argument is zero!" msgstr "step argument is nul!" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not a script with an instance" msgstr "Niet een script met een instantie" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a script" msgstr "Niet gebaseerd op een script" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a resource file" msgstr "Niet gebaseerd op een resource bestand" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (missing @path)" msgstr "Ongeldige dictionary formaat van instantie (mist @path)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (can't load script at @path)" msgstr "" "Ongeldige dictionary formaat van instantie (kan script niet laden uit @path)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (invalid script at @path)" msgstr "Ongeldige dictionary formaat van instantie (ongeldige script op @path)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary (invalid subclasses)" msgstr "Ongeldige dictionary van instantie (ongeldige subklassen)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Object can't provide a length." msgstr "" @@ -6814,15 +7014,24 @@ msgid "GridMap Duplicate Selection" msgstr "Dupliceer Selectie" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Snap View" +msgid "Floor:" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Prev Level (%sDown Wheel)" +msgid "Grid Map" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Next Level (%sUp Wheel)" +msgid "Snap View" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +#, fuzzy +msgid "Previous Floor" +msgstr "Vorig tabblad" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Next Floor" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp @@ -6893,13 +7102,8 @@ msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy -msgid "Selection -> Duplicate" -msgstr "Alleen Selectie" - -#: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy -msgid "Selection -> Clear" -msgstr "Alleen Selectie" +msgid "Clear Selection" +msgstr "Schaal Selectie" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Settings" @@ -7033,7 +7237,8 @@ msgid "Duplicate VisualScript Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Getter. Hold Shift to drop a generic signature." +#, fuzzy +msgid "Hold %s to drop a Getter. Hold Shift to drop a generic signature." msgstr "" "Houdt Meta ingedrukt om een Getter te plaatsen. Houdt Shift ingedrukt om een " "generiek signatuur te plaatsen." @@ -7045,7 +7250,8 @@ msgstr "" "generiek signatuur te plaatsen." #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a simple reference to the node." +#, fuzzy +msgid "Hold %s to drop a simple reference to the node." msgstr "" "Houdt Meta ingedrukt om een simpele referentie naar de node te plaatsen." @@ -7055,7 +7261,8 @@ msgstr "" "Houdt Ctrl ingedrukt om een simpele referentie naar de node te plaatsen." #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Variable Setter." +#, fuzzy +msgid "Hold %s to drop a Variable Setter." msgstr "Houdt Meta ingedrukt om een Variable Setter te plaatsen." #: modules/visual_script/visual_script_editor.cpp @@ -7294,12 +7501,22 @@ msgstr "Map kon niet gemaakt worden." #: platform/javascript/export/export.cpp #, fuzzy -msgid "Could not read file:\n" +msgid "Could not open template for export:\n" msgstr "Map kon niet gemaakt worden." #: platform/javascript/export/export.cpp #, fuzzy -msgid "Could not open template for export:\n" +msgid "Invalid export template:\n" +msgstr "Ongeldige index eigenschap naam." + +#: platform/javascript/export/export.cpp +#, fuzzy +msgid "Could not read custom HTML shell:\n" +msgstr "Map kon niet gemaakt worden." + +#: platform/javascript/export/export.cpp +#, fuzzy +msgid "Could not read boot splash image file:\n" msgstr "Map kon niet gemaakt worden." #: scene/2d/animated_sprite.cpp @@ -7419,22 +7636,6 @@ msgid "Path property must point to a valid Node2D node to work." msgstr "" "Path eigenschap moet verwijzen naar een geldige Node2D node om te werken." -#: 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 eigenschap moet verwijzen naar een geldige Viewport node om te werken. " -"Zo een Viewport moet in 'render target' modus gezet worden." - -#: 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 "" -"De Viewport gegeven in de pad eigenschap moet als 'render target' ingesteld " -"zijn om deze sprite te laten werken." - #: scene/2d/visibility_notifier_2d.cpp msgid "" "VisibilityEnable2D works best when used with the edited scene root directly " @@ -7503,6 +7704,14 @@ msgstr "" "Een vorm moet gegeven worden om CollisionShape te laten werken. Maak " "alsjeblieft een vorm resource voor deze!" +#: scene/3d/gi_probe.cpp +msgid "Plotting Meshes" +msgstr "" + +#: scene/3d/gi_probe.cpp +msgid "Finishing Plot" +msgstr "" + #: scene/3d/navigation_mesh.cpp msgid "A NavigationMesh resource must be set or created for this node to work." msgstr "" @@ -7592,6 +7801,10 @@ msgid "" "minimum size manually." msgstr "" +#: scene/gui/tree.cpp +msgid "(Other)" +msgstr "" + #: scene/main/scene_tree.cpp msgid "" "Default Environment as specified in Project Setings (Rendering -> Viewport -" @@ -7626,6 +7839,45 @@ msgstr "Error bij het laden van lettertype." msgid "Invalid font size." msgstr "Ongeldige lettertype grootte." +#, fuzzy +#~ msgid "" +#~ "\n" +#~ "Source: " +#~ msgstr "Resource" + +#, fuzzy +#~ msgid "Add Point to Line2D" +#~ msgstr "Ga naar Regel" + +#~ msgid "Meta+" +#~ msgstr "Meta+" + +#, fuzzy +#~ msgid "Setting '" +#~ msgstr "Aan Het Opzetten.." + +#, fuzzy +#~ msgid "Selection -> Duplicate" +#~ msgstr "Alleen Selectie" + +#, fuzzy +#~ msgid "Selection -> Clear" +#~ msgstr "Alleen Selectie" + +#~ msgid "" +#~ "Path property must point to a valid Viewport node to work. Such Viewport " +#~ "must be set to 'render target' mode." +#~ msgstr "" +#~ "Path eigenschap moet verwijzen naar een geldige Viewport node om te " +#~ "werken. Zo een Viewport moet in 'render target' modus gezet worden." + +#~ msgid "" +#~ "The Viewport set in the path property must be set as 'render target' in " +#~ "order for this sprite to work." +#~ msgstr "" +#~ "De Viewport gegeven in de pad eigenschap moet als 'render target' " +#~ "ingesteld zijn om deze sprite te laten werken." + #~ msgid "Filter:" #~ msgstr "Filter:" @@ -7647,9 +7899,6 @@ msgstr "Ongeldige lettertype grootte." #~ msgid "Removed:" #~ msgstr "Verwijderd:" -#~ msgid "Error saving atlas:" -#~ msgstr "Error bij het opslaan van atlas:" - #~ msgid "Could not save atlas subtexture:" #~ msgstr "Kon atlas subtexture niet opslaan:" diff --git a/editor/translations/pl.po b/editor/translations/pl.po index 1d14c94e1f..eea9aeb15d 100644 --- a/editor/translations/pl.po +++ b/editor/translations/pl.po @@ -18,8 +18,8 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2017-10-23 16:47+0000\n" -"Last-Translator: Sebastian Krzyszkowiak <dos@dosowisko.net>\n" +"PO-Revision-Date: 2017-11-07 01:47+0000\n" +"Last-Translator: Maksymilian Świąć <maksymilian.swiac@gmail.com>\n" "Language-Team: Polish <https://hosted.weblate.org/projects/godot-engine/" "godot/pl/>\n" "Language: pl\n" @@ -27,7 +27,7 @@ msgstr "" "Content-Transfer-Encoding: 8-bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 2.17\n" +"X-Generator: Weblate 2.18-dev\n" #: editor/animation_editor.cpp msgid "Disabled" @@ -115,6 +115,7 @@ msgid "Anim Delete Keys" msgstr "Usuń klucze animacji" #: editor/animation_editor.cpp editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Duplicate Selection" msgstr "Duplikuj zaznaczone" @@ -662,6 +663,13 @@ msgstr "Edytor zależnośći" msgid "Search Replacement Resource:" msgstr "Szukaj zastępczego zasobu:" +#: editor/dependency_editor.cpp editor/editor_file_dialog.cpp +#: editor/editor_help.cpp editor/editor_node.cpp editor/filesystem_dock.cpp +#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp +#: editor/quick_open.cpp scene/gui/file_dialog.cpp +msgid "Open" +msgstr "Otwórz" + #: editor/dependency_editor.cpp msgid "Owners Of:" msgstr "Właściciele:" @@ -734,6 +742,16 @@ msgstr "Usunąć zaznaczone pliki?" msgid "Delete" msgstr "Usuń" +#: editor/dictionary_property_edit.cpp +#, fuzzy +msgid "Change Dictionary Key" +msgstr "Zmień nazwę animacji:" + +#: editor/dictionary_property_edit.cpp +#, fuzzy +msgid "Change Dictionary Value" +msgstr "Zmień Wartość Tablicy" + #: editor/editor_about.cpp msgid "Thanks from the Godot community!" msgstr "Podziękowania od społeczności Godota!" @@ -1179,12 +1197,6 @@ msgstr "Wszystkie rozpoznane" msgid "All Files (*)" msgstr "Wszystkie pliki (*)" -#: editor/editor_file_dialog.cpp editor/editor_help.cpp editor/editor_node.cpp -#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_selector.cpp editor/quick_open.cpp scene/gui/file_dialog.cpp -msgid "Open" -msgstr "Otwórz" - #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Open a File" msgstr "Otwórz plik" @@ -1557,6 +1569,13 @@ msgid "" msgstr "" #: editor/editor_node.cpp +msgid "" +"This is a remote object so changes to it will not be kept.\n" +"Please read the documentation relevant to debugging to better understand " +"this workflow." +msgstr "" + +#: editor/editor_node.cpp msgid "Copy Params" msgstr "Kopiuj parametry" @@ -1677,6 +1696,11 @@ msgid "Export Mesh Library" msgstr "Eksportuj bibliotekę Meshów" #: editor/editor_node.cpp +#, fuzzy +msgid "This operation can't be done without a root node." +msgstr "Ta operacja nie może zostać wykonana bez sceny." + +#: editor/editor_node.cpp msgid "Export Tile Set" msgstr "Eksportuj TileSet" @@ -1815,12 +1839,23 @@ msgid "Switch Scene Tab" msgstr "Przełącz Zakładkę Sceny" #: editor/editor_node.cpp -msgid "%d more file(s)" +#, fuzzy +msgid "%d more files or folders" +msgstr "Pozostało %d plików lub folderów" + +#: editor/editor_node.cpp +#, fuzzy +msgid "%d more folders" msgstr "Pozostało %d plików" #: editor/editor_node.cpp -msgid "%d more file(s) or folder(s)" -msgstr "Pozostało %d plików lub folderów" +#, fuzzy +msgid "%d more files" +msgstr "Pozostało %d plików" + +#: editor/editor_node.cpp +msgid "Dock Position" +msgstr "" #: editor/editor_node.cpp msgid "Distraction Free Mode" @@ -1832,6 +1867,11 @@ msgid "Toggle distraction-free mode." msgstr "Tryb bez rozproszeń" #: editor/editor_node.cpp +#, fuzzy +msgid "Add a new scene." +msgstr "Dodaj nowe ścieżki." + +#: editor/editor_node.cpp msgid "Scene" msgstr "Scena" @@ -1897,13 +1937,12 @@ msgid "TileSet.." msgstr "TileSet..." #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp -#: scene/gui/text_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Undo" msgstr "Cofnij" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp +#: scene/gui/line_edit.cpp msgid "Redo" msgstr "Ponów" @@ -1942,7 +1981,7 @@ msgstr "Wyjdź do Listy Projektów" #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp msgid "Debug" -msgstr "Debug" +msgstr "Debuguj" #: editor/editor_node.cpp msgid "Deploy with Remote Debug" @@ -1953,8 +1992,8 @@ msgid "" "When exporting or deploying, the resulting executable will attempt to " "connect to the IP of this computer in order to be debugged." msgstr "" -"Podczas eksportu lub uruchomienia aplikacja wynikowa spróbuje połączyć się z " -"adresem IP tego komputera w celu debugowania." +"Podczas eksportu lub uruchomienia, aplikacja wynikowa spróbuje połączyć się " +"z adresem IP tego komputera w celu debugowania." #: editor/editor_node.cpp msgid "Small Deploy with Network FS" @@ -2419,6 +2458,10 @@ msgid "(Current)" msgstr "Bieżący:" #: editor/export_template_manager.cpp +msgid "Retrieving mirrors, please wait.." +msgstr "" + +#: editor/export_template_manager.cpp msgid "Remove template version '%s'?" msgstr "Usunąć wersję '%s' szablonu?" @@ -2457,6 +2500,114 @@ msgid "Importing:" msgstr "Importowanie:" #: editor/export_template_manager.cpp +msgid "" +"No download links found for this version. Direct download is only available " +"for official releases." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't resolve." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#, fuzzy +msgid "Can't connect." +msgstr "Połącz.." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "No response." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Req. Failed." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Redirect Loop." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Failed:" +msgstr "" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't write file." +msgstr "Nie można utworzyć katalogu." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Download Complete." +msgstr "Pobierz" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Error requesting url: " +msgstr "Błąd podczas zapisywania atlasu:" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connecting to Mirror.." +msgstr "Połącz.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Disconnected" +msgstr "Rozłącz" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Resolving" +msgstr "Zapisywanie.." + +#: editor/export_template_manager.cpp +msgid "Can't Resolve" +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#, fuzzy +msgid "Connecting.." +msgstr "Połącz.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't Conect" +msgstr "Połącz.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connected" +msgstr "Połącz" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#, fuzzy +msgid "Requesting.." +msgstr "Testowanie" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Downloading" +msgstr "Pobierz" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connection Error" +msgstr "Połącz.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "SSL Handshake Error" +msgstr "Wczytaj błędy" + +#: editor/export_template_manager.cpp #, fuzzy msgid "Current Version:" msgstr "Aktualna scena" @@ -2483,6 +2634,15 @@ msgstr "Usunąć zaznaczone pliki?" msgid "Export Template Manager" msgstr "Menedżer szablonów eksportu" +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Download Templates" +msgstr "Szablony" + +#: editor/export_template_manager.cpp +msgid "Select mirror from list: " +msgstr "" + #: editor/file_type_cache.cpp msgid "Can't open file_type_cache.cch for writing, not saving file type cache!" msgstr "" @@ -2490,8 +2650,8 @@ msgstr "" "typu plików nie będzie zapisana!" #: editor/filesystem_dock.cpp -msgid "Cannot navigate to '" -msgstr "Nie można przejść do '" +msgid "Cannot navigate to '%s' as it has not been found in the file system!" +msgstr "" #: editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails" @@ -2509,13 +2669,6 @@ msgstr "" #: editor/filesystem_dock.cpp #, fuzzy -msgid "" -"\n" -"Source: " -msgstr "Źródło:" - -#: editor/filesystem_dock.cpp -#, fuzzy msgid "Cannot move/rename resources root." msgstr "Nie można wczytać/przetworzyć źródłowego fontu." @@ -2791,8 +2944,8 @@ msgid "Remove Poly And Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." +#, fuzzy +msgid "Create a new polygon from scratch" msgstr "Utwórz nowy wielokąt." #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -2803,6 +2956,11 @@ msgid "" "RMB: Erase Point." msgstr "" +#: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy +msgid "Delete points" +msgstr "Usuń Punkt" + #: editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" msgstr "Ustaw automatycznie" @@ -3141,20 +3299,11 @@ msgid "Can't resolve hostname:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't resolve." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Connection error, please try again." msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy -msgid "Can't connect." -msgstr "Połącz.." - -#: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Can't connect to host:" msgstr "Podłącz do węzła:" @@ -3163,31 +3312,15 @@ msgid "No response from host:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "No response." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy msgid "Request failed, return code:" msgstr "Nieznany format pliku:" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Req. Failed." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, too many redirects" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Redirect Loop." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Failed:" -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Bad download hash, assuming file has been tampered with." msgstr "" @@ -3218,16 +3351,6 @@ msgstr "Zapisywanie.." #: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy -msgid "Connecting.." -msgstr "Połącz.." - -#: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy -msgid "Requesting.." -msgstr "Testowanie" - -#: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Error making request" msgstr "Błąd podczas zapisu zasobu!" @@ -3342,6 +3465,39 @@ msgid "Move Action" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create new vertical guide" +msgstr "Utwórz Skrypt" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove vertical guide" +msgstr "Usuń zmienną" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Move horizontal guide" +msgstr "Przenieś punkt krzywej" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create new horizontal guide" +msgstr "Utwórz Skrypt" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove horizontal guide" +msgstr "Usuń wadliwe klatki kluczowe" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new horizontal and vertical guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Edit IK Chain" msgstr "Edytuj łańcuch IK" @@ -3472,10 +3628,17 @@ msgid "Snap to other nodes" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Snap to guides" +msgstr "Tryb przyciągania:" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Lock the selected object in place (can't be moved)." msgstr "Zablokuj wybrany obiekt w miejscu (nie można go przesuwać)." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Unlock the selected object (can be moved)." msgstr "Odblokuj wybrany obiekt (można go przesuwać)." @@ -3529,6 +3692,11 @@ msgid "Show rulers" msgstr "Utwórz Kości" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Show guides" +msgstr "Utwórz Kości" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Selection" msgstr "Wyśrodkowywanie na zaznaczeniu" @@ -3730,6 +3898,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/gi_probe_editor_plugin.cpp +msgid "Bake GI Probe" +msgstr "" + #: editor/plugins/gradient_editor_plugin.cpp msgid "Add/Remove Color Ramp Point" msgstr "Dodaj/Usuń punkty w Color Ramp" @@ -3762,6 +3934,10 @@ msgid "Create Occluder Polygon" msgstr "Stwórz Occluder Polygon" #: editor/plugins/light_occluder_2d_editor_plugin.cpp +msgid "Create a new polygon from scratch." +msgstr "Utwórz nowy wielokąt." + +#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Edit existing polygon:" msgstr "Edytuj istniejący polygon:" @@ -3777,62 +3953,6 @@ msgstr "Ctrl + LPM: Podziału segmentu." msgid "RMB: Erase Point." msgstr "RMB: Wymaż Punkt." -#: editor/plugins/line_2d_editor_plugin.cpp -#, fuzzy -msgid "Remove Point from Line2D" -msgstr "Usuń punkt ścieżki" - -#: editor/plugins/line_2d_editor_plugin.cpp -#, fuzzy -msgid "Add Point to Line2D" -msgstr "Idź do lini" - -#: editor/plugins/line_2d_editor_plugin.cpp -#, fuzzy -msgid "Move Point in Line2D" -msgstr "Przesuń Punkt" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Select Points" -msgstr "Zaznacz Punkty" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Shift+Drag: Select Control Points" -msgstr "Shift+Drag: Zaznacz Punkty Kontrolne" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Click: Add Point" -msgstr "Klik: Dodaj Punkt" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Right Click: Delete Point" -msgstr "Prawy Klik: Usuń Punkt" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Add Point (in empty space)" -msgstr "Dodaj Punkt (w pustym miejscu)" - -#: editor/plugins/line_2d_editor_plugin.cpp -#, fuzzy -msgid "Split Segment (in line)" -msgstr "Podziel Segment (na krzywej)" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Delete Point" -msgstr "Usuń Punkt" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "Siatka jest pusta!" @@ -4243,16 +4363,46 @@ msgid "Move Out-Control in Curve" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Select Points" +msgstr "Zaznacz Punkty" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Shift+Drag: Select Control Points" +msgstr "Shift+Drag: Zaznacz Punkty Kontrolne" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Click: Add Point" +msgstr "Klik: Dodaj Punkt" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Right Click: Delete Point" +msgstr "Prawy Klik: Usuń Punkt" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Select Control Points (Shift+Drag)" msgstr "Zaznacz Punkty Kontrolne (Shift+Drag)" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Add Point (in empty space)" +msgstr "Dodaj Punkt (w pustym miejscu)" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Split Segment (in curve)" msgstr "Podziel Segment (na krzywej)" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Delete Point" +msgstr "Usuń Punkt" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Close Curve" msgstr "Zamknij krzywą" @@ -4394,7 +4544,6 @@ msgstr "Wczytaj Zasób" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Paste" @@ -4440,6 +4589,21 @@ msgid " Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#, fuzzy +msgid "Sort" +msgstr "Sortuj:" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Up" +msgstr "Przesuń w górę" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Down" +msgstr "Przesuń w dół" + +#: editor/plugins/script_editor_plugin.cpp msgid "Next script" msgstr "Następny skrypt" @@ -4492,6 +4656,10 @@ msgstr "Zamknij pliki pomocy" msgid "Close All" msgstr "Zamknij" +#: editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "Uruchom" @@ -4503,13 +4671,11 @@ msgstr "Ustaw jako ulubione" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find.." msgstr "Znajdź.." #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Next" msgstr "Znajdź następny" @@ -4625,33 +4791,22 @@ msgstr "" msgid "Capitalize" msgstr "" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" msgstr "Wytnij" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Copy" msgstr "Kopiuj" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Select All" msgstr "Zaznacz wszystko" -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Up" -msgstr "Przesuń w górę" - -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Down" -msgstr "Przesuń w dół" - #: editor/plugins/script_text_editor.cpp #, fuzzy msgid "Delete Line" @@ -4674,6 +4829,23 @@ msgid "Clone Down" msgstr "Duplikuj linię" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Fold Line" +msgstr "Idź do lini" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold Line" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Fold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Complete Symbol" msgstr "Uzupełnij symbol" @@ -4721,12 +4893,10 @@ msgid "Convert To Lowercase" msgstr "Konwertuje na.." #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Previous" msgstr "Znajdź poprzedni" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Replace.." msgstr "Zamień.." @@ -4735,7 +4905,6 @@ msgid "Goto Function.." msgstr "Przejdź do funkcji.." #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Goto Line.." msgstr "Przejdź do linii.." @@ -4900,6 +5069,16 @@ msgid "View Plane Transform." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Scaling: " +msgstr "Skala:" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Translating: " +msgstr "Tłumaczenia:" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Rotating %s degrees." msgstr "Obracanie o %s stopni." @@ -4984,6 +5163,10 @@ msgid "Vertices" msgstr "Wierzchołek" #: editor/plugins/spatial_editor_plugin.cpp +msgid "FPS" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Align with view" msgstr "Wyrównaj z widokiem" @@ -5019,6 +5202,16 @@ msgid "View Information" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "View FPS" +msgstr "Plik" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Half Resolution" +msgstr "Skaluj zaznaczone" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Audio Listener" msgstr "" @@ -5156,6 +5349,11 @@ msgid "Tool Scale" msgstr "Skala:" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Toggle Freelook" +msgstr "Pełny ekran" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Transform" msgstr "Przekształcanie" @@ -5435,6 +5633,11 @@ msgid "Create Empty Editor Template" msgstr "Utworzyć pusty szablon edytora" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Create From Current Editor Theme" +msgstr "Utworzyć pusty szablon edytora" + +#: editor/plugins/theme_editor_plugin.cpp msgid "CheckBox Radio1" msgstr "CheckBox Radio1" @@ -5615,7 +5818,7 @@ msgstr "Włącz" #: editor/project_export.cpp #, fuzzy -msgid "Delete patch '" +msgid "Delete patch '%s' from list?" msgstr "Usuń layout" #: editor/project_export.cpp @@ -5940,10 +6143,6 @@ msgid "Add Input Action Event" msgstr "Dodaj zdarzenie akcji wejścia" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Meta+" -msgstr "Meta+" - -#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp msgid "Shift+" msgstr "Shift+" @@ -6069,13 +6268,12 @@ msgstr "" #: editor/project_settings_editor.cpp #, fuzzy -msgid "No property '" +msgid "No property '%s' exists." msgstr "Właściwość:" #: editor/project_settings_editor.cpp -#, fuzzy -msgid "Setting '" -msgstr "Ustawienia" +msgid "Setting '%s' is internal, and it can't be deleted." +msgstr "" #: editor/project_settings_editor.cpp #, fuzzy @@ -6575,6 +6773,16 @@ msgid "Clear a script for the selected node." msgstr "Utwórz nowy skrypt dla zaznaczonego węzła." #: editor/scene_tree_dock.cpp +#, fuzzy +msgid "Remote" +msgstr "Usuń" + +#: editor/scene_tree_dock.cpp +#, fuzzy +msgid "Local" +msgstr "Lokalizacja" + +#: editor/scene_tree_dock.cpp msgid "Clear Inheritance? (No Undo!)" msgstr "Wyczyścić dziedziczenie? (Nie można cofnąć!)" @@ -6773,6 +6981,11 @@ msgid "Attach Node Script" msgstr "Utwórz skrypt dla węzła" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Remote " +msgstr "Usuń" + +#: editor/script_editor_debugger.cpp msgid "Bytes:" msgstr "Bajty:" @@ -6829,18 +7042,6 @@ msgid "Stack Trace (if applicable):" msgstr "Śledzenie stosu (jeśli dotyczy):" #: editor/script_editor_debugger.cpp -msgid "Remote Inspector" -msgstr "Zdalny inspektor" - -#: editor/script_editor_debugger.cpp -msgid "Live Scene Tree:" -msgstr "" - -#: editor/script_editor_debugger.cpp -msgid "Remote Object Properties: " -msgstr "Właściwości zdalnego obiektu: " - -#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "Profiler" @@ -6975,51 +7176,51 @@ msgstr "" msgid "GDNative" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Invalid type argument to convert(), use TYPE_* constants." msgstr "Niepoprawny typ argumentu funkcji convert(), użyj stałych TYPE_*." -#: modules/gdscript/gd_functions.cpp modules/mono/glue/glue_header.h +#: modules/gdscript/gdscript_functions.cpp modules/mono/glue/glue_header.h #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Not enough bytes for decoding bytes, or invalid format." msgstr "" "Niewystarczająca ilość bajtów dla bajtów dekodujących, albo zły format." -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "step argument is zero!" msgstr "argument kroku wynosi zero!" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not a script with an instance" msgstr "To nie jest skrypt z instancją" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a script" msgstr "Nie bazuje na skrypcie" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a resource file" msgstr "Nie bazuje na pliku zasobów" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (missing @path)" msgstr "Niepoprawna instancja formatu słownika (brak @path)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (can't load script at @path)" msgstr "" "Niepoprawna instancja formatu słownika (nie można wczytać skryptu w @path)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (invalid script at @path)" msgstr "Niepoprawna instancja formatu słownika (niepoprawny skrypt w @path)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary (invalid subclasses)" msgstr "Niepoprawna instancja słownika (niepoprawne podklasy)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Object can't provide a length." msgstr "" @@ -7034,16 +7235,26 @@ msgid "GridMap Duplicate Selection" msgstr "Duplikuj zaznaczone" #: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Floor:" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +#, fuzzy +msgid "Grid Map" +msgstr "Przyciągaj do siatki" + +#: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy msgid "Snap View" msgstr "Widok z góry" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Prev Level (%sDown Wheel)" -msgstr "" +#, fuzzy +msgid "Previous Floor" +msgstr "Poprzednia zakładka" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Next Level (%sUp Wheel)" +msgid "Next Floor" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp @@ -7119,13 +7330,8 @@ msgstr "Wyczyść TileMap" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy -msgid "Selection -> Duplicate" -msgstr "Tylko zaznaczenie" - -#: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy -msgid "Selection -> Clear" -msgstr "Tylko zaznaczenie" +msgid "Clear Selection" +msgstr "Wyśrodkowywanie na zaznaczeniu" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy @@ -7258,7 +7464,7 @@ msgid "Duplicate VisualScript Nodes" msgstr "Duplikuj węzeł(y)" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Getter. Hold Shift to drop a generic signature." +msgid "Hold %s to drop a Getter. Hold Shift to drop a generic signature." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -7266,7 +7472,7 @@ msgid "Hold Ctrl to drop a Getter. Hold Shift to drop a generic signature." msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a simple reference to the node." +msgid "Hold %s to drop a simple reference to the node." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -7274,7 +7480,7 @@ msgid "Hold Ctrl to drop a simple reference to the node." msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Variable Setter." +msgid "Hold %s to drop a Variable Setter." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -7523,12 +7729,22 @@ msgstr "Nie można utworzyć katalogu." #: platform/javascript/export/export.cpp #, fuzzy -msgid "Could not read file:\n" +msgid "Could not open template for export:\n" msgstr "Nie można utworzyć katalogu." #: platform/javascript/export/export.cpp #, fuzzy -msgid "Could not open template for export:\n" +msgid "Invalid export template:\n" +msgstr "Zainstaluj Szablony Eksportu" + +#: platform/javascript/export/export.cpp +#, fuzzy +msgid "Could not read custom HTML shell:\n" +msgstr "Nie można utworzyć katalogu." + +#: platform/javascript/export/export.cpp +#, fuzzy +msgid "Could not read boot splash image file:\n" msgstr "Nie można utworzyć katalogu." #: scene/2d/animated_sprite.cpp @@ -7641,23 +7857,6 @@ msgstr "" msgid "Path property must point to a valid Node2D node to work." msgstr "Żeby zadziałało, pole Path musi wskazywać na istniejący węzeł Node2D." -#: scene/2d/sprite.cpp -#, fuzzy -msgid "" -"Path property must point to a valid Viewport node to work. Such Viewport " -"must be set to 'render target' mode." -msgstr "" -"Aby zadziałało, pole Path musi wskazywać na obiekt Viewport, który ma " -"zaznaczoną opcję trybu 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 "" -"Pole trybu Render Target musi być ustawione w Viewport wskazywanym przez " -"pole Path, aby ten Sprite mógł zadziałać." - #: scene/2d/visibility_notifier_2d.cpp msgid "" "VisibilityEnable2D works best when used with the edited scene root directly " @@ -7726,6 +7925,14 @@ msgstr "" "Kształt musi być określony dla CollisionShape, aby spełniał swoje zadanie. " "Utwórz zasób typu CollisionShape w odpowiednim polu obiektu!" +#: scene/3d/gi_probe.cpp +msgid "Plotting Meshes" +msgstr "" + +#: scene/3d/gi_probe.cpp +msgid "Finishing Plot" +msgstr "" + #: scene/3d/navigation_mesh.cpp msgid "A NavigationMesh resource must be set or created for this node to work." msgstr "" @@ -7821,6 +8028,10 @@ msgstr "" "Użyj kontenera jako dziecko (VBox,HBox,etc), lub węzła klasy Control i ustaw " "ręcznie minimalny rozmiar." +#: scene/gui/tree.cpp +msgid "(Other)" +msgstr "" + #: scene/main/scene_tree.cpp msgid "" "Default Environment as specified in Project Setings (Rendering -> Viewport -" @@ -7855,6 +8066,67 @@ msgstr "Błąd ładowania fonta." msgid "Invalid font size." msgstr "Niepoprawny rozmiar fonta." +#~ msgid "Cannot navigate to '" +#~ msgstr "Nie można przejść do '" + +#, fuzzy +#~ msgid "" +#~ "\n" +#~ "Source: " +#~ msgstr "Źródło:" + +#, fuzzy +#~ msgid "Remove Point from Line2D" +#~ msgstr "Usuń punkt ścieżki" + +#, fuzzy +#~ msgid "Add Point to Line2D" +#~ msgstr "Idź do lini" + +#, fuzzy +#~ msgid "Move Point in Line2D" +#~ msgstr "Przesuń Punkt" + +#, fuzzy +#~ msgid "Split Segment (in line)" +#~ msgstr "Podziel Segment (na krzywej)" + +#~ msgid "Meta+" +#~ msgstr "Meta+" + +#, fuzzy +#~ msgid "Setting '" +#~ msgstr "Ustawienia" + +#~ msgid "Remote Inspector" +#~ msgstr "Zdalny inspektor" + +#~ msgid "Remote Object Properties: " +#~ msgstr "Właściwości zdalnego obiektu: " + +#, fuzzy +#~ msgid "Selection -> Duplicate" +#~ msgstr "Tylko zaznaczenie" + +#, fuzzy +#~ msgid "Selection -> Clear" +#~ msgstr "Tylko zaznaczenie" + +#, fuzzy +#~ msgid "" +#~ "Path property must point to a valid Viewport node to work. Such Viewport " +#~ "must be set to 'render target' mode." +#~ msgstr "" +#~ "Aby zadziałało, pole Path musi wskazywać na obiekt Viewport, który ma " +#~ "zaznaczoną opcję trybu Render Target." + +#~ msgid "" +#~ "The Viewport set in the path property must be set as 'render target' in " +#~ "order for this sprite to work." +#~ msgstr "" +#~ "Pole trybu Render Target musi być ustawione w Viewport wskazywanym przez " +#~ "pole Path, aby ten Sprite mógł zadziałać." + #~ msgid "Filter:" #~ msgstr "Filtr:" @@ -7877,9 +8149,6 @@ msgstr "Niepoprawny rozmiar fonta." #~ msgid "Removed:" #~ msgstr "Usunięte:" -#~ msgid "Error saving atlas:" -#~ msgstr "Błąd podczas zapisywania atlasu:" - #~ msgid "Could not save atlas subtexture:" #~ msgstr "Nie udało się zapisać tekstury atlasu:" @@ -8559,9 +8828,6 @@ msgstr "Niepoprawny rozmiar fonta." #~ msgid "Replaced %d Ocurrence(s)." #~ msgstr "Zastąpiono %d wystąpień." -#~ msgid "Install Export Templates" -#~ msgstr "Zainstaluj Szablony Eksportu" - #~ msgid "Error exporting project!" #~ msgstr "Błąd przy eksporcie projektu!" diff --git a/editor/translations/pr.po b/editor/translations/pr.po index 6f42056ecf..aa54c675e8 100644 --- a/editor/translations/pr.po +++ b/editor/translations/pr.po @@ -99,6 +99,7 @@ msgid "Anim Delete Keys" msgstr "" #: editor/animation_editor.cpp editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Duplicate Selection" msgstr "" @@ -628,6 +629,13 @@ msgstr "" msgid "Search Replacement Resource:" msgstr "" +#: editor/dependency_editor.cpp editor/editor_file_dialog.cpp +#: editor/editor_help.cpp editor/editor_node.cpp editor/filesystem_dock.cpp +#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp +#: editor/quick_open.cpp scene/gui/file_dialog.cpp +msgid "Open" +msgstr "" + #: editor/dependency_editor.cpp msgid "Owners Of:" msgstr "" @@ -698,6 +706,14 @@ msgstr "" msgid "Delete" msgstr "" +#: editor/dictionary_property_edit.cpp +msgid "Change Dictionary Key" +msgstr "" + +#: editor/dictionary_property_edit.cpp +msgid "Change Dictionary Value" +msgstr "" + #: editor/editor_about.cpp msgid "Thanks from the Godot community!" msgstr "" @@ -1116,12 +1132,6 @@ msgstr "" msgid "All Files (*)" msgstr "" -#: editor/editor_file_dialog.cpp editor/editor_help.cpp editor/editor_node.cpp -#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_selector.cpp editor/quick_open.cpp scene/gui/file_dialog.cpp -msgid "Open" -msgstr "" - #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Open a File" msgstr "" @@ -1479,6 +1489,13 @@ msgid "" msgstr "" #: editor/editor_node.cpp +msgid "" +"This is a remote object so changes to it will not be kept.\n" +"Please read the documentation relevant to debugging to better understand " +"this workflow." +msgstr "" + +#: editor/editor_node.cpp msgid "Copy Params" msgstr "" @@ -1588,6 +1605,10 @@ msgid "Export Mesh Library" msgstr "" #: editor/editor_node.cpp +msgid "This operation can't be done without a root node." +msgstr "" + +#: editor/editor_node.cpp msgid "Export Tile Set" msgstr "" @@ -1713,11 +1734,19 @@ msgid "Switch Scene Tab" msgstr "" #: editor/editor_node.cpp -msgid "%d more file(s)" +msgid "%d more files or folders" +msgstr "" + +#: editor/editor_node.cpp +msgid "%d more folders" +msgstr "" + +#: editor/editor_node.cpp +msgid "%d more files" msgstr "" #: editor/editor_node.cpp -msgid "%d more file(s) or folder(s)" +msgid "Dock Position" msgstr "" #: editor/editor_node.cpp @@ -1729,6 +1758,10 @@ msgid "Toggle distraction-free mode." msgstr "" #: editor/editor_node.cpp +msgid "Add a new scene." +msgstr "" + +#: editor/editor_node.cpp msgid "Scene" msgstr "" @@ -1793,13 +1826,12 @@ msgid "TileSet.." msgstr "" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp -#: scene/gui/text_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Undo" msgstr "" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp +#: scene/gui/line_edit.cpp msgid "Redo" msgstr "" @@ -2281,6 +2313,10 @@ msgid "(Current)" msgstr "" #: editor/export_template_manager.cpp +msgid "Retrieving mirrors, please wait.." +msgstr "" + +#: editor/export_template_manager.cpp msgid "Remove template version '%s'?" msgstr "" @@ -2316,6 +2352,102 @@ msgid "Importing:" msgstr "" #: editor/export_template_manager.cpp +msgid "" +"No download links found for this version. Direct download is only available " +"for official releases." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't resolve." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't connect." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "No response." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Req. Failed." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Redirect Loop." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Failed:" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Can't write file." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Download Complete." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Error requesting url: " +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Connecting to Mirror.." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Disconnected" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Resolving" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Can't Resolve" +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Connecting.." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Can't Conect" +msgstr "" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connected" +msgstr "Slit th' Node" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Requesting.." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Downloading" +msgstr "" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connection Error" +msgstr "Slit th' Node" + +#: editor/export_template_manager.cpp +msgid "SSL Handshake Error" +msgstr "" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "" @@ -2340,12 +2472,21 @@ msgstr "" msgid "Export Template Manager" msgstr "" +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Download Templates" +msgstr "Discharge ye' Variable" + +#: editor/export_template_manager.cpp +msgid "Select mirror from list: " +msgstr "" + #: editor/file_type_cache.cpp msgid "Can't open file_type_cache.cch for writing, not saving file type cache!" msgstr "" #: editor/filesystem_dock.cpp -msgid "Cannot navigate to '" +msgid "Cannot navigate to '%s' as it has not been found in the file system!" msgstr "" #: editor/filesystem_dock.cpp @@ -2363,12 +2504,6 @@ msgid "" msgstr "" #: editor/filesystem_dock.cpp -msgid "" -"\n" -"Source: " -msgstr "" - -#: editor/filesystem_dock.cpp msgid "Cannot move/rename resources root." msgstr "" @@ -2627,8 +2762,7 @@ msgid "Remove Poly And Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." +msgid "Create a new polygon from scratch" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -2639,6 +2773,11 @@ msgid "" "RMB: Erase Point." msgstr "" +#: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy +msgid "Delete points" +msgstr "Yar, Blow th' Selected Down!" + #: editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" msgstr "" @@ -2974,18 +3113,10 @@ msgid "Can't resolve hostname:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't resolve." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Connection error, please try again." msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't connect." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Can't connect to host:" msgstr "" @@ -2994,30 +3125,14 @@ msgid "No response from host:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "No response." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, return code:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Req. Failed." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, too many redirects" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Redirect Loop." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Failed:" -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Bad download hash, assuming file has been tampered with." msgstr "" @@ -3046,14 +3161,6 @@ msgid "Resolving.." msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Connecting.." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Requesting.." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Error making request" msgstr "" @@ -3166,6 +3273,36 @@ msgid "Move Action" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove vertical guide" +msgstr "Discharge ye' Variable" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move horizontal guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new horizontal guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove horizontal guide" +msgstr "Discharge ye' Variable" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new horizontal and vertical guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Edit IK Chain" msgstr "" @@ -3287,10 +3424,16 @@ msgid "Snap to other nodes" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snap to guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Lock the selected object in place (can't be moved)." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Unlock the selected object (can be moved)." msgstr "" @@ -3341,6 +3484,10 @@ msgid "Show rulers" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Show guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Selection" msgstr "" @@ -3529,6 +3676,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/gi_probe_editor_plugin.cpp +msgid "Bake GI Probe" +msgstr "" + #: editor/plugins/gradient_editor_plugin.cpp msgid "Add/Remove Color Ramp Point" msgstr "" @@ -3561,6 +3712,10 @@ msgid "Create Occluder Polygon" msgstr "" #: editor/plugins/light_occluder_2d_editor_plugin.cpp +msgid "Create a new polygon from scratch." +msgstr "" + +#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Edit existing polygon:" msgstr "" @@ -3576,58 +3731,6 @@ msgstr "" msgid "RMB: Erase Point." msgstr "" -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Remove Point from Line2D" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Add Point to Line2D" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Move Point in Line2D" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Select Points" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Shift+Drag: Select Control Points" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Click: Add Point" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Right Click: Delete Point" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Add Point (in empty space)" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Split Segment (in line)" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Delete Point" -msgstr "" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "" @@ -4025,16 +4128,46 @@ msgid "Move Out-Control in Curve" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Select Points" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Shift+Drag: Select Control Points" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Click: Add Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Right Click: Delete Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Select Control Points (Shift+Drag)" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Add Point (in empty space)" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Split Segment (in curve)" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Delete Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Close Curve" msgstr "" @@ -4175,7 +4308,6 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Paste" @@ -4220,6 +4352,20 @@ msgid " Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +msgid "Sort" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Up" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Down" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Next script" msgstr "" @@ -4271,6 +4417,10 @@ msgstr "" msgid "Close All" msgstr "" +#: editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "" @@ -4281,13 +4431,11 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find.." msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Next" msgstr "" @@ -4391,33 +4539,22 @@ msgstr "" msgid "Capitalize" msgstr "" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Copy" msgstr "" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Select All" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Up" -msgstr "" - -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Down" -msgstr "" - #: editor/plugins/script_text_editor.cpp #, fuzzy msgid "Delete Line" @@ -4440,6 +4577,23 @@ msgid "Clone Down" msgstr "" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Fold Line" +msgstr "Yar, Blow th' Selected Down!" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold Line" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Fold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Complete Symbol" msgstr "" @@ -4485,12 +4639,10 @@ msgid "Convert To Lowercase" msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Previous" msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Replace.." msgstr "" @@ -4499,7 +4651,6 @@ msgid "Goto Function.." msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Goto Line.." msgstr "" @@ -4664,6 +4815,14 @@ msgid "View Plane Transform." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Scaling: " +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Translating: " +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Rotating %s degrees." msgstr "" @@ -4745,6 +4904,10 @@ msgid "Vertices" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "FPS" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Align with view" msgstr "" @@ -4777,6 +4940,14 @@ msgid "View Information" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "View FPS" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Half Resolution" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Audio Listener" msgstr "" @@ -4905,6 +5076,11 @@ msgid "Tool Scale" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Toggle Freelook" +msgstr "Toggle ye Breakpoint" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Transform" msgstr "" @@ -5182,6 +5358,10 @@ msgid "Create Empty Editor Template" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Create From Current Editor Theme" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "CheckBox Radio1" msgstr "" @@ -5355,7 +5535,7 @@ msgid "Runnable" msgstr "" #: editor/project_export.cpp -msgid "Delete patch '" +msgid "Delete patch '%s' from list?" msgstr "" #: editor/project_export.cpp @@ -5650,10 +5830,6 @@ msgid "Add Input Action Event" msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Meta+" -msgstr "" - -#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp msgid "Shift+" msgstr "" @@ -5776,11 +5952,11 @@ msgid "Select a setting item first!" msgstr "" #: editor/project_settings_editor.cpp -msgid "No property '" +msgid "No property '%s' exists." msgstr "" #: editor/project_settings_editor.cpp -msgid "Setting '" +msgid "Setting '%s' is internal, and it can't be deleted." msgstr "" #: editor/project_settings_editor.cpp @@ -6253,6 +6429,15 @@ msgid "Clear a script for the selected node." msgstr "" #: editor/scene_tree_dock.cpp +#, fuzzy +msgid "Remote" +msgstr "Discharge ye' Signal" + +#: editor/scene_tree_dock.cpp +msgid "Local" +msgstr "" + +#: editor/scene_tree_dock.cpp msgid "Clear Inheritance? (No Undo!)" msgstr "" @@ -6439,6 +6624,11 @@ msgid "Attach Node Script" msgstr "" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Remote " +msgstr "Discharge ye' Signal" + +#: editor/script_editor_debugger.cpp msgid "Bytes:" msgstr "" @@ -6495,18 +6685,6 @@ msgid "Stack Trace (if applicable):" msgstr "" #: editor/script_editor_debugger.cpp -msgid "Remote Inspector" -msgstr "" - -#: editor/script_editor_debugger.cpp -msgid "Live Scene Tree:" -msgstr "" - -#: editor/script_editor_debugger.cpp -msgid "Remote Object Properties: " -msgstr "" - -#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -6638,54 +6816,54 @@ msgstr "" msgid "GDNative" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Invalid type argument to convert(), use TYPE_* constants." msgstr "" "Shiver me timbers! ye type argument t' convert() be wrong! use yer TYPE_* " "constants!" -#: modules/gdscript/gd_functions.cpp modules/mono/glue/glue_header.h +#: modules/gdscript/gdscript_functions.cpp modules/mono/glue/glue_header.h #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Not enough bytes for decoding bytes, or invalid format." msgstr "Nah enough bytes fer decodin' bytes, or ye got th' wrong ship." -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "step argument is zero!" msgstr "Blimey! Ye step argument be marooned!" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not a script with an instance" msgstr "Arr! Yer script is marooned!" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a script" msgstr "Ye be loaded to the gunwalls? It's anchorage be not on a script!" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a resource file" msgstr "Yer anchorage not be on a resource file, ye bilge rat!" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (missing @path)" msgstr "Ye got th' wrong dictionary getup! (ye be missin' yer @path!)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (can't load script at @path)" msgstr "Ye got th' wrong dictionary getup! (yer script aint' at ye @path)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (invalid script at @path)" msgstr "" "Ye got th' wrong dictionary getup! (ye be drinkin'? Ye got yerself a bad " "script at @path!)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary (invalid subclasses)" msgstr "" "Ye got th' wrong dictionary getup! (yer subclasses be walkin' the plank!)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Object can't provide a length." msgstr "" @@ -6699,15 +6877,23 @@ msgid "GridMap Duplicate Selection" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Floor:" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Grid Map" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Snap View" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Prev Level (%sDown Wheel)" +msgid "Previous Floor" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Next Level (%sUp Wheel)" +msgid "Next Floor" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp @@ -6775,12 +6961,9 @@ msgid "Erase Area" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Selection -> Duplicate" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Selection -> Clear" -msgstr "" +#, fuzzy +msgid "Clear Selection" +msgstr "Yar, Blow th' Selected Down!" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Settings" @@ -6913,7 +7096,8 @@ msgid "Duplicate VisualScript Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Getter. Hold Shift to drop a generic signature." +#, fuzzy +msgid "Hold %s to drop a Getter. Hold Shift to drop a generic signature." msgstr "" "Smash yer Meta key t' sink yer Getter. Smash yer Shift t' sink a generic " "signature." @@ -6925,7 +7109,8 @@ msgstr "" "signature." #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a simple reference to the node." +#, fuzzy +msgid "Hold %s to drop a simple reference to the node." msgstr "Smash yer Meta key t' sink a naked reference t' th' node." #: modules/visual_script/visual_script_editor.cpp @@ -6933,7 +7118,8 @@ msgid "Hold Ctrl to drop a simple reference to the node." msgstr "Smash yer Ctrl key t' sink a naked reference t' th' node." #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Variable Setter." +#, fuzzy +msgid "Hold %s to drop a Variable Setter." msgstr "Smash yer Meta key t' sink a Variable Setter." #: modules/visual_script/visual_script_editor.cpp @@ -7168,11 +7354,20 @@ msgid "Could not write file:\n" msgstr "" #: platform/javascript/export/export.cpp -msgid "Could not read file:\n" +msgid "Could not open template for export:\n" msgstr "" #: platform/javascript/export/export.cpp -msgid "Could not open template for export:\n" +#, fuzzy +msgid "Invalid export template:\n" +msgstr "Yer index property name be thrown overboard!" + +#: platform/javascript/export/export.cpp +msgid "Could not read custom HTML shell:\n" +msgstr "" + +#: platform/javascript/export/export.cpp +msgid "Could not read boot splash image file:\n" msgstr "" #: scene/2d/animated_sprite.cpp @@ -7264,18 +7459,6 @@ msgstr "" msgid "Path property must point to a valid Node2D node to work." 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 " @@ -7334,6 +7517,14 @@ msgid "" "shape resource for it!" msgstr "" +#: scene/3d/gi_probe.cpp +msgid "Plotting Meshes" +msgstr "" + +#: scene/3d/gi_probe.cpp +msgid "Finishing Plot" +msgstr "" + #: scene/3d/navigation_mesh.cpp msgid "A NavigationMesh resource must be set or created for this node to work." msgstr "" @@ -7411,6 +7602,10 @@ msgid "" "minimum size manually." msgstr "" +#: scene/gui/tree.cpp +msgid "(Other)" +msgstr "" + #: scene/main/scene_tree.cpp msgid "" "Default Environment as specified in Project Setings (Rendering -> Viewport -" diff --git a/editor/translations/pt_BR.po b/editor/translations/pt_BR.po index 490ad2accc..9ad005a4ad 100644 --- a/editor/translations/pt_BR.po +++ b/editor/translations/pt_BR.po @@ -11,14 +11,15 @@ # jonathan railarem <railarem@gmail.com>, 2017. # Mailson Silva Marins <mailsons335@gmail.com>, 2016. # Marcus Correia <marknokalt@live.com>, 2017. -# Michael Alexsander Silva Dias <michael.a.s.dias@gmail.com>, 2017. +# Michael Alexsander Silva Dias <michaelalexsander@protonmail.com>, 2017. # msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: 2016-05-30\n" -"PO-Revision-Date: 2017-10-22 02:54+0000\n" -"Last-Translator: Marcus Correia <marknokalt@live.com>\n" +"PO-Revision-Date: 2017-11-20 20:49+0000\n" +"Last-Translator: Michael Alexsander Silva Dias <michaelalexsander@protonmail." +"com>\n" "Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/" "godot-engine/godot/pt_BR/>\n" "Language: pt_BR\n" @@ -26,7 +27,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 2.17\n" +"X-Generator: Weblate 2.18-dev\n" #: editor/animation_editor.cpp msgid "Disabled" @@ -109,6 +110,7 @@ msgid "Anim Delete Keys" msgstr "Excluir Chaves da Anim" #: editor/animation_editor.cpp editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Duplicate Selection" msgstr "Duplicar Seleção" @@ -644,6 +646,13 @@ msgstr "Editor de Dependências" msgid "Search Replacement Resource:" msgstr "Buscar Recurso para Substituição:" +#: editor/dependency_editor.cpp editor/editor_file_dialog.cpp +#: editor/editor_help.cpp editor/editor_node.cpp editor/filesystem_dock.cpp +#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp +#: editor/quick_open.cpp scene/gui/file_dialog.cpp +msgid "Open" +msgstr "Abrir" + #: editor/dependency_editor.cpp msgid "Owners Of:" msgstr "Donos De:" @@ -717,6 +726,16 @@ msgstr "Excluir os arquivos selecionados?" msgid "Delete" msgstr "Excluir" +#: editor/dictionary_property_edit.cpp +#, fuzzy +msgid "Change Dictionary Key" +msgstr "Alterar Nome da Animação:" + +#: editor/dictionary_property_edit.cpp +#, fuzzy +msgid "Change Dictionary Value" +msgstr "Alterar Valor do Vetor" + #: editor/editor_about.cpp msgid "Thanks from the Godot community!" msgstr "Agradecimentos da comunidade Godot!" @@ -1139,12 +1158,6 @@ msgstr "Todas Reconhecidas" msgid "All Files (*)" msgstr "Todos os Arquivos (*)" -#: editor/editor_file_dialog.cpp editor/editor_help.cpp editor/editor_node.cpp -#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_selector.cpp editor/quick_open.cpp scene/gui/file_dialog.cpp -msgid "Open" -msgstr "Abrir" - #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Open a File" msgstr "Abrir um Arquivo" @@ -1514,6 +1527,17 @@ msgstr "" "melhor esse procedimento." #: editor/editor_node.cpp +#, fuzzy +msgid "" +"This is a remote object so changes to it will not be kept.\n" +"Please read the documentation relevant to debugging to better understand " +"this workflow." +msgstr "" +"Este recurso pertence a uma cena que foi importada, mas não é editável.\n" +"Por favor, leia a documentação referente a importação de cenas para entender " +"melhor esse procedimento." + +#: editor/editor_node.cpp msgid "Copy Params" msgstr "Copiar Parâmetros" @@ -1632,6 +1656,11 @@ msgid "Export Mesh Library" msgstr "Exportar MeshLibrary" #: editor/editor_node.cpp +#, fuzzy +msgid "This operation can't be done without a root node." +msgstr "Esta operação não pode ser feita sem um nó selecionado." + +#: editor/editor_node.cpp msgid "Export Tile Set" msgstr "Exportar Tile Set" @@ -1698,31 +1727,33 @@ msgid "Pick a Main Scene" msgstr "Escolha uma Cena Principal" #: editor/editor_node.cpp -#, fuzzy msgid "Unable to enable addon plugin at: '%s' parsing of config failed." -msgstr "Não foi possível ativar o plugin em: '" +msgstr "" +"Não foi possível ativar o plugin em: '%s' processamento da configuração " +"falhou." #: editor/editor_node.cpp -#, fuzzy msgid "Unable to find script field for addon plugin at: 'res://addons/%s'." msgstr "" "Não foi possível encontrar o campo de script para o plugin em: 'res://addons/" +"%s'." #: editor/editor_node.cpp -#, fuzzy msgid "Unable to load addon script from path: '%s'." -msgstr "Não foi possível carregar o script de extensão no caminho: '" +msgstr "Não foi possível carregar o script complementar do caminho: '%s'." #: editor/editor_node.cpp -#, fuzzy msgid "" "Unable to load addon script from path: '%s' Base type is not EditorPlugin." -msgstr "Não foi possível carregar o script de extensão no caminho: '" +msgstr "" +"Não foi possível carregar o script complementar do caminho: '%s' Tipo base " +"não é EditorPlugin." #: editor/editor_node.cpp -#, fuzzy msgid "Unable to load addon script from path: '%s' Script is not in tool mode." -msgstr "Não foi possível carregar o script de extensão no caminho: '" +msgstr "" +"Não foi possível carregar o script complementar do caminho: '%s' Script não " +"está em modo ferramenta." #: editor/editor_node.cpp msgid "" @@ -1771,12 +1802,23 @@ msgid "Switch Scene Tab" msgstr "Trocar Guia de Cena" #: editor/editor_node.cpp -msgid "%d more file(s)" +#, fuzzy +msgid "%d more files or folders" +msgstr "Mais %d arquivo(s) ou pasta(s)" + +#: editor/editor_node.cpp +#, fuzzy +msgid "%d more folders" +msgstr "Mais %d arquivo(s)" + +#: editor/editor_node.cpp +#, fuzzy +msgid "%d more files" msgstr "Mais %d arquivo(s)" #: editor/editor_node.cpp -msgid "%d more file(s) or folder(s)" -msgstr "Mais %d arquivo(s) ou pasta(s)" +msgid "Dock Position" +msgstr "" #: editor/editor_node.cpp msgid "Distraction Free Mode" @@ -1787,6 +1829,11 @@ msgid "Toggle distraction-free mode." msgstr "Alternar modo sem-distrações." #: editor/editor_node.cpp +#, fuzzy +msgid "Add a new scene." +msgstr "Adicionar novas trilhas." + +#: editor/editor_node.cpp msgid "Scene" msgstr "Cena" @@ -1851,13 +1898,12 @@ msgid "TileSet.." msgstr "TileSet..." #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp -#: scene/gui/text_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Undo" msgstr "Desfazer" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp +#: scene/gui/line_edit.cpp msgid "Redo" msgstr "Refazer" @@ -2014,7 +2060,7 @@ msgstr "Classes" #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp msgid "Online Docs" -msgstr "Docs Online" +msgstr "Documentação Online" #: editor/editor_node.cpp msgid "Q&A" @@ -2263,9 +2309,8 @@ msgid "Frame %" msgstr "% de Quadro" #: editor/editor_profiler.cpp -#, fuzzy msgid "Physics Frame %" -msgstr "% de Quadro Fixo" +msgstr "Quadro Físico %" #: editor/editor_profiler.cpp editor/script_editor_debugger.cpp msgid "Time:" @@ -2361,6 +2406,11 @@ msgid "(Current)" msgstr "(Atual)" #: editor/export_template_manager.cpp +#, fuzzy +msgid "Retrieving mirrors, please wait.." +msgstr "Erro na conexão, por favor tente novamente." + +#: editor/export_template_manager.cpp msgid "Remove template version '%s'?" msgstr "Remover versão '%s' do modelo?" @@ -2397,6 +2447,112 @@ msgid "Importing:" msgstr "Importando:" #: editor/export_template_manager.cpp +msgid "" +"No download links found for this version. Direct download is only available " +"for official releases." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't resolve." +msgstr "Não foi possível resolver." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't connect." +msgstr "Não foi possível conectar." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "No response." +msgstr "Sem resposta." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Req. Failed." +msgstr "Sol. Falhou." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Redirect Loop." +msgstr "Loop de Redirecionamento." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Failed:" +msgstr "Falhou:" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't write file." +msgstr "Não foi possível escrever o arquivo:\n" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Download Complete." +msgstr "Erro no Download" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Error requesting url: " +msgstr "Erro ao salvar atlas:" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connecting to Mirror.." +msgstr "Conectando.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Disconnected" +msgstr "Disconectar" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Resolving" +msgstr "Resolvendo..." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't Resolve" +msgstr "Não foi possível resolver." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Connecting.." +msgstr "Conectando.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't Conect" +msgstr "Não foi possível conectar." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connected" +msgstr "Conectar" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Requesting.." +msgstr "Solicitando.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Downloading" +msgstr "Download" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connection Error" +msgstr "Conectando.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "SSL Handshake Error" +msgstr "Erros de Carregamento" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "Versão Atual:" @@ -2420,6 +2576,16 @@ msgstr "Selecione o arquivo de modelo" msgid "Export Template Manager" msgstr "Gerenciador de Modelos de Exportação" +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Download Templates" +msgstr "Modelos" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Select mirror from list: " +msgstr "Selecione um dispositivo da lista" + #: editor/file_type_cache.cpp msgid "Can't open file_type_cache.cch for writing, not saving file type cache!" msgstr "" @@ -2427,8 +2593,8 @@ msgstr "" "não salvo!" #: editor/filesystem_dock.cpp -msgid "Cannot navigate to '" -msgstr "Não é possível navegar para '" +msgid "Cannot navigate to '%s' as it has not been found in the file system!" +msgstr "" #: editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails" @@ -2448,14 +2614,6 @@ msgstr "" "importe manualmente." #: editor/filesystem_dock.cpp -msgid "" -"\n" -"Source: " -msgstr "" -"\n" -"Origem: " - -#: editor/filesystem_dock.cpp msgid "Cannot move/rename resources root." msgstr "Não foi possível mover/renomear raiz dos recurso." @@ -2715,8 +2873,8 @@ msgid "Remove Poly And Point" msgstr "Remover Polígono e Ponto" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." +#, fuzzy +msgid "Create a new polygon from scratch" msgstr "Criar um novo polígono do zero." #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -2731,6 +2889,11 @@ msgstr "" "Ctrl+LMB: Soltar Segmento.\n" "RMB: Apagar Ponto." +#: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy +msgid "Delete points" +msgstr "Excluir Ponto" + #: editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" msgstr "Alternar Inicio automático" @@ -3068,18 +3231,10 @@ msgid "Can't resolve hostname:" msgstr "Não foi possível resolver o hostname:" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't resolve." -msgstr "Não foi possível resolver." - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Connection error, please try again." msgstr "Erro na conexão, por favor tente novamente." #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't connect." -msgstr "Não foi possível conectar." - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Can't connect to host:" msgstr "Não foi possível conectar ao host:" @@ -3088,30 +3243,14 @@ msgid "No response from host:" msgstr "Sem resposta do host:" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "No response." -msgstr "Sem resposta." - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, return code:" msgstr "Solicitação falhou, código de retorno:" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Req. Failed." -msgstr "Sol. Falhou." - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, too many redirects" msgstr "Solicitação falhou, redirecionamentos demais" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Redirect Loop." -msgstr "Loop de Redirecionamento." - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Failed:" -msgstr "Falhou:" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Bad download hash, assuming file has been tampered with." msgstr "Hash de download ruim, assumindo que o arquivo foi adulterado." @@ -3137,15 +3276,7 @@ msgstr "Procurando:" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Resolving.." -msgstr "Resolvendo.." - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Connecting.." -msgstr "Conectando.." - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Requesting.." -msgstr "Solicitando.." +msgstr "Resolvendo..." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Error making request" @@ -3260,6 +3391,39 @@ msgid "Move Action" msgstr "Ação de Mover" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create new vertical guide" +msgstr "Criar novo arquivo de script" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove vertical guide" +msgstr "Remover Variável" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Move horizontal guide" +msgstr "Mover Ponto na Curva" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create new horizontal guide" +msgstr "Criar novo arquivo de script" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove horizontal guide" +msgstr "Remover Chaves Invalidas" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new horizontal and vertical guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Edit IK Chain" msgstr "Editar Cadeia de IK" @@ -3384,10 +3548,17 @@ msgid "Snap to other nodes" msgstr "Encaixar em outros nós" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Snap to guides" +msgstr "Encaixar na grade" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Lock the selected object in place (can't be moved)." msgstr "Travar o objeto selecionado no local (não pode ser movido)." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Unlock the selected object (can be moved)." msgstr "Destravar o objeto selecionado (pode ser movido)." @@ -3438,6 +3609,11 @@ msgid "Show rulers" msgstr "Mostrar réguas" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Show guides" +msgstr "Mostrar réguas" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Selection" msgstr "Centralizar Seleção" @@ -3624,6 +3800,10 @@ msgstr "Alternar Curva Targente Linear" msgid "Hold Shift to edit tangents individually" msgstr "Segure Shift para editar tangentes individualmente" +#: editor/plugins/gi_probe_editor_plugin.cpp +msgid "Bake GI Probe" +msgstr "" + #: editor/plugins/gradient_editor_plugin.cpp msgid "Add/Remove Color Ramp Point" msgstr "Adicionar/Remover Ponto na Curva de Cor" @@ -3658,6 +3838,10 @@ msgid "Create Occluder Polygon" msgstr "Criar Polígono de Oclusão" #: editor/plugins/light_occluder_2d_editor_plugin.cpp +msgid "Create a new polygon from scratch." +msgstr "Criar um novo polígono do zero." + +#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Edit existing polygon:" msgstr "Editar polígono existente:" @@ -3673,58 +3857,6 @@ msgstr "Ctrl+LMB: Dividir Segmento." msgid "RMB: Erase Point." msgstr "RMB: Apagar Ponto." -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Remove Point from Line2D" -msgstr "Remover Ponto de Line2D" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Add Point to Line2D" -msgstr "Adicionar Ponto ao Line2D" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Move Point in Line2D" -msgstr "Mover Ponto em Line2D" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Select Points" -msgstr "Selecionar Pontos" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Shift+Drag: Select Control Points" -msgstr "Shift+Arrastar: Selecionar Pontos de Controle" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Click: Add Point" -msgstr "Clique: Adicionar Ponto" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Right Click: Delete Point" -msgstr "Clique Direito: Excluir Ponto" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Add Point (in empty space)" -msgstr "Adicionar Ponto (em espaço vazio)" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Split Segment (in line)" -msgstr "Dividir Segmento (em linha)" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Delete Point" -msgstr "Excluir Ponto" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "Mesh está vazia!" @@ -3939,7 +4071,6 @@ msgid "Eroding walkable area..." msgstr "Erodindo área caminhável..." #: editor/plugins/navigation_mesh_generator.cpp -#, fuzzy msgid "Partitioning..." msgstr "Particionando..." @@ -4125,16 +4256,46 @@ msgid "Move Out-Control in Curve" msgstr "Mover Controle de Saída na Curva" #: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Select Points" +msgstr "Selecionar Pontos" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Shift+Drag: Select Control Points" +msgstr "Shift+Arrastar: Selecionar Pontos de Controle" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Click: Add Point" +msgstr "Clique: Adicionar Ponto" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Right Click: Delete Point" +msgstr "Clique Direito: Excluir Ponto" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Select Control Points (Shift+Drag)" msgstr "Selecionar Pontos de Controle (Shift+Arrastar)" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Add Point (in empty space)" +msgstr "Adicionar Ponto (em espaço vazio)" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Split Segment (in curve)" msgstr "Dividir Segmentos (na curva)" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Delete Point" +msgstr "Excluir Ponto" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Close Curve" msgstr "Fechar Curva" @@ -4271,7 +4432,6 @@ msgstr "Carregar Recurso" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Paste" @@ -4318,6 +4478,21 @@ msgid " Class Reference" msgstr " Referência de Classes" #: editor/plugins/script_editor_plugin.cpp +#, fuzzy +msgid "Sort" +msgstr "Ordenar:" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Up" +msgstr "Mover para Cima" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Down" +msgstr "Mover para Baixo" + +#: editor/plugins/script_editor_plugin.cpp msgid "Next script" msgstr "Próximo Script" @@ -4369,6 +4544,10 @@ msgstr "Fechar Docs" msgid "Close All" msgstr "Fechar Tudo" +#: editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "Rodar" @@ -4379,13 +4558,11 @@ msgstr "Alternar Painel de Scripts" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find.." msgstr "Localizar..." #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Next" msgstr "Localizar próximo" @@ -4493,33 +4670,22 @@ msgstr "Minúscula" msgid "Capitalize" msgstr "Capitalizar" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" msgstr "Recortar" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Copy" msgstr "Copiar" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Select All" msgstr "Selecionar Tudo" -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Up" -msgstr "Mover para Cima" - -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Down" -msgstr "Mover para Baixo" - #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "Excluir Linha" @@ -4541,6 +4707,23 @@ msgid "Clone Down" msgstr "Clonar Abaixo" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Fold Line" +msgstr "Ir para Linha" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold Line" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Fold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Complete Symbol" msgstr "Completar Símbolo" @@ -4586,12 +4769,10 @@ msgid "Convert To Lowercase" msgstr "Converter Para Minúsculo" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Previous" msgstr "Encontrar Anterior" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Replace.." msgstr "Substituir..." @@ -4600,7 +4781,6 @@ msgid "Goto Function.." msgstr "Ir para Função..." #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Goto Line.." msgstr "Ir para linha..." @@ -4765,6 +4945,16 @@ msgid "View Plane Transform." msgstr "Visualizar Transformação do Plano." #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Scaling: " +msgstr "Escala:" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Translating: " +msgstr "Traduções:" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Rotating %s degrees." msgstr "Rotacionando %s degraus." @@ -4845,6 +5035,10 @@ msgid "Vertices" msgstr "Vértices" #: editor/plugins/spatial_editor_plugin.cpp +msgid "FPS" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Align with view" msgstr "Alinhar com Visão" @@ -4877,6 +5071,16 @@ msgid "View Information" msgstr "VIsualizar Informação" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "View FPS" +msgstr "Ver Arquivos" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Half Resolution" +msgstr "Mudar Escala da Seleção" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Audio Listener" msgstr "Ouvinte de Áudio" @@ -5007,6 +5211,11 @@ msgid "Tool Scale" msgstr "Ferramenta Escalar" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Toggle Freelook" +msgstr "Alternar Tela-Cheia" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Transform" msgstr "Transformação" @@ -5258,11 +5467,11 @@ msgstr "Remover Tudo" #: editor/plugins/theme_editor_plugin.cpp msgid "Edit theme.." -msgstr "" +msgstr "Editar tema.." #: editor/plugins/theme_editor_plugin.cpp msgid "Theme editing menu." -msgstr "" +msgstr "Menu de edição de tema." #: editor/plugins/theme_editor_plugin.cpp msgid "Add Class Items" @@ -5281,6 +5490,11 @@ msgid "Create Empty Editor Template" msgstr "Criar Modelo de Editor Vazio" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Create From Current Editor Theme" +msgstr "Criar Modelo de Editor Vazio" + +#: editor/plugins/theme_editor_plugin.cpp msgid "CheckBox Radio1" msgstr "Rádio Checkbox 1" @@ -5454,7 +5668,8 @@ msgid "Runnable" msgstr "Executável" #: editor/project_export.cpp -msgid "Delete patch '" +#, fuzzy +msgid "Delete patch '%s' from list?" msgstr "Deletar alteração '" #: editor/project_export.cpp @@ -5552,6 +5767,7 @@ msgid "Export With Debug" msgstr "Exportar Com Depuração" #: editor/project_manager.cpp +#, fuzzy msgid "The path does not exist." msgstr "O caminho não existe." @@ -5691,6 +5907,9 @@ msgid "" "Language changed.\n" "The UI will update next time the editor or project manager starts." msgstr "" +"Linguagem alterada.\n" +"A interface será atualizada na próxima vez que o editor ou o gerenciador de " +"projetos iniciar." #: editor/project_manager.cpp msgid "" @@ -5725,9 +5944,8 @@ msgid "Exit" msgstr "Sair" #: editor/project_manager.cpp -#, fuzzy msgid "Restart Now" -msgstr "Reinício (s):" +msgstr "Reiniciar Agora" #: editor/project_manager.cpp msgid "Can't run project" @@ -5766,10 +5984,6 @@ msgid "Add Input Action Event" msgstr "Adicionar Evento Ação de Entrada" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Meta+" -msgstr "Meta+" - -#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp msgid "Shift+" msgstr "Shift+" @@ -5891,12 +6105,13 @@ msgid "Select a setting item first!" msgstr "Selecione um item de configuração primeiro!" #: editor/project_settings_editor.cpp -msgid "No property '" +#, fuzzy +msgid "No property '%s' exists." msgstr "Não existe a propriedade '" #: editor/project_settings_editor.cpp -msgid "Setting '" -msgstr "Configuração '" +msgid "Setting '%s' is internal, and it can't be deleted." +msgstr "" #: editor/project_settings_editor.cpp msgid "Delete Item" @@ -5951,13 +6166,12 @@ msgid "Remove Resource Remap Option" msgstr "Remover Opção de Remapeamento de Recurso" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Changed Locale Filter" -msgstr "Mudar Tempo de Mistura" +msgstr "FIltro de Idiomas Alterado" #: editor/project_settings_editor.cpp msgid "Changed Locale Filter Mode" -msgstr "" +msgstr "Modo do Filtro de Idiomas Alterado" #: editor/project_settings_editor.cpp msgid "Project Settings (project.godot)" @@ -6020,28 +6234,24 @@ msgid "Locale" msgstr "Localidade" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Locales Filter" -msgstr "Filtrar Imagens:" +msgstr "Filtro de Idiomas" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Show all locales" -msgstr "Mostrar Ossos" +msgstr "Mostrar todos os idiomas" #: editor/project_settings_editor.cpp msgid "Show only selected locales" -msgstr "" +msgstr "Mostrar apenas os idiomas selecionados" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Filter mode:" -msgstr "Filtrar nós" +msgstr "Modo de filtragem:" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Locales:" -msgstr "Localidade" +msgstr "Idiomas:" #: editor/project_settings_editor.cpp msgid "AutoLoad" @@ -6373,6 +6583,16 @@ msgid "Clear a script for the selected node." msgstr "Remove um script do nó selecionado." #: editor/scene_tree_dock.cpp +#, fuzzy +msgid "Remote" +msgstr "Remover" + +#: editor/scene_tree_dock.cpp +#, fuzzy +msgid "Local" +msgstr "Localidade" + +#: editor/scene_tree_dock.cpp msgid "Clear Inheritance? (No Undo!)" msgstr "Limpar Herança? (Irreversível!)" @@ -6397,7 +6617,7 @@ msgid "" "Node has connection(s) and group(s)\n" "Click to show signals dock." msgstr "" -"O nó tem conexões e grupos\n" +"O nó tem conexão(ões) e grupo(s)\n" "Clique para mostrar o painel de sinais." #: editor/scene_tree_editor.cpp @@ -6413,7 +6633,7 @@ msgid "" "Node is in group(s).\n" "Click to show groups dock." msgstr "" -"O nó tem grupos.\n" +"O nó está em grupo(s).\n" "Clique para mostrar o painel de grupos." #: editor/scene_tree_editor.cpp @@ -6565,6 +6785,11 @@ msgid "Attach Node Script" msgstr "Adicionar Script ao Nó" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Remote " +msgstr "Remover" + +#: editor/script_editor_debugger.cpp msgid "Bytes:" msgstr "Bytes:" @@ -6621,18 +6846,6 @@ msgid "Stack Trace (if applicable):" msgstr "Pilha de Rastreamento (se aplicável):" #: editor/script_editor_debugger.cpp -msgid "Remote Inspector" -msgstr "Inspetor Remoto" - -#: editor/script_editor_debugger.cpp -msgid "Live Scene Tree:" -msgstr "Árvore de Cena ao vivo:" - -#: editor/script_editor_debugger.cpp -msgid "Remote Object Properties: " -msgstr "Propriedades do Objeto Remoto: " - -#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "Profiler" @@ -6764,51 +6977,51 @@ msgstr "Bibliotecas: " msgid "GDNative" msgstr "GDNative" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Invalid type argument to convert(), use TYPE_* constants." msgstr "Argumento de tipo inválido para convert(), use constantes TYPE_*." -#: modules/gdscript/gd_functions.cpp modules/mono/glue/glue_header.h +#: modules/gdscript/gdscript_functions.cpp modules/mono/glue/glue_header.h #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Not enough bytes for decoding bytes, or invalid format." msgstr "Não há bytes suficientes para decodificar, ou o formato é inválido." -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "step argument is zero!" msgstr "o argumento step é zero!" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not a script with an instance" msgstr "Não é um script com uma instância" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a script" msgstr "Não é baseado em um script" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a resource file" msgstr "Não é baseado em um arquivo de recurso" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (missing @path)" msgstr "Formato de dicionário de instância inválido (faltando @path)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (can't load script at @path)" msgstr "" "Formato de dicionário de instância inválido (não foi possível carregar o " "script em @path)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (invalid script at @path)" msgstr "Formato de dicionário de instância inválido (script inválido em @path)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary (invalid subclasses)" msgstr "Dicionário de instância inválido (subclasses inválidas)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Object can't provide a length." msgstr "Objeto não pôde fornecer um comprimento." @@ -6821,16 +7034,26 @@ msgid "GridMap Duplicate Selection" msgstr "Duplicar Seleção do GridMap" #: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Floor:" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +#, fuzzy +msgid "Grid Map" +msgstr "Snap de Grade" + +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Snap View" msgstr "Ancorar Vista" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Prev Level (%sDown Wheel)" -msgstr "Nível anterior (" +#, fuzzy +msgid "Previous Floor" +msgstr "Guia anterior" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Next Level (%sUp Wheel)" -msgstr "Nível seguinte (" +msgid "Next Floor" +msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clip Disabled" @@ -6897,12 +7120,9 @@ msgid "Erase Area" msgstr "Apagar Área" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Selection -> Duplicate" -msgstr "Seleção -> Duplicar" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Selection -> Clear" -msgstr "Seleção -> Limpar" +#, fuzzy +msgid "Clear Selection" +msgstr "Centralizar Seleção" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Settings" @@ -7029,7 +7249,8 @@ msgid "Duplicate VisualScript Nodes" msgstr "Duplicar Nós VisualScript" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Getter. Hold Shift to drop a generic signature." +#, fuzzy +msgid "Hold %s to drop a Getter. Hold Shift to drop a generic signature." msgstr "" "Segure Meta para aplicar um Getter. Segure Shift para aplicar uma assinatura " "genérica." @@ -7041,7 +7262,8 @@ msgstr "" "genérica." #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a simple reference to the node." +#, fuzzy +msgid "Hold %s to drop a simple reference to the node." msgstr "Segure Meta para aplicar uma referência simples ao nó." #: modules/visual_script/visual_script_editor.cpp @@ -7049,7 +7271,8 @@ msgid "Hold Ctrl to drop a simple reference to the node." msgstr "Segure Ctrl para aplicar uma referência ao nó." #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Variable Setter." +#, fuzzy +msgid "Hold %s to drop a Variable Setter." msgstr "Segure Meta para aplicar um Setter de Variável." #: modules/visual_script/visual_script_editor.cpp @@ -7279,12 +7502,23 @@ msgid "Could not write file:\n" msgstr "Não foi possível escrever o arquivo:\n" #: platform/javascript/export/export.cpp -msgid "Could not read file:\n" +msgid "Could not open template for export:\n" +msgstr "Não foi possível abrir o modelo para exportar:\n" + +#: platform/javascript/export/export.cpp +#, fuzzy +msgid "Invalid export template:\n" +msgstr "Instalar Models de Exportação" + +#: platform/javascript/export/export.cpp +#, fuzzy +msgid "Could not read custom HTML shell:\n" msgstr "Não foi possível ler o arquivo:\n" #: platform/javascript/export/export.cpp -msgid "Could not open template for export:\n" -msgstr "Não foi possível abrir o modelo para exportar:\n" +#, fuzzy +msgid "Could not read boot splash image file:\n" +msgstr "Não foi possível ler o arquivo:\n" #: scene/2d/animated_sprite.cpp msgid "" @@ -7406,22 +7640,6 @@ msgstr "" "A propriedade \"Caminho\" deve apontar para um nó Node2D válido para " "funcionar." -#: 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 "" -"A propriedade \"Caminho\" deve apontar a um nó Viewport para funcionar. Tal " -"Viewport deve estar no modo \"Destino de Render\"." - -#: 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 "" -"O nó Viewport definido na propriedade \"Caminho\" deve ser marcado como " -"\"destino de render\" para que este sprite funcione." - #: scene/2d/visibility_notifier_2d.cpp msgid "" "VisibilityEnable2D works best when used with the edited scene root directly " @@ -7494,6 +7712,15 @@ msgstr "" "Uma forma deve ser fornecida para que o nó CollisionShape fucione. Por " "favor, crie um recurso de forma a ele!" +#: scene/3d/gi_probe.cpp +#, fuzzy +msgid "Plotting Meshes" +msgstr "Fazendo Blitting das Imagens" + +#: scene/3d/gi_probe.cpp +msgid "Finishing Plot" +msgstr "" + #: scene/3d/navigation_mesh.cpp msgid "A NavigationMesh resource must be set or created for this node to work." msgstr "" @@ -7591,6 +7818,10 @@ msgstr "" "Use um container como filho (VBox, HBox, etc) ou um Control e defina o " "tamanho mínimo manualmente." +#: scene/gui/tree.cpp +msgid "(Other)" +msgstr "" + #: scene/main/scene_tree.cpp msgid "" "Default Environment as specified in Project Setings (Rendering -> Viewport -" @@ -7627,6 +7858,69 @@ msgstr "Erro ao carregar fonte." msgid "Invalid font size." msgstr "Tamanho de fonte inválido." +#~ msgid "Cannot navigate to '" +#~ msgstr "Não é possível navegar para '" + +#~ msgid "" +#~ "\n" +#~ "Source: " +#~ msgstr "" +#~ "\n" +#~ "Origem: " + +#~ msgid "Remove Point from Line2D" +#~ msgstr "Remover Ponto de Line2D" + +#~ msgid "Add Point to Line2D" +#~ msgstr "Adicionar Ponto ao Line2D" + +#~ msgid "Move Point in Line2D" +#~ msgstr "Mover Ponto em Line2D" + +#~ msgid "Split Segment (in line)" +#~ msgstr "Dividir Segmento (em linha)" + +#~ msgid "Meta+" +#~ msgstr "Meta+" + +#~ msgid "Setting '" +#~ msgstr "Configuração '" + +#~ msgid "Remote Inspector" +#~ msgstr "Inspetor Remoto" + +#~ msgid "Live Scene Tree:" +#~ msgstr "Árvore de Cena ao vivo:" + +#~ msgid "Remote Object Properties: " +#~ msgstr "Propriedades do Objeto Remoto: " + +#~ msgid "Prev Level (%sDown Wheel)" +#~ msgstr "Nível anterior (" + +#~ msgid "Next Level (%sUp Wheel)" +#~ msgstr "Nível seguinte (" + +#~ msgid "Selection -> Duplicate" +#~ msgstr "Seleção -> Duplicar" + +#~ msgid "Selection -> Clear" +#~ msgstr "Seleção -> Limpar" + +#~ msgid "" +#~ "Path property must point to a valid Viewport node to work. Such Viewport " +#~ "must be set to 'render target' mode." +#~ msgstr "" +#~ "A propriedade \"Caminho\" deve apontar a um nó Viewport para funcionar. " +#~ "Tal Viewport deve estar no modo \"Destino de Render\"." + +#~ msgid "" +#~ "The Viewport set in the path property must be set as 'render target' in " +#~ "order for this sprite to work." +#~ msgstr "" +#~ "O nó Viewport definido na propriedade \"Caminho\" deve ser marcado como " +#~ "\"destino de render\" para que este sprite funcione." + #~ msgid "Filter:" #~ msgstr "Filtro:" @@ -7651,9 +7945,6 @@ msgstr "Tamanho de fonte inválido." #~ msgid "Removed:" #~ msgstr "Removido:" -#~ msgid "Error saving atlas:" -#~ msgstr "Erro ao salvar atlas:" - #~ msgid "Could not save atlas subtexture:" #~ msgstr "Não foi possível salvar Subtextura do Atlas:" @@ -8042,9 +8333,6 @@ msgstr "Tamanho de fonte inválido." #~ msgid "Cropping Images" #~ msgstr "Aparando Imagens" -#~ msgid "Blitting Images" -#~ msgstr "Fazendo Blitting das Imagens" - #~ msgid "Couldn't save atlas image:" #~ msgstr "Não se pôde salva imagem de atlas:" @@ -8386,9 +8674,6 @@ msgstr "Tamanho de fonte inválido." #~ msgid "Save Translatable Strings" #~ msgstr "Salvar Strings Traduzíveis" -#~ msgid "Install Export Templates" -#~ msgstr "Instalar Models de Exportação" - #~ msgid "Edit Script Options" #~ msgstr "Editar Opções de Script" diff --git a/editor/translations/pt_PT.po b/editor/translations/pt_PT.po index 4b4a98857c..e59a516556 100644 --- a/editor/translations/pt_PT.po +++ b/editor/translations/pt_PT.po @@ -6,19 +6,20 @@ # António Sarmento <antonio.luis.sarmento@gmail.com>, 2016. # João Graça <jgraca95@gmail.com>, 2017. # Rueben Stevens <supercell03@gmail.com>, 2017. +# Vinicius Gonçalves <viniciusgoncalves21@gmail.com>, 2017. # msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2017-10-25 01:48+0000\n" -"Last-Translator: Rueben Stevens <supercell03@gmail.com>\n" +"PO-Revision-Date: 2017-11-10 17:48+0000\n" +"Last-Translator: Vinicius Gonçalves <viniciusgoncalves21@gmail.com>\n" "Language-Team: Portuguese (Portugal) <https://hosted.weblate.org/projects/" "godot-engine/godot/pt_PT/>\n" "Language: pt_PT\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.17\n" +"X-Generator: Weblate 2.18-dev\n" #: editor/animation_editor.cpp msgid "Disabled" @@ -35,7 +36,7 @@ msgstr "Mover Chave Adcionada" #: editor/animation_editor.cpp msgid "Anim Change Transition" -msgstr "" +msgstr "Mudar Transição da Animação" #: editor/animation_editor.cpp msgid "Anim Change Transform" @@ -43,19 +44,19 @@ msgstr "" #: editor/animation_editor.cpp msgid "Anim Change Value" -msgstr "" +msgstr "Anim Muda Valor" #: editor/animation_editor.cpp msgid "Anim Change Call" -msgstr "" +msgstr "Chama Mudança Animação" #: editor/animation_editor.cpp msgid "Anim Add Track" -msgstr "" +msgstr "Anim Adiciona Track" #: editor/animation_editor.cpp msgid "Anim Duplicate Keys" -msgstr "" +msgstr "Anim Duplica Chaves" #: editor/animation_editor.cpp msgid "Move Anim Track Up" @@ -103,6 +104,7 @@ msgid "Anim Delete Keys" msgstr "" #: editor/animation_editor.cpp editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Duplicate Selection" msgstr "Duplicar Selecção" @@ -632,6 +634,13 @@ msgstr "" msgid "Search Replacement Resource:" msgstr "" +#: editor/dependency_editor.cpp editor/editor_file_dialog.cpp +#: editor/editor_help.cpp editor/editor_node.cpp editor/filesystem_dock.cpp +#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp +#: editor/quick_open.cpp scene/gui/file_dialog.cpp +msgid "Open" +msgstr "" + #: editor/dependency_editor.cpp msgid "Owners Of:" msgstr "" @@ -702,6 +711,15 @@ msgstr "" msgid "Delete" msgstr "" +#: editor/dictionary_property_edit.cpp +msgid "Change Dictionary Key" +msgstr "" + +#: editor/dictionary_property_edit.cpp +#, fuzzy +msgid "Change Dictionary Value" +msgstr "Anim Muda Valor" + #: editor/editor_about.cpp msgid "Thanks from the Godot community!" msgstr "" @@ -1120,12 +1138,6 @@ msgstr "" msgid "All Files (*)" msgstr "" -#: editor/editor_file_dialog.cpp editor/editor_help.cpp editor/editor_node.cpp -#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_selector.cpp editor/quick_open.cpp scene/gui/file_dialog.cpp -msgid "Open" -msgstr "" - #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Open a File" msgstr "" @@ -1481,6 +1493,13 @@ msgid "" msgstr "" #: editor/editor_node.cpp +msgid "" +"This is a remote object so changes to it will not be kept.\n" +"Please read the documentation relevant to debugging to better understand " +"this workflow." +msgstr "" + +#: editor/editor_node.cpp msgid "Copy Params" msgstr "" @@ -1590,6 +1609,10 @@ msgid "Export Mesh Library" msgstr "" #: editor/editor_node.cpp +msgid "This operation can't be done without a root node." +msgstr "" + +#: editor/editor_node.cpp msgid "Export Tile Set" msgstr "" @@ -1715,11 +1738,19 @@ msgid "Switch Scene Tab" msgstr "" #: editor/editor_node.cpp -msgid "%d more file(s)" +msgid "%d more files or folders" msgstr "" #: editor/editor_node.cpp -msgid "%d more file(s) or folder(s)" +msgid "%d more folders" +msgstr "" + +#: editor/editor_node.cpp +msgid "%d more files" +msgstr "" + +#: editor/editor_node.cpp +msgid "Dock Position" msgstr "" #: editor/editor_node.cpp @@ -1731,6 +1762,11 @@ msgid "Toggle distraction-free mode." msgstr "" #: editor/editor_node.cpp +#, fuzzy +msgid "Add a new scene." +msgstr "Adicionar novas bandas." + +#: editor/editor_node.cpp msgid "Scene" msgstr "" @@ -1795,13 +1831,12 @@ msgid "TileSet.." msgstr "" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp -#: scene/gui/text_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Undo" msgstr "" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp +#: scene/gui/line_edit.cpp msgid "Redo" msgstr "" @@ -2283,6 +2318,10 @@ msgid "(Current)" msgstr "" #: editor/export_template_manager.cpp +msgid "Retrieving mirrors, please wait.." +msgstr "" + +#: editor/export_template_manager.cpp msgid "Remove template version '%s'?" msgstr "" @@ -2317,6 +2356,101 @@ msgid "Importing:" msgstr "" #: editor/export_template_manager.cpp +msgid "" +"No download links found for this version. Direct download is only available " +"for official releases." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't resolve." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't connect." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "No response." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Req. Failed." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Redirect Loop." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Failed:" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Can't write file." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Download Complete." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Error requesting url: " +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Connecting to Mirror.." +msgstr "" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Disconnected" +msgstr "Discreto" + +#: editor/export_template_manager.cpp +msgid "Resolving" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Can't Resolve" +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Connecting.." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Can't Conect" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Connected" +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Requesting.." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Downloading" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Connection Error" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "SSL Handshake Error" +msgstr "" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "" @@ -2341,12 +2475,21 @@ msgstr "" msgid "Export Template Manager" msgstr "" +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Download Templates" +msgstr "Remover Variável" + +#: editor/export_template_manager.cpp +msgid "Select mirror from list: " +msgstr "" + #: editor/file_type_cache.cpp msgid "Can't open file_type_cache.cch for writing, not saving file type cache!" msgstr "" #: editor/filesystem_dock.cpp -msgid "Cannot navigate to '" +msgid "Cannot navigate to '%s' as it has not been found in the file system!" msgstr "" #: editor/filesystem_dock.cpp @@ -2364,12 +2507,6 @@ msgid "" msgstr "" #: editor/filesystem_dock.cpp -msgid "" -"\n" -"Source: " -msgstr "" - -#: editor/filesystem_dock.cpp msgid "Cannot move/rename resources root." msgstr "" @@ -2628,8 +2765,7 @@ msgid "Remove Poly And Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." +msgid "Create a new polygon from scratch" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -2640,6 +2776,11 @@ msgid "" "RMB: Erase Point." msgstr "" +#: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy +msgid "Delete points" +msgstr "Apagar Seleccionados" + #: editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" msgstr "" @@ -2975,18 +3116,10 @@ msgid "Can't resolve hostname:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't resolve." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Connection error, please try again." msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't connect." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Can't connect to host:" msgstr "" @@ -2995,30 +3128,14 @@ msgid "No response from host:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "No response." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, return code:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Req. Failed." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, too many redirects" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Redirect Loop." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Failed:" -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Bad download hash, assuming file has been tampered with." msgstr "" @@ -3047,14 +3164,6 @@ msgid "Resolving.." msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Connecting.." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Requesting.." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Error making request" msgstr "" @@ -3167,6 +3276,36 @@ msgid "Move Action" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove vertical guide" +msgstr "Remover Variável" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move horizontal guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new horizontal guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove horizontal guide" +msgstr "Remover Variável" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new horizontal and vertical guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Edit IK Chain" msgstr "" @@ -3288,10 +3427,16 @@ msgid "Snap to other nodes" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snap to guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Lock the selected object in place (can't be moved)." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Unlock the selected object (can be moved)." msgstr "" @@ -3342,6 +3487,10 @@ msgid "Show rulers" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Show guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Selection" msgstr "" @@ -3530,6 +3679,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/gi_probe_editor_plugin.cpp +msgid "Bake GI Probe" +msgstr "" + #: editor/plugins/gradient_editor_plugin.cpp msgid "Add/Remove Color Ramp Point" msgstr "" @@ -3562,6 +3715,10 @@ msgid "Create Occluder Polygon" msgstr "" #: editor/plugins/light_occluder_2d_editor_plugin.cpp +msgid "Create a new polygon from scratch." +msgstr "" + +#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Edit existing polygon:" msgstr "" @@ -3577,58 +3734,6 @@ msgstr "" msgid "RMB: Erase Point." msgstr "" -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Remove Point from Line2D" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Add Point to Line2D" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Move Point in Line2D" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Select Points" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Shift+Drag: Select Control Points" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Click: Add Point" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Right Click: Delete Point" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Add Point (in empty space)" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Split Segment (in line)" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Delete Point" -msgstr "" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "" @@ -4026,16 +4131,46 @@ msgid "Move Out-Control in Curve" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Select Points" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Shift+Drag: Select Control Points" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Click: Add Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Right Click: Delete Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Select Control Points (Shift+Drag)" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Add Point (in empty space)" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Split Segment (in curve)" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Delete Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Close Curve" msgstr "" @@ -4176,7 +4311,6 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Paste" @@ -4221,6 +4355,20 @@ msgid " Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +msgid "Sort" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Up" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Down" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Next script" msgstr "" @@ -4273,6 +4421,10 @@ msgstr "" msgid "Close All" msgstr "Fechar" +#: editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "" @@ -4283,13 +4435,11 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find.." msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Next" msgstr "" @@ -4393,33 +4543,22 @@ msgstr "" msgid "Capitalize" msgstr "" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Copy" msgstr "" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Select All" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Up" -msgstr "" - -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Down" -msgstr "" - #: editor/plugins/script_text_editor.cpp #, fuzzy msgid "Delete Line" @@ -4442,6 +4581,23 @@ msgid "Clone Down" msgstr "" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Fold Line" +msgstr "Apagar Seleccionados" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold Line" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Fold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Complete Symbol" msgstr "" @@ -4487,12 +4643,10 @@ msgid "Convert To Lowercase" msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Previous" msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Replace.." msgstr "" @@ -4501,7 +4655,6 @@ msgid "Goto Function.." msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Goto Line.." msgstr "" @@ -4666,6 +4819,15 @@ msgid "View Plane Transform." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Scaling: " +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Translating: " +msgstr "Transições" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Rotating %s degrees." msgstr "" @@ -4747,6 +4909,10 @@ msgid "Vertices" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "FPS" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Align with view" msgstr "" @@ -4779,6 +4945,15 @@ msgid "View Information" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "View FPS" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Half Resolution" +msgstr "Escalar Selecção" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Audio Listener" msgstr "" @@ -4907,6 +5082,11 @@ msgid "Tool Scale" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Toggle Freelook" +msgstr "Accionar Breakpoint" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Transform" msgstr "" @@ -5183,6 +5363,10 @@ msgid "Create Empty Editor Template" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Create From Current Editor Theme" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "CheckBox Radio1" msgstr "" @@ -5356,7 +5540,7 @@ msgid "Runnable" msgstr "" #: editor/project_export.cpp -msgid "Delete patch '" +msgid "Delete patch '%s' from list?" msgstr "" #: editor/project_export.cpp @@ -5651,10 +5835,6 @@ msgid "Add Input Action Event" msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Meta+" -msgstr "" - -#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp msgid "Shift+" msgstr "" @@ -5777,11 +5957,11 @@ msgid "Select a setting item first!" msgstr "" #: editor/project_settings_editor.cpp -msgid "No property '" +msgid "No property '%s' exists." msgstr "" #: editor/project_settings_editor.cpp -msgid "Setting '" +msgid "Setting '%s' is internal, and it can't be deleted." msgstr "" #: editor/project_settings_editor.cpp @@ -6251,6 +6431,15 @@ msgid "Clear a script for the selected node." msgstr "" #: editor/scene_tree_dock.cpp +#, fuzzy +msgid "Remote" +msgstr "Remover Sinal" + +#: editor/scene_tree_dock.cpp +msgid "Local" +msgstr "" + +#: editor/scene_tree_dock.cpp msgid "Clear Inheritance? (No Undo!)" msgstr "" @@ -6436,6 +6625,11 @@ msgid "Attach Node Script" msgstr "" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Remote " +msgstr "Remover Sinal" + +#: editor/script_editor_debugger.cpp msgid "Bytes:" msgstr "" @@ -6492,18 +6686,6 @@ msgid "Stack Trace (if applicable):" msgstr "" #: editor/script_editor_debugger.cpp -msgid "Remote Inspector" -msgstr "" - -#: editor/script_editor_debugger.cpp -msgid "Live Scene Tree:" -msgstr "" - -#: editor/script_editor_debugger.cpp -msgid "Remote Object Properties: " -msgstr "" - -#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -6635,52 +6817,52 @@ msgstr "" msgid "GDNative" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Invalid type argument to convert(), use TYPE_* constants." msgstr "Tipo de argumento inválido para convert(), use constantes TYPE_*." -#: modules/gdscript/gd_functions.cpp modules/mono/glue/glue_header.h +#: modules/gdscript/gdscript_functions.cpp modules/mono/glue/glue_header.h #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Not enough bytes for decoding bytes, or invalid format." msgstr "" "Número de bytes insuficientes para descodificar, ou o formato é inválido." -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "step argument is zero!" msgstr "o argumento \"step\" é zero!" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not a script with an instance" msgstr "Não é um script com uma instância" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a script" msgstr "Não é baseado num script" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a resource file" msgstr "Não é baseado num ficheiro de recurso" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (missing @path)" msgstr "Formato de dicionário de instância inválido (falta @path)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (can't load script at @path)" msgstr "" "Formato de dicionário de instância inválido (não foi possível carregar o " "script em @path)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (invalid script at @path)" msgstr "Formato de dicionário de instância inválido (script inválido em @path)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary (invalid subclasses)" msgstr "Dicionário de instância inválido (subclasses inválidas)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Object can't provide a length." msgstr "" @@ -6694,15 +6876,23 @@ msgid "GridMap Duplicate Selection" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Floor:" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Grid Map" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Snap View" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Prev Level (%sDown Wheel)" +msgid "Previous Floor" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Next Level (%sUp Wheel)" +msgid "Next Floor" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp @@ -6770,12 +6960,9 @@ msgid "Erase Area" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Selection -> Duplicate" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Selection -> Clear" -msgstr "" +#, fuzzy +msgid "Clear Selection" +msgstr "Escalar Selecção" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Settings" @@ -6906,7 +7093,7 @@ msgid "Duplicate VisualScript Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Getter. Hold Shift to drop a generic signature." +msgid "Hold %s to drop a Getter. Hold Shift to drop a generic signature." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -6914,7 +7101,7 @@ msgid "Hold Ctrl to drop a Getter. Hold Shift to drop a generic signature." msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a simple reference to the node." +msgid "Hold %s to drop a simple reference to the node." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -6922,7 +7109,7 @@ msgid "Hold Ctrl to drop a simple reference to the node." msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Variable Setter." +msgid "Hold %s to drop a Variable Setter." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -7154,11 +7341,20 @@ msgid "Could not write file:\n" msgstr "" #: platform/javascript/export/export.cpp -msgid "Could not read file:\n" +msgid "Could not open template for export:\n" msgstr "" #: platform/javascript/export/export.cpp -msgid "Could not open template for export:\n" +#, fuzzy +msgid "Invalid export template:\n" +msgstr "Nome de índice propriedade inválido." + +#: platform/javascript/export/export.cpp +msgid "Could not read custom HTML shell:\n" +msgstr "" + +#: platform/javascript/export/export.cpp +msgid "Could not read boot splash image file:\n" msgstr "" #: scene/2d/animated_sprite.cpp @@ -7250,18 +7446,6 @@ msgstr "" msgid "Path property must point to a valid Node2D node to work." 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 " @@ -7320,6 +7504,14 @@ msgid "" "shape resource for it!" msgstr "" +#: scene/3d/gi_probe.cpp +msgid "Plotting Meshes" +msgstr "" + +#: scene/3d/gi_probe.cpp +msgid "Finishing Plot" +msgstr "" + #: scene/3d/navigation_mesh.cpp msgid "A NavigationMesh resource must be set or created for this node to work." msgstr "" @@ -7397,6 +7589,10 @@ msgid "" "minimum size manually." msgstr "" +#: scene/gui/tree.cpp +msgid "(Other)" +msgstr "" + #: scene/main/scene_tree.cpp msgid "" "Default Environment as specified in Project Setings (Rendering -> Viewport -" diff --git a/editor/translations/ru.po b/editor/translations/ru.po index 05c164c3ee..d45f31ee8d 100644 --- a/editor/translations/ru.po +++ b/editor/translations/ru.po @@ -5,6 +5,7 @@ # # B10nicMachine <shumik1337@gmail.com>, 2017. # DimOkGamer <dimokgamer@gmail.com>, 2016-2017. +# Igor S <scorched@bk.ru>, 2017. # ijet <my-ijet@mail.ru>, 2017. # Maxim Kim <habamax@gmail.com>, 2016. # Maxim toby3d Lebedev <mail@toby3d.ru>, 2016. @@ -14,8 +15,8 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2017-10-26 14:49+0000\n" -"Last-Translator: ijet <my-ijet@mail.ru>\n" +"PO-Revision-Date: 2017-11-19 21:48+0000\n" +"Last-Translator: anonymous <>\n" "Language-Team: Russian <https://hosted.weblate.org/projects/godot-engine/" "godot/ru/>\n" "Language: ru\n" @@ -24,7 +25,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 2.17\n" +"X-Generator: Weblate 2.18-dev\n" #: editor/animation_editor.cpp msgid "Disabled" @@ -84,7 +85,7 @@ msgstr "Переименовать дорожку" #: editor/animation_editor.cpp msgid "Anim Track Change Interpolation" -msgstr "Изменить интреполяцию" +msgstr "Изменить интерполяцию" #: editor/animation_editor.cpp msgid "Anim Track Change Value Mode" @@ -107,6 +108,7 @@ msgid "Anim Delete Keys" msgstr "Удалить ключи" #: editor/animation_editor.cpp editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Duplicate Selection" msgstr "Дублировать выделенное" @@ -250,11 +252,11 @@ msgstr "Масштаб анимации." #: editor/animation_editor.cpp msgid "Length (s):" -msgstr "Длинна (сек.):" +msgstr "Длина (сек.):" #: editor/animation_editor.cpp msgid "Animation length (in seconds)." -msgstr "Длинна анимации (в секундах)." +msgstr "Длина анимации (в секундах)." #: editor/animation_editor.cpp msgid "Step (s):" @@ -338,7 +340,7 @@ msgstr "Удалить недопустимые ключи" #: editor/animation_editor.cpp msgid "Remove unresolved and empty tracks" -msgstr "Удалить не разрешенные и пустые дорожки" +msgstr "Удалить неразрешённые и пустые дорожки" #: editor/animation_editor.cpp msgid "Clean-up all animations" @@ -358,7 +360,7 @@ msgstr "Изменить размер Массива" #: editor/array_property_edit.cpp msgid "Change Array Value Type" -msgstr "Изменение типа значения массива" +msgstr "Изменить тип значения массива" #: editor/array_property_edit.cpp msgid "Change Array Value" @@ -642,6 +644,13 @@ msgstr "Редактор зависимостей" msgid "Search Replacement Resource:" msgstr "Найти заменяемый ресурс:" +#: editor/dependency_editor.cpp editor/editor_file_dialog.cpp +#: editor/editor_help.cpp editor/editor_node.cpp editor/filesystem_dock.cpp +#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp +#: editor/quick_open.cpp scene/gui/file_dialog.cpp +msgid "Open" +msgstr "Открыть" + #: editor/dependency_editor.cpp msgid "Owners Of:" msgstr "Владельцы:" @@ -661,7 +670,7 @@ msgstr "" #: editor/dependency_editor.cpp msgid "Cannot remove:\n" -msgstr "Не удается удалить:\n" +msgstr "Не удаётся удалить:\n" #: editor/dependency_editor.cpp msgid "Error loading:" @@ -714,6 +723,16 @@ msgstr "Удалить выбранные файлы?" msgid "Delete" msgstr "Удалить" +#: editor/dictionary_property_edit.cpp +#, fuzzy +msgid "Change Dictionary Key" +msgstr "Изменить имя анимации:" + +#: editor/dictionary_property_edit.cpp +#, fuzzy +msgid "Change Dictionary Value" +msgstr "Изменить значение массива" + #: editor/editor_about.cpp msgid "Thanks from the Godot community!" msgstr "Спасибо от сообщества Godot!" @@ -789,7 +808,7 @@ msgid "" "is an exhaustive list of all such thirdparty components with their " "respective copyright statements and license terms." msgstr "" -"Движок godot опирается на ряд сторонних бесплатных и открытых библиотек, " +"Движок Godot опирается на ряд сторонних бесплатных и открытых библиотек, " "совместимых с условиями лицензии MIT. Ниже приводится исчерпывающий список " "всех сторонних компонентов вместе с их авторскими правами и условиями " "лицензионного соглашения." @@ -808,7 +827,7 @@ msgstr "Лицензии" #: editor/editor_asset_installer.cpp editor/project_manager.cpp msgid "Error opening package file, not in zip format." -msgstr "Ошибка при открытии файла, не в формате zip." +msgstr "Ошибка при открытии файла пакета, не в формате zip." #: editor/editor_asset_installer.cpp msgid "Uncompressing Assets" @@ -911,7 +930,7 @@ msgstr "Добавить аудио шину" #: editor/editor_audio_buses.cpp msgid "Master bus can't be deleted!" -msgstr "Мастер шина не может быть удалена!" +msgstr "Шина Master не может быть удалена!" #: editor/editor_audio_buses.cpp msgid "Delete Audio Bus" @@ -1139,12 +1158,6 @@ msgstr "Все разрешённые" msgid "All Files (*)" msgstr "Все файлы (*)" -#: editor/editor_file_dialog.cpp editor/editor_help.cpp editor/editor_node.cpp -#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_selector.cpp editor/quick_open.cpp scene/gui/file_dialog.cpp -msgid "Open" -msgstr "Открыть" - #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Open a File" msgstr "Открыть файл" @@ -1398,7 +1411,7 @@ msgstr "Ошибка при сохранении." #: editor/editor_node.cpp msgid "Can't open '%s'." -msgstr "Не удается открыть '%s'." +msgstr "Не удаётся открыть '%s'." #: editor/editor_node.cpp msgid "Error while parsing '%s'." @@ -1465,7 +1478,7 @@ msgstr "Ошибка при попытке сохранить макет!" #: editor/editor_node.cpp msgid "Default editor layout overridden." -msgstr "Переопределить макет по-умолчанию." +msgstr "Переопределить макет по умолчанию." #: editor/editor_node.cpp msgid "Layout name not found!" @@ -1473,7 +1486,7 @@ msgstr "Название макета не найдено!" #: editor/editor_node.cpp msgid "Restored default layout to base settings." -msgstr "Вернуть макет по-умолчанию к стандартному." +msgstr "Вернуть макет по умолчанию к стандартному." #: editor/editor_node.cpp msgid "" @@ -1487,7 +1500,6 @@ msgstr "" "чтобы лучше понять этот процесс." #: editor/editor_node.cpp -#, fuzzy msgid "" "This resource belongs to a scene that was instanced or inherited.\n" "Changes to it will not be kept when saving the current scene." @@ -1496,16 +1508,14 @@ msgstr "" "Изменения не будут сохранены при сохранении текущей сцены." #: editor/editor_node.cpp -#, fuzzy msgid "" "This resource was imported, so it's not editable. Change its settings in the " "import panel and then re-import." msgstr "" -"Этот ресурс был импортирован, поэтому он не редактируется. Измени настройки " -"в панеле импорта, а затем повторно импортируйте." +"Этот ресурс был импортирован, поэтому он не редактируется. Измените " +"настройки в панеле импорта, а затем повторно импортируйте." #: editor/editor_node.cpp -#, fuzzy msgid "" "This scene was imported, so changes to it will not be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" @@ -1518,6 +1528,18 @@ msgstr "" "чтобы лучше понять этот процесс." #: editor/editor_node.cpp +#, fuzzy +msgid "" +"This is a remote object so changes to it will not be kept.\n" +"Please read the documentation relevant to debugging to better understand " +"this workflow." +msgstr "" +"Этот ресурс принадлежит сцене, которая была импортирована, поэтому он не " +"редактируется.\n" +"Пожалуйста, прочитайте документацию, имеющую отношение к импорту сцены, " +"чтобы лучше понять этот процесс." + +#: editor/editor_node.cpp msgid "Copy Params" msgstr "Копировать параметры" @@ -1636,6 +1658,11 @@ msgid "Export Mesh Library" msgstr "Экспортировать библиотеку полисеток" #: editor/editor_node.cpp +#, fuzzy +msgid "This operation can't be done without a root node." +msgstr "Эта операция не может быть выполнена без выбранного узла." + +#: editor/editor_node.cpp msgid "Export Tile Set" msgstr "Экспортировать набор тайлов" @@ -1653,7 +1680,7 @@ msgstr "Не возможно загрузить сцену, которая не #: editor/editor_node.cpp msgid "Revert" -msgstr "Откатить" +msgstr "Восстановить" #: editor/editor_node.cpp msgid "This action cannot be undone. Revert anyway?" @@ -1701,30 +1728,28 @@ msgid "Pick a Main Scene" msgstr "Выберите главную сцену" #: editor/editor_node.cpp -#, fuzzy msgid "Unable to enable addon plugin at: '%s' parsing of config failed." -msgstr "Не удается включить плагин: '" +msgstr "Не удаётся включить плагин: '%s' ошибка конфигурации." #: editor/editor_node.cpp -#, fuzzy msgid "Unable to find script field for addon plugin at: 'res://addons/%s'." -msgstr "Не удается найти поле script для плагина: ' res://addons/" +msgstr "Не удаётся найти поле script для плагина: ' res://addons/%s'." #: editor/editor_node.cpp -#, fuzzy msgid "Unable to load addon script from path: '%s'." -msgstr "Не удалось загрузить скрипт из источника: '" +msgstr "Не удалось загрузить скрипт из источника: '%s'." #: editor/editor_node.cpp -#, fuzzy msgid "" "Unable to load addon script from path: '%s' Base type is not EditorPlugin." -msgstr "Не удалось загрузить скрипт из источника: '" +msgstr "" +"Не удалось загрузить скрипт из источника: '%s' базовый тип не EditorPlugin." #: editor/editor_node.cpp -#, fuzzy msgid "Unable to load addon script from path: '%s' Script is not in tool mode." -msgstr "Не удалось загрузить скрипт из источника: '" +msgstr "" +"Не удалось загрузить скрипт из источника: '%s' скрипт не в режиме " +"инструмента." #: editor/editor_node.cpp msgid "" @@ -1768,29 +1793,45 @@ msgstr "Удалить макет" #: editor/editor_node.cpp editor/import_dock.cpp #: editor/script_create_dialog.cpp msgid "Default" -msgstr "По-умолчанию" +msgstr "По умолчанию" #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "Переключить вкладку сцены" #: editor/editor_node.cpp -msgid "%d more file(s)" +#, fuzzy +msgid "%d more files or folders" +msgstr "Ещё %d файла(ов) или папка(ок)" + +#: editor/editor_node.cpp +#, fuzzy +msgid "%d more folders" msgstr "Ещё %d файла(ов)" #: editor/editor_node.cpp -msgid "%d more file(s) or folder(s)" -msgstr "Ещё %d файла(ов) или папка(ок)" +#, fuzzy +msgid "%d more files" +msgstr "Ещё %d файла(ов)" + +#: editor/editor_node.cpp +msgid "Dock Position" +msgstr "" #: editor/editor_node.cpp msgid "Distraction Free Mode" -msgstr "Свободный режим" +msgstr "Режим без отвлечения" #: editor/editor_node.cpp msgid "Toggle distraction-free mode." msgstr "Переключить режим без отвлечения." #: editor/editor_node.cpp +#, fuzzy +msgid "Add a new scene." +msgstr "Добавить новые дорожки." + +#: editor/editor_node.cpp msgid "Scene" msgstr "Сцена" @@ -1855,13 +1896,12 @@ msgid "TileSet.." msgstr "Набор тайлов.." #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp -#: scene/gui/text_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Undo" msgstr "Отменить" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp +#: scene/gui/line_edit.cpp msgid "Redo" msgstr "Повторить" @@ -2267,9 +2307,8 @@ msgid "Frame %" msgstr "Кадр %" #: editor/editor_profiler.cpp -#, fuzzy msgid "Physics Frame %" -msgstr "Фиксированный кадр %" +msgstr "Физический шаг %" #: editor/editor_profiler.cpp editor/script_editor_debugger.cpp msgid "Time:" @@ -2325,7 +2364,7 @@ msgstr "Быть может вы забыли метод _run()?" #: editor/editor_settings.cpp msgid "Default (Same as Editor)" -msgstr "По-умолчанию (как редактор)" +msgstr "По умолчанию (как редактор)" #: editor/editor_sub_scene.cpp msgid "Select Node(s) to Import" @@ -2364,6 +2403,11 @@ msgid "(Current)" msgstr "(Текущий)" #: editor/export_template_manager.cpp +#, fuzzy +msgid "Retrieving mirrors, please wait.." +msgstr "Ошибка подключения, попробуйте ещё раз." + +#: editor/export_template_manager.cpp msgid "Remove template version '%s'?" msgstr "Удалить версию шаблона '%s'?" @@ -2400,6 +2444,112 @@ msgid "Importing:" msgstr "Импортируется:" #: editor/export_template_manager.cpp +msgid "" +"No download links found for this version. Direct download is only available " +"for official releases." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't resolve." +msgstr "Не удаётся разрешить." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't connect." +msgstr "Не удаётся подключиться." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "No response." +msgstr "Нет ответа." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Req. Failed." +msgstr "Запрос не прошёл." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Redirect Loop." +msgstr "Циклическое перенаправление." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Failed:" +msgstr "Не удалось:" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't write file." +msgstr "Не удалось записать файл:\n" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Download Complete." +msgstr "Ошибка Загрузки" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Error requesting url: " +msgstr "Ошибка сохранения атласа:" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connecting to Mirror.." +msgstr "Подключение.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Disconnected" +msgstr "Отсоединить" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Resolving" +msgstr "Инициализация..." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't Resolve" +msgstr "Не удаётся разрешить." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Connecting.." +msgstr "Подключение.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't Conect" +msgstr "Не удаётся подключиться." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connected" +msgstr "Присоединить" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Requesting.." +msgstr "Запрашиваю.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Downloading" +msgstr "Загрузка" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connection Error" +msgstr "Подключение.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "SSL Handshake Error" +msgstr "Ошибки загрузки" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "Текущая версия:" @@ -2423,6 +2573,16 @@ msgstr "Выбрать файл шаблона" msgid "Export Template Manager" msgstr "Менеджер шаблонов экспорта" +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Download Templates" +msgstr "Шаблоны" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Select mirror from list: " +msgstr "Выберите устройство из списка" + #: editor/file_type_cache.cpp msgid "Can't open file_type_cache.cch for writing, not saving file type cache!" msgstr "" @@ -2430,8 +2590,8 @@ msgstr "" "типов файлов!" #: editor/filesystem_dock.cpp -msgid "Cannot navigate to '" -msgstr "Не удалось перейти к '" +msgid "Cannot navigate to '%s' as it has not been found in the file system!" +msgstr "" #: editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails" @@ -2451,14 +2611,6 @@ msgstr "" "переимпортируйте вручную." #: editor/filesystem_dock.cpp -msgid "" -"\n" -"Source: " -msgstr "" -"\n" -"Источник: " - -#: editor/filesystem_dock.cpp msgid "Cannot move/rename resources root." msgstr "Нельзя переместить/переименовать корень." @@ -2472,7 +2624,7 @@ msgstr "Ошибка перемещения:\n" #: editor/filesystem_dock.cpp msgid "Unable to update dependencies:\n" -msgstr "Не удается обновить зависимости:\n" +msgstr "Не удаётся обновить зависимости:\n" #: editor/filesystem_dock.cpp msgid "No name provided" @@ -2593,31 +2745,31 @@ msgstr "Импорт в виде единой сцены" #: editor/import/resource_importer_scene.cpp msgid "Import with Separate Animations" -msgstr "Импортировать с отделенными анимациями" +msgstr "Импортировать с отделёнными анимациями" #: editor/import/resource_importer_scene.cpp msgid "Import with Separate Materials" -msgstr "Импортировать с отделенными материалами" +msgstr "Импортировать с отделёнными материалами" #: editor/import/resource_importer_scene.cpp msgid "Import with Separate Objects" -msgstr "Импортировать с разделенными объектами" +msgstr "Импортировать с отделёнными объектами" #: editor/import/resource_importer_scene.cpp msgid "Import with Separate Objects+Materials" -msgstr "Импортировать с разделенными объектами и материалами" +msgstr "Импортировать с отделёнными объектами и материалами" #: editor/import/resource_importer_scene.cpp msgid "Import with Separate Objects+Animations" -msgstr "Импортировать с разделенными объектами и анимациями" +msgstr "Импортировать с отделёнными объектами и анимациями" #: editor/import/resource_importer_scene.cpp msgid "Import with Separate Materials+Animations" -msgstr "Импортировать с отделенными материалами и анимациями" +msgstr "Импортировать с отделёнными материалами и анимациями" #: editor/import/resource_importer_scene.cpp msgid "Import with Separate Objects+Materials+Animations" -msgstr "Импортировать с разделенными объектами, материалами и анимациями" +msgstr "Импортировать с отделёнными объектами, материалами и анимациями" #: editor/import/resource_importer_scene.cpp msgid "Import as Multiple Scenes" @@ -2701,7 +2853,7 @@ msgstr "Создан полигон" #: editor/plugins/collision_polygon_editor_plugin.cpp #: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Edit Poly" -msgstr "Изменён полигон" +msgstr "Редактировать полигон" #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "Insert Point" @@ -2711,15 +2863,15 @@ msgstr "Вставить точку" #: editor/plugins/collision_polygon_editor_plugin.cpp #: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Edit Poly (Remove Point)" -msgstr "Удалена точка полигона" +msgstr "Редактировать полигон (удалить точку)" #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "Remove Poly And Point" msgstr "Удалить полигон и точку" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." +#, fuzzy +msgid "Create a new polygon from scratch" msgstr "Создать новый полигон с нуля." #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -2734,9 +2886,14 @@ msgstr "" "Ctrl+ЛКМ: разделить сегмент.\n" "ПКМ: удалить точку." +#: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy +msgid "Delete points" +msgstr "Удалить точку" + #: editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" -msgstr "Переключено автовоспроизведение" +msgstr "Переключить автовоспроизведение" #: editor/plugins/animation_player_editor_plugin.cpp msgid "New Animation Name:" @@ -2783,7 +2940,7 @@ msgstr "Изменена последующая анимация" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Blend Time" -msgstr "Изменено время \"смешивания\"" +msgstr "Изменить время \"смешивания\"" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Load Animation" @@ -2943,7 +3100,7 @@ msgstr "Сочетание" #: editor/plugins/animation_tree_editor_plugin.cpp msgid "Auto Restart:" -msgstr "Авто перезапуск:" +msgstr "Автоперезапуск:" #: editor/plugins/animation_tree_editor_plugin.cpp msgid "Restart (s):" @@ -3071,52 +3228,28 @@ msgid "Can't resolve hostname:" msgstr "Невозможно определить имя хоста:" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't resolve." -msgstr "Не удается разрешить." - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Connection error, please try again." -msgstr "Ошибка подключения, попробуйте еще раз." - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't connect." -msgstr "Не удается подключиться." +msgstr "Ошибка подключения, попробуйте ещё раз." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Can't connect to host:" -msgstr "Не удается подключиться к хосту:" +msgstr "Не удаётся подключиться к хосту:" #: editor/plugins/asset_library_editor_plugin.cpp msgid "No response from host:" msgstr "Нет ответа от хоста:" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "No response." -msgstr "Нет ответа." - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, return code:" msgstr "Запрос не удался, код:" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Req. Failed." -msgstr "Запрос не прошел." - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, too many redirects" -msgstr "Запрос не прошел, слишком много перенаправлений" - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Redirect Loop." -msgstr "Циклическое перенаправление." - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Failed:" -msgstr "Не удалось:" +msgstr "Запрос не прошёл, слишком много перенаправлений" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Bad download hash, assuming file has been tampered with." -msgstr "Несовпадение хэша загрузки, возможно файл был изменен." +msgstr "Несовпадение хэша загрузки, возможно файл был изменён." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Expected:" @@ -3143,14 +3276,6 @@ msgid "Resolving.." msgstr "Инициализация..." #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Connecting.." -msgstr "Подключение.." - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Requesting.." -msgstr "Запрашиваю.." - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Error making request" msgstr "Ошибка во время запроса" @@ -3168,7 +3293,7 @@ msgstr "Ошибка Загрузки" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Download for this asset is already in progress!" -msgstr "Загрузка этого шаблона уже идет!" +msgstr "Загрузка этого шаблона уже идёт!" #: editor/plugins/asset_library_editor_plugin.cpp msgid "first" @@ -3239,7 +3364,7 @@ msgstr "Настроить привязку" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Grid Offset:" -msgstr "Отступ сетку:" +msgstr "Отступ сетки:" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -3263,6 +3388,39 @@ msgid "Move Action" msgstr "Переместить действие" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create new vertical guide" +msgstr "Создать новый скрипт" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove vertical guide" +msgstr "Удалить переменную" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Move horizontal guide" +msgstr "Точка кривой передвинута" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create new horizontal guide" +msgstr "Создать новый скрипт" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove horizontal guide" +msgstr "Удалить недопустимые ключи" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new horizontal and vertical guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Edit IK Chain" msgstr "Редактировать цепь ИК" @@ -3387,10 +3545,17 @@ msgid "Snap to other nodes" msgstr "Привязка к другим узлам" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Snap to guides" +msgstr "Прилипание к сетке" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Lock the selected object in place (can't be moved)." msgstr "Зафиксировать выбранный объект." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Unlock the selected object (can be moved)." msgstr "Разблокировать выбранный объект." @@ -3441,6 +3606,11 @@ msgid "Show rulers" msgstr "Показывать линейки" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Show guides" +msgstr "Показывать линейки" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Selection" msgstr "Центрировать на выбранном" @@ -3530,7 +3700,7 @@ msgid "" "Drag & drop + Shift : Add node as sibling\n" "Drag & drop + Alt : Change node type" msgstr "" -"Drag & drop + Shift : Добавить узел к выделению\n" +"Drag & drop + Shift : Добавить узел того же уровня\n" "Drag & drop + Alt : Изменить тип узла" #: editor/plugins/collision_polygon_editor_plugin.cpp @@ -3572,12 +3742,10 @@ msgid "Flat1" msgstr "Плоский1" #: editor/plugins/curve_editor_plugin.cpp -#, fuzzy msgid "Ease in" msgstr "Переход В" #: editor/plugins/curve_editor_plugin.cpp -#, fuzzy msgid "Ease out" msgstr "Переход ИЗ" @@ -3629,6 +3797,10 @@ msgstr "Переключить кривую линейный тангенс" msgid "Hold Shift to edit tangents individually" msgstr "Удерживайте Shift, чтобы изменить касательные индивидуально" +#: editor/plugins/gi_probe_editor_plugin.cpp +msgid "Bake GI Probe" +msgstr "" + #: editor/plugins/gradient_editor_plugin.cpp msgid "Add/Remove Color Ramp Point" msgstr "Добавить/Удалить точку Color Ramp" @@ -3636,7 +3808,7 @@ msgstr "Добавить/Удалить точку Color Ramp" #: editor/plugins/gradient_editor_plugin.cpp #: editor/plugins/shader_graph_editor_plugin.cpp msgid "Modify Color Ramp" -msgstr "Изменена Color Ramp" +msgstr "Редактировать Color Ramp" #: editor/plugins/item_list_editor_plugin.cpp msgid "Item %d" @@ -3663,6 +3835,10 @@ msgid "Create Occluder Polygon" msgstr "Создан затеняющий полигон" #: editor/plugins/light_occluder_2d_editor_plugin.cpp +msgid "Create a new polygon from scratch." +msgstr "Создать новый полигон с нуля." + +#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Edit existing polygon:" msgstr "Редактировать существующий полигон:" @@ -3678,69 +3854,17 @@ msgstr "Ctrl+ЛКМ: Разделить сегмент." msgid "RMB: Erase Point." msgstr "ПКМ: Удалить точку." -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Remove Point from Line2D" -msgstr "Удалить точку с кривой" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Add Point to Line2D" -msgstr "Добавить точку к кривой" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Move Point in Line2D" -msgstr "Двигать точку в кривой" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Select Points" -msgstr "Выбрать точки" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Shift+Drag: Select Control Points" -msgstr "Shift+Drag: Выбрать точки управления" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Click: Add Point" -msgstr "ЛКМ: Добавить точку" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Right Click: Delete Point" -msgstr "ПКМ: Удалить точку" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Add Point (in empty space)" -msgstr "Добавить точку (в пустом пространстрве)" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Split Segment (in line)" -msgstr "Разделить сегмент (в кривой)" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Delete Point" -msgstr "Удалить точку" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "Полисетка пуста!" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Static Trimesh Body" -msgstr "Создано вогнутое статичное тело" +msgstr "Создать вогнутое статичное тело" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Static Convex Body" -msgstr "Создано выпуклое статичное тело" +msgstr "Создать выпуклое статичное тело" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "This doesn't work on scene root!" @@ -3748,11 +3872,11 @@ msgstr "Это не работает на корне сцены!" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Shape" -msgstr "Создана вогнутая форма" +msgstr "Создать вогнутую форму" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Convex Shape" -msgstr "Создана выгнутая форма" +msgstr "Создать выгнутую форму" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Navigation Mesh" @@ -3924,7 +4048,7 @@ msgstr "Настройка конфигурации..." #: editor/plugins/navigation_mesh_generator.cpp msgid "Calculating grid size..." -msgstr "Расчет размера сетки..." +msgstr "Расчёт размера сетки..." #: editor/plugins/navigation_mesh_generator.cpp msgid "Creating heightfield..." @@ -3939,14 +4063,12 @@ msgid "Constructing compact heightfield..." msgstr "Построение компактной карты высот..." #: editor/plugins/navigation_mesh_generator.cpp -#, fuzzy msgid "Eroding walkable area..." msgstr "Размытие проходимого района..." #: editor/plugins/navigation_mesh_generator.cpp -#, fuzzy msgid "Partitioning..." -msgstr "Разметка..." +msgstr "Разбиение..." #: editor/plugins/navigation_mesh_generator.cpp msgid "Creating contours..." @@ -4101,7 +4223,7 @@ msgstr "Генерировать AABB" #: editor/plugins/path_2d_editor_plugin.cpp msgid "Remove Point from Curve" -msgstr "Удалена точка с кривой" +msgstr "Удалить точку с кривой" #: editor/plugins/path_2d_editor_plugin.cpp msgid "Remove Out-Control from Curve" @@ -4129,16 +4251,46 @@ msgid "Move Out-Control in Curve" msgstr "Передвинут выходной луч у кривой" #: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Select Points" +msgstr "Выбрать точки" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Shift+Drag: Select Control Points" +msgstr "Shift+Drag: Выбрать точки управления" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Click: Add Point" +msgstr "ЛКМ: Добавить точку" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Right Click: Delete Point" +msgstr "ПКМ: Удалить точку" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Select Control Points (Shift+Drag)" msgstr "Выбор точек управления (Shift+Тащить)" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Add Point (in empty space)" +msgstr "Добавить точку (в пустом пространстрве)" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Split Segment (in curve)" msgstr "Разделить сегмент (в кривой)" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Delete Point" +msgstr "Удалить точку" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Close Curve" msgstr "Сомкнуть кривую" @@ -4151,12 +4303,10 @@ msgid "Set Curve Point Position" msgstr "Установить положение точки кривой" #: editor/plugins/path_editor_plugin.cpp -#, fuzzy msgid "Set Curve In Position" msgstr "Установить позицию входа кривой" #: editor/plugins/path_editor_plugin.cpp -#, fuzzy msgid "Set Curve Out Position" msgstr "Установить позицию выхода кривой" @@ -4277,7 +4427,6 @@ msgstr "Загрузить ресурс" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Paste" @@ -4324,12 +4473,27 @@ msgid " Class Reference" msgstr " Ссылка на Класс" #: editor/plugins/script_editor_plugin.cpp +#, fuzzy +msgid "Sort" +msgstr "Сортировать:" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Up" +msgstr "Переместить вверх" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Down" +msgstr "Переместить вниз" + +#: editor/plugins/script_editor_plugin.cpp msgid "Next script" msgstr "Следующий скрипт" #: editor/plugins/script_editor_plugin.cpp msgid "Previous script" -msgstr "Предыдущий сценарий" +msgstr "Предыдущий скрипт" #: editor/plugins/script_editor_plugin.cpp msgid "File" @@ -4375,6 +4539,10 @@ msgstr "Закрыть документацию" msgid "Close All" msgstr "Закрыть всё" +#: editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "Запустить" @@ -4385,13 +4553,11 @@ msgstr "Переключить панель скриптов" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find.." msgstr "Найти.." #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Next" msgstr "Найти следующее" @@ -4499,33 +4665,22 @@ msgstr "нижний регистр" msgid "Capitalize" msgstr "С Прописной" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" msgstr "Вырезать" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Copy" msgstr "Копировать" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Select All" msgstr "Выбрать все" -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Up" -msgstr "Переместить вверх" - -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Down" -msgstr "Переместить вниз" - #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "Удалить строку" @@ -4547,6 +4702,23 @@ msgid "Clone Down" msgstr "Копировать вниз" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Fold Line" +msgstr "Перейти к строке" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold Line" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Fold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Complete Symbol" msgstr "Список автозавершения" @@ -4564,7 +4736,7 @@ msgstr "Преобразовать отступ в табуляцию" #: editor/plugins/script_text_editor.cpp msgid "Auto Indent" -msgstr "Авто отступ" +msgstr "Автоотступ" #: editor/plugins/script_text_editor.cpp #: modules/visual_script/visual_script_editor.cpp @@ -4592,12 +4764,10 @@ msgid "Convert To Lowercase" msgstr "Конвертировать в нижний регистр" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Previous" msgstr "Найти предыдущее" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Replace.." msgstr "Заменить.." @@ -4606,7 +4776,6 @@ msgid "Goto Function.." msgstr "Перейти к функции.." #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Goto Line.." msgstr "Перейти к строке.." @@ -4620,119 +4789,119 @@ msgstr "Шейдер" #: editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Scalar Constant" -msgstr "Изменена числовая константа" +msgstr "Изменить числовую константу" #: editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Vec Constant" -msgstr "Изменена векторная константа" +msgstr "Изменить векторную константу" #: editor/plugins/shader_graph_editor_plugin.cpp msgid "Change RGB Constant" -msgstr "Изменён RGB" +msgstr "Изменить RGB константу" #: editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Scalar Operator" -msgstr "Изменён числовой оператор" +msgstr "Изменить числовой оператор" #: editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Vec Operator" -msgstr "Изменён векторный оператор" +msgstr "Изменить векторный оператор" #: editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Vec Scalar Operator" -msgstr "Изменён векторно числовой оператор" +msgstr "Изменить векторно-числовой оператор" #: editor/plugins/shader_graph_editor_plugin.cpp msgid "Change RGB Operator" -msgstr "Изменён RGB оператор" +msgstr "Изменить RGB оператор" #: editor/plugins/shader_graph_editor_plugin.cpp msgid "Toggle Rot Only" -msgstr "Переключён - только поворот" +msgstr "Переключить - только поворот" #: editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Scalar Function" -msgstr "Изменена числовая функция" +msgstr "Изменить числовую функцию" #: editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Vec Function" -msgstr "Изменена векторная функция" +msgstr "Изменить векторную функцию" #: editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Scalar Uniform" -msgstr "Изменена числовая единица" +msgstr "Изменить числовую единицу" #: editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Vec Uniform" -msgstr "Изменена векторная единица" +msgstr "Изменить векторную единицу" #: editor/plugins/shader_graph_editor_plugin.cpp msgid "Change RGB Uniform" -msgstr "Изменена RGB единица" +msgstr "Изменить RGB единицу" #: editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Default Value" -msgstr "Изменено стандартное значение" +msgstr "Изменить значение по умолчанию" #: editor/plugins/shader_graph_editor_plugin.cpp msgid "Change XForm Uniform" -msgstr "Изменена XForm единица" +msgstr "Изменить XForm единицу" #: editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Texture Uniform" -msgstr "Изменена тектурная единица" +msgstr "Изменить текстурную единицу" #: editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Cubemap Uniform" -msgstr "Изменена единица кубической карты" +msgstr "Изменить единицу кубической карты" #: editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Comment" -msgstr "Изменён комментарий" +msgstr "Изменить комментарий" #: editor/plugins/shader_graph_editor_plugin.cpp msgid "Add/Remove to Color Ramp" -msgstr "Добавлено/удалено с Color Ramp" +msgstr "Добавить/Удалить в Color Ramp" #: editor/plugins/shader_graph_editor_plugin.cpp msgid "Add/Remove to Curve Map" -msgstr "Добавлено/удалено с Curve Map" +msgstr "Добавить/Удалить в Curve Map" #: editor/plugins/shader_graph_editor_plugin.cpp msgid "Modify Curve Map" -msgstr "Изменена карта кривой" +msgstr "Редактировать карту кривой" #: editor/plugins/shader_graph_editor_plugin.cpp msgid "Change Input Name" -msgstr "Изменено входное имя" +msgstr "Изменить имя входа" #: editor/plugins/shader_graph_editor_plugin.cpp msgid "Connect Graph Nodes" -msgstr "Изменено имя графа" +msgstr "Соединить узлы графа" #: editor/plugins/shader_graph_editor_plugin.cpp msgid "Disconnect Graph Nodes" -msgstr "Графы разъединены" +msgstr "Разъединить узлы графа" #: editor/plugins/shader_graph_editor_plugin.cpp msgid "Remove Shader Graph Node" -msgstr "Удалён граф шейдера" +msgstr "Удалить узел графа шейдера" #: editor/plugins/shader_graph_editor_plugin.cpp msgid "Move Shader Graph Node" -msgstr "Передвинут граф шейдера" +msgstr "Передвинуть узел графа шейдера" #: editor/plugins/shader_graph_editor_plugin.cpp msgid "Duplicate Graph Node(s)" -msgstr "Граф(ы) дублированы" +msgstr "Дублировать узел(ы) графа" #: editor/plugins/shader_graph_editor_plugin.cpp msgid "Delete Shader Graph Node(s)" -msgstr "Удалён(ы) графы шейдера" +msgstr "Удалить узел(ы) графа шейдера" #: editor/plugins/shader_graph_editor_plugin.cpp msgid "Error: Cyclic Connection Link" -msgstr "Ошибка: Циклическая подключение" +msgstr "Ошибка: Циклическое подключение" #: editor/plugins/shader_graph_editor_plugin.cpp msgid "Error: Missing Input Connections" @@ -4740,19 +4909,19 @@ msgstr "Ошибка: Отсутствует входное подключени #: editor/plugins/shader_graph_editor_plugin.cpp msgid "Add Shader Graph Node" -msgstr "Добавлен граф шейдера" +msgstr "Добавить узел графа шейдера" #: editor/plugins/spatial_editor_plugin.cpp msgid "Orthogonal" -msgstr "Ортогональность" +msgstr "Ортогональный" #: editor/plugins/spatial_editor_plugin.cpp msgid "Perspective" -msgstr "Перспектива" +msgstr "Перспективный" #: editor/plugins/spatial_editor_plugin.cpp msgid "Transform Aborted." -msgstr "Преобразования прерывается." +msgstr "Преобразование прервано." #: editor/plugins/spatial_editor_plugin.cpp msgid "X-Axis Transform." @@ -4771,6 +4940,16 @@ msgid "View Plane Transform." msgstr "Вид преобразования плоскости." #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Scaling: " +msgstr "Масштаб:" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Translating: " +msgstr "Переводы:" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Rotating %s degrees." msgstr "Поворот на %s градусов." @@ -4836,7 +5015,7 @@ msgstr "Изменения материала" #: editor/plugins/spatial_editor_plugin.cpp msgid "Shader Changes" -msgstr "Изменения шэйдеров" +msgstr "Изменения шейдеров" #: editor/plugins/spatial_editor_plugin.cpp msgid "Surface Changes" @@ -4851,6 +5030,10 @@ msgid "Vertices" msgstr "Вершины" #: editor/plugins/spatial_editor_plugin.cpp +msgid "FPS" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Align with view" msgstr "Совместить с видом" @@ -4883,6 +5066,16 @@ msgid "View Information" msgstr "Информация" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "View FPS" +msgstr "Просмотр Файлов" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Half Resolution" +msgstr "Масштабировать выбранное" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Audio Listener" msgstr "Прослушиватель звука" @@ -4938,7 +5131,7 @@ msgid "" msgstr "" "Тянуть: Вращение\n" "Alt+Тянуть: Перемещение\n" -"Альт+ПКМ: Выбор по списку" +"Alt+ПКМ: Выбор по списку" #: editor/plugins/spatial_editor_plugin.cpp msgid "Move Mode (W)" @@ -5013,6 +5206,11 @@ msgid "Tool Scale" msgstr "Инструмент масштаб" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Toggle Freelook" +msgstr "Переключить полноэкранный режим" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Transform" msgstr "Преобразование" @@ -5103,7 +5301,7 @@ msgstr "Изменение преобразования" #: editor/plugins/spatial_editor_plugin.cpp msgid "Translate:" -msgstr "Преобразования:" +msgstr "Смещение:" #: editor/plugins/spatial_editor_plugin.cpp msgid "Rotate (deg.):" @@ -5264,11 +5462,11 @@ msgstr "Удалить все" #: editor/plugins/theme_editor_plugin.cpp msgid "Edit theme.." -msgstr "" +msgstr "Редактировать тему.." #: editor/plugins/theme_editor_plugin.cpp msgid "Theme editing menu." -msgstr "" +msgstr "Меню редактирования тем." #: editor/plugins/theme_editor_plugin.cpp msgid "Add Class Items" @@ -5284,7 +5482,12 @@ msgstr "Создать пустой шаблон" #: editor/plugins/theme_editor_plugin.cpp msgid "Create Empty Editor Template" -msgstr "Создать пустой образец редактора" +msgstr "Создать пустой шаблон редактора" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Create From Current Editor Theme" +msgstr "Создать пустой шаблон редактора" #: editor/plugins/theme_editor_plugin.cpp msgid "CheckBox Radio1" @@ -5300,11 +5503,11 @@ msgstr "Элемент" #: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" -msgstr "Проверить пункт" +msgstr "Отметить элемент" #: editor/plugins/theme_editor_plugin.cpp msgid "Checked Item" -msgstr "Проверенный пункт" +msgstr "Отмеченный элемент" #: editor/plugins/theme_editor_plugin.cpp msgid "Has" @@ -5381,7 +5584,7 @@ msgstr "Заливка" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Erase TileMap" -msgstr "Стирать карту тайлов" +msgstr "Очистить карту тайлов" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Erase selection" @@ -5460,7 +5663,8 @@ msgid "Runnable" msgstr "Активный" #: editor/project_export.cpp -msgid "Delete patch '" +#, fuzzy +msgid "Delete patch '%s' from list?" msgstr "Удалить заплатку '" #: editor/project_export.cpp @@ -5552,6 +5756,7 @@ msgid "Export With Debug" msgstr "Экспорт в режиме отладки" #: editor/project_manager.cpp +#, fuzzy msgid "The path does not exist." msgstr "Путь не существует." @@ -5599,7 +5804,7 @@ msgstr "Не удалось создать project.godot в папке прое #: editor/project_manager.cpp msgid "The following files failed extraction from package:" -msgstr "Следующие файлы не удалось извлечения из пакета:" +msgstr "Следующие файлы не удалось извлечь из пакета:" #: editor/project_manager.cpp msgid "Rename Project" @@ -5651,7 +5856,7 @@ msgstr "Безымянный проект" #: editor/project_manager.cpp msgid "Can't open project" -msgstr "Не удается открыть проект" +msgstr "Не удаётся открыть проект" #: editor/project_manager.cpp msgid "Are you sure to open more than one project?" @@ -5688,6 +5893,8 @@ msgid "" "Language changed.\n" "The UI will update next time the editor or project manager starts." msgstr "" +"Язык изменился.\n" +"Пользовательский интерфейс будет обновлен при следующем запуске редактора." #: editor/project_manager.cpp msgid "" @@ -5722,13 +5929,12 @@ msgid "Exit" msgstr "Выход" #: editor/project_manager.cpp -#, fuzzy msgid "Restart Now" -msgstr "Перезапуск (сек.):" +msgstr "Перезапустить сейчас" #: editor/project_manager.cpp msgid "Can't run project" -msgstr "Не удается запустить проект" +msgstr "Не удаётся запустить проект" #: editor/project_settings_editor.cpp msgid "Key " @@ -5763,10 +5969,6 @@ msgid "Add Input Action Event" msgstr "Добавить действие" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Meta+" -msgstr "Meta+" - -#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp msgid "Shift+" msgstr "Shift+" @@ -5888,12 +6090,13 @@ msgid "Select a setting item first!" msgstr "Сначала выберите элемент настроек!" #: editor/project_settings_editor.cpp -msgid "No property '" +#, fuzzy +msgid "No property '%s' exists." msgstr "Нет свойства '" #: editor/project_settings_editor.cpp -msgid "Setting '" -msgstr "Настройки '" +msgid "Setting '%s' is internal, and it can't be deleted." +msgstr "" #: editor/project_settings_editor.cpp msgid "Delete Item" @@ -5921,15 +6124,15 @@ msgstr "Переопределение Свойства" #: editor/project_settings_editor.cpp msgid "Add Translation" -msgstr "Добавлен перевод" +msgstr "Добавить перевод" #: editor/project_settings_editor.cpp msgid "Remove Translation" -msgstr "Перевод удалён" +msgstr "Удалить перевод" #: editor/project_settings_editor.cpp msgid "Add Remapped Path" -msgstr "Добавлен путь перенаправления" +msgstr "Добавить путь перенаправления" #: editor/project_settings_editor.cpp msgid "Resource Remap Add Remap" @@ -5937,24 +6140,23 @@ msgstr "Перенаправлен ресурс перенаправления" #: editor/project_settings_editor.cpp msgid "Change Resource Remap Language" -msgstr "Изменён язык перенаправления" +msgstr "Изменить язык перенаправления ресурсов" #: editor/project_settings_editor.cpp msgid "Remove Resource Remap" -msgstr "Удалён ресурс перенаправления" +msgstr "Удалить ресурс перенаправления" #: editor/project_settings_editor.cpp msgid "Remove Resource Remap Option" -msgstr "Удалён параметр ресурса перенаправления" +msgstr "Удалить параметр перенаправления ресурса" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Changed Locale Filter" -msgstr "Изменено время \"смешивания\"" +msgstr "Изменен фильтр языков" #: editor/project_settings_editor.cpp msgid "Changed Locale Filter Mode" -msgstr "" +msgstr "Изменен режим фильтрации языков" #: editor/project_settings_editor.cpp msgid "Project Settings (project.godot)" @@ -5982,7 +6184,7 @@ msgstr "Действие:" #: editor/project_settings_editor.cpp msgid "Device:" -msgstr "Девайс:" +msgstr "Устройство:" #: editor/project_settings_editor.cpp msgid "Index:" @@ -6017,28 +6219,24 @@ msgid "Locale" msgstr "Язык" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Locales Filter" -msgstr "Фильтр:" +msgstr "Фильтры локализации" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Show all locales" -msgstr "Показать кости" +msgstr "Показать все языки" #: editor/project_settings_editor.cpp msgid "Show only selected locales" -msgstr "" +msgstr "Показать только выбранные языки" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Filter mode:" -msgstr "Фильтрация узлов" +msgstr "Режим фильтра:" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Locales:" -msgstr "Язык" +msgstr "Языки:" #: editor/project_settings_editor.cpp msgid "AutoLoad" @@ -6372,6 +6570,16 @@ msgid "Clear a script for the selected node." msgstr "Убрать скрипт у выбранного узла." #: editor/scene_tree_dock.cpp +#, fuzzy +msgid "Remote" +msgstr "Удалить" + +#: editor/scene_tree_dock.cpp +#, fuzzy +msgid "Local" +msgstr "Язык" + +#: editor/scene_tree_dock.cpp msgid "Clear Inheritance? (No Undo!)" msgstr "Очистить наследование? (Нельзя отменить!)" @@ -6381,11 +6589,11 @@ msgstr "Очистить!" #: editor/scene_tree_editor.cpp msgid "Toggle Spatial Visible" -msgstr "Переключена видимость Spatial" +msgstr "Переключить видимость Spatial" #: editor/scene_tree_editor.cpp msgid "Toggle CanvasItem Visible" -msgstr "Переключена видимость CanvasItem" +msgstr "Переключить видимость CanvasItem" #: editor/scene_tree_editor.cpp msgid "Node configuration warning:" @@ -6441,7 +6649,7 @@ msgstr "" #: editor/scene_tree_editor.cpp msgid "Toggle Visibility" -msgstr "Переключение видимости" +msgstr "Переключить видимость" #: editor/scene_tree_editor.cpp msgid "Invalid node name, the following characters are not allowed:" @@ -6564,6 +6772,11 @@ msgid "Attach Node Script" msgstr "Добавление скрипта" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Remote " +msgstr "Удалить" + +#: editor/script_editor_debugger.cpp msgid "Bytes:" msgstr "Байты:" @@ -6621,18 +6834,6 @@ msgid "Stack Trace (if applicable):" msgstr "Трассировка стека (если применимо):" #: editor/script_editor_debugger.cpp -msgid "Remote Inspector" -msgstr "Удалённый отладчик" - -#: editor/script_editor_debugger.cpp -msgid "Live Scene Tree:" -msgstr "Дерево сцены в реальном времени:" - -#: editor/script_editor_debugger.cpp -msgid "Remote Object Properties: " -msgstr "Параметры объекта: " - -#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "Профайлер" @@ -6702,7 +6903,7 @@ msgstr "Горячие клавиши" #: editor/spatial_editor_gizmos.cpp msgid "Change Light Radius" -msgstr "Изменён радиус света" +msgstr "Изменить радиус света" #: editor/spatial_editor_gizmos.cpp msgid "Change AudioStreamPlayer3D Emission Angle" @@ -6710,35 +6911,35 @@ msgstr "Изменить угол AudioStreamPlayer3D" #: editor/spatial_editor_gizmos.cpp msgid "Change Camera FOV" -msgstr "Изменён FOV камеры" +msgstr "Изменить FOV камеры" #: editor/spatial_editor_gizmos.cpp msgid "Change Camera Size" -msgstr "Изменён размер камеры" +msgstr "Изменить размер камеры" #: editor/spatial_editor_gizmos.cpp msgid "Change Sphere Shape Radius" -msgstr "Изменён радиус сферы" +msgstr "Изменить радиус сферы" #: editor/spatial_editor_gizmos.cpp msgid "Change Box Shape Extents" -msgstr "Изменены границы прямоугольника" +msgstr "Изменить границы прямоугольника" #: editor/spatial_editor_gizmos.cpp msgid "Change Capsule Shape Radius" -msgstr "Изменён радиус капсулы" +msgstr "Изменить радиус капсулы" #: editor/spatial_editor_gizmos.cpp msgid "Change Capsule Shape Height" -msgstr "Изменена высота капуслы" +msgstr "Изменить высоту капсулы" #: editor/spatial_editor_gizmos.cpp msgid "Change Ray Shape Length" -msgstr "Изменена длинна луча" +msgstr "Изменить длину луча" #: editor/spatial_editor_gizmos.cpp msgid "Change Notifier Extents" -msgstr "Изменены границы уведомителя" +msgstr "Изменить границы уведомителя" #: editor/spatial_editor_gizmos.cpp msgid "Change Particles AABB" @@ -6746,7 +6947,7 @@ msgstr "Изменить AABB частиц" #: editor/spatial_editor_gizmos.cpp msgid "Change Probe Extents" -msgstr "Изменены Probe Extents" +msgstr "Изменить Probe Extents" #: modules/gdnative/gd_native_library_editor.cpp msgid "Library" @@ -6761,54 +6962,53 @@ msgid "Libraries: " msgstr "Библиотеки: " #: modules/gdnative/register_types.cpp -#, fuzzy msgid "GDNative" msgstr "GDNative" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Invalid type argument to convert(), use TYPE_* constants." msgstr "Неверный тип аргумента для convert(), используйте TYPE_* константы." -#: modules/gdscript/gd_functions.cpp modules/mono/glue/glue_header.h +#: modules/gdscript/gdscript_functions.cpp modules/mono/glue/glue_header.h #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Not enough bytes for decoding bytes, or invalid format." msgstr "Не хватает байтов для декодирования байтов, или неверный формат." -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "step argument is zero!" msgstr "Аргумент шага равен нулю!" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not a script with an instance" msgstr "Скрипт без экземпляра" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a script" msgstr "Основан не на скрипте" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a resource file" msgstr "Основан не на файле ресурсов" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (missing @path)" msgstr "Недопустимый формат экземпляра словаря (отсутствует @path)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (can't load script at @path)" msgstr "" "Недопустимый формат экземпляра словаря (невозможно загрузить скрипт из @path)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (invalid script at @path)" msgstr "Недопустимый формат экземпляра словаря (неверный скрипт в @path)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary (invalid subclasses)" msgstr "Недопустимый экземпляр словаря (неверные подклассы)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Object can't provide a length." msgstr "Объект не может предоставить длину." @@ -6821,16 +7021,26 @@ msgid "GridMap Duplicate Selection" msgstr "Дублировать выделенную сетку" #: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Floor:" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +#, fuzzy +msgid "Grid Map" +msgstr "Привязка по сетке" + +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Snap View" msgstr "Привязать вид" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Prev Level (%sDown Wheel)" -msgstr "Пред уровень (%sКолесико вниз)" +#, fuzzy +msgid "Previous Floor" +msgstr "Предыдущая вкладка" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Next Level (%sUp Wheel)" -msgstr "Следующий уровень (%sКолесико вверх)" +msgid "Next Floor" +msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clip Disabled" @@ -6897,12 +7107,9 @@ msgid "Erase Area" msgstr "Стереть область" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Selection -> Duplicate" -msgstr "Выбор -> Дублировать" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Selection -> Clear" -msgstr "Выбор -> Очистить" +#, fuzzy +msgid "Clear Selection" +msgstr "Центрировать на выбранном" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Settings" @@ -7029,7 +7236,8 @@ msgid "Duplicate VisualScript Nodes" msgstr "Дублировать узлы VisualScript" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Getter. Hold Shift to drop a generic signature." +#, fuzzy +msgid "Hold %s to drop a Getter. Hold Shift to drop a generic signature." msgstr "" "Зажмите Meta, чтобы добавить Getter. Зажмите Shift, чтобы добавить " "универсальную подпись." @@ -7041,7 +7249,8 @@ msgstr "" "универсальную подпись." #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a simple reference to the node." +#, fuzzy +msgid "Hold %s to drop a simple reference to the node." msgstr "Зажмите Meta, чтобы добавить простую ссылку на узел." #: modules/visual_script/visual_script_editor.cpp @@ -7049,7 +7258,8 @@ msgid "Hold Ctrl to drop a simple reference to the node." msgstr "Зажмите Ctrl, чтобы добавить простую ссылку на узел." #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Variable Setter." +#, fuzzy +msgid "Hold %s to drop a Variable Setter." msgstr "Зажмите Meta, чтобы добавить Variable Setter." #: modules/visual_script/visual_script_editor.cpp @@ -7130,7 +7340,7 @@ msgstr "Изменить входное значение" #: modules/visual_script/visual_script_editor.cpp msgid "Can't copy the function node." -msgstr "Не удается скопировать узел функцию." +msgstr "Не удаётся скопировать узел функцию." #: modules/visual_script/visual_script_editor.cpp msgid "Clipboard is empty!" @@ -7278,12 +7488,23 @@ msgid "Could not write file:\n" msgstr "Не удалось записать файл:\n" #: platform/javascript/export/export.cpp -msgid "Could not read file:\n" +msgid "Could not open template for export:\n" +msgstr "Не удалось открыть шаблон для экспорта:\n" + +#: platform/javascript/export/export.cpp +#, fuzzy +msgid "Invalid export template:\n" +msgstr "Установить шаблоны экспорта" + +#: platform/javascript/export/export.cpp +#, fuzzy +msgid "Could not read custom HTML shell:\n" msgstr "Не удалось прочитать файл:\n" #: platform/javascript/export/export.cpp -msgid "Could not open template for export:\n" -msgstr "Не удалось открыть шаблон для экспорта:\n" +#, fuzzy +msgid "Could not read boot splash image file:\n" +msgstr "Не удалось прочитать файл:\n" #: scene/2d/animated_sprite.cpp msgid "" @@ -7406,22 +7627,6 @@ msgstr "" "Для корректной работы свойство Path должно указывать на действующий узел " "Node2D." -#: 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 должен быть установлен в режим 'цель рендеринга'." - -#: 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 должна быть назначена " -"\"целью визуализации\" для того, чтобы этот спрайт работал." - #: scene/2d/visibility_notifier_2d.cpp msgid "" "VisibilityEnable2D works best when used with the edited scene root directly " @@ -7494,6 +7699,15 @@ msgstr "" "Shape должен быть предусмотрен для функций CollisionShape. Пожалуйста, " "создайте shape-ресурс для этого!" +#: scene/3d/gi_probe.cpp +#, fuzzy +msgid "Plotting Meshes" +msgstr "Блитирование Изображений" + +#: scene/3d/gi_probe.cpp +msgid "Finishing Plot" +msgstr "" + #: scene/3d/navigation_mesh.cpp msgid "A NavigationMesh resource must be set or created for this node to work." msgstr "" @@ -7542,7 +7756,6 @@ msgstr "" "ресурс SpriteFrames в параметре 'Frames'." #: scene/3d/vehicle_body.cpp -#, fuzzy msgid "" "VehicleWheel serves to provide a wheel system to a VehicleBody. Please use " "it as a child of a VehicleBody." @@ -7576,7 +7789,7 @@ msgid "" "functions. Making them visible for editing is fine though, but they will " "hide upon running." msgstr "" -"После запуска всплывающие окна по-умолчанию скрыты, для их отображения " +"После запуска всплывающие окна по умолчанию скрыты, для их отображения " "используйте функцию popup() или любую из popup_*()." #: scene/gui/scroll_container.cpp @@ -7591,6 +7804,10 @@ msgstr "" "установите\n" "минимальный размер вручную." +#: scene/gui/tree.cpp +msgid "(Other)" +msgstr "" + #: scene/main/scene_tree.cpp msgid "" "Default Environment as specified in Project Setings (Rendering -> Viewport -" @@ -7607,10 +7824,10 @@ msgid "" "texture to some node for display." msgstr "" "Эта область не установлена в качестве цели рендеринга. Если вы собираетесь " -"использовать его, чтобы отобразить его содержимое прямо на экране, сделать " -"его потомком Control'а, чтобы он мог получить размер. В противном случае, " -"сделайте его целью рендеринга и передайте его внутренние текстуры какому-то " -"другому узлу для отображения." +"использовать её для отображения содержимого прямо на экран, то сделайте её " +"потомком Control'а, чтобы она могла получить размер. В противном случае, " +"сделайте её целью рендеринга и назначьте её внутреннюю текстуру какому-либо " +"узлу для отображения." #: scene/resources/dynamic_font.cpp msgid "Error initializing FreeType." @@ -7628,6 +7845,69 @@ msgstr "Ошибка загрузки шрифта." msgid "Invalid font size." msgstr "Недопустимый размер шрифта." +#~ msgid "Cannot navigate to '" +#~ msgstr "Не удалось перейти к '" + +#~ msgid "" +#~ "\n" +#~ "Source: " +#~ msgstr "" +#~ "\n" +#~ "Источник: " + +#~ msgid "Remove Point from Line2D" +#~ msgstr "Удалить точку с кривой" + +#~ msgid "Add Point to Line2D" +#~ msgstr "Добавить точку к кривой" + +#~ msgid "Move Point in Line2D" +#~ msgstr "Двигать точку в кривой" + +#~ msgid "Split Segment (in line)" +#~ msgstr "Разделить сегмент (в кривой)" + +#~ msgid "Meta+" +#~ msgstr "Meta+" + +#~ msgid "Setting '" +#~ msgstr "Настройки '" + +#~ msgid "Remote Inspector" +#~ msgstr "Удалённый отладчик" + +#~ msgid "Live Scene Tree:" +#~ msgstr "Дерево сцены в реальном времени:" + +#~ msgid "Remote Object Properties: " +#~ msgstr "Параметры объекта: " + +#~ msgid "Prev Level (%sDown Wheel)" +#~ msgstr "Пред уровень (%sКолесико вниз)" + +#~ msgid "Next Level (%sUp Wheel)" +#~ msgstr "Следующий уровень (%sКолесико вверх)" + +#~ msgid "Selection -> Duplicate" +#~ msgstr "Выбор -> Дублировать" + +#~ msgid "Selection -> Clear" +#~ msgstr "Выбор -> Очистить" + +#~ 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 должен быть установлен в режим 'цель рендеринга'." + +#~ msgid "" +#~ "The Viewport set in the path property must be set as 'render target' in " +#~ "order for this sprite to work." +#~ msgstr "" +#~ "Области просмотра установленная в свойстве path должна быть назначена " +#~ "\"целью визуализации\" для того, чтобы этот спрайт работал." + #~ msgid "Filter:" #~ msgstr "Фильтр:" @@ -7652,9 +7932,6 @@ msgstr "Недопустимый размер шрифта." #~ msgid "Removed:" #~ msgstr "Удалено:" -#~ msgid "Error saving atlas:" -#~ msgstr "Ошибка сохранения атласа:" - #~ msgid "Could not save atlas subtexture:" #~ msgstr "Невозможно сохранить текстуру атласа:" @@ -8044,9 +8321,6 @@ msgstr "Недопустимый размер шрифта." #~ msgid "Cropping Images" #~ msgstr "Обрезка изображений" -#~ msgid "Blitting Images" -#~ msgstr "Блитирование Изображений" - #~ msgid "Couldn't save atlas image:" #~ msgstr "Невозможно сохранить изображение атласа:" @@ -8424,9 +8698,6 @@ msgstr "Недопустимый размер шрифта." #~ msgid "Save Translatable Strings" #~ msgstr "Сохранить переводимые строки" -#~ msgid "Install Export Templates" -#~ msgstr "Установить шаблоны экспорта" - #~ msgid "Edit Script Options" #~ msgstr "Редактировать параметры скрипта" diff --git a/editor/translations/sk.po b/editor/translations/sk.po index e5ec2ed8d0..2af3977ed1 100644 --- a/editor/translations/sk.po +++ b/editor/translations/sk.po @@ -99,6 +99,7 @@ msgid "Anim Delete Keys" msgstr "" #: editor/animation_editor.cpp editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Duplicate Selection" msgstr "" @@ -629,6 +630,13 @@ msgstr "" msgid "Search Replacement Resource:" msgstr "" +#: editor/dependency_editor.cpp editor/editor_file_dialog.cpp +#: editor/editor_help.cpp editor/editor_node.cpp editor/filesystem_dock.cpp +#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp +#: editor/quick_open.cpp scene/gui/file_dialog.cpp +msgid "Open" +msgstr "Otvoriť" + #: editor/dependency_editor.cpp msgid "Owners Of:" msgstr "" @@ -699,6 +707,14 @@ msgstr "" msgid "Delete" msgstr "" +#: editor/dictionary_property_edit.cpp +msgid "Change Dictionary Key" +msgstr "" + +#: editor/dictionary_property_edit.cpp +msgid "Change Dictionary Value" +msgstr "" + #: editor/editor_about.cpp msgid "Thanks from the Godot community!" msgstr "" @@ -1118,12 +1134,6 @@ msgstr "Všetko rozpoznané" msgid "All Files (*)" msgstr "" -#: editor/editor_file_dialog.cpp editor/editor_help.cpp editor/editor_node.cpp -#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_selector.cpp editor/quick_open.cpp scene/gui/file_dialog.cpp -msgid "Open" -msgstr "Otvoriť" - #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Open a File" msgstr "Otvoriť súbor" @@ -1481,6 +1491,13 @@ msgid "" msgstr "" #: editor/editor_node.cpp +msgid "" +"This is a remote object so changes to it will not be kept.\n" +"Please read the documentation relevant to debugging to better understand " +"this workflow." +msgstr "" + +#: editor/editor_node.cpp msgid "Copy Params" msgstr "" @@ -1591,6 +1608,10 @@ msgid "Export Mesh Library" msgstr "" #: editor/editor_node.cpp +msgid "This operation can't be done without a root node." +msgstr "" + +#: editor/editor_node.cpp msgid "Export Tile Set" msgstr "" @@ -1717,11 +1738,20 @@ msgid "Switch Scene Tab" msgstr "" #: editor/editor_node.cpp -msgid "%d more file(s)" +msgid "%d more files or folders" +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "%d more folders" +msgstr "Vytvoriť adresár" + +#: editor/editor_node.cpp +msgid "%d more files" msgstr "" #: editor/editor_node.cpp -msgid "%d more file(s) or folder(s)" +msgid "Dock Position" msgstr "" #: editor/editor_node.cpp @@ -1733,6 +1763,10 @@ msgid "Toggle distraction-free mode." msgstr "" #: editor/editor_node.cpp +msgid "Add a new scene." +msgstr "" + +#: editor/editor_node.cpp msgid "Scene" msgstr "" @@ -1798,13 +1832,12 @@ msgid "TileSet.." msgstr "" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp -#: scene/gui/text_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Undo" msgstr "Späť" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp +#: scene/gui/line_edit.cpp msgid "Redo" msgstr "" @@ -2288,6 +2321,10 @@ msgid "(Current)" msgstr "" #: editor/export_template_manager.cpp +msgid "Retrieving mirrors, please wait.." +msgstr "" + +#: editor/export_template_manager.cpp msgid "Remove template version '%s'?" msgstr "" @@ -2322,6 +2359,101 @@ msgid "Importing:" msgstr "" #: editor/export_template_manager.cpp +msgid "" +"No download links found for this version. Direct download is only available " +"for official releases." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't resolve." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't connect." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "No response." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Req. Failed." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Redirect Loop." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Failed:" +msgstr "" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't write file." +msgstr "Popis:" + +#: editor/export_template_manager.cpp +msgid "Download Complete." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Error requesting url: " +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Connecting to Mirror.." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Disconnected" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Resolving" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Can't Resolve" +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Connecting.." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Can't Conect" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Connected" +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Requesting.." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Downloading" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Connection Error" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "SSL Handshake Error" +msgstr "" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "" @@ -2346,12 +2478,21 @@ msgstr "" msgid "Export Template Manager" msgstr "" +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Download Templates" +msgstr "Všetky vybrané" + +#: editor/export_template_manager.cpp +msgid "Select mirror from list: " +msgstr "" + #: editor/file_type_cache.cpp msgid "Can't open file_type_cache.cch for writing, not saving file type cache!" msgstr "" #: editor/filesystem_dock.cpp -msgid "Cannot navigate to '" +msgid "Cannot navigate to '%s' as it has not been found in the file system!" msgstr "" #: editor/filesystem_dock.cpp @@ -2369,12 +2510,6 @@ msgid "" msgstr "" #: editor/filesystem_dock.cpp -msgid "" -"\n" -"Source: " -msgstr "" - -#: editor/filesystem_dock.cpp msgid "Cannot move/rename resources root." msgstr "" @@ -2634,8 +2769,7 @@ msgid "Remove Poly And Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." +msgid "Create a new polygon from scratch" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -2646,6 +2780,11 @@ msgid "" "RMB: Erase Point." msgstr "" +#: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy +msgid "Delete points" +msgstr "Všetky vybrané" + #: editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" msgstr "" @@ -2983,18 +3122,10 @@ msgid "Can't resolve hostname:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't resolve." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Connection error, please try again." msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't connect." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Can't connect to host:" msgstr "" @@ -3003,30 +3134,14 @@ msgid "No response from host:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "No response." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, return code:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Req. Failed." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, too many redirects" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Redirect Loop." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Failed:" -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Bad download hash, assuming file has been tampered with." msgstr "" @@ -3055,14 +3170,6 @@ msgid "Resolving.." msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Connecting.." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Requesting.." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Error making request" msgstr "" @@ -3175,6 +3282,37 @@ msgid "Move Action" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create new vertical guide" +msgstr "Popis:" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Remove vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move horizontal guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create new horizontal guide" +msgstr "Popis:" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove horizontal guide" +msgstr "Všetky vybrané" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new horizontal and vertical guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Edit IK Chain" msgstr "" @@ -3295,10 +3433,16 @@ msgid "Snap to other nodes" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snap to guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Lock the selected object in place (can't be moved)." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Unlock the selected object (can be moved)." msgstr "" @@ -3349,6 +3493,10 @@ msgid "Show rulers" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Show guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Selection" msgstr "" @@ -3538,6 +3686,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/gi_probe_editor_plugin.cpp +msgid "Bake GI Probe" +msgstr "" + #: editor/plugins/gradient_editor_plugin.cpp msgid "Add/Remove Color Ramp Point" msgstr "" @@ -3570,6 +3722,10 @@ msgid "Create Occluder Polygon" msgstr "" #: editor/plugins/light_occluder_2d_editor_plugin.cpp +msgid "Create a new polygon from scratch." +msgstr "" + +#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Edit existing polygon:" msgstr "" @@ -3585,58 +3741,6 @@ msgstr "" msgid "RMB: Erase Point." msgstr "" -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Remove Point from Line2D" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Add Point to Line2D" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Move Point in Line2D" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Select Points" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Shift+Drag: Select Control Points" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Click: Add Point" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Right Click: Delete Point" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Add Point (in empty space)" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Split Segment (in line)" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Delete Point" -msgstr "" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "" @@ -4034,16 +4138,46 @@ msgid "Move Out-Control in Curve" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Select Points" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Shift+Drag: Select Control Points" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Click: Add Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Right Click: Delete Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Select Control Points (Shift+Drag)" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Add Point (in empty space)" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Split Segment (in curve)" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Delete Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Close Curve" msgstr "" @@ -4184,7 +4318,6 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Paste" @@ -4229,6 +4362,20 @@ msgid " Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +msgid "Sort" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Up" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Down" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Next script" msgstr "Popis:" @@ -4281,6 +4428,10 @@ msgstr "" msgid "Close All" msgstr "" +#: editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "" @@ -4291,13 +4442,11 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find.." msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Next" msgstr "" @@ -4401,33 +4550,22 @@ msgstr "" msgid "Capitalize" msgstr "" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Copy" msgstr "Kopírovať" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Select All" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Up" -msgstr "" - -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Down" -msgstr "" - #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "" @@ -4449,6 +4587,22 @@ msgid "Clone Down" msgstr "" #: editor/plugins/script_text_editor.cpp +msgid "Fold Line" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold Line" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Fold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Complete Symbol" msgstr "" @@ -4494,12 +4648,10 @@ msgid "Convert To Lowercase" msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Previous" msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Replace.." msgstr "" @@ -4508,7 +4660,6 @@ msgid "Goto Function.." msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Goto Line.." msgstr "" @@ -4673,6 +4824,14 @@ msgid "View Plane Transform." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Scaling: " +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Translating: " +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Rotating %s degrees." msgstr "" @@ -4753,6 +4912,10 @@ msgid "Vertices" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "FPS" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Align with view" msgstr "" @@ -4785,6 +4948,15 @@ msgid "View Information" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "View FPS" +msgstr "Súbor:" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Half Resolution" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Audio Listener" msgstr "" @@ -4915,6 +5087,10 @@ msgid "Tool Scale" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Toggle Freelook" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Transform" msgstr "" @@ -5193,6 +5369,10 @@ msgid "Create Empty Editor Template" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Create From Current Editor Theme" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "CheckBox Radio1" msgstr "" @@ -5367,7 +5547,7 @@ msgid "Runnable" msgstr "" #: editor/project_export.cpp -msgid "Delete patch '" +msgid "Delete patch '%s' from list?" msgstr "" #: editor/project_export.cpp @@ -5663,10 +5843,6 @@ msgid "Add Input Action Event" msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Meta+" -msgstr "Meta+" - -#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp msgid "Shift+" msgstr "Shift+" @@ -5788,11 +5964,11 @@ msgid "Select a setting item first!" msgstr "" #: editor/project_settings_editor.cpp -msgid "No property '" +msgid "No property '%s' exists." msgstr "" #: editor/project_settings_editor.cpp -msgid "Setting '" +msgid "Setting '%s' is internal, and it can't be deleted." msgstr "" #: editor/project_settings_editor.cpp @@ -6265,6 +6441,15 @@ msgid "Clear a script for the selected node." msgstr "" #: editor/scene_tree_dock.cpp +#, fuzzy +msgid "Remote" +msgstr "Všetky vybrané" + +#: editor/scene_tree_dock.cpp +msgid "Local" +msgstr "" + +#: editor/scene_tree_dock.cpp msgid "Clear Inheritance? (No Undo!)" msgstr "" @@ -6453,6 +6638,11 @@ msgid "Attach Node Script" msgstr "Popis:" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Remote " +msgstr "Všetky vybrané" + +#: editor/script_editor_debugger.cpp msgid "Bytes:" msgstr "" @@ -6509,18 +6699,6 @@ msgid "Stack Trace (if applicable):" msgstr "" #: editor/script_editor_debugger.cpp -msgid "Remote Inspector" -msgstr "" - -#: editor/script_editor_debugger.cpp -msgid "Live Scene Tree:" -msgstr "" - -#: editor/script_editor_debugger.cpp -msgid "Remote Object Properties: " -msgstr "" - -#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -6652,49 +6830,49 @@ msgstr "" msgid "GDNative" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Invalid type argument to convert(), use TYPE_* constants." msgstr "Chybný argument convert(), použite TYPE_* konštanty." -#: modules/gdscript/gd_functions.cpp modules/mono/glue/glue_header.h +#: modules/gdscript/gdscript_functions.cpp modules/mono/glue/glue_header.h #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Not enough bytes for decoding bytes, or invalid format." msgstr "Nedostatok bajtov na dekódovanie, možný chybný formát." -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "step argument is zero!" msgstr "argument \"step\"/krok je nulový!" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not a script with an instance" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a script" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a resource file" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (missing @path)" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (can't load script at @path)" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (invalid script at @path)" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary (invalid subclasses)" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Object can't provide a length." msgstr "" @@ -6708,15 +6886,23 @@ msgid "GridMap Duplicate Selection" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Floor:" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Grid Map" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Snap View" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Prev Level (%sDown Wheel)" +msgid "Previous Floor" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Next Level (%sUp Wheel)" +msgid "Next Floor" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp @@ -6785,12 +6971,9 @@ msgid "Erase Area" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Selection -> Duplicate" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Selection -> Clear" -msgstr "" +#, fuzzy +msgid "Clear Selection" +msgstr "Všetky vybrané" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Settings" @@ -6913,7 +7096,7 @@ msgid "Duplicate VisualScript Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Getter. Hold Shift to drop a generic signature." +msgid "Hold %s to drop a Getter. Hold Shift to drop a generic signature." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -6921,7 +7104,7 @@ msgid "Hold Ctrl to drop a Getter. Hold Shift to drop a generic signature." msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a simple reference to the node." +msgid "Hold %s to drop a simple reference to the node." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -6929,7 +7112,7 @@ msgid "Hold Ctrl to drop a simple reference to the node." msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Variable Setter." +msgid "Hold %s to drop a Variable Setter." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -7162,11 +7345,19 @@ msgid "Could not write file:\n" msgstr "" #: platform/javascript/export/export.cpp -msgid "Could not read file:\n" +msgid "Could not open template for export:\n" msgstr "" #: platform/javascript/export/export.cpp -msgid "Could not open template for export:\n" +msgid "Invalid export template:\n" +msgstr "" + +#: platform/javascript/export/export.cpp +msgid "Could not read custom HTML shell:\n" +msgstr "" + +#: platform/javascript/export/export.cpp +msgid "Could not read boot splash image file:\n" msgstr "" #: scene/2d/animated_sprite.cpp @@ -7265,18 +7456,6 @@ msgstr "" msgid "Path property must point to a valid Node2D node to work." 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 " @@ -7335,6 +7514,14 @@ msgid "" "shape resource for it!" msgstr "" +#: scene/3d/gi_probe.cpp +msgid "Plotting Meshes" +msgstr "" + +#: scene/3d/gi_probe.cpp +msgid "Finishing Plot" +msgstr "" + #: scene/3d/navigation_mesh.cpp msgid "A NavigationMesh resource must be set or created for this node to work." msgstr "" @@ -7412,6 +7599,10 @@ msgid "" "minimum size manually." msgstr "" +#: scene/gui/tree.cpp +msgid "(Other)" +msgstr "" + #: scene/main/scene_tree.cpp msgid "" "Default Environment as specified in Project Setings (Rendering -> Viewport -" @@ -7442,6 +7633,9 @@ msgstr "" msgid "Invalid font size." msgstr "" +#~ msgid "Meta+" +#~ msgstr "Meta+" + #~ msgid "Filter:" #~ msgstr "Filter:" diff --git a/editor/translations/sl.po b/editor/translations/sl.po index 4a82428565..30041b0349 100644 --- a/editor/translations/sl.po +++ b/editor/translations/sl.po @@ -100,6 +100,7 @@ msgid "Anim Delete Keys" msgstr "" #: editor/animation_editor.cpp editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Duplicate Selection" msgstr "" @@ -629,6 +630,13 @@ msgstr "" msgid "Search Replacement Resource:" msgstr "" +#: editor/dependency_editor.cpp editor/editor_file_dialog.cpp +#: editor/editor_help.cpp editor/editor_node.cpp editor/filesystem_dock.cpp +#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp +#: editor/quick_open.cpp scene/gui/file_dialog.cpp +msgid "Open" +msgstr "" + #: editor/dependency_editor.cpp msgid "Owners Of:" msgstr "" @@ -699,6 +707,14 @@ msgstr "" msgid "Delete" msgstr "" +#: editor/dictionary_property_edit.cpp +msgid "Change Dictionary Key" +msgstr "" + +#: editor/dictionary_property_edit.cpp +msgid "Change Dictionary Value" +msgstr "" + #: editor/editor_about.cpp msgid "Thanks from the Godot community!" msgstr "" @@ -1117,12 +1133,6 @@ msgstr "" msgid "All Files (*)" msgstr "" -#: editor/editor_file_dialog.cpp editor/editor_help.cpp editor/editor_node.cpp -#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_selector.cpp editor/quick_open.cpp scene/gui/file_dialog.cpp -msgid "Open" -msgstr "" - #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Open a File" msgstr "" @@ -1478,6 +1488,13 @@ msgid "" msgstr "" #: editor/editor_node.cpp +msgid "" +"This is a remote object so changes to it will not be kept.\n" +"Please read the documentation relevant to debugging to better understand " +"this workflow." +msgstr "" + +#: editor/editor_node.cpp msgid "Copy Params" msgstr "" @@ -1587,6 +1604,10 @@ msgid "Export Mesh Library" msgstr "" #: editor/editor_node.cpp +msgid "This operation can't be done without a root node." +msgstr "" + +#: editor/editor_node.cpp msgid "Export Tile Set" msgstr "" @@ -1712,11 +1733,19 @@ msgid "Switch Scene Tab" msgstr "" #: editor/editor_node.cpp -msgid "%d more file(s)" +msgid "%d more files or folders" +msgstr "" + +#: editor/editor_node.cpp +msgid "%d more folders" +msgstr "" + +#: editor/editor_node.cpp +msgid "%d more files" msgstr "" #: editor/editor_node.cpp -msgid "%d more file(s) or folder(s)" +msgid "Dock Position" msgstr "" #: editor/editor_node.cpp @@ -1728,6 +1757,10 @@ msgid "Toggle distraction-free mode." msgstr "" #: editor/editor_node.cpp +msgid "Add a new scene." +msgstr "" + +#: editor/editor_node.cpp msgid "Scene" msgstr "" @@ -1792,13 +1825,12 @@ msgid "TileSet.." msgstr "" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp -#: scene/gui/text_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Undo" msgstr "" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp +#: scene/gui/line_edit.cpp msgid "Redo" msgstr "" @@ -2280,6 +2312,10 @@ msgid "(Current)" msgstr "" #: editor/export_template_manager.cpp +msgid "Retrieving mirrors, please wait.." +msgstr "" + +#: editor/export_template_manager.cpp msgid "Remove template version '%s'?" msgstr "" @@ -2314,6 +2350,100 @@ msgid "Importing:" msgstr "" #: editor/export_template_manager.cpp +msgid "" +"No download links found for this version. Direct download is only available " +"for official releases." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't resolve." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't connect." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "No response." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Req. Failed." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Redirect Loop." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Failed:" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Can't write file." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Download Complete." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Error requesting url: " +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Connecting to Mirror.." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Disconnected" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Resolving" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Can't Resolve" +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Connecting.." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Can't Conect" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Connected" +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Requesting.." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Downloading" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Connection Error" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "SSL Handshake Error" +msgstr "" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "" @@ -2338,12 +2468,21 @@ msgstr "" msgid "Export Template Manager" msgstr "" +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Download Templates" +msgstr "Odstrani Spremenljivko" + +#: editor/export_template_manager.cpp +msgid "Select mirror from list: " +msgstr "" + #: editor/file_type_cache.cpp msgid "Can't open file_type_cache.cch for writing, not saving file type cache!" msgstr "" #: editor/filesystem_dock.cpp -msgid "Cannot navigate to '" +msgid "Cannot navigate to '%s' as it has not been found in the file system!" msgstr "" #: editor/filesystem_dock.cpp @@ -2361,12 +2500,6 @@ msgid "" msgstr "" #: editor/filesystem_dock.cpp -msgid "" -"\n" -"Source: " -msgstr "" - -#: editor/filesystem_dock.cpp msgid "Cannot move/rename resources root." msgstr "" @@ -2625,8 +2758,7 @@ msgid "Remove Poly And Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." +msgid "Create a new polygon from scratch" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -2637,6 +2769,11 @@ msgid "" "RMB: Erase Point." msgstr "" +#: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy +msgid "Delete points" +msgstr "Izbriši Izbrano" + #: editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" msgstr "" @@ -2972,18 +3109,10 @@ msgid "Can't resolve hostname:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't resolve." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Connection error, please try again." msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't connect." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Can't connect to host:" msgstr "" @@ -2992,30 +3121,14 @@ msgid "No response from host:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "No response." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, return code:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Req. Failed." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, too many redirects" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Redirect Loop." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Failed:" -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Bad download hash, assuming file has been tampered with." msgstr "" @@ -3044,14 +3157,6 @@ msgid "Resolving.." msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Connecting.." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Requesting.." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Error making request" msgstr "" @@ -3164,6 +3269,36 @@ msgid "Move Action" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove vertical guide" +msgstr "Odstrani Spremenljivko" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move horizontal guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new horizontal guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove horizontal guide" +msgstr "Odstrani Spremenljivko" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new horizontal and vertical guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Edit IK Chain" msgstr "" @@ -3285,10 +3420,16 @@ msgid "Snap to other nodes" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snap to guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Lock the selected object in place (can't be moved)." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Unlock the selected object (can be moved)." msgstr "" @@ -3339,6 +3480,10 @@ msgid "Show rulers" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Show guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Selection" msgstr "" @@ -3527,6 +3672,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/gi_probe_editor_plugin.cpp +msgid "Bake GI Probe" +msgstr "" + #: editor/plugins/gradient_editor_plugin.cpp msgid "Add/Remove Color Ramp Point" msgstr "" @@ -3559,6 +3708,10 @@ msgid "Create Occluder Polygon" msgstr "" #: editor/plugins/light_occluder_2d_editor_plugin.cpp +msgid "Create a new polygon from scratch." +msgstr "" + +#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Edit existing polygon:" msgstr "" @@ -3574,58 +3727,6 @@ msgstr "" msgid "RMB: Erase Point." msgstr "" -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Remove Point from Line2D" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Add Point to Line2D" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Move Point in Line2D" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Select Points" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Shift+Drag: Select Control Points" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Click: Add Point" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Right Click: Delete Point" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Add Point (in empty space)" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Split Segment (in line)" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Delete Point" -msgstr "" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "" @@ -4023,16 +4124,46 @@ msgid "Move Out-Control in Curve" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Select Points" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Shift+Drag: Select Control Points" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Click: Add Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Right Click: Delete Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Select Control Points (Shift+Drag)" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Add Point (in empty space)" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Split Segment (in curve)" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Delete Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Close Curve" msgstr "" @@ -4173,7 +4304,6 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Paste" @@ -4218,6 +4348,20 @@ msgid " Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +msgid "Sort" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Up" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Down" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Next script" msgstr "" @@ -4270,6 +4414,10 @@ msgstr "" msgid "Close All" msgstr "Zapri" +#: editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "" @@ -4280,13 +4428,11 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find.." msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Next" msgstr "" @@ -4390,33 +4536,22 @@ msgstr "" msgid "Capitalize" msgstr "" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Copy" msgstr "" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Select All" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Up" -msgstr "" - -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Down" -msgstr "" - #: editor/plugins/script_text_editor.cpp #, fuzzy msgid "Delete Line" @@ -4439,6 +4574,23 @@ msgid "Clone Down" msgstr "" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Fold Line" +msgstr "Izbriši Izbrano" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold Line" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Fold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Complete Symbol" msgstr "" @@ -4484,12 +4636,10 @@ msgid "Convert To Lowercase" msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Previous" msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Replace.." msgstr "" @@ -4498,7 +4648,6 @@ msgid "Goto Function.." msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Goto Line.." msgstr "" @@ -4663,6 +4812,14 @@ msgid "View Plane Transform." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Scaling: " +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Translating: " +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Rotating %s degrees." msgstr "" @@ -4744,6 +4901,10 @@ msgid "Vertices" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "FPS" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Align with view" msgstr "" @@ -4776,6 +4937,14 @@ msgid "View Information" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "View FPS" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Half Resolution" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Audio Listener" msgstr "" @@ -4904,6 +5073,11 @@ msgid "Tool Scale" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Toggle Freelook" +msgstr "Preklopi na Zaustavitev" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Transform" msgstr "" @@ -5180,6 +5354,10 @@ msgid "Create Empty Editor Template" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Create From Current Editor Theme" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "CheckBox Radio1" msgstr "" @@ -5353,7 +5531,7 @@ msgid "Runnable" msgstr "" #: editor/project_export.cpp -msgid "Delete patch '" +msgid "Delete patch '%s' from list?" msgstr "" #: editor/project_export.cpp @@ -5648,10 +5826,6 @@ msgid "Add Input Action Event" msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Meta+" -msgstr "" - -#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp msgid "Shift+" msgstr "" @@ -5774,11 +5948,11 @@ msgid "Select a setting item first!" msgstr "" #: editor/project_settings_editor.cpp -msgid "No property '" +msgid "No property '%s' exists." msgstr "" #: editor/project_settings_editor.cpp -msgid "Setting '" +msgid "Setting '%s' is internal, and it can't be deleted." msgstr "" #: editor/project_settings_editor.cpp @@ -6248,6 +6422,15 @@ msgid "Clear a script for the selected node." msgstr "" #: editor/scene_tree_dock.cpp +#, fuzzy +msgid "Remote" +msgstr "Odstrani Signal" + +#: editor/scene_tree_dock.cpp +msgid "Local" +msgstr "" + +#: editor/scene_tree_dock.cpp msgid "Clear Inheritance? (No Undo!)" msgstr "" @@ -6433,6 +6616,11 @@ msgid "Attach Node Script" msgstr "" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Remote " +msgstr "Odstrani Signal" + +#: editor/script_editor_debugger.cpp msgid "Bytes:" msgstr "" @@ -6489,18 +6677,6 @@ msgid "Stack Trace (if applicable):" msgstr "" #: editor/script_editor_debugger.cpp -msgid "Remote Inspector" -msgstr "" - -#: editor/script_editor_debugger.cpp -msgid "Live Scene Tree:" -msgstr "" - -#: editor/script_editor_debugger.cpp -msgid "Remote Object Properties: " -msgstr "" - -#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -6632,50 +6808,50 @@ msgstr "" msgid "GDNative" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Invalid type argument to convert(), use TYPE_* constants." msgstr "Neveljavena vrsta argumenta za convert(), uporabite TYPE_* konstanto." -#: modules/gdscript/gd_functions.cpp modules/mono/glue/glue_header.h +#: modules/gdscript/gdscript_functions.cpp modules/mono/glue/glue_header.h #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Not enough bytes for decoding bytes, or invalid format." msgstr "Ni dovolj pomnilnika za dekodiranje bajtov, ali neveljaven format." -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "step argument is zero!" msgstr "stopnja argumenta je nič!" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not a script with an instance" msgstr "To ni skripta z instanco" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a script" msgstr "Ne temelji na skripti" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a resource file" msgstr "Ne temelji na datoteki virov" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (missing @path)" msgstr "Neveljaven primer formata slovarja (manjka @path)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (can't load script at @path)" msgstr "" "Neveljaven primer formata slovarja (ni mogoče naložiti skripte iz @path)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (invalid script at @path)" msgstr "Neveljaven primer formata slovarja (neveljavna skripta v @path)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary (invalid subclasses)" msgstr "Neveljaven primer slovarja (neveljavni podrazredi)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Object can't provide a length." msgstr "" @@ -6689,15 +6865,23 @@ msgid "GridMap Duplicate Selection" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Floor:" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Grid Map" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Snap View" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Prev Level (%sDown Wheel)" +msgid "Previous Floor" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Next Level (%sUp Wheel)" +msgid "Next Floor" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp @@ -6765,12 +6949,9 @@ msgid "Erase Area" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Selection -> Duplicate" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Selection -> Clear" -msgstr "" +#, fuzzy +msgid "Clear Selection" +msgstr "Izbriši Izbrano" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Settings" @@ -6900,7 +7081,7 @@ msgid "Duplicate VisualScript Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Getter. Hold Shift to drop a generic signature." +msgid "Hold %s to drop a Getter. Hold Shift to drop a generic signature." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -6908,7 +7089,7 @@ msgid "Hold Ctrl to drop a Getter. Hold Shift to drop a generic signature." msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a simple reference to the node." +msgid "Hold %s to drop a simple reference to the node." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -6916,7 +7097,7 @@ msgid "Hold Ctrl to drop a simple reference to the node." msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Variable Setter." +msgid "Hold %s to drop a Variable Setter." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -7150,11 +7331,20 @@ msgid "Could not write file:\n" msgstr "" #: platform/javascript/export/export.cpp -msgid "Could not read file:\n" +msgid "Could not open template for export:\n" msgstr "" #: platform/javascript/export/export.cpp -msgid "Could not open template for export:\n" +#, fuzzy +msgid "Invalid export template:\n" +msgstr "Neveljaven indeks lastnosti imena." + +#: platform/javascript/export/export.cpp +msgid "Could not read custom HTML shell:\n" +msgstr "" + +#: platform/javascript/export/export.cpp +msgid "Could not read boot splash image file:\n" msgstr "" #: scene/2d/animated_sprite.cpp @@ -7258,18 +7448,6 @@ msgstr "" msgid "Path property must point to a valid Node2D node to work." 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 " @@ -7328,6 +7506,14 @@ msgid "" "shape resource for it!" msgstr "" +#: scene/3d/gi_probe.cpp +msgid "Plotting Meshes" +msgstr "" + +#: scene/3d/gi_probe.cpp +msgid "Finishing Plot" +msgstr "" + #: scene/3d/navigation_mesh.cpp msgid "A NavigationMesh resource must be set or created for this node to work." msgstr "" @@ -7405,6 +7591,10 @@ msgid "" "minimum size manually." msgstr "" +#: scene/gui/tree.cpp +msgid "(Other)" +msgstr "" + #: scene/main/scene_tree.cpp msgid "" "Default Environment as specified in Project Setings (Rendering -> Viewport -" diff --git a/editor/translations/sr_Cyrl.po b/editor/translations/sr_Cyrl.po new file mode 100644 index 0000000000..5577bc2098 --- /dev/null +++ b/editor/translations/sr_Cyrl.po @@ -0,0 +1,7707 @@ +# Serbian (cyrillic) translation of the Godot Engine editor +# Copyright (C) 2007-2017 Juan Linietsky, Ariel Manzur +# Copyright (C) 2014-2017 Godot Engine contributors (cf. AUTHORS.md) +# This file is distributed under the same license as the Godot source code. +# +# Александар Урошевић <nicecubedude@gmail.com>, 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: Godot Engine editor\n" +"PO-Revision-Date: 2017-11-19 13:49+0000\n" +"Last-Translator: Александар Урошевић <nicecubedude@gmail.com>\n" +"Language-Team: Serbian (cyrillic) <https://hosted.weblate.org/projects/godot-" +"engine/godot/sr_Cyrl/>\n" +"Language: sr_Cyrl\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 2.18-dev\n" + +#: editor/animation_editor.cpp +msgid "Disabled" +msgstr "Онемогућено" + +#: editor/animation_editor.cpp +msgid "All Selection" +msgstr "Све одабрано" + +#: editor/animation_editor.cpp +msgid "Move Add Key" +msgstr "" + +#: editor/animation_editor.cpp +msgid "Anim Change Transition" +msgstr "Промените прелаз" + +#: editor/animation_editor.cpp +msgid "Anim Change Transform" +msgstr "Промените положај" + +#: editor/animation_editor.cpp +msgid "Anim Change Value" +msgstr "Промените вредност" + +#: editor/animation_editor.cpp +msgid "Anim Change Call" +msgstr "Промените позив анимације" + +#: editor/animation_editor.cpp +msgid "Anim Add Track" +msgstr "Додајте нову траку" + +#: editor/animation_editor.cpp +msgid "Anim Duplicate Keys" +msgstr "Дуплирајте кључеве" + +#: editor/animation_editor.cpp +msgid "Move Anim Track Up" +msgstr "Померите траку горе" + +#: editor/animation_editor.cpp +msgid "Move Anim Track Down" +msgstr "Померите траку доле" + +#: editor/animation_editor.cpp +msgid "Remove Anim Track" +msgstr "Обришите траку анимације" + +#: editor/animation_editor.cpp +msgid "Set Transitions to:" +msgstr "Поставите прелаз на:" + +#: editor/animation_editor.cpp +msgid "Anim Track Rename" +msgstr "Измените име анимације" + +#: editor/animation_editor.cpp +msgid "Anim Track Change Interpolation" +msgstr "Измените интерполацију" + +#: editor/animation_editor.cpp +msgid "Anim Track Change Value Mode" +msgstr "Измените режим вредности" + +#: editor/animation_editor.cpp +msgid "Anim Track Change Wrap Mode" +msgstr "Измените режим цикла" + +#: editor/animation_editor.cpp +msgid "Edit Node Curve" +msgstr "Измените криву чвора" + +#: editor/animation_editor.cpp +msgid "Edit Selection Curve" +msgstr "Измените одабрану криву" + +#: editor/animation_editor.cpp +msgid "Anim Delete Keys" +msgstr "Уколните кључеве" + +#: editor/animation_editor.cpp editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Duplicate Selection" +msgstr "Дуплирајте одабрано" + +#: editor/animation_editor.cpp +msgid "Duplicate Transposed" +msgstr "Дуплирај транспоновану" + +#: editor/animation_editor.cpp +msgid "Remove Selection" +msgstr "Обришите одабрано" + +#: editor/animation_editor.cpp +msgid "Continuous" +msgstr "Трајан" + +#: editor/animation_editor.cpp +msgid "Discrete" +msgstr "Одвојен" + +#: editor/animation_editor.cpp +msgid "Trigger" +msgstr "Окидач" + +#: editor/animation_editor.cpp +msgid "Anim Add Key" +msgstr "Уметни кључ" + +#: editor/animation_editor.cpp +msgid "Anim Move Keys" +msgstr "Помери кључеве" + +#: editor/animation_editor.cpp +msgid "Scale Selection" +msgstr "Увећај одабрано" + +#: editor/animation_editor.cpp +msgid "Scale From Cursor" +msgstr "Увећај од курсора" + +#: editor/animation_editor.cpp +msgid "Goto Next Step" +msgstr "Идите на следећи корак" + +#: editor/animation_editor.cpp +msgid "Goto Prev Step" +msgstr "Идите на претходни корак" + +#: editor/animation_editor.cpp editor/plugins/curve_editor_plugin.cpp +#: editor/property_editor.cpp +msgid "Linear" +msgstr "Линеаран" + +#: editor/animation_editor.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Constant" +msgstr "Константан" + +#: editor/animation_editor.cpp +msgid "In" +msgstr "У" + +#: editor/animation_editor.cpp +msgid "Out" +msgstr "Из" + +#: editor/animation_editor.cpp +msgid "In-Out" +msgstr "У-Из" + +#: editor/animation_editor.cpp +msgid "Out-In" +msgstr "Из-У" + +#: editor/animation_editor.cpp +msgid "Transitions" +msgstr "Прелази" + +#: editor/animation_editor.cpp +msgid "Optimize Animation" +msgstr "Оптимизуј анимацију" + +#: editor/animation_editor.cpp +msgid "Clean-Up Animation" +msgstr "Очистите анимацију" + +#: editor/animation_editor.cpp +msgid "Create NEW track for %s and insert key?" +msgstr "Направите нову траку за %s и убаците кључ?" + +#: editor/animation_editor.cpp +msgid "Create %d NEW tracks and insert keys?" +msgstr "Направите %d нових трака и убаците кључеве?" + +#: editor/animation_editor.cpp editor/create_dialog.cpp +#: editor/editor_audio_buses.cpp editor/plugins/abstract_polygon_2d_editor.cpp +#: editor/plugins/light_occluder_2d_editor_plugin.cpp +#: editor/plugins/mesh_instance_editor_plugin.cpp +#: editor/plugins/particles_editor_plugin.cpp editor/project_manager.cpp +#: editor/script_create_dialog.cpp +msgid "Create" +msgstr "Направи" + +#: editor/animation_editor.cpp +msgid "Anim Create & Insert" +msgstr "Направи анимацију и убаци" + +#: editor/animation_editor.cpp +msgid "Anim Insert Track & Key" +msgstr "Уметни траку и кључ" + +#: editor/animation_editor.cpp +msgid "Anim Insert Key" +msgstr "Уметни кључ" + +#: editor/animation_editor.cpp +msgid "Change Anim Len" +msgstr "Измени дужину анимације" + +#: editor/animation_editor.cpp +msgid "Change Anim Loop" +msgstr "Измени лупинг анимације" + +#: editor/animation_editor.cpp +msgid "Anim Create Typed Value Key" +msgstr "" + +#: editor/animation_editor.cpp +msgid "Anim Insert" +msgstr "Налепи" + +#: editor/animation_editor.cpp +msgid "Anim Scale Keys" +msgstr "Увећај кључеве" + +#: editor/animation_editor.cpp +msgid "Anim Add Call Track" +msgstr "" + +#: editor/animation_editor.cpp +msgid "Animation zoom." +msgstr "Скала анимације." + +#: editor/animation_editor.cpp +msgid "Length (s):" +msgstr "Дужина (сек.):" + +#: editor/animation_editor.cpp +msgid "Animation length (in seconds)." +msgstr "Дужина анимације (у секундама)." + +#: editor/animation_editor.cpp +msgid "Step (s):" +msgstr "Један корак (сек.):" + +#: editor/animation_editor.cpp +msgid "Cursor step snap (in seconds)." +msgstr "Поравнавање корака курсора (у секундама)." + +#: editor/animation_editor.cpp +msgid "Enable/Disable looping in animation." +msgstr "Укључи/искључи понављање анимације." + +#: editor/animation_editor.cpp +msgid "Add new tracks." +msgstr "Додај нове траке." + +#: editor/animation_editor.cpp +msgid "Move current track up." +msgstr "Помери траку горе." + +#: editor/animation_editor.cpp +msgid "Move current track down." +msgstr "Помери траку доле." + +#: editor/animation_editor.cpp +msgid "Remove selected track." +msgstr "Обриши одабрану траку." + +#: editor/animation_editor.cpp +msgid "Track tools" +msgstr "Алатке за траке" + +#: editor/animation_editor.cpp +msgid "Enable editing of individual keys by clicking them." +msgstr "Омогућите уређивање индивидуалних кључева кликом на њих." + +#: editor/animation_editor.cpp +msgid "Anim. Optimizer" +msgstr "Оптимизатор анимација" + +#: editor/animation_editor.cpp +msgid "Max. Linear Error:" +msgstr "Максимална линеарна грешка:" + +#: editor/animation_editor.cpp +msgid "Max. Angular Error:" +msgstr "Максимална угаона грешка:" + +#: editor/animation_editor.cpp +msgid "Max Optimizable Angle:" +msgstr "Максимални оптимизован угао:" + +#: editor/animation_editor.cpp +msgid "Optimize" +msgstr "Оптимизуј" + +#: editor/animation_editor.cpp +msgid "Select an AnimationPlayer from the Scene Tree to edit animations." +msgstr "Одабери AnimationPlayer из дрвета сцене за уређивање анимација." + +#: editor/animation_editor.cpp +msgid "Key" +msgstr "Кључ" + +#: editor/animation_editor.cpp +msgid "Transition" +msgstr "Померај" + +#: editor/animation_editor.cpp +msgid "Scale Ratio:" +msgstr "Размера скале:" + +#: editor/animation_editor.cpp +msgid "Call Functions in Which Node?" +msgstr "Позови функције у којем чвору?" + +#: editor/animation_editor.cpp +msgid "Remove invalid keys" +msgstr "Обриши неважеће кључеве" + +#: editor/animation_editor.cpp +msgid "Remove unresolved and empty tracks" +msgstr "Обриши необјашњене и празне траке" + +#: editor/animation_editor.cpp +msgid "Clean-up all animations" +msgstr "Очисти све анимације" + +#: editor/animation_editor.cpp +msgid "Clean-Up Animation(s) (NO UNDO!)" +msgstr "Очисти анимацију(е) (НЕМА ОПОЗИВАЊА!)" + +#: editor/animation_editor.cpp +msgid "Clean-Up" +msgstr "Очисти" + +#: editor/array_property_edit.cpp +msgid "Resize Array" +msgstr "Промени величину низа" + +#: editor/array_property_edit.cpp +msgid "Change Array Value Type" +msgstr "Промени тип вредности низа" + +#: editor/array_property_edit.cpp +msgid "Change Array Value" +msgstr "Промени вредност низа" + +#: editor/code_editor.cpp +msgid "Go to Line" +msgstr "Иди на линију" + +#: editor/code_editor.cpp +msgid "Line Number:" +msgstr "Број линије:" + +#: editor/code_editor.cpp +msgid "No Matches" +msgstr "Нема подудара" + +#: editor/code_editor.cpp +msgid "Replaced %d occurrence(s)." +msgstr "Замени %d појаве/а." + +#: editor/code_editor.cpp +msgid "Replace" +msgstr "Замени" + +#: editor/code_editor.cpp +msgid "Replace All" +msgstr "Замени све" + +#: editor/code_editor.cpp +msgid "Match Case" +msgstr "Подударање великих и малих слова" + +#: editor/code_editor.cpp +msgid "Whole Words" +msgstr "Целе речи" + +#: editor/code_editor.cpp +msgid "Selection Only" +msgstr "Само одабрано" + +#: editor/code_editor.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/project_settings_editor.cpp +msgid "Search" +msgstr "Тражи" + +#: editor/code_editor.cpp editor/editor_help.cpp +msgid "Find" +msgstr "Нађи" + +#: editor/code_editor.cpp +msgid "Next" +msgstr "Следеће" + +#: editor/code_editor.cpp +msgid "Not found!" +msgstr "Није пронађено!" + +#: editor/code_editor.cpp +msgid "Replace By" +msgstr "Заменити са" + +#: editor/code_editor.cpp +msgid "Case Sensitive" +msgstr "Разликовање великих и малих слова" + +#: editor/code_editor.cpp +msgid "Backwards" +msgstr "Натраг" + +#: editor/code_editor.cpp +msgid "Prompt On Replace" +msgstr "Питај за замену" + +#: editor/code_editor.cpp +msgid "Skip" +msgstr "Прескочи" + +#: editor/code_editor.cpp +msgid "Zoom In" +msgstr "Увеличај" + +#: editor/code_editor.cpp +msgid "Zoom Out" +msgstr "Умањи" + +#: editor/code_editor.cpp +msgid "Reset Zoom" +msgstr "Ресетуј увеличање" + +#: editor/code_editor.cpp editor/script_editor_debugger.cpp +msgid "Line:" +msgstr "Линија:" + +#: editor/code_editor.cpp +msgid "Col:" +msgstr "Колона:" + +#: editor/connections_dialog.cpp +msgid "Method in target Node must be specified!" +msgstr "Метода у циљаном чвору мора бити наведена!" + +#: editor/connections_dialog.cpp +msgid "" +"Target method not found! Specify a valid method or attach a script to target " +"Node." +msgstr "" +"Циљана метода није пронађена! Наведите валидну методу или прикачите " +"скриптицу на циљани чвор." + +#: editor/connections_dialog.cpp +msgid "Connect To Node:" +msgstr "Повежи са чвором:" + +#: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp +#: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp +msgid "Add" +msgstr "Додај" + +#: editor/connections_dialog.cpp editor/dependency_editor.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/project_settings_editor.cpp +msgid "Remove" +msgstr "Обриши" + +#: editor/connections_dialog.cpp +msgid "Add Extra Call Argument:" +msgstr "Додај додатан аргумент позива:" + +#: editor/connections_dialog.cpp +msgid "Extra Call Arguments:" +msgstr "Додатни аргументи позива:" + +#: editor/connections_dialog.cpp +msgid "Path to Node:" +msgstr "Пут ка чвору:" + +#: editor/connections_dialog.cpp +msgid "Make Function" +msgstr "Направи функцију" + +#: editor/connections_dialog.cpp +msgid "Deferred" +msgstr "Одложен" + +#: editor/connections_dialog.cpp +msgid "Oneshot" +msgstr "" + +#: editor/connections_dialog.cpp editor/dependency_editor.cpp +#: editor/export_template_manager.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/resource_preloader_editor_plugin.cpp +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/property_editor.cpp +#: editor/run_settings_dialog.cpp editor/settings_config_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp +msgid "Close" +msgstr "Затвори" + +#: editor/connections_dialog.cpp +msgid "Connect" +msgstr "Повежи" + +#: editor/connections_dialog.cpp +msgid "Connect '%s' to '%s'" +msgstr "Повежи '%s' са '%s'" + +#: editor/connections_dialog.cpp +msgid "Connecting Signal:" +msgstr "Везујући сигнал:" + +#: editor/connections_dialog.cpp +msgid "Create Subscription" +msgstr "Направи претплату" + +#: editor/connections_dialog.cpp +msgid "Connect.." +msgstr "Повежи..." + +#: editor/connections_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +msgid "Disconnect" +msgstr "Ископчати" + +#: editor/connections_dialog.cpp editor/editor_help.cpp editor/node_dock.cpp +msgid "Signals" +msgstr "Сигнали" + +#: editor/create_dialog.cpp +msgid "Create New" +msgstr "Направи нов" + +#: editor/create_dialog.cpp editor/editor_file_dialog.cpp +#: editor/filesystem_dock.cpp +msgid "Favorites:" +msgstr "Омиљене:" + +#: editor/create_dialog.cpp editor/editor_file_dialog.cpp +msgid "Recent:" +msgstr "Честе:" + +#: editor/create_dialog.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp +#: editor/quick_open.cpp editor/settings_config_dialog.cpp +msgid "Search:" +msgstr "Тражи:" + +#: editor/create_dialog.cpp editor/editor_help.cpp +#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp +#: editor/quick_open.cpp +msgid "Matches:" +msgstr "Подударање:" + +#: editor/create_dialog.cpp editor/editor_help.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/script_editor_debugger.cpp +msgid "Description:" +msgstr "Опис:" + +#: editor/dependency_editor.cpp +msgid "Search Replacement For:" +msgstr "Тражи замену за:" + +#: editor/dependency_editor.cpp +msgid "Dependencies For:" +msgstr "Зависности за:" + +#: editor/dependency_editor.cpp +msgid "" +"Scene '%s' is currently being edited.\n" +"Changes will not take effect unless reloaded." +msgstr "" +"На сцени '%s' се тренутно ради.\n" +"Промене неће бити у ефекту док се не поново отвори." + +#: editor/dependency_editor.cpp +msgid "" +"Resource '%s' is in use.\n" +"Changes will take effect when reloaded." +msgstr "" +"Ресурс '%s' се тренутно користи.\n" +"Промене неће бити у ефекту док се поново не отворе." + +#: editor/dependency_editor.cpp +msgid "Dependencies" +msgstr "Зависности" + +#: editor/dependency_editor.cpp +msgid "Resource" +msgstr "Ресурс" + +#: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp +#: editor/project_manager.cpp editor/project_settings_editor.cpp +#: editor/script_create_dialog.cpp +msgid "Path" +msgstr "Пут" + +#: editor/dependency_editor.cpp +msgid "Dependencies:" +msgstr "Зависности:" + +#: editor/dependency_editor.cpp +msgid "Fix Broken" +msgstr "Поправи покварене" + +#: editor/dependency_editor.cpp +msgid "Dependency Editor" +msgstr "Уредник зависности" + +#: editor/dependency_editor.cpp +msgid "Search Replacement Resource:" +msgstr "Потражи замену за ресурс:" + +#: editor/dependency_editor.cpp editor/editor_file_dialog.cpp +#: editor/editor_help.cpp editor/editor_node.cpp editor/filesystem_dock.cpp +#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp +#: editor/quick_open.cpp scene/gui/file_dialog.cpp +msgid "Open" +msgstr "Отвори" + +#: editor/dependency_editor.cpp +msgid "Owners Of:" +msgstr "Власници:" + +#: editor/dependency_editor.cpp +msgid "Remove selected files from the project? (no undo)" +msgstr "Обриши одабране датотеке из пројекта? (НЕМА ОПОЗИВАЊА)" + +#: editor/dependency_editor.cpp +msgid "" +"The files being removed are required by other resources in order for them to " +"work.\n" +"Remove them anyway? (no undo)" +msgstr "" +"Жељене датотеке за брисање су потребне за рад других ресурса.\n" +"Ипак их обриши? (НЕМА ОПОЗИВАЊА)" + +#: editor/dependency_editor.cpp +msgid "Cannot remove:\n" +msgstr "Не може се обрисати:\n" + +#: editor/dependency_editor.cpp +msgid "Error loading:" +msgstr "Грешка при учитавању:" + +#: editor/dependency_editor.cpp +msgid "Scene failed to load due to missing dependencies:" +msgstr "Сцена је неуспешно очитана због недостајућих зависности:" + +#: editor/dependency_editor.cpp editor/editor_node.cpp +msgid "Open Anyway" +msgstr "Ипак отвори" + +#: editor/dependency_editor.cpp +msgid "Which action should be taken?" +msgstr "Која акција се треба предузети?" + +#: editor/dependency_editor.cpp +msgid "Fix Dependencies" +msgstr "Поправи зависности" + +#: editor/dependency_editor.cpp +msgid "Errors loading!" +msgstr "Грешка при учитавању!" + +#: editor/dependency_editor.cpp +msgid "Permanently delete %d item(s)? (No undo!)" +msgstr "Трајно обриши %d ставка(и)? (НЕМА ОПОЗИВАЊА)" + +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "Ресурси без одређеног власника:" + +#: editor/dependency_editor.cpp editor/editor_node.cpp +msgid "Orphan Resource Explorer" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Delete selected files?" +msgstr "Обриши одабране датотеке?" + +#: editor/dependency_editor.cpp editor/editor_audio_buses.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp +#: editor/plugins/item_list_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp +msgid "Delete" +msgstr "Обриши" + +#: editor/dictionary_property_edit.cpp +#, fuzzy +msgid "Change Dictionary Key" +msgstr "Измени име анимације:" + +#: editor/dictionary_property_edit.cpp +#, fuzzy +msgid "Change Dictionary Value" +msgstr "Промени вредност низа" + +#: editor/editor_about.cpp +msgid "Thanks from the Godot community!" +msgstr "Хвала од Godot заједнице!" + +#: editor/editor_about.cpp +msgid "Thanks!" +msgstr "Хвала!" + +#: editor/editor_about.cpp +msgid "Godot Engine contributors" +msgstr "Godot Engine сарадници" + +#: editor/editor_about.cpp +msgid "Project Founders" +msgstr "Оснивачи пројекта" + +#: editor/editor_about.cpp +msgid "Lead Developer" +msgstr "" + +#: editor/editor_about.cpp editor/project_manager.cpp +msgid "Project Manager" +msgstr "Менаџер пројекта" + +#: editor/editor_about.cpp +msgid "Developers" +msgstr "" + +#: editor/editor_about.cpp +msgid "Authors" +msgstr "Аутори" + +#: editor/editor_about.cpp +msgid "Platinum Sponsors" +msgstr "Платинумски спонзори" + +#: editor/editor_about.cpp +msgid "Gold Sponsors" +msgstr "Златни спонзори" + +#: editor/editor_about.cpp +msgid "Mini Sponsors" +msgstr "Мали спонзори" + +#: editor/editor_about.cpp +msgid "Gold Donors" +msgstr "Златни донатори" + +#: editor/editor_about.cpp +msgid "Silver Donors" +msgstr "Сребрни донатори" + +#: editor/editor_about.cpp +msgid "Bronze Donors" +msgstr "Бронзани донатори" + +#: editor/editor_about.cpp +msgid "Donors" +msgstr "Донатори" + +#: editor/editor_about.cpp +msgid "License" +msgstr "Лиценса" + +#: editor/editor_about.cpp +msgid "Thirdparty License" +msgstr "Лиценса трећег лица" + +#: editor/editor_about.cpp +msgid "" +"Godot Engine relies on a number of thirdparty free and open source " +"libraries, all compatible with the terms of its MIT license. The following " +"is an exhaustive list of all such thirdparty components with their " +"respective copyright statements and license terms." +msgstr "" +"Godot Engine се ослања на бројне слободне и отворене библиотеке трећег лица " +"компатибилне са условима MIT лиценсе. Следи исцрпна листа свих тих " +"компонената трећих лица са њиховим одговарајућим изјавама о ауторским " +"правима и условима лиценсе." + +#: editor/editor_about.cpp +msgid "All Components" +msgstr "Све компоненте" + +#: editor/editor_about.cpp +msgid "Components" +msgstr "Компоненте" + +#: editor/editor_about.cpp +msgid "Licenses" +msgstr "Лиценсе" + +#: editor/editor_asset_installer.cpp editor/project_manager.cpp +msgid "Error opening package file, not in zip format." +msgstr "Грешка при отварању датотеку пакета. Датотека није zip формата." + +#: editor/editor_asset_installer.cpp +msgid "Uncompressing Assets" +msgstr "Декомпресија средства" + +#: editor/editor_asset_installer.cpp editor/project_manager.cpp +msgid "Package Installed Successfully!" +msgstr "Пакет је инсталиран успешно!" + +#: editor/editor_asset_installer.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Success!" +msgstr "Успех!" + +#: editor/editor_asset_installer.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Install" +msgstr "Инсталирај" + +#: editor/editor_asset_installer.cpp +msgid "Package Installer" +msgstr "Инсталер пакета" + +#: editor/editor_audio_buses.cpp +msgid "Speakers" +msgstr "Звучници" + +#: editor/editor_audio_buses.cpp +msgid "Add Effect" +msgstr "Додај ефекат" + +#: editor/editor_audio_buses.cpp +msgid "Rename Audio Bus" +msgstr "Преименуј звучни бас(контролер)" + +#: editor/editor_audio_buses.cpp +msgid "Toggle Audio Bus Solo" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Toggle Audio Bus Mute" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Toggle Audio Bus Bypass Effects" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Select Audio Bus Send" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Add Audio Bus Effect" +msgstr "Додај ефекат звучном басу" + +#: editor/editor_audio_buses.cpp +msgid "Move Bus Effect" +msgstr "Помери звучни ефекат" + +#: editor/editor_audio_buses.cpp +msgid "Delete Bus Effect" +msgstr "Обриши звучни ефекат" + +#: editor/editor_audio_buses.cpp +msgid "Audio Bus, Drag and Drop to rearrange." +msgstr "Звучни бас, превуците и испустите за преуређивање." + +#: editor/editor_audio_buses.cpp +msgid "Solo" +msgstr "соло" + +#: editor/editor_audio_buses.cpp +msgid "Mute" +msgstr "Пригуши" + +#: editor/editor_audio_buses.cpp +msgid "Bypass" +msgstr "Заобиђи" + +#: editor/editor_audio_buses.cpp +msgid "Bus options" +msgstr "Поставке баса" + +#: editor/editor_audio_buses.cpp editor/plugins/tile_map_editor_plugin.cpp +#: editor/scene_tree_dock.cpp +msgid "Duplicate" +msgstr "Дуплирај" + +#: editor/editor_audio_buses.cpp +msgid "Reset Volume" +msgstr "Ресетуј јачину" + +#: editor/editor_audio_buses.cpp +msgid "Delete Effect" +msgstr "Обриши ефекат" + +#: editor/editor_audio_buses.cpp +msgid "Add Audio Bus" +msgstr "Додај звучни бас" + +#: editor/editor_audio_buses.cpp +msgid "Master bus can't be deleted!" +msgstr "Главни бас се не може обрисати!" + +#: editor/editor_audio_buses.cpp +msgid "Delete Audio Bus" +msgstr "Обриши звучни бас" + +#: editor/editor_audio_buses.cpp +msgid "Duplicate Audio Bus" +msgstr "Дуплирај аудио бас" + +#: editor/editor_audio_buses.cpp +msgid "Reset Bus Volume" +msgstr "Ресетуј јачину баса" + +#: editor/editor_audio_buses.cpp +msgid "Move Audio Bus" +msgstr "Помери звучни бас" + +#: editor/editor_audio_buses.cpp +msgid "Save Audio Bus Layout As.." +msgstr "Сачувај распоред звучног баса као..." + +#: editor/editor_audio_buses.cpp +msgid "Location for New Layout.." +msgstr "Локација за нови распоред..." + +#: editor/editor_audio_buses.cpp +msgid "Open Audio Bus Layout" +msgstr "Отвори распоред звучног баса" + +#: editor/editor_audio_buses.cpp +msgid "There is no 'res://default_bus_layout.tres' file." +msgstr "Датотека „res://default_bus_layout.tres“ не постоји." + +#: editor/editor_audio_buses.cpp +msgid "Invalid file, not an audio bus layout." +msgstr "Датотека не садржи распоред звучног баса." + +#: editor/editor_audio_buses.cpp +msgid "Add Bus" +msgstr "Додај бас" + +#: editor/editor_audio_buses.cpp +msgid "Create a new Bus Layout." +msgstr "Направи нови бас распоред." + +#: editor/editor_audio_buses.cpp editor/property_editor.cpp +#: editor/script_create_dialog.cpp +msgid "Load" +msgstr "Учитај" + +#: editor/editor_audio_buses.cpp +msgid "Load an existing Bus Layout." +msgstr "Учитај постојећи бас распоред." + +#: editor/editor_audio_buses.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Save As" +msgstr "Сачувај као" + +#: editor/editor_audio_buses.cpp +msgid "Save this Bus Layout to a file." +msgstr "Сачувај овај бас распоред у датотеци." + +#: editor/editor_audio_buses.cpp editor/import_dock.cpp +msgid "Load Default" +msgstr "Учитај уобичајено" + +#: editor/editor_audio_buses.cpp +msgid "Load the default Bus Layout." +msgstr "Учитај уобичајен бас распоред." + +#: editor/editor_autoload_settings.cpp +msgid "Invalid name." +msgstr "Неважеће име." + +#: editor/editor_autoload_settings.cpp +msgid "Valid characters:" +msgstr "Важећа слова:" + +#: editor/editor_autoload_settings.cpp +msgid "Invalid name. Must not collide with an existing engine class name." +msgstr "Неважеће име. Име је резервисано за постојећу класу." + +#: editor/editor_autoload_settings.cpp +msgid "Invalid name. Must not collide with an existing buit-in type name." +msgstr "Неважеће име. Име је резервисано за постојећи уграђени тип." + +#: editor/editor_autoload_settings.cpp +msgid "Invalid name. Must not collide with an existing global constant name." +msgstr "Неважеће име. Име је резервисано за постојећу глобалну константу." + +#: editor/editor_autoload_settings.cpp +msgid "Invalid Path." +msgstr "Неважећи пут." + +#: editor/editor_autoload_settings.cpp +msgid "File does not exist." +msgstr "Датотека не постоји." + +#: editor/editor_autoload_settings.cpp +msgid "Not in resource path." +msgstr "Није на пут ресурса." + +#: editor/editor_autoload_settings.cpp +msgid "Add AutoLoad" +msgstr "Додај аутоматско учитавање" + +#: editor/editor_autoload_settings.cpp +msgid "Autoload '%s' already exists!" +msgstr "Аутоматско учитавање '%s' већ постоји!" + +#: editor/editor_autoload_settings.cpp +msgid "Rename Autoload" +msgstr "Преименуј аутоматско учитавање" + +#: editor/editor_autoload_settings.cpp +msgid "Toggle AutoLoad Globals" +msgstr "Укљ./Искљ. глобале аутоматског учитавања" + +#: editor/editor_autoload_settings.cpp +msgid "Move Autoload" +msgstr "Помери аутоматско учитавање" + +#: editor/editor_autoload_settings.cpp +msgid "Remove Autoload" +msgstr "Обриши аутоматско учитавање" + +#: editor/editor_autoload_settings.cpp +msgid "Enable" +msgstr "Укључи" + +#: editor/editor_autoload_settings.cpp +msgid "Rearrange Autoloads" +msgstr "Преуреди аутоматска учитавања" + +#: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp +#: scene/gui/file_dialog.cpp +msgid "Path:" +msgstr "Пут:" + +#: editor/editor_autoload_settings.cpp +msgid "Node Name:" +msgstr "Име чвора:" + +#: editor/editor_autoload_settings.cpp editor/project_manager.cpp +msgid "Name" +msgstr "Име" + +#: editor/editor_autoload_settings.cpp +msgid "Singleton" +msgstr "Синглетон" + +#: editor/editor_autoload_settings.cpp +msgid "List:" +msgstr "Листа:" + +#: editor/editor_data.cpp +msgid "Updating Scene" +msgstr "Ажурирање сцене" + +#: editor/editor_data.cpp +msgid "Storing local changes.." +msgstr "Чувам локалне промене..." + +#: editor/editor_data.cpp +msgid "Updating scene.." +msgstr "Ажурирам сцену..." + +#: editor/editor_dir_dialog.cpp +msgid "Please select a base directory first" +msgstr "Молим, одаберите базни директоријум" + +#: editor/editor_dir_dialog.cpp +msgid "Choose a Directory" +msgstr "Одабери директоријум" + +#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp +#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +msgid "Create Folder" +msgstr "Направи директоријум" + +#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp +#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp +#: scene/gui/file_dialog.cpp +msgid "Name:" +msgstr "Име:" + +#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp +#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +msgid "Could not create folder." +msgstr "Неуспех при прављењу директоријума." + +#: editor/editor_dir_dialog.cpp +msgid "Choose" +msgstr "Одабери" + +#: editor/editor_export.cpp +msgid "Storing File:" +msgstr "" + +#: editor/editor_export.cpp +msgid "Packing" +msgstr "Паковање" + +#: editor/editor_export.cpp platform/javascript/export/export.cpp +msgid "Template file not found:\n" +msgstr "Шаблонска датотека није пронађена:\n" + +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "File Exists, Overwrite?" +msgstr "Датотека постоји, препиши?" + +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "All Recognized" +msgstr "Сви препознати" + +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "All Files (*)" +msgstr "Све датотеке (*)" + +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Open a File" +msgstr "Отвори датотеку" + +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Open File(s)" +msgstr "Отвори датотеку/е" + +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Open a Directory" +msgstr "Отвори директоријум" + +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Open a File or Directory" +msgstr "Отвори датотеку или директоријум" + +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/script_editor_plugin.cpp scene/gui/file_dialog.cpp +msgid "Save" +msgstr "Сачувај" + +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Save a File" +msgstr "Сачувај датотеку" + +#: editor/editor_file_dialog.cpp +msgid "Go Back" +msgstr "Натраг" + +#: editor/editor_file_dialog.cpp +msgid "Go Forward" +msgstr "Напред" + +#: editor/editor_file_dialog.cpp +msgid "Go Up" +msgstr "" + +#: editor/editor_file_dialog.cpp +msgid "Refresh" +msgstr "Освежи" + +#: editor/editor_file_dialog.cpp +msgid "Toggle Hidden Files" +msgstr "Прикажи сакривене датотеке" + +#: editor/editor_file_dialog.cpp +msgid "Toggle Favorite" +msgstr "Прикажи омиљене" + +#: editor/editor_file_dialog.cpp +msgid "Toggle Mode" +msgstr "Промени режим" + +#: editor/editor_file_dialog.cpp +msgid "Focus Path" +msgstr "" + +#: editor/editor_file_dialog.cpp +msgid "Move Favorite Up" +msgstr "Помери нагоре омиљену" + +#: editor/editor_file_dialog.cpp +msgid "Move Favorite Down" +msgstr "Помери надоле омиљену" + +#: editor/editor_file_dialog.cpp +msgid "Go to parent folder" +msgstr "Иди у родитељски директоријум" + +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Directories & Files:" +msgstr "Директоријуми и датотеке:" + +#: editor/editor_file_dialog.cpp +msgid "Preview:" +msgstr "Преглед:" + +#: editor/editor_file_dialog.cpp editor/script_editor_debugger.cpp +#: scene/gui/file_dialog.cpp +msgid "File:" +msgstr "Датотека:" + +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Must use a valid extension." +msgstr "Мора се користити важећа екстензија." + +#: editor/editor_file_system.cpp +msgid "ScanSources" +msgstr "" + +#: editor/editor_file_system.cpp +msgid "(Re)Importing Assets" +msgstr "(Поновно) Увожење средстава" + +#: editor/editor_help.cpp editor/editor_node.cpp +#: editor/plugins/script_editor_plugin.cpp +msgid "Search Help" +msgstr "Потражи помоћ" + +#: editor/editor_help.cpp +msgid "Class List:" +msgstr "Листа класа:" + +#: editor/editor_help.cpp +msgid "Search Classes" +msgstr "Потражи класе" + +#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp +msgid "Top" +msgstr "" + +#: editor/editor_help.cpp editor/property_editor.cpp +msgid "Class:" +msgstr "Класа:" + +#: editor/editor_help.cpp editor/scene_tree_editor.cpp +msgid "Inherits:" +msgstr "Наслеђује:" + +#: editor/editor_help.cpp +msgid "Inherited by:" +msgstr "Наслеђено од:" + +#: editor/editor_help.cpp +msgid "Brief Description:" +msgstr "Кратак опис:" + +#: editor/editor_help.cpp +msgid "Members" +msgstr "Чланови" + +#: editor/editor_help.cpp modules/visual_script/visual_script_editor.cpp +msgid "Members:" +msgstr "Чланови:" + +#: editor/editor_help.cpp +msgid "Public Methods" +msgstr "Јавне методе" + +#: editor/editor_help.cpp +msgid "Public Methods:" +msgstr "Јавне методе:" + +#: editor/editor_help.cpp +msgid "GUI Theme Items" +msgstr "Ставке теме графичког интерфејса" + +#: editor/editor_help.cpp +msgid "GUI Theme Items:" +msgstr "Ставке теме графичког интерфејса:" + +#: editor/editor_help.cpp modules/visual_script/visual_script_editor.cpp +msgid "Signals:" +msgstr "Сигнали:" + +#: editor/editor_help.cpp +msgid "Enumerations" +msgstr "Енумерације" + +#: editor/editor_help.cpp +msgid "Enumerations:" +msgstr "Енумерације:" + +#: editor/editor_help.cpp +msgid "enum " +msgstr "enum " + +#: editor/editor_help.cpp +msgid "Constants" +msgstr "Константе" + +#: editor/editor_help.cpp +msgid "Constants:" +msgstr "Константе:" + +#: editor/editor_help.cpp +msgid "Description" +msgstr "Опис" + +#: editor/editor_help.cpp +msgid "Properties" +msgstr "Особине" + +#: editor/editor_help.cpp +msgid "Property Description:" +msgstr "Опис особине:" + +#: editor/editor_help.cpp +msgid "" +"There is currently no description for this property. Please help us by " +"[color=$color][url=$url]contributing one[/url][/color]!" +msgstr "" +"Тренутно нема описа ове особине. Молимо помозите нама тако што ћете [color=" +"$color][url=$url]написати једну[/url][/color]!" + +#: editor/editor_help.cpp +msgid "Methods" +msgstr "Методе" + +#: editor/editor_help.cpp +msgid "Method Description:" +msgstr "Опис методе:" + +#: editor/editor_help.cpp +msgid "" +"There is currently no description for this method. Please help us by [color=" +"$color][url=$url]contributing one[/url][/color]!" +msgstr "" +"Тренутно нема описа ове методе. Молимо помозите нама тако што ћете [color=" +"$color][url=$url]написати једну[/url][/color]!" + +#: editor/editor_help.cpp +msgid "Search Text" +msgstr "Потражи текст" + +#: editor/editor_log.cpp +msgid "Output:" +msgstr "Излаз:" + +#: editor/editor_log.cpp editor/plugins/animation_tree_editor_plugin.cpp +#: editor/property_editor.cpp editor/script_editor_debugger.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp +msgid "Clear" +msgstr "Обриши" + +#: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp +msgid "Error saving resource!" +msgstr "Грешка при чувању ресурса!" + +#: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp +msgid "Save Resource As.." +msgstr "Сачувај ресурс као..." + +#: editor/editor_node.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp +msgid "I see.." +msgstr "Разумем..." + +#: editor/editor_node.cpp +msgid "Can't open file for writing:" +msgstr "Не могу отворити датотеку за писање:" + +#: editor/editor_node.cpp +msgid "Requested file format unknown:" +msgstr "Тражени формат датотеке је непознат:" + +#: editor/editor_node.cpp +msgid "Error while saving." +msgstr "Грешка при чувању." + +#: editor/editor_node.cpp +msgid "Can't open '%s'." +msgstr "Не могу отворити '%s'." + +#: editor/editor_node.cpp +msgid "Error while parsing '%s'." +msgstr "Грешка при анализирању '%s'." + +#: editor/editor_node.cpp +msgid "Unexpected end of file '%s'." +msgstr "Неочекивани крај датотеке '%s'." + +#: editor/editor_node.cpp +msgid "Missing '%s' or its dependencies." +msgstr "Недостаје '%s' или његове зависности." + +#: editor/editor_node.cpp +msgid "Error while loading '%s'." +msgstr "Грешка при учитавању '%s'." + +#: editor/editor_node.cpp +msgid "Saving Scene" +msgstr "Чување сцене" + +#: editor/editor_node.cpp +msgid "Analyzing" +msgstr "Анализирање" + +#: editor/editor_node.cpp +msgid "Creating Thumbnail" +msgstr "Прављење приказа" + +#: editor/editor_node.cpp +msgid "This operation can't be done without a tree root." +msgstr "Ова операција се не може обавити без корена дрвета." + +#: editor/editor_node.cpp +msgid "" +"Couldn't save scene. Likely dependencies (instances) couldn't be satisfied." +msgstr "Не могу сачувати сцену. Вероватно зависности нису задовољене." + +#: editor/editor_node.cpp +msgid "Failed to load resource." +msgstr "Грешка при учитавању ресурса." + +#: editor/editor_node.cpp +msgid "Can't load MeshLibrary for merging!" +msgstr "Не могу учитати MeshLibrary за спајање!" + +#: editor/editor_node.cpp +msgid "Error saving MeshLibrary!" +msgstr "Грешка при чувању MeshLibrary!" + +#: editor/editor_node.cpp +msgid "Can't load TileSet for merging!" +msgstr "Не могу учитати TileSet за спајање!" + +#: editor/editor_node.cpp +msgid "Error saving TileSet!" +msgstr "Грешка при чувању TileSet!" + +#: editor/editor_node.cpp +msgid "Error trying to save layout!" +msgstr "Грешка при чувању распореда!" + +#: editor/editor_node.cpp +msgid "Default editor layout overridden." +msgstr "Уобичајен распоред је преуређен." + +#: editor/editor_node.cpp +msgid "Layout name not found!" +msgstr "Име распореда није пронађен!" + +#: editor/editor_node.cpp +msgid "Restored default layout to base settings." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"This resource belongs to a scene that was imported, so it's not editable.\n" +"Please read the documentation relevant to importing scenes to better " +"understand this workflow." +msgstr "" +"Овај ресурс припада сцени која је увезена, тако да се не може мењати.\n" +"Молим, прочитајте документацију за увожење сцена како би боље разумели овај " +"начин рада." + +#: editor/editor_node.cpp +msgid "" +"This resource belongs to a scene that was instanced or inherited.\n" +"Changes to it will not be kept when saving the current scene." +msgstr "" +"Овај ресурс припада сцени која је или коришћена или наслеђена.\n" +"Промене нећу бити задржане при чувању тренутне сцене." + +#: editor/editor_node.cpp +msgid "" +"This resource was imported, so it's not editable. Change its settings in the " +"import panel and then re-import." +msgstr "" +"Овај ресурс је увезен, тако да га није могуће изменити. Промените његове " +"поставке у прозору за увоз и онда га поново унесите." + +#: editor/editor_node.cpp +msgid "" +"This scene was imported, so changes to it will not be kept.\n" +"Instancing it or inheriting will allow making changes to it.\n" +"Please read the documentation relevant to importing scenes to better " +"understand this workflow." +msgstr "" +"Ова сцена је увезена, тако да њене промене се нећу задржати.\n" +"Њено коришћење или наслеђивање ће омогућити прављење промена над њом.\n" +"Молим, прочитајте документацију за увоз сцена како би боље размели овај " +"начин рада." + +#: editor/editor_node.cpp +#, fuzzy +msgid "" +"This is a remote object so changes to it will not be kept.\n" +"Please read the documentation relevant to debugging to better understand " +"this workflow." +msgstr "" +"Овај ресурс припада сцени која је увезена, тако да се не може мењати.\n" +"Молим, прочитајте документацију за увожење сцена како би боље разумели овај " +"начин рада." + +#: editor/editor_node.cpp +msgid "Copy Params" +msgstr "Копирај параметре" + +#: editor/editor_node.cpp +msgid "Paste Params" +msgstr "Налепи параметре" + +#: editor/editor_node.cpp editor/plugins/resource_preloader_editor_plugin.cpp +msgid "Paste Resource" +msgstr "Налепи ресурсе" + +#: editor/editor_node.cpp +msgid "Copy Resource" +msgstr "Копирај ресурсе" + +#: editor/editor_node.cpp +msgid "Make Built-In" +msgstr "Направи уграђеним" + +#: editor/editor_node.cpp +msgid "Make Sub-Resources Unique" +msgstr "Направи под-ресурс јединственим" + +#: editor/editor_node.cpp +msgid "Open in Help" +msgstr "Отвори у прозору за помоћ" + +#: editor/editor_node.cpp +msgid "There is no defined scene to run." +msgstr "Не постоји дефинисана сцена за покретање." + +#: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Главна сцена није дефинисана, одаберите једну?\n" +"Можете је променити касније у „Поставке пројекта“ испод категорије " +"„апликација“." + +#: 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 "" +"Одабрана сцена '%s' не постоји, одаберите важећу?\n" +"Можете је променити касније у „Поставке пројекта“ испод категорије " +"„апликација“." + +#: 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 "" +"Одабрана сцена '%s' није датотека сцене, одаберите бажећу?\n" +"Можете је променити касније у „Поставке пројекта“ испод категорије " +"„апликација“." + +#: editor/editor_node.cpp +msgid "Current scene was never saved, please save it prior to running." +msgstr "Тренутна сцена није сачувана, молим сачувајте је пре покретања." + +#: editor/editor_node.cpp +msgid "Could not start subprocess!" +msgstr "Не могу покренути подпроцес!" + +#: editor/editor_node.cpp +msgid "Open Scene" +msgstr "Отвори сцену" + +#: editor/editor_node.cpp +msgid "Open Base Scene" +msgstr "Отвори базну сцену" + +#: editor/editor_node.cpp +msgid "Quick Open Scene.." +msgstr "Брзо отварање сцене..." + +#: editor/editor_node.cpp +msgid "Quick Open Script.." +msgstr "Брзо отварање скриптице..." + +#: editor/editor_node.cpp +msgid "Save & Close" +msgstr "Сачувај и затвори" + +#: editor/editor_node.cpp +msgid "Save changes to '%s' before closing?" +msgstr "Сачувај промене '%s' пре изласка?" + +#: editor/editor_node.cpp +msgid "Save Scene As.." +msgstr "Сачувај сцену као..." + +#: editor/editor_node.cpp +msgid "No" +msgstr "Не" + +#: editor/editor_node.cpp +msgid "Yes" +msgstr "Да" + +#: editor/editor_node.cpp +msgid "This scene has never been saved. Save before running?" +msgstr "Ова сцена није сачувана. Сачувај пре покретања?" + +#: editor/editor_node.cpp editor/scene_tree_dock.cpp +msgid "This operation can't be done without a scene." +msgstr "Ова операција се не може обавити без сцене." + +#: editor/editor_node.cpp +msgid "Export Mesh Library" +msgstr "Извези Mesh Library" + +#: editor/editor_node.cpp +#, fuzzy +msgid "This operation can't be done without a root node." +msgstr "Ова операција се не може обавити без одабраног чвора." + +#: editor/editor_node.cpp +msgid "Export Tile Set" +msgstr "Извези Tile Set" + +#: editor/editor_node.cpp +msgid "This operation can't be done without a selected node." +msgstr "Ова операција се не може обавити без одабраног чвора." + +#: editor/editor_node.cpp +msgid "Current scene not saved. Open anyway?" +msgstr "Тренутна сцена није сачувана. Ипак отвори?" + +#: editor/editor_node.cpp +msgid "Can't reload a scene that was never saved." +msgstr "Не могу поново учитати сцену која није сачувана." + +#: editor/editor_node.cpp +msgid "Revert" +msgstr "Врати" + +#: editor/editor_node.cpp +msgid "This action cannot be undone. Revert anyway?" +msgstr "Ова акција се не може опозвати. Настави?" + +#: editor/editor_node.cpp +msgid "Quick Run Scene.." +msgstr "Брзо покретање сцене..." + +#: editor/editor_node.cpp +msgid "Quit" +msgstr "Изађи" + +#: editor/editor_node.cpp +msgid "Exit the editor?" +msgstr "Изађи из уредника?" + +#: editor/editor_node.cpp +msgid "Open Project Manager?" +msgstr "Отвори менаџер пројекта?" + +#: editor/editor_node.cpp +msgid "Save & Quit" +msgstr "Сачувај и изађи" + +#: editor/editor_node.cpp +msgid "Save changes to the following scene(s) before quitting?" +msgstr "Сачувај промене тренутне сцене/а пре излазка?" + +#: editor/editor_node.cpp +msgid "Save changes the following scene(s) before opening Project Manager?" +msgstr "Сачувај промене тренутне сцене/а пре отварање менаџера пројекта?" + +#: editor/editor_node.cpp +msgid "" +"This option is deprecated. Situations where refresh must be forced are now " +"considered a bug. Please report." +msgstr "" +"Ова опција је застарела. Ситуације код којих освежавање је неопходно су сада " +"грешке. Молимо пријавите ову грешку." + +#: editor/editor_node.cpp +msgid "Pick a Main Scene" +msgstr "Одабери главну сцену" + +#: editor/editor_node.cpp +msgid "Unable to enable addon plugin at: '%s' parsing of config failed." +msgstr "Неуспех при прикључивању додатка због конфигурационе датотеке: '%s'." + +#: editor/editor_node.cpp +msgid "Unable to find script field for addon plugin at: 'res://addons/%s'." +msgstr "Неуспех при налажењу поља за скриптицу у додатку „res://addons/%s“." + +#: editor/editor_node.cpp +msgid "Unable to load addon script from path: '%s'." +msgstr "Неуспех при учитавању скриптице додатка са путем „%s“." + +#: editor/editor_node.cpp +msgid "" +"Unable to load addon script from path: '%s' Base type is not EditorPlugin." +msgstr "" +"Неуспех при учитавању скриптице додатка са путем „%s“. Базни тип није " +"EditorPlugin." + +#: editor/editor_node.cpp +msgid "Unable to load addon script from path: '%s' Script is not in tool mode." +msgstr "" +"Неуспех при учитавању скриптице додатка са путем „%s“. Скриптица није у " +"режиму алатке." + +#: editor/editor_node.cpp +msgid "" +"Scene '%s' was automatically imported, so it can't be modified.\n" +"To make changes to it, a new inherited scene can be created." +msgstr "" +"Сцена „%s“ је аутоматски увезена, тако да се не може мењати.\n" +"За извршавања измена, направите нову наслеђену сцену." + +#: editor/editor_node.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp +msgid "Ugh" +msgstr "Уф" + +#: editor/editor_node.cpp +msgid "" +"Error loading scene, it must be inside the project path. Use 'Import' to " +"open the scene, then save it inside the project path." +msgstr "" +"Грешка при учитавању сцене. Сцена мора бити унутар директоријума пројекта. " +"Користите „Увоз“ за отварање сцене, онда је сачувајте у директоријуму " +"пројекта." + +#: editor/editor_node.cpp +msgid "Scene '%s' has broken dependencies:" +msgstr "Сцена „%s“ има покварене зависности:" + +#: editor/editor_node.cpp +msgid "Clear Recent Scenes" +msgstr "Очисти недавне сцене" + +#: editor/editor_node.cpp +msgid "Save Layout" +msgstr "Сачувај распоред" + +#: editor/editor_node.cpp +msgid "Delete Layout" +msgstr "Обирши распоред" + +#: editor/editor_node.cpp editor/import_dock.cpp +#: editor/script_create_dialog.cpp +msgid "Default" +msgstr "Уобичајено" + +#: editor/editor_node.cpp +msgid "Switch Scene Tab" +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "%d more files or folders" +msgstr "још %d датотека/е или директоријум/а" + +#: editor/editor_node.cpp +#, fuzzy +msgid "%d more folders" +msgstr "још %d датотека/е" + +#: editor/editor_node.cpp +#, fuzzy +msgid "%d more files" +msgstr "још %d датотека/е" + +#: editor/editor_node.cpp +msgid "Dock Position" +msgstr "" + +#: editor/editor_node.cpp +msgid "Distraction Free Mode" +msgstr "Режим без сметње" + +#: editor/editor_node.cpp +msgid "Toggle distraction-free mode." +msgstr "Укљ./Искљ. режим без сметње." + +#: editor/editor_node.cpp +#, fuzzy +msgid "Add a new scene." +msgstr "Додај нове траке." + +#: editor/editor_node.cpp +msgid "Scene" +msgstr "Сцена" + +#: editor/editor_node.cpp +msgid "Go to previously opened scene." +msgstr "Отвори претходну сцену." + +#: editor/editor_node.cpp +msgid "Next tab" +msgstr "" + +#: editor/editor_node.cpp +msgid "Previous tab" +msgstr "" + +#: editor/editor_node.cpp +msgid "Filter Files.." +msgstr "Филтрирај датотеке..." + +#: editor/editor_node.cpp +msgid "Operations with scene files." +msgstr "Операције са датотекама сцена." + +#: editor/editor_node.cpp +msgid "New Scene" +msgstr "Нова сцена" + +#: editor/editor_node.cpp +msgid "New Inherited Scene.." +msgstr "Нова наслеђена сцена..." + +#: editor/editor_node.cpp +msgid "Open Scene.." +msgstr "Отвори сцену..." + +#: editor/editor_node.cpp +msgid "Save Scene" +msgstr "Сачувај сцену" + +#: editor/editor_node.cpp +msgid "Save all Scenes" +msgstr "Сачувај све сцене" + +#: editor/editor_node.cpp +msgid "Close Scene" +msgstr "Затвори сцену" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Open Recent" +msgstr "Отвори недавно коришћено" + +#: editor/editor_node.cpp +msgid "Convert To.." +msgstr "Конвертуј у..." + +#: editor/editor_node.cpp +msgid "MeshLibrary.." +msgstr "MeshLibrary..." + +#: editor/editor_node.cpp +msgid "TileSet.." +msgstr "TileSet..." + +#: editor/editor_node.cpp editor/plugins/script_text_editor.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp +msgid "Undo" +msgstr "Опозови" + +#: editor/editor_node.cpp editor/plugins/script_text_editor.cpp +#: scene/gui/line_edit.cpp +msgid "Redo" +msgstr "Поново уради" + +#: editor/editor_node.cpp +msgid "Revert Scene" +msgstr "Поврати сцену" + +#: editor/editor_node.cpp +msgid "Miscellaneous project or scene-wide tools." +msgstr "Разни алати за пројекат или сцену." + +#: editor/editor_node.cpp +msgid "Project" +msgstr "Пројекат" + +#: editor/editor_node.cpp +msgid "Project Settings" +msgstr "Поставке пројекта" + +#: editor/editor_node.cpp +msgid "Run Script" +msgstr "Покрени скриптицу" + +#: editor/editor_node.cpp editor/project_export.cpp +msgid "Export" +msgstr "Извоз" + +#: editor/editor_node.cpp +msgid "Tools" +msgstr "Алати" + +#: editor/editor_node.cpp +msgid "Quit to Project List" +msgstr "Изађи у листу пројекта" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Debug" +msgstr "Дебаг" + +#: editor/editor_node.cpp +msgid "Deploy with Remote Debug" +msgstr "Извршити са удаљеним дебагом" + +#: editor/editor_node.cpp +msgid "" +"When exporting or deploying, the resulting executable will attempt to " +"connect to the IP of this computer in order to be debugged." +msgstr "" +"При извозу или извршавању, крајља датотека ће покушати да се повеже са " +"адресом овог рачунара како би се могла дебаговати." + +#: editor/editor_node.cpp +msgid "Small Deploy with Network FS" +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"When this option is enabled, export or deploy will produce a minimal " +"executable.\n" +"The filesystem will be provided from the project by the editor over the " +"network.\n" +"On Android, deploy will use the USB cable for faster performance. This " +"option speeds up testing for games with a large footprint." +msgstr "" +"Када је ова опција укључена, извоз ће правити датотеку најмање могуће " +"величине.\n" +"Датотечни систем ће бити обезбеђен од стране пројекта преко мреже.\n" +"На Android, извршавање ће користити USB кабл за бржу перфоманцу. Ова опција " +"убрзава тестирање великих игра." + +#: editor/editor_node.cpp +msgid "Visible Collision Shapes" +msgstr "Видљиви облици судара" + +#: editor/editor_node.cpp +msgid "" +"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the " +"running game if this option is turned on." +msgstr "" +"Облици судара и чворова зракова (за 2Д и 3Д) ћу бити видљиви током игре ако " +"је ова опција укључена." + +#: editor/editor_node.cpp +msgid "Visible Navigation" +msgstr "Видљива навигација" + +#: editor/editor_node.cpp +msgid "" +"Navigation meshes and polygons will be visible on the running game if this " +"option is turned on." +msgstr "" +"Навигационе мреже и полигони ће бити видљиви током игре ако је ова опција " +"укључена." + +#: editor/editor_node.cpp +msgid "Sync Scene Changes" +msgstr "Синхронизуј промене сцене" + +#: editor/editor_node.cpp +msgid "" +"When this option is turned on, any changes made to the scene in the editor " +"will be replicated in the running game.\n" +"When used remotely on a device, this is more efficient with network " +"filesystem." +msgstr "" +"Када је ова опција укључена, све промене сцене ће бити приказане у " +"покренутој игри.\n" +"Када је ово коришћено на удаљеном уређају, ово је много ефикасније са " +"мрежним датотечним системом." + +#: editor/editor_node.cpp +msgid "Sync Script Changes" +msgstr "Синхронизуј промене скриптица" + +#: editor/editor_node.cpp +msgid "" +"When this option is turned on, any script that is saved will be reloaded on " +"the running game.\n" +"When used remotely on a device, this is more efficient with network " +"filesystem." +msgstr "" +"Када је ова опција укључена, све скриптице које се сачувају ће бити поново " +"учитане у покренутој игри.\n" +"Када је ово коришћено на удаљеном уређају, ово је много ефикасније са " +"мрежним датотечним системом." + +#: editor/editor_node.cpp +msgid "Editor" +msgstr "Уредник" + +#: editor/editor_node.cpp editor/settings_config_dialog.cpp +msgid "Editor Settings" +msgstr "Поставке уредника" + +#: editor/editor_node.cpp +msgid "Editor Layout" +msgstr "Распоред уредника" + +#: editor/editor_node.cpp +msgid "Toggle Fullscreen" +msgstr "Укљ./Искљ. режим целог екрана" + +#: editor/editor_node.cpp editor/project_export.cpp +msgid "Manage Export Templates" +msgstr "Управљај извозним шаблонима" + +#: editor/editor_node.cpp +msgid "Help" +msgstr "Помоћ" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Classes" +msgstr "Класе" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Online Docs" +msgstr "Онлајн документација" + +#: editor/editor_node.cpp +msgid "Q&A" +msgstr "Питања и одговори" + +#: editor/editor_node.cpp +msgid "Issue Tracker" +msgstr "Пратилац грешака" + +#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp +msgid "Community" +msgstr "Заједница" + +#: editor/editor_node.cpp +msgid "About" +msgstr "О програму" + +#: editor/editor_node.cpp +msgid "Play the project." +msgstr "Покрени пројекат." + +#: editor/editor_node.cpp +msgid "Play" +msgstr "Покрени" + +#: editor/editor_node.cpp +msgid "Pause the scene" +msgstr "Паузирај сцену" + +#: editor/editor_node.cpp +msgid "Pause Scene" +msgstr "Паузирај сцену" + +#: editor/editor_node.cpp +msgid "Stop the scene." +msgstr "Заусави сцену." + +#: editor/editor_node.cpp +msgid "Stop" +msgstr "Заустави" + +#: editor/editor_node.cpp +msgid "Play the edited scene." +msgstr "Покрени промењену сцену." + +#: editor/editor_node.cpp +msgid "Play Scene" +msgstr "Покрени сцену" + +#: editor/editor_node.cpp +msgid "Play custom scene" +msgstr "Покрени специфичну сцену" + +#: editor/editor_node.cpp +msgid "Play Custom Scene" +msgstr "Покрени специфичну сцену" + +#: editor/editor_node.cpp +msgid "Spins when the editor window repaints!" +msgstr "" + +#: editor/editor_node.cpp +msgid "Update Always" +msgstr "Увек ажурирај" + +#: editor/editor_node.cpp +msgid "Update Changes" +msgstr "Ажурирај промене" + +#: editor/editor_node.cpp +msgid "Disable Update Spinner" +msgstr "Искључи индикатор ажурирања" + +#: editor/editor_node.cpp +msgid "Inspector" +msgstr "Инспектор" + +#: editor/editor_node.cpp +msgid "Create a new resource in memory and edit it." +msgstr "Направи нови ресурс у меморији и измени га." + +#: editor/editor_node.cpp +msgid "Load an existing resource from disk and edit it." +msgstr "Учитај постојећи ресурс са диска и измени га." + +#: editor/editor_node.cpp +msgid "Save the currently edited resource." +msgstr "Сачувај тренутно измењени ресурс." + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Save As.." +msgstr "Сачувај као..." + +#: editor/editor_node.cpp +msgid "Go to the previous edited object in history." +msgstr "Иди на претходно измењен објекат у историјату." + +#: editor/editor_node.cpp +msgid "Go to the next edited object in history." +msgstr "Иди на следећи измењени објекат у историјату." + +#: editor/editor_node.cpp +msgid "History of recently edited objects." +msgstr "Историјат недавно измењених објеката." + +#: editor/editor_node.cpp +msgid "Object properties." +msgstr "Поставке објекта." + +#: editor/editor_node.cpp +msgid "Changes may be lost!" +msgstr "Промене се могу изгубити!" + +#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp +#: editor/project_manager.cpp +msgid "Import" +msgstr "Увоз" + +#: editor/editor_node.cpp +msgid "FileSystem" +msgstr "Датотечни систем" + +#: editor/editor_node.cpp editor/node_dock.cpp +msgid "Node" +msgstr "Чвор" + +#: editor/editor_node.cpp +msgid "Output" +msgstr "Излаз" + +#: editor/editor_node.cpp +msgid "Don't Save" +msgstr "Немој сачувати" + +#: editor/editor_node.cpp +msgid "Import Templates From ZIP File" +msgstr "Увези шаблоне из ZIP датотеке" + +#: editor/editor_node.cpp editor/project_export.cpp +msgid "Export Project" +msgstr "Извези пројекат" + +#: editor/editor_node.cpp +msgid "Export Library" +msgstr "Извези библиотеку" + +#: editor/editor_node.cpp +msgid "Merge With Existing" +msgstr "Споји са постојећим" + +#: editor/editor_node.cpp +msgid "Password:" +msgstr "Лозинка:" + +#: editor/editor_node.cpp +msgid "Open & Run a Script" +msgstr "Отвори и покрени скриптицу" + +#: editor/editor_node.cpp +msgid "New Inherited" +msgstr "Нова наслеђена" + +#: editor/editor_node.cpp +msgid "Load Errors" +msgstr "Учитај грешке" + +#: editor/editor_node.cpp editor/plugins/tile_map_editor_plugin.cpp +msgid "Select" +msgstr "Одабери" + +#: editor/editor_node.cpp +msgid "Open 2D Editor" +msgstr "Отвори 2Д уредник" + +#: editor/editor_node.cpp +msgid "Open 3D Editor" +msgstr "Отвори 3Д уредник" + +#: editor/editor_node.cpp +msgid "Open Script Editor" +msgstr "Отвори уредник скриптица" + +#: editor/editor_node.cpp +msgid "Open Asset Library" +msgstr "Отвори библиотеку средства" + +#: editor/editor_node.cpp +msgid "Open the next Editor" +msgstr "Отвори следећи уредник" + +#: editor/editor_node.cpp +msgid "Open the previous Editor" +msgstr "Отвори претходни уредник" + +#: editor/editor_plugin.cpp +msgid "Creating Mesh Previews" +msgstr "Направи приказ мрежа" + +#: editor/editor_plugin.cpp +msgid "Thumbnail.." +msgstr "Сличица..." + +#: editor/editor_plugin_settings.cpp +msgid "Installed Plugins:" +msgstr "Инсталирани прикључци:" + +#: editor/editor_plugin_settings.cpp +msgid "Update" +msgstr "Ажурирај" + +#: editor/editor_plugin_settings.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Version:" +msgstr "Верзија:" + +#: editor/editor_plugin_settings.cpp +msgid "Author:" +msgstr "Аутор:" + +#: editor/editor_plugin_settings.cpp +msgid "Status:" +msgstr "Статус:" + +#: editor/editor_profiler.cpp +msgid "Stop Profiling" +msgstr "Заустави профилирање" + +#: editor/editor_profiler.cpp +msgid "Start Profiling" +msgstr "Покрени профилирање" + +#: editor/editor_profiler.cpp +msgid "Measure:" +msgstr "Мера:" + +#: editor/editor_profiler.cpp +msgid "Frame Time (sec)" +msgstr "Време слике (сек.)" + +#: editor/editor_profiler.cpp +msgid "Average Time (sec)" +msgstr "Средње време (сек.)" + +#: editor/editor_profiler.cpp +msgid "Frame %" +msgstr "Слика %" + +#: editor/editor_profiler.cpp +msgid "Physics Frame %" +msgstr "Слика физике %" + +#: editor/editor_profiler.cpp editor/script_editor_debugger.cpp +msgid "Time:" +msgstr "Време:" + +#: editor/editor_profiler.cpp +msgid "Inclusive" +msgstr "Закључно" + +#: editor/editor_profiler.cpp +msgid "Self" +msgstr "Сам" + +#: editor/editor_profiler.cpp +msgid "Frame #:" +msgstr "Слика број:" + +#: editor/editor_run_native.cpp +msgid "Select device from the list" +msgstr "Одабери уређај са листе" + +#: editor/editor_run_native.cpp +msgid "" +"No runnable export preset found for this platform.\n" +"Please add a runnable preset in the export menu." +msgstr "" +"Нису пронађене поставке извоза за ову платформу.\n" +"Молим, додајте поставке у менију за извоз." + +#: editor/editor_run_script.cpp +msgid "Write your logic in the _run() method." +msgstr "Пиши логику у _run() методи." + +#: editor/editor_run_script.cpp +msgid "There is an edited scene already." +msgstr "Већ постоји уређена сцена." + +#: editor/editor_run_script.cpp +msgid "Couldn't instance script:" +msgstr "Неуспех при прављењу скриптице:" + +#: editor/editor_run_script.cpp +msgid "Did you forget the 'tool' keyword?" +msgstr "Да ли сте заборавили кључну реч „tool“?" + +#: editor/editor_run_script.cpp +msgid "Couldn't run script:" +msgstr "Неуспех при покретању скриптице:" + +#: editor/editor_run_script.cpp +msgid "Did you forget the '_run' method?" +msgstr "Да ли сте заборавили методу „_run“?" + +#: editor/editor_settings.cpp +msgid "Default (Same as Editor)" +msgstr "Уобичајено (као и уредник)" + +#: editor/editor_sub_scene.cpp +msgid "Select Node(s) to Import" +msgstr "Одабери чвор/ове за увоз" + +#: editor/editor_sub_scene.cpp +msgid "Scene Path:" +msgstr "Пут сцене:" + +#: editor/editor_sub_scene.cpp +msgid "Import From Node:" +msgstr "Увоз преко чвора:" + +#: editor/export_template_manager.cpp +msgid "Re-Download" +msgstr "Поновно преузимање" + +#: editor/export_template_manager.cpp +msgid "Uninstall" +msgstr "Деинсталирај" + +#: editor/export_template_manager.cpp +msgid "(Installed)" +msgstr "(инсталирано)" + +#: editor/export_template_manager.cpp +msgid "Download" +msgstr "Преучми" + +#: editor/export_template_manager.cpp +msgid "(Missing)" +msgstr "(Недостаје)" + +#: editor/export_template_manager.cpp +msgid "(Current)" +msgstr "(Тренутно)" + +#: editor/export_template_manager.cpp +msgid "Retrieving mirrors, please wait.." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Remove template version '%s'?" +msgstr "Обриши шаблон верзије „%s“?" + +#: editor/export_template_manager.cpp +msgid "Can't open export templates zip." +msgstr "Не могу отворити ZIP датотеку са извозним шаблонима." + +#: editor/export_template_manager.cpp +msgid "Invalid version.txt format inside templates." +msgstr "Неважећи формат датотеке version.txt унутар шаблона." + +#: editor/export_template_manager.cpp +msgid "" +"Invalid version.txt format inside templates. Revision is not a valid " +"identifier." +msgstr "" +"Неважећи формат датотеке „version.txt“ унутар шаблона. „Revision“ није " +"важећи идентификатор." + +#: editor/export_template_manager.cpp +msgid "No version.txt found inside templates." +msgstr "„version.txt“ није пронаћен у шаблону." + +#: editor/export_template_manager.cpp +msgid "Error creating path for templates:\n" +msgstr "Грешка при прављењу пута за шаблоне:\n" + +#: editor/export_template_manager.cpp +msgid "Extracting Export Templates" +msgstr "Отпакивање извозних шаблона" + +#: editor/export_template_manager.cpp +msgid "Importing:" +msgstr "Увожење:" + +#: editor/export_template_manager.cpp +msgid "" +"No download links found for this version. Direct download is only available " +"for official releases." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't resolve." +msgstr "Не могу решити." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't connect." +msgstr "Не могу се повезати." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "No response." +msgstr "Нема одговора." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Req. Failed." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Redirect Loop." +msgstr "Петља преусмерења." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Failed:" +msgstr "Неуспех:" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't write file." +msgstr "Не могу решити." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Download Complete." +msgstr "Грешка при преузимању" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Error requesting url: " +msgstr "Грешка при захтеву" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connecting to Mirror.." +msgstr "Повезивање..." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Disconnected" +msgstr "Ископчати" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Resolving" +msgstr "Решавање..." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't Resolve" +msgstr "Не могу решити." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Connecting.." +msgstr "Повезивање..." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't Conect" +msgstr "Не могу се повезати." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connected" +msgstr "Повежи" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Requesting.." +msgstr "Захтевање..." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Downloading" +msgstr "Преучми" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connection Error" +msgstr "Повезивање..." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "SSL Handshake Error" +msgstr "Учитај грешке" + +#: editor/export_template_manager.cpp +msgid "Current Version:" +msgstr "Тренутна верзија:" + +#: editor/export_template_manager.cpp +msgid "Installed Versions:" +msgstr "Инсталиране верзије:" + +#: editor/export_template_manager.cpp +msgid "Install From File" +msgstr "Инсталирај са датотеком" + +#: editor/export_template_manager.cpp +msgid "Remove Template" +msgstr "Обриши шаблон" + +#: editor/export_template_manager.cpp +msgid "Select template file" +msgstr "Одабери шаблонску датотеку" + +#: editor/export_template_manager.cpp +msgid "Export Template Manager" +msgstr "Менаџер извозних шаблона" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Download Templates" +msgstr "Преучми" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Select mirror from list: " +msgstr "Одабери уређај са листе" + +#: editor/file_type_cache.cpp +msgid "Can't open file_type_cache.cch for writing, not saving file type cache!" +msgstr "" +"Не могу отворити „file_type_cache.cch“ за писање! Не чувам датотеке " +"кеш(cache) типа!" + +#: editor/filesystem_dock.cpp +msgid "Cannot navigate to '%s' as it has not been found in the file system!" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "View items as a grid of thumbnails" +msgstr "Прикажи ствари као мрежа сличица" + +#: editor/filesystem_dock.cpp +msgid "View items as a list" +msgstr "Прикажи ствари као листа" + +#: editor/filesystem_dock.cpp +msgid "" +"\n" +"Status: Import of file failed. Please fix file and reimport manually." +msgstr "" +"\n" +"Статус: Увоз датотеке неуспео. Молим, исправите датотеку и поново је увезите " +"сами." + +#: editor/filesystem_dock.cpp +msgid "Cannot move/rename resources root." +msgstr "Не могу померити/преименовати корен ресурса." + +#: editor/filesystem_dock.cpp +msgid "Cannot move a folder into itself.\n" +msgstr "Не могу померити директоријум у њену саму.\n" + +#: editor/filesystem_dock.cpp +msgid "Error moving:\n" +msgstr "Грешка при померању:\n" + +#: editor/filesystem_dock.cpp +msgid "Unable to update dependencies:\n" +msgstr "Није могуће ажурирати зависности:\n" + +#: editor/filesystem_dock.cpp +msgid "No name provided" +msgstr "Име није дато" + +#: editor/filesystem_dock.cpp +msgid "Provided name contains invalid characters" +msgstr "Дато име садржи неважећа слова" + +#: editor/filesystem_dock.cpp +msgid "No name provided." +msgstr "Име није дато." + +#: editor/filesystem_dock.cpp +msgid "Name contains invalid characters." +msgstr "Дато име садржи неважећа слова." + +#: editor/filesystem_dock.cpp +msgid "A file or folder with this name already exists." +msgstr "Датотека или директоријум са овим именом већ постоји." + +#: editor/filesystem_dock.cpp +msgid "Renaming file:" +msgstr "Преименовање датотеке:" + +#: editor/filesystem_dock.cpp +msgid "Renaming folder:" +msgstr "Преименовање директоријума:" + +#: editor/filesystem_dock.cpp +msgid "Expand all" +msgstr "Прошири све" + +#: editor/filesystem_dock.cpp +msgid "Collapse all" +msgstr "Умањи све" + +#: editor/filesystem_dock.cpp +msgid "Copy Path" +msgstr "Копирај пут" + +#: editor/filesystem_dock.cpp +msgid "Rename.." +msgstr "Преименуј..." + +#: editor/filesystem_dock.cpp +msgid "Move To.." +msgstr "Помери у..." + +#: editor/filesystem_dock.cpp +msgid "New Folder.." +msgstr "Нови директоријум..." + +#: editor/filesystem_dock.cpp +msgid "Show In File Manager" +msgstr "Покажи у менаџеру датотека" + +#: editor/filesystem_dock.cpp +msgid "Instance" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Edit Dependencies.." +msgstr "Измени зависности..." + +#: editor/filesystem_dock.cpp +msgid "View Owners.." +msgstr "Погледај власнике..." + +#: editor/filesystem_dock.cpp +msgid "Previous Directory" +msgstr "Претодни директоријум" + +#: editor/filesystem_dock.cpp +msgid "Next Directory" +msgstr "Следећи директоријум" + +#: editor/filesystem_dock.cpp +msgid "Re-Scan Filesystem" +msgstr "Поново скенирај датотеке" + +#: editor/filesystem_dock.cpp +msgid "Toggle folder status as Favorite" +msgstr "Директоријум као омиљени" + +#: editor/filesystem_dock.cpp +msgid "Instance the selected scene(s) as child of the selected node." +msgstr "Направи следећу сцену/е као дете одабраног чвора." + +#: editor/filesystem_dock.cpp +msgid "" +"Scanning Files,\n" +"Please Wait.." +msgstr "" +"Скенирање датотека,\n" +"Молим сачекајте..." + +#: editor/filesystem_dock.cpp +msgid "Move" +msgstr "Помери" + +#: editor/filesystem_dock.cpp editor/plugins/animation_tree_editor_plugin.cpp +#: editor/project_manager.cpp +msgid "Rename" +msgstr "Преименуј" + +#: editor/groups_editor.cpp +msgid "Add to Group" +msgstr "Додај у групу" + +#: editor/groups_editor.cpp +msgid "Remove from Group" +msgstr "Обриши из групе" + +#: editor/import/resource_importer_scene.cpp +msgid "Import as Single Scene" +msgstr "Увези као једна сцена" + +#: editor/import/resource_importer_scene.cpp +msgid "Import with Separate Animations" +msgstr "Увези са одвојеним анимацијама" + +#: editor/import/resource_importer_scene.cpp +msgid "Import with Separate Materials" +msgstr "Увези са одвојеним материјалима" + +#: editor/import/resource_importer_scene.cpp +msgid "Import with Separate Objects" +msgstr "Увези са одвојеним објектима" + +#: editor/import/resource_importer_scene.cpp +msgid "Import with Separate Objects+Materials" +msgstr "Увези са одвојеним објектима и материјалима" + +#: editor/import/resource_importer_scene.cpp +msgid "Import with Separate Objects+Animations" +msgstr "Увези са одвојеним објектима и анимацијама" + +#: editor/import/resource_importer_scene.cpp +msgid "Import with Separate Materials+Animations" +msgstr "Увези са одвојеним материјалима и анимацијама" + +#: editor/import/resource_importer_scene.cpp +msgid "Import with Separate Objects+Materials+Animations" +msgstr "Увези са одвојеним објектима, материјалима и анимацијама" + +#: editor/import/resource_importer_scene.cpp +msgid "Import as Multiple Scenes" +msgstr "Увези као више сцена" + +#: editor/import/resource_importer_scene.cpp +msgid "Import as Multiple Scenes+Materials" +msgstr "Увези као више сцена и материјала" + +#: editor/import/resource_importer_scene.cpp +#: editor/plugins/cube_grid_theme_editor_plugin.cpp +msgid "Import Scene" +msgstr "Увези сцену" + +#: editor/import/resource_importer_scene.cpp +msgid "Importing Scene.." +msgstr "Увожење сцеене..." + +#: editor/import/resource_importer_scene.cpp +msgid "Running Custom Script.." +msgstr "Обрађивање скриптице..." + +#: editor/import/resource_importer_scene.cpp +msgid "Couldn't load post-import script:" +msgstr "Неуспех при учитавању постувозне скриптице:" + +#: editor/import/resource_importer_scene.cpp +msgid "Invalid/broken script for post-import (check console):" +msgstr "Неважећа/покварена скриптица за пост-увозну фазу (проверите конзолу):" + +#: editor/import/resource_importer_scene.cpp +msgid "Error running post-import script:" +msgstr "Грешка при обрађивању пост-увозне скриптице:" + +#: editor/import/resource_importer_scene.cpp +msgid "Saving.." +msgstr "Чување..." + +#: editor/import_dock.cpp +msgid "Set as Default for '%s'" +msgstr "Постави као уобичајено за „%s“" + +#: editor/import_dock.cpp +msgid "Clear Default for '%s'" +msgstr "Обриши уобичајено за „%s“" + +#: editor/import_dock.cpp +msgid " Files" +msgstr " Датотеке" + +#: editor/import_dock.cpp +msgid "Import As:" +msgstr "Увези као:" + +#: editor/import_dock.cpp editor/property_editor.cpp +msgid "Preset.." +msgstr "Поставке..." + +#: editor/import_dock.cpp +msgid "Reimport" +msgstr "Поново увези" + +#: editor/multi_node_edit.cpp +msgid "MultiNode Set" +msgstr "" + +#: editor/node_dock.cpp +msgid "Groups" +msgstr "Групе" + +#: editor/node_dock.cpp +msgid "Select a Node to edit Signals and Groups." +msgstr "Одабери чвор за мењање сигнала и група." + +#: editor/plugins/abstract_polygon_2d_editor.cpp +#: editor/plugins/light_occluder_2d_editor_plugin.cpp +msgid "Create Poly" +msgstr "" + +#: editor/plugins/abstract_polygon_2d_editor.cpp +#: editor/plugins/collision_polygon_editor_plugin.cpp +#: editor/plugins/light_occluder_2d_editor_plugin.cpp +msgid "Edit Poly" +msgstr "" + +#: editor/plugins/abstract_polygon_2d_editor.cpp +msgid "Insert Point" +msgstr "Уметни тачку" + +#: editor/plugins/abstract_polygon_2d_editor.cpp +#: editor/plugins/collision_polygon_editor_plugin.cpp +#: editor/plugins/light_occluder_2d_editor_plugin.cpp +msgid "Edit Poly (Remove Point)" +msgstr "Уреди полигон (обриши тачку)" + +#: editor/plugins/abstract_polygon_2d_editor.cpp +msgid "Remove Poly And Point" +msgstr "Обриши полигон и тачку" + +#: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy +msgid "Create a new polygon from scratch" +msgstr "Направи нови полигон од почетка." + +#: editor/plugins/abstract_polygon_2d_editor.cpp +msgid "" +"Edit existing polygon:\n" +"LMB: Move Point.\n" +"Ctrl+LMB: Split Segment.\n" +"RMB: Erase Point." +msgstr "" +"Измени постојећи полигон:\n" +"Леви тастер миша: помери тачку.\n" +"ctrl-леви тастер миша: пресечи дуж.\n" +"Десни тастер миша: обриши тачку." + +#: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy +msgid "Delete points" +msgstr "Обриши тачку" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Toggle Autoplay" +msgstr "Укљ./Искљ. аутоматско покретање" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New Animation Name:" +msgstr "Име нове анимације:" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New Anim" +msgstr "Нова анимација" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Change Animation Name:" +msgstr "Измени име анимације:" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Delete Animation?" +msgstr "Обриши анимацију?" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Remove Animation" +msgstr "Обриши анимацију" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "ERROR: Invalid animation name!" +msgstr "Грешка: неважеће име анимације!" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "ERROR: Animation name already exists!" +msgstr "Грешка: име анимације већ постоји!" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "Преименуј анимацију" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Animation" +msgstr "Додај анимацију" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Blend Next Changed" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Change Blend Time" +msgstr "Промени време мешања" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Load Animation" +msgstr "Учитај анимацију" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Duplicate Animation" +msgstr "Дуплирај анимацију" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "ERROR: No animation to copy!" +msgstr "Грешка: нема анимације за копирање!" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "ERROR: No animation resource on clipboard!" +msgstr "Грешка: нема анимације у таблици за копирање!" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Pasted Animation" +msgstr "Налепљена анимација" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Paste Animation" +msgstr "Налепи анимацију" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "ERROR: No animation to edit!" +msgstr "Грешка: нема анимације за измену!" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Play selected animation backwards from current pos. (A)" +msgstr "Пусти одабрану анимацију у назад од тренутне позиције. (А)" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Play selected animation backwards from end. (Shift+A)" +msgstr "Пусти одабрану анимацију у назад од краја. (Shift+А)" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Stop animation playback. (S)" +msgstr "Заустави анимацију. (S)" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Play selected animation from start. (Shift+D)" +msgstr "Пусти одабрану анимацију од почетка. (Shift+D)" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Play selected animation from current pos. (D)" +msgstr "Пусти одабрану анимацију од тренутне позиције. (D)" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Animation position (in seconds)." +msgstr "Позиција анимације (у секундама)." + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Scale animation playback globally for the node." +msgstr "Глобално убрзај анимацију за чвор." + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create new animation in player." +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Load animation from disk." +msgstr "Учитај анимацију са диска." + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Load an animation from disk." +msgstr "Учитај анимацију са диска." + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Save the current animation" +msgstr "Сачувај тренутну анимацију" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Display list of animations in player." +msgstr "Прикажи листу анимација у плејеру." + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Autoplay on Load" +msgstr "Аутоматско пуштање након учитавања" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Edit Target Blend Times" +msgstr "Уреди времена циљаног мешања" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Animation Tools" +msgstr "Анимационе алатке" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Copy Animation" +msgstr "Копирај анимацију" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "Направи нову анимацију" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Animation Name:" +msgstr "Име анимације:" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/resource_preloader_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp +#: editor/script_create_dialog.cpp +msgid "Error!" +msgstr "Грешка!" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Blend Times:" +msgstr "Времена мешања:" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Next (Auto Queue):" +msgstr "Следећа (Аутоматки ред):" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Cross-Animation Blend Times" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Animation" +msgstr "Анимација" + +#: editor/plugins/animation_tree_editor_plugin.cpp +msgid "New name:" +msgstr "Ново име:" + +#: editor/plugins/animation_tree_editor_plugin.cpp +msgid "Edit Filters" +msgstr "Уреди филтере" + +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Scale:" +msgstr "Скала:" + +#: editor/plugins/animation_tree_editor_plugin.cpp +msgid "Fade In (s):" +msgstr "Појављивање (сек.):" + +#: editor/plugins/animation_tree_editor_plugin.cpp +msgid "Fade Out (s):" +msgstr "Нестанак (сек.):" + +#: editor/plugins/animation_tree_editor_plugin.cpp +msgid "Blend" +msgstr "Мешање" + +#: editor/plugins/animation_tree_editor_plugin.cpp +msgid "Mix" +msgstr "Микс" + +#: editor/plugins/animation_tree_editor_plugin.cpp +msgid "Auto Restart:" +msgstr "Аутоматско рестартовање:" + +#: editor/plugins/animation_tree_editor_plugin.cpp +msgid "Restart (s):" +msgstr "Рестартовање (сек.):" + +#: editor/plugins/animation_tree_editor_plugin.cpp +msgid "Random Restart (s):" +msgstr "Насумично рестартовање (сек.):" + +#: editor/plugins/animation_tree_editor_plugin.cpp +msgid "Start!" +msgstr "Започни!" + +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Amount:" +msgstr "Количина:" + +#: editor/plugins/animation_tree_editor_plugin.cpp +msgid "Blend:" +msgstr "Мешавина:" + +#: editor/plugins/animation_tree_editor_plugin.cpp +msgid "Blend 0:" +msgstr "Мешавина 0:" + +#: editor/plugins/animation_tree_editor_plugin.cpp +msgid "Blend 1:" +msgstr "Мешавина 1:" + +#: editor/plugins/animation_tree_editor_plugin.cpp +msgid "X-Fade Time (s):" +msgstr "" + +#: editor/plugins/animation_tree_editor_plugin.cpp +msgid "Current:" +msgstr "Тренутно:" + +#: editor/plugins/animation_tree_editor_plugin.cpp +msgid "Add Input" +msgstr "Додај улаз" + +#: editor/plugins/animation_tree_editor_plugin.cpp +msgid "Clear Auto-Advance" +msgstr "Обриши аутоматски напредак" + +#: editor/plugins/animation_tree_editor_plugin.cpp +msgid "Set Auto-Advance" +msgstr "Постави аутоматски напредак" + +#: editor/plugins/animation_tree_editor_plugin.cpp +msgid "Delete Input" +msgstr "Обриши улаз" + +#: editor/plugins/animation_tree_editor_plugin.cpp +msgid "Animation tree is valid." +msgstr "Анимационо дрво је важеће." + +#: editor/plugins/animation_tree_editor_plugin.cpp +msgid "Animation tree is invalid." +msgstr "Анимационо дрво није важеће." + +#: editor/plugins/animation_tree_editor_plugin.cpp +msgid "Animation Node" +msgstr "Анимациони чвор" + +#: editor/plugins/animation_tree_editor_plugin.cpp +msgid "OneShot Node" +msgstr "" + +#: editor/plugins/animation_tree_editor_plugin.cpp +msgid "Mix Node" +msgstr "Микс чвор" + +#: editor/plugins/animation_tree_editor_plugin.cpp +msgid "Blend2 Node" +msgstr "Мешање2 чвор" + +#: editor/plugins/animation_tree_editor_plugin.cpp +msgid "Blend3 Node" +msgstr "Мешање3 чвор" + +#: editor/plugins/animation_tree_editor_plugin.cpp +msgid "Blend4 Node" +msgstr "Мешање4 чвор" + +#: editor/plugins/animation_tree_editor_plugin.cpp +msgid "TimeScale Node" +msgstr "" + +#: editor/plugins/animation_tree_editor_plugin.cpp +msgid "TimeSeek Node" +msgstr "" + +#: editor/plugins/animation_tree_editor_plugin.cpp +msgid "Transition Node" +msgstr "" + +#: editor/plugins/animation_tree_editor_plugin.cpp +msgid "Import Animations.." +msgstr "Увези анимације..." + +#: editor/plugins/animation_tree_editor_plugin.cpp +msgid "Edit Node Filters" +msgstr "" + +#: editor/plugins/animation_tree_editor_plugin.cpp +msgid "Filters.." +msgstr "Филтери..." + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Free" +msgstr "Слободно" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Contents:" +msgstr "Садржај:" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "View Files" +msgstr "Погледај датотеке" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't resolve hostname:" +msgstr "Не могу решити име хоста:" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Connection error, please try again." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't connect to host:" +msgstr "Не могу се повезати са хостом:" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "No response from host:" +msgstr "Нема одговора од хоста:" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Request failed, return code:" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Request failed, too many redirects" +msgstr "Захтев неуспео, превише преусмерења" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Bad download hash, assuming file has been tampered with." +msgstr "Лоша хеш сума, претпоставља се да је датотека измењена." + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Expected:" +msgstr "Очекивано:" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Got:" +msgstr "Добијено:" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Failed sha256 hash check" +msgstr "Неуспела провера sha256 суме" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Asset Download Error:" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Fetching:" +msgstr "Преузимање:" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Resolving.." +msgstr "Решавање..." + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Error making request" +msgstr "Грешка при захтеву" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Idle" +msgstr "Неактиван" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Retry" +msgstr "Покушај поново" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Download Error" +msgstr "Грешка при преузимању" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Download for this asset is already in progress!" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "first" +msgstr "први" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "prev" +msgstr "претходни" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "next" +msgstr "следећи" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "last" +msgstr "задњи" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "All" +msgstr "сви" + +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/project_settings_editor.cpp +msgid "Plugins" +msgstr "Прикључци" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Sort:" +msgstr "Сортирање:" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Reverse" +msgstr "Обрнут" + +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/project_settings_editor.cpp +msgid "Category:" +msgstr "Категорија:" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Site:" +msgstr "Веб страница:" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Support.." +msgstr "Подршка..." + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Official" +msgstr "Званично" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Testing" +msgstr "Тестирање" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Assets ZIP File" +msgstr "" + +#: editor/plugins/camera_editor_plugin.cpp +msgid "Preview" +msgstr "Преглед" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Configure Snap" +msgstr "Конфигурација лепљења" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Grid Offset:" +msgstr "Офсет мреже:" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Grid Step:" +msgstr "Корак мреже:" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Rotation Offset:" +msgstr "Ротација офсета:" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Rotation Step:" +msgstr "Ротације корака:" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move Pivot" +msgstr "Помери пивот" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move Action" +msgstr "Помери акцију" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove vertical guide" +msgstr "Обриши неважеће кључеве" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move horizontal guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new horizontal guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove horizontal guide" +msgstr "Обриши неважеће кључеве" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new horizontal and vertical guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Edit IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Edit CanvasItem" +msgstr "Уреди CanvasItem" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Anchors only" +msgstr "Само сидра" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Change Anchors and Margins" +msgstr "Промени сидра и ивице" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Change Anchors" +msgstr "Промени сидра" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Paste Pose" +msgstr "Налепи позу" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Select Mode" +msgstr "Одабери режим" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Drag: Rotate" +msgstr "Вучење: ротација" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Alt+Drag: Move" +msgstr "Alt+вучење: померање" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Press 'v' to Change Pivot, 'Shift+v' to Drag Pivot (while moving)." +msgstr "" +"Притисни „v“ за измену пивота, „Shift+v“ за вучење пивота (без померања)." + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Alt+RMB: Depth list selection" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move Mode" +msgstr "Режим померања" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Rotate Mode" +msgstr "Режим ротације" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "" +"Show a list of all objects at the position clicked\n" +"(same as Alt+RMB in select mode)." +msgstr "" +"Прикажи листу свих објеката на одабраној позицију\n" +"(исто као Alt+Десни тастер миша у режиму селекције)" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Click to change object's rotation pivot." +msgstr "Кликни за промену пивота ротације објекта." + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Pan Mode" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Toggles snapping" +msgstr "Укљ./Искљ. лепљења" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "Користи лепљење" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snapping options" +msgstr "Поставке залепљавања" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snap to grid" +msgstr "Залепи за мрежу" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Use Rotation Snap" +msgstr "Користи лепљење ротације" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Configure Snap..." +msgstr "Поставке лепљења..." + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snap Relative" +msgstr "Залепи релативно" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Use Pixel Snap" +msgstr "Користи лепљење за пикселе" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Smart snapping" +msgstr "Паметно лепљење" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snap to parent" +msgstr "Лепи за родитеља" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snap to node anchor" +msgstr "Лепи за сидро чвора" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snap to node sides" +msgstr "Лепи за стране чвора" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snap to other nodes" +msgstr "Лепи за остале чворове" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Snap to guides" +msgstr "Залепи за мрежу" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Lock the selected object in place (can't be moved)." +msgstr "Закључај одабрани објекат на месту (немогуће померање)." + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Unlock the selected object (can be moved)." +msgstr "Откључај одабрани објекат (могуће померање)." + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Makes sure the object's children are not selectable." +msgstr "Уверава се да деца објекта не могу бити изабрана." + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Restores the object's children's ability to be selected." +msgstr "Врати могућност бирања деце објекта." + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make Bones" +msgstr "Направи кости" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear Bones" +msgstr "Обриши кости" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Show Bones" +msgstr "Покажи кости" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "View" +msgstr "Поглед" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "Покажи мрежу" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Show helpers" +msgstr "Покажи помагаче" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Show rulers" +msgstr "Покажи лељире" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Show guides" +msgstr "Покажи лељире" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Center Selection" +msgstr "Центрирај одабрано" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Frame Selection" +msgstr "Ибор рама" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" +msgstr "Распоред" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Insert Keys" +msgstr "Убаци кључеве" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Insert Key" +msgstr "Убаци кључеве" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Insert Key (Existing Tracks)" +msgstr "Убаци кључ (постојеће траке)" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Copy Pose" +msgstr "Копирај позу" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear Pose" +msgstr "Обриши позу" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Drag pivot from mouse position" +msgstr "Превуци пивот са позицијом миша" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Set pivot at mouse position" +msgstr "Постави пивот на позицију миша" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Multiply grid step by 2" +msgstr "Помножи корак мреже са 2" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Divide grid step by 2" +msgstr "Подели корак мреже са 2" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Add %s" +msgstr "Додај %s" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Adding %s..." +msgstr "Додавање %s..." + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp +msgid "Create Node" +msgstr "Направи чвор" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp +msgid "Error instancing scene from %s" +msgstr "Грешка при прављењу сцене од %s" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp +msgid "OK :(" +msgstr "ОК :(" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp +msgid "No parent to instance a child at." +msgstr "Нема родитеља за прављење сина." + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp +msgid "This operation requires a single selected node." +msgstr "Она операција захтева један изабран чвор." + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Change default type" +msgstr "Измени уобичајен тип" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Drag & drop + Shift : Add node as sibling\n" +"Drag & drop + Alt : Change node type" +msgstr "" +"Превуците и испустите + Shift: додај чвор као брата\n" +"Превуците и испустите + Alt: Промени тип чвора" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Create Poly3D" +msgstr "Направи Poly3D" + +#: editor/plugins/collision_shape_2d_editor_plugin.cpp +msgid "Set Handle" +msgstr "" + +#: editor/plugins/cube_grid_theme_editor_plugin.cpp +msgid "Remove item %d?" +msgstr "Обриши ствар %d?" + +#: editor/plugins/cube_grid_theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Add Item" +msgstr "Додај ствар" + +#: editor/plugins/cube_grid_theme_editor_plugin.cpp +msgid "Remove Selected Item" +msgstr "Обриши одабрану ствар" + +#: editor/plugins/cube_grid_theme_editor_plugin.cpp +msgid "Import from Scene" +msgstr "Увези из сцене" + +#: editor/plugins/cube_grid_theme_editor_plugin.cpp +msgid "Update from Scene" +msgstr "Ажурирај из сцене" + +#: editor/plugins/curve_editor_plugin.cpp +msgid "Flat0" +msgstr "" + +#: editor/plugins/curve_editor_plugin.cpp +msgid "Flat1" +msgstr "" + +#: editor/plugins/curve_editor_plugin.cpp +msgid "Ease in" +msgstr "" + +#: editor/plugins/curve_editor_plugin.cpp +msgid "Ease out" +msgstr "" + +#: editor/plugins/curve_editor_plugin.cpp +msgid "Smoothstep" +msgstr "" + +#: editor/plugins/curve_editor_plugin.cpp +msgid "Modify Curve Point" +msgstr "" + +#: editor/plugins/curve_editor_plugin.cpp +msgid "Modify Curve Tangent" +msgstr "" + +#: editor/plugins/curve_editor_plugin.cpp +msgid "Load Curve Preset" +msgstr "" + +#: editor/plugins/curve_editor_plugin.cpp +msgid "Add point" +msgstr "Додај тачку" + +#: editor/plugins/curve_editor_plugin.cpp +msgid "Remove point" +msgstr "Обриши тачку" + +#: editor/plugins/curve_editor_plugin.cpp +msgid "Left linear" +msgstr "Леви линеарни" + +#: editor/plugins/curve_editor_plugin.cpp +msgid "Right linear" +msgstr "Десни линеарни" + +#: editor/plugins/curve_editor_plugin.cpp +msgid "Load preset" +msgstr "Учитај подешавања" + +#: editor/plugins/curve_editor_plugin.cpp +msgid "Remove Curve Point" +msgstr "Обриши тачку криве" + +#: editor/plugins/curve_editor_plugin.cpp +msgid "Toggle Curve Linear Tangent" +msgstr "" + +#: editor/plugins/curve_editor_plugin.cpp +msgid "Hold Shift to edit tangents individually" +msgstr "" + +#: editor/plugins/gi_probe_editor_plugin.cpp +msgid "Bake GI Probe" +msgstr "" + +#: editor/plugins/gradient_editor_plugin.cpp +msgid "Add/Remove Color Ramp Point" +msgstr "" + +#: editor/plugins/gradient_editor_plugin.cpp +#: editor/plugins/shader_graph_editor_plugin.cpp +msgid "Modify Color Ramp" +msgstr "Измени рампу боје" + +#: editor/plugins/item_list_editor_plugin.cpp +msgid "Item %d" +msgstr "Ствар %d" + +#: editor/plugins/item_list_editor_plugin.cpp +msgid "Items" +msgstr "Ствари" + +#: editor/plugins/item_list_editor_plugin.cpp +msgid "Item List Editor" +msgstr "Уредник ствари листе" + +#: editor/plugins/light_occluder_2d_editor_plugin.cpp +msgid "" +"No OccluderPolygon2D resource on this node.\n" +"Create and assign one?" +msgstr "" +"OccluderPolygon2D не постоји на овом чвору.\n" +"Направи и додели један?" + +#: editor/plugins/light_occluder_2d_editor_plugin.cpp +msgid "Create Occluder Polygon" +msgstr "" + +#: editor/plugins/light_occluder_2d_editor_plugin.cpp +msgid "Create a new polygon from scratch." +msgstr "Направи нови полигон од почетка." + +#: editor/plugins/light_occluder_2d_editor_plugin.cpp +msgid "Edit existing polygon:" +msgstr "Измени постојећи полигон:" + +#: editor/plugins/light_occluder_2d_editor_plugin.cpp +msgid "LMB: Move Point." +msgstr "Леви тастер миша: помери тачку." + +#: editor/plugins/light_occluder_2d_editor_plugin.cpp +msgid "Ctrl+LMB: Split Segment." +msgstr "Ctrl+леви тастер миша: одсеци дуж." + +#: editor/plugins/light_occluder_2d_editor_plugin.cpp +msgid "RMB: Erase Point." +msgstr "Десни тастер миша: обриши тачку." + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Mesh is empty!" +msgstr "Мрежа је празна!" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Create Static Trimesh Body" +msgstr "Направи статичо тело од троуглова" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Create Static Convex Body" +msgstr "Направи конвексно статичко тело" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "This doesn't work on scene root!" +msgstr "Ово не ради на корену сцене!" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Create Trimesh Shape" +msgstr "Направи фигуру од троуглова" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Create Convex Shape" +msgstr "Направи конвексну фигуру" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Create Navigation Mesh" +msgstr "Направи навигациону мрежу" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "MeshInstance lacks a Mesh!" +msgstr "MeshInstance нема мрежу!" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Mesh has not surface to create outlines from!" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Could not create outline!" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Create Outline" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Mesh" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Create Trimesh Static Body" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Create Convex Static Body" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Create Trimesh Collision Sibling" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Create Convex Collision Sibling" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Create Outline Mesh.." +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Create Outline Mesh" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Outline Size:" +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "No mesh source specified (and no MultiMesh set in node)." +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "No mesh source specified (and MultiMesh contains no Mesh)." +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Mesh source is invalid (invalid path)." +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Mesh source is invalid (not a MeshInstance)." +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Mesh source is invalid (contains no Mesh resource)." +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "No surface source specified." +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Surface source is invalid (invalid path)." +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Surface source is invalid (no geometry)." +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Surface source is invalid (no faces)." +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Parent has no solid faces to populate." +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Couldn't map area." +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Select a Source Mesh:" +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Select a Target Surface:" +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Populate Surface" +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Populate MultiMesh" +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Target Surface:" +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Source Mesh:" +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "X-Axis" +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Y-Axis" +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Z-Axis" +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Mesh Up Axis:" +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Random Rotation:" +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Random Tilt:" +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Random Scale:" +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Populate" +msgstr "" + +#: editor/plugins/navigation_mesh_editor_plugin.cpp +msgid "Bake!" +msgstr "" + +#: editor/plugins/navigation_mesh_editor_plugin.cpp +msgid "Bake the navigation mesh.\n" +msgstr "" + +#: editor/plugins/navigation_mesh_editor_plugin.cpp +msgid "Clear the navigation mesh." +msgstr "" + +#: editor/plugins/navigation_mesh_generator.cpp +msgid "Setting up Configuration..." +msgstr "" + +#: editor/plugins/navigation_mesh_generator.cpp +msgid "Calculating grid size..." +msgstr "" + +#: editor/plugins/navigation_mesh_generator.cpp +msgid "Creating heightfield..." +msgstr "" + +#: editor/plugins/navigation_mesh_generator.cpp +msgid "Marking walkable triangles..." +msgstr "" + +#: editor/plugins/navigation_mesh_generator.cpp +msgid "Constructing compact heightfield..." +msgstr "" + +#: editor/plugins/navigation_mesh_generator.cpp +msgid "Eroding walkable area..." +msgstr "" + +#: editor/plugins/navigation_mesh_generator.cpp +msgid "Partitioning..." +msgstr "" + +#: editor/plugins/navigation_mesh_generator.cpp +msgid "Creating contours..." +msgstr "" + +#: editor/plugins/navigation_mesh_generator.cpp +msgid "Creating polymesh..." +msgstr "" + +#: editor/plugins/navigation_mesh_generator.cpp +msgid "Converting to native navigation mesh..." +msgstr "" + +#: editor/plugins/navigation_mesh_generator.cpp +msgid "Navigation Mesh Generator Setup:" +msgstr "" + +#: editor/plugins/navigation_mesh_generator.cpp +msgid "Parsing Geometry..." +msgstr "" + +#: editor/plugins/navigation_mesh_generator.cpp +msgid "Done!" +msgstr "" + +#: editor/plugins/navigation_polygon_editor_plugin.cpp +msgid "Create Navigation Polygon" +msgstr "" + +#: editor/plugins/particles_2d_editor_plugin.cpp +msgid "Clear Emission Mask" +msgstr "" + +#: editor/plugins/particles_2d_editor_plugin.cpp +#: editor/plugins/particles_editor_plugin.cpp +msgid "Generating AABB" +msgstr "" + +#: editor/plugins/particles_2d_editor_plugin.cpp +msgid "Can only set point into a ParticlesMaterial process material" +msgstr "" + +#: editor/plugins/particles_2d_editor_plugin.cpp +msgid "Error loading image:" +msgstr "" + +#: editor/plugins/particles_2d_editor_plugin.cpp +msgid "No pixels with transparency > 128 in image.." +msgstr "" + +#: editor/plugins/particles_2d_editor_plugin.cpp +msgid "Set Emission Mask" +msgstr "" + +#: editor/plugins/particles_2d_editor_plugin.cpp +msgid "Generate Visibility Rect" +msgstr "" + +#: editor/plugins/particles_2d_editor_plugin.cpp +msgid "Load Emission Mask" +msgstr "" + +#: editor/plugins/particles_2d_editor_plugin.cpp +#: editor/plugins/particles_editor_plugin.cpp +msgid "Particles" +msgstr "" + +#: editor/plugins/particles_2d_editor_plugin.cpp +msgid "Generated Point Count:" +msgstr "" + +#: editor/plugins/particles_2d_editor_plugin.cpp +#: editor/plugins/particles_editor_plugin.cpp +msgid "Generation Time (sec):" +msgstr "" + +#: editor/plugins/particles_2d_editor_plugin.cpp +msgid "Emission Mask" +msgstr "" + +#: editor/plugins/particles_2d_editor_plugin.cpp +msgid "Capture from Pixel" +msgstr "" + +#: editor/plugins/particles_2d_editor_plugin.cpp +msgid "Emission Colors" +msgstr "" + +#: editor/plugins/particles_editor_plugin.cpp +msgid "Node does not contain geometry." +msgstr "" + +#: editor/plugins/particles_editor_plugin.cpp +msgid "Node does not contain geometry (faces)." +msgstr "" + +#: editor/plugins/particles_editor_plugin.cpp +msgid "A processor material of type 'ParticlesMaterial' is required." +msgstr "" + +#: editor/plugins/particles_editor_plugin.cpp +msgid "Faces contain no area!" +msgstr "" + +#: editor/plugins/particles_editor_plugin.cpp +msgid "No faces!" +msgstr "" + +#: editor/plugins/particles_editor_plugin.cpp +msgid "Generate AABB" +msgstr "" + +#: editor/plugins/particles_editor_plugin.cpp +msgid "Create Emission Points From Mesh" +msgstr "" + +#: editor/plugins/particles_editor_plugin.cpp +msgid "Create Emission Points From Node" +msgstr "" + +#: editor/plugins/particles_editor_plugin.cpp +msgid "Clear Emitter" +msgstr "" + +#: editor/plugins/particles_editor_plugin.cpp +msgid "Create Emitter" +msgstr "" + +#: editor/plugins/particles_editor_plugin.cpp +msgid "Emission Points:" +msgstr "" + +#: editor/plugins/particles_editor_plugin.cpp +msgid "Surface Points" +msgstr "" + +#: editor/plugins/particles_editor_plugin.cpp +msgid "Surface Points+Normal (Directed)" +msgstr "" + +#: editor/plugins/particles_editor_plugin.cpp +msgid "Volume" +msgstr "" + +#: editor/plugins/particles_editor_plugin.cpp +msgid "Emission Source: " +msgstr "" + +#: editor/plugins/particles_editor_plugin.cpp +msgid "Generate Visibility AABB" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +msgid "Remove Point from Curve" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +msgid "Remove Out-Control from Curve" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +msgid "Remove In-Control from Curve" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Add Point to Curve" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +msgid "Move Point in Curve" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +msgid "Move In-Control in Curve" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +msgid "Move Out-Control in Curve" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Select Points" +msgstr "Одабери тачке" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Shift+Drag: Select Control Points" +msgstr "Shift+повуците: бирање контролних тачака" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Click: Add Point" +msgstr "Клик: уметни тачку" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Right Click: Delete Point" +msgstr "Десни клик: обриши тачку" + +#: editor/plugins/path_2d_editor_plugin.cpp +msgid "Select Control Points (Shift+Drag)" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Add Point (in empty space)" +msgstr "Додај тачку (у празном простору)" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Segment (in curve)" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Delete Point" +msgstr "Обриши тачку" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Close Curve" +msgstr "" + +#: editor/plugins/path_editor_plugin.cpp +msgid "Curve Point #" +msgstr "" + +#: editor/plugins/path_editor_plugin.cpp +msgid "Set Curve Point Position" +msgstr "" + +#: editor/plugins/path_editor_plugin.cpp +msgid "Set Curve In Position" +msgstr "" + +#: editor/plugins/path_editor_plugin.cpp +msgid "Set Curve Out Position" +msgstr "" + +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Path" +msgstr "" + +#: editor/plugins/path_editor_plugin.cpp +msgid "Remove Path Point" +msgstr "" + +#: editor/plugins/path_editor_plugin.cpp +msgid "Remove Out-Control Point" +msgstr "" + +#: editor/plugins/path_editor_plugin.cpp +msgid "Remove In-Control Point" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Create UV Map" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Transform UV Map" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Polygon 2D UV Editor" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Move Point" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Ctrl: Rotate" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Shift: Move All" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Shift+Ctrl: Scale" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Move Polygon" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Rotate Polygon" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Scale Polygon" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/project_manager.cpp +#: editor/project_settings_editor.cpp editor/property_editor.cpp +#: modules/visual_script/visual_script_editor.cpp +msgid "Edit" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Polygon->UV" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "UV->Polygon" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Clear UV" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Snap" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Enable Snap" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Grid" +msgstr "" + +#: editor/plugins/resource_preloader_editor_plugin.cpp +msgid "ERROR: Couldn't load resource!" +msgstr "" + +#: editor/plugins/resource_preloader_editor_plugin.cpp +msgid "Add Resource" +msgstr "" + +#: editor/plugins/resource_preloader_editor_plugin.cpp +msgid "Rename Resource" +msgstr "" + +#: editor/plugins/resource_preloader_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Delete Resource" +msgstr "" + +#: editor/plugins/resource_preloader_editor_plugin.cpp +msgid "Resource clipboard is empty!" +msgstr "" + +#: editor/plugins/resource_preloader_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Load Resource" +msgstr "" + +#: editor/plugins/resource_preloader_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp +msgid "Paste" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Clear Recent Files" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "" +"Close and save changes?\n" +"\"" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error importing theme" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error importing" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Import Theme" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Save Theme As.." +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid " Class Reference" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +#, fuzzy +msgid "Sort" +msgstr "Сортирање:" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Up" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Down" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Next script" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Previous script" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "File" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp +msgid "New" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Save All" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Soft Reload Script" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "History Prev" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "History Next" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Reload Theme" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Save Theme" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Save Theme As" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Close Docs" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Close All" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +msgid "Run" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Toggle Scripts Panel" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find.." +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp +msgid "Step Over" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp +msgid "Step Into" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp +msgid "Break" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/script_editor_debugger.cpp +msgid "Continue" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Keep Debugger Open" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Debug with external editor" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Open Godot online documentation" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Search the class hierarchy." +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Search the reference documentation." +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Go to previous edited document." +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Go to next edited document." +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Discard" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Create Script" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?:" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Reload" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Resave" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp +msgid "Debugger" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "" +"Built-in scripts can only be edited when the scene they belong to is loaded" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Only resources from filesystem can be dropped." +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Pick Color" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Convert Case" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Uppercase" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Lowercase" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Capitalize" +msgstr "" + +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Cut" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp +msgid "Copy" +msgstr "" + +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Delete Line" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Indent Left" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Indent Right" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Toggle Comment" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Clone Down" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Fold Line" +msgstr "Иди на линију" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold Line" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Fold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Complete Symbol" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Trim Trailing Whitespace" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Convert Indent To Spaces" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Convert Indent To Tabs" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Auto Indent" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +#: modules/visual_script/visual_script_editor.cpp +msgid "Toggle Breakpoint" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Remove All Breakpoints" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Goto Next Breakpoint" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Goto Previous Breakpoint" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Convert To Uppercase" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Convert To Lowercase" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Replace.." +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Goto Function.." +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Goto Line.." +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Contextual Help" +msgstr "" + +#: editor/plugins/shader_editor_plugin.cpp +msgid "Shader" +msgstr "" + +#: editor/plugins/shader_graph_editor_plugin.cpp +msgid "Change Scalar Constant" +msgstr "" + +#: editor/plugins/shader_graph_editor_plugin.cpp +msgid "Change Vec Constant" +msgstr "" + +#: editor/plugins/shader_graph_editor_plugin.cpp +msgid "Change RGB Constant" +msgstr "" + +#: editor/plugins/shader_graph_editor_plugin.cpp +msgid "Change Scalar Operator" +msgstr "" + +#: editor/plugins/shader_graph_editor_plugin.cpp +msgid "Change Vec Operator" +msgstr "" + +#: editor/plugins/shader_graph_editor_plugin.cpp +msgid "Change Vec Scalar Operator" +msgstr "" + +#: editor/plugins/shader_graph_editor_plugin.cpp +msgid "Change RGB Operator" +msgstr "" + +#: editor/plugins/shader_graph_editor_plugin.cpp +msgid "Toggle Rot Only" +msgstr "" + +#: editor/plugins/shader_graph_editor_plugin.cpp +msgid "Change Scalar Function" +msgstr "" + +#: editor/plugins/shader_graph_editor_plugin.cpp +msgid "Change Vec Function" +msgstr "" + +#: editor/plugins/shader_graph_editor_plugin.cpp +msgid "Change Scalar Uniform" +msgstr "" + +#: editor/plugins/shader_graph_editor_plugin.cpp +msgid "Change Vec Uniform" +msgstr "" + +#: editor/plugins/shader_graph_editor_plugin.cpp +msgid "Change RGB Uniform" +msgstr "" + +#: editor/plugins/shader_graph_editor_plugin.cpp +msgid "Change Default Value" +msgstr "" + +#: editor/plugins/shader_graph_editor_plugin.cpp +msgid "Change XForm Uniform" +msgstr "" + +#: editor/plugins/shader_graph_editor_plugin.cpp +msgid "Change Texture Uniform" +msgstr "" + +#: editor/plugins/shader_graph_editor_plugin.cpp +msgid "Change Cubemap Uniform" +msgstr "" + +#: editor/plugins/shader_graph_editor_plugin.cpp +msgid "Change Comment" +msgstr "" + +#: editor/plugins/shader_graph_editor_plugin.cpp +msgid "Add/Remove to Color Ramp" +msgstr "" + +#: editor/plugins/shader_graph_editor_plugin.cpp +msgid "Add/Remove to Curve Map" +msgstr "" + +#: editor/plugins/shader_graph_editor_plugin.cpp +msgid "Modify Curve Map" +msgstr "" + +#: editor/plugins/shader_graph_editor_plugin.cpp +msgid "Change Input Name" +msgstr "" + +#: editor/plugins/shader_graph_editor_plugin.cpp +msgid "Connect Graph Nodes" +msgstr "" + +#: editor/plugins/shader_graph_editor_plugin.cpp +msgid "Disconnect Graph Nodes" +msgstr "" + +#: editor/plugins/shader_graph_editor_plugin.cpp +msgid "Remove Shader Graph Node" +msgstr "" + +#: editor/plugins/shader_graph_editor_plugin.cpp +msgid "Move Shader Graph Node" +msgstr "" + +#: editor/plugins/shader_graph_editor_plugin.cpp +msgid "Duplicate Graph Node(s)" +msgstr "" + +#: editor/plugins/shader_graph_editor_plugin.cpp +msgid "Delete Shader Graph Node(s)" +msgstr "" + +#: editor/plugins/shader_graph_editor_plugin.cpp +msgid "Error: Cyclic Connection Link" +msgstr "" + +#: editor/plugins/shader_graph_editor_plugin.cpp +msgid "Error: Missing Input Connections" +msgstr "" + +#: editor/plugins/shader_graph_editor_plugin.cpp +msgid "Add Shader Graph Node" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Orthogonal" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Perspective" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Transform Aborted." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "X-Axis Transform." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Y-Axis Transform." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Z-Axis Transform." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "View Plane Transform." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Scaling: " +msgstr "Скала:" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Translating: " +msgstr "Померај" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Rotating %s degrees." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Bottom View." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Bottom" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Top View." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Rear View." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Rear" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Front View." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Front" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Left View." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Left" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Right View." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Right" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Keying is disabled (no key inserted)." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Animation Key Inserted." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Objects Drawn" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Material Changes" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Shader Changes" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Surface Changes" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Draw Calls" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Vertices" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "FPS" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Align with view" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Display Normal" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Display Wireframe" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Display Overdraw" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Display Unshaded" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "View Environment" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "View Gizmos" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "View Information" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "View FPS" +msgstr "Погледај датотеке" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Half Resolution" +msgstr "Увећај одабрано" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Audio Listener" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Doppler Enable" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Left" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Right" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Forward" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Backwards" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Up" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Down" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Speed Modifier" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "preview" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "XForm Dialog" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Select Mode (Q)\n" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "" +"Drag: Rotate\n" +"Alt+Drag: Move\n" +"Alt+RMB: Depth list selection" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Move Mode (W)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Rotate Mode (E)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Scale Mode (R)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Bottom View" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Top View" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Rear View" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Front View" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Left View" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Right View" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Switch Perspective/Orthogonal view" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Insert Animation Key" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Focus Origin" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Focus Selection" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Align Selection With View" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Tool Select" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Tool Move" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Tool Rotate" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Tool Scale" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Toggle Freelook" +msgstr "Укљ./Искљ. режим целог екрана" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Transform" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Configure Snap.." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Local Coords" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Transform Dialog.." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "1 Viewport" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "2 Viewports" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "2 Viewports (Alt)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "3 Viewports" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "3 Viewports (Alt)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "4 Viewports" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "View Origin" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "View Grid" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Settings" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Snap Settings" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Translate Snap:" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Rotate Snap (deg.):" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Scale Snap (%):" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Viewport Settings" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Perspective FOV (deg.):" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "View Z-Near:" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "View Z-Far:" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Transform Change" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Translate:" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Rotate (deg.):" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Scale (ratio):" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Transform Type" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Pre" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Post" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frame" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Resource clipboard is empty or not a texture!" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Paste Frame" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Empty" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Change Animation Loop" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Change Animation FPS" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "(empty)" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Animations" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Speed (FPS):" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Loop" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Animation Frames" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Insert Empty (Before)" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Insert Empty (After)" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Move (Before)" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Move (After)" +msgstr "" + +#: editor/plugins/style_box_editor_plugin.cpp +msgid "StyleBox Preview:" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp +msgid "Set Region Rect" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp +msgid "Snap Mode:" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp +msgid "<None>" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp +msgid "Pixel Snap" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp +msgid "Grid Snap" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp +msgid "Auto Slice" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp +msgid "Offset:" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp +msgid "Step:" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp +msgid "Separation:" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp +msgid "Texture Region" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp +msgid "Texture Region Editor" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Can't save theme to file:" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Add All Items" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Add All" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Remove Item" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Remove All Items" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Remove All" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Edit theme.." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Theme editing menu." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Add Class Items" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Remove Class Items" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Create Empty Template" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Create Empty Editor Template" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Create From Current Editor Theme" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "CheckBox Radio1" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "CheckBox Radio2" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Check Item" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Checked Item" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Has" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Many" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp +msgid "Options" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Have,Many,Several,Options!" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Tab 1" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Tab 2" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Tab 3" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp +#: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +msgid "Type:" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Data Type:" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Icon" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Style" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Font" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Color" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Erase Selection" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Paint TileMap" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Line Draw" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Rectangle Paint" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Bucket Fill" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Erase TileMap" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Erase selection" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Find tile" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Transpose" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Mirror X" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Mirror Y" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Paint Tile" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Pick Tile" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Rotate 0 degrees" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Rotate 90 degrees" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Rotate 180 degrees" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Rotate 270 degrees" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Could not find tile:" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Item name or ID:" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Create from scene?" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Merge from scene?" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Create from Scene" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Merge from Scene" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp editor/script_editor_debugger.cpp +msgid "Error" +msgstr "" + +#: editor/project_export.cpp +msgid "Runnable" +msgstr "" + +#: editor/project_export.cpp +msgid "Delete patch '%s' from list?" +msgstr "" + +#: editor/project_export.cpp +msgid "Delete preset '%s'?" +msgstr "" + +#: editor/project_export.cpp +msgid "Export templates for this platform are missing/corrupted: " +msgstr "" + +#: editor/project_export.cpp +msgid "Presets" +msgstr "" + +#: editor/project_export.cpp editor/project_settings_editor.cpp +msgid "Add.." +msgstr "" + +#: editor/project_export.cpp +msgid "Resources" +msgstr "" + +#: editor/project_export.cpp +msgid "Export all resources in the project" +msgstr "" + +#: editor/project_export.cpp +msgid "Export selected scenes (and dependencies)" +msgstr "" + +#: editor/project_export.cpp +msgid "Export selected resources (and dependencies)" +msgstr "" + +#: editor/project_export.cpp +msgid "Export Mode:" +msgstr "" + +#: editor/project_export.cpp +msgid "Resources to export:" +msgstr "" + +#: editor/project_export.cpp +msgid "" +"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +msgstr "" + +#: editor/project_export.cpp +msgid "" +"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +msgstr "" + +#: editor/project_export.cpp +msgid "Patches" +msgstr "" + +#: editor/project_export.cpp +msgid "Make Patch" +msgstr "" + +#: editor/project_export.cpp +msgid "Features" +msgstr "" + +#: editor/project_export.cpp +msgid "Custom (comma-separated):" +msgstr "" + +#: editor/project_export.cpp +msgid "Feature List:" +msgstr "" + +#: editor/project_export.cpp +msgid "Export PCK/Zip" +msgstr "" + +#: editor/project_export.cpp +msgid "Export templates for this platform are missing:" +msgstr "" + +#: editor/project_export.cpp +msgid "Export templates for this platform are missing/corrupted:" +msgstr "" + +#: editor/project_export.cpp +msgid "Export With Debug" +msgstr "" + +#: editor/project_manager.cpp +#, fuzzy +msgid "The path does not exist." +msgstr "Датотека не постоји." + +#: editor/project_manager.cpp +msgid "Please choose a 'project.godot' file." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Your project will be created in a non empty folder (you might want to create " +"a new folder)." +msgstr "" + +#: editor/project_manager.cpp +msgid "Please choose a folder that does not contain a 'project.godot' file." +msgstr "" + +#: editor/project_manager.cpp +msgid "Imported Project" +msgstr "" + +#: editor/project_manager.cpp +msgid " " +msgstr "" + +#: editor/project_manager.cpp +msgid "It would be a good idea to name your project." +msgstr "" + +#: editor/project_manager.cpp +msgid "Invalid project path (changed anything?)." +msgstr "" + +#: editor/project_manager.cpp +msgid "Couldn't get project.godot in project path." +msgstr "" + +#: editor/project_manager.cpp +msgid "Couldn't edit project.godot in project path." +msgstr "" + +#: editor/project_manager.cpp +msgid "Couldn't create project.godot in project path." +msgstr "" + +#: editor/project_manager.cpp +msgid "The following files failed extraction from package:" +msgstr "" + +#: editor/project_manager.cpp +msgid "Rename Project" +msgstr "" + +#: editor/project_manager.cpp +msgid "Couldn't get project.godot in the project path." +msgstr "" + +#: editor/project_manager.cpp +msgid "New Game Project" +msgstr "" + +#: editor/project_manager.cpp +msgid "Import Existing Project" +msgstr "" + +#: editor/project_manager.cpp +msgid "Create New Project" +msgstr "" + +#: editor/project_manager.cpp +msgid "Install Project:" +msgstr "" + +#: editor/project_manager.cpp +msgid "Project Name:" +msgstr "" + +#: editor/project_manager.cpp +msgid "Create folder" +msgstr "" + +#: editor/project_manager.cpp +msgid "Project Path:" +msgstr "" + +#: editor/project_manager.cpp +msgid "Browse" +msgstr "" + +#: editor/project_manager.cpp +msgid "That's a BINGO!" +msgstr "" + +#: editor/project_manager.cpp +msgid "Unnamed Project" +msgstr "" + +#: editor/project_manager.cpp +msgid "Can't open project" +msgstr "" + +#: editor/project_manager.cpp +msgid "Are you sure to open more than one project?" +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Can't run project: no main scene defined.\n" +"Please edit the project and set the main scene in \"Project Settings\" under " +"the \"Application\" category." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Can't run project: Assets need to be imported.\n" +"Please edit the project to trigger the initial import." +msgstr "" + +#: editor/project_manager.cpp +msgid "Are you sure to run more than one project?" +msgstr "" + +#: editor/project_manager.cpp +msgid "Remove project from the list? (Folder contents will not be modified)" +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Language changed.\n" +"The UI will update next time the editor or project manager starts." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"You are about the scan %s folders for existing Godot projects. Do you " +"confirm?" +msgstr "" + +#: editor/project_manager.cpp +msgid "Project List" +msgstr "" + +#: editor/project_manager.cpp +msgid "Scan" +msgstr "" + +#: editor/project_manager.cpp +msgid "Select a Folder to Scan" +msgstr "" + +#: editor/project_manager.cpp +msgid "New Project" +msgstr "" + +#: editor/project_manager.cpp +msgid "Templates" +msgstr "" + +#: editor/project_manager.cpp +msgid "Exit" +msgstr "" + +#: editor/project_manager.cpp +msgid "Restart Now" +msgstr "" + +#: editor/project_manager.cpp +msgid "Can't run project" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Key " +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Joy Button" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Joy Axis" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Mouse Button" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Invalid action (anything goes but '/' or ':')." +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Action '%s' already exists!" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Rename Input Action Event" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Add Input Action Event" +msgstr "" + +#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp +msgid "Shift+" +msgstr "" + +#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp +msgid "Alt+" +msgstr "" + +#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp +msgid "Control+" +msgstr "" + +#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp +msgid "Press a Key.." +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Mouse Button Index:" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Left Button" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Right Button" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Middle Button" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Wheel Up Button" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Wheel Down Button" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Button 6" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Button 7" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Button 8" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Button 9" +msgstr "" + +#: editor/project_settings_editor.cpp +#: modules/visual_script/visual_script_editor.cpp +msgid "Change" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Joypad Axis Index:" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Axis" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Joypad Button Index:" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Add Input Action" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Erase Input Action Event" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Add Event" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Device" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Button" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Left Button." +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Right Button." +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Middle Button." +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Wheel Up." +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Wheel Down." +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Add Global Property" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Select a setting item first!" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "No property '%s' exists." +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Setting '%s' is internal, and it can't be deleted." +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Delete Item" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Can't contain '/' or ':'" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Already existing" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Error saving settings." +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Settings saved OK." +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Override for Feature" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Add Translation" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Remove Translation" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Add Remapped Path" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Resource Remap Add Remap" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Change Resource Remap Language" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Remove Resource Remap" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Remove Resource Remap Option" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Changed Locale Filter" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Changed Locale Filter Mode" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Project Settings (project.godot)" +msgstr "" + +#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp +msgid "General" +msgstr "" + +#: editor/project_settings_editor.cpp editor/property_editor.cpp +msgid "Property:" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Override For.." +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Input Map" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Action:" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Device:" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Index:" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Localization" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Translations" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Translations:" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Remaps" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Resources:" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Remaps by Locale:" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Locale" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Locales Filter" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Show all locales" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Show only selected locales" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Filter mode:" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Locales:" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "AutoLoad" +msgstr "" + +#: editor/property_editor.cpp +msgid "Pick a Viewport" +msgstr "" + +#: editor/property_editor.cpp +msgid "Ease In" +msgstr "" + +#: editor/property_editor.cpp +msgid "Ease Out" +msgstr "" + +#: editor/property_editor.cpp +msgid "Zero" +msgstr "" + +#: editor/property_editor.cpp +msgid "Easing In-Out" +msgstr "" + +#: editor/property_editor.cpp +msgid "Easing Out-In" +msgstr "" + +#: editor/property_editor.cpp +msgid "File.." +msgstr "" + +#: editor/property_editor.cpp +msgid "Dir.." +msgstr "" + +#: editor/property_editor.cpp +msgid "Assign" +msgstr "" + +#: editor/property_editor.cpp +msgid "Select Node" +msgstr "" + +#: editor/property_editor.cpp +msgid "New Script" +msgstr "" + +#: editor/property_editor.cpp +msgid "Make Unique" +msgstr "" + +#: editor/property_editor.cpp +msgid "Show in File System" +msgstr "" + +#: editor/property_editor.cpp +msgid "Convert To %s" +msgstr "" + +#: editor/property_editor.cpp +msgid "Error loading file: Not a resource!" +msgstr "" + +#: editor/property_editor.cpp +msgid "Selected node is not a Viewport!" +msgstr "" + +#: editor/property_editor.cpp +msgid "Pick a Node" +msgstr "" + +#: editor/property_editor.cpp +msgid "Bit %d, val %d." +msgstr "" + +#: editor/property_editor.cpp +msgid "On" +msgstr "" + +#: editor/property_editor.cpp modules/visual_script/visual_script_editor.cpp +msgid "Set" +msgstr "" + +#: editor/property_editor.cpp +msgid "Properties:" +msgstr "" + +#: editor/property_editor.cpp +msgid "Sections:" +msgstr "" + +#: editor/property_selector.cpp +msgid "Select Property" +msgstr "" + +#: editor/property_selector.cpp +msgid "Select Virtual Method" +msgstr "" + +#: editor/property_selector.cpp +msgid "Select Method" +msgstr "" + +#: editor/pvrtc_compress.cpp +msgid "Could not execute PVRTC tool:" +msgstr "" + +#: editor/pvrtc_compress.cpp +msgid "Can't load back converted image using PVRTC tool:" +msgstr "" + +#: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp +msgid "Reparent Node" +msgstr "" + +#: editor/reparent_dialog.cpp +msgid "Reparent Location (Select new Parent):" +msgstr "" + +#: editor/reparent_dialog.cpp +msgid "Keep Global Transform" +msgstr "" + +#: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp +msgid "Reparent" +msgstr "" + +#: editor/run_settings_dialog.cpp +msgid "Run Mode:" +msgstr "" + +#: editor/run_settings_dialog.cpp +msgid "Current Scene" +msgstr "" + +#: editor/run_settings_dialog.cpp +msgid "Main Scene" +msgstr "" + +#: editor/run_settings_dialog.cpp +msgid "Main Scene Arguments:" +msgstr "" + +#: editor/run_settings_dialog.cpp +msgid "Scene Run Settings" +msgstr "" + +#: editor/scene_tree_dock.cpp editor/script_create_dialog.cpp +#: scene/gui/dialogs.cpp +msgid "OK" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "No parent to instance the scenes at." +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Error loading scene from %s" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Ok" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "" +"Cannot instance the scene '%s' because the current scene exists within one " +"of its nodes." +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Instance Scene(s)" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "This operation can't be done on the tree root." +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Move Node In Parent" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Move Nodes In Parent" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Duplicate Node(s)" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Delete Node(s)?" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Can not perform with the root node." +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "This operation can't be done on instanced scenes." +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Save New Scene As.." +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Discard Instancing" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Makes Sense!" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Can't operate on nodes from a foreign scene!" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Can't operate on nodes the current scene inherits from!" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Remove Node(s)" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "" +"Couldn't save new scene. Likely dependencies (instances) couldn't be " +"satisfied." +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Error saving scene." +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Error duplicating scene to save it." +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Sub-Resources:" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Clear Inheritance" +msgstr "" + +#: editor/scene_tree_dock.cpp editor/scene_tree_editor.cpp +msgid "Open in Editor" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Delete Node(s)" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Add Child Node" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Instance Child Scene" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Change Type" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Attach Script" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Clear Script" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Merge From Scene" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Save Branch as Scene" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Copy Node Path" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Delete (No Confirm)" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Add/Create a New Node" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "" +"Instance a scene file as a Node. Creates an inherited scene if no root node " +"exists." +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Filter nodes" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Attach a new or existing script for the selected node." +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Clear a script for the selected node." +msgstr "" + +#: editor/scene_tree_dock.cpp +#, fuzzy +msgid "Remote" +msgstr "Обриши" + +#: editor/scene_tree_dock.cpp +msgid "Local" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Clear Inheritance? (No Undo!)" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Clear!" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "Toggle Spatial Visible" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "Toggle CanvasItem Visible" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "Node configuration warning:" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "" +"Node has connection(s) and group(s)\n" +"Click to show signals dock." +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "" +"Node has connections.\n" +"Click to show signals dock." +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "" +"Node is in group(s).\n" +"Click to show groups dock." +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "Instance:" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "Open script" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "" +"Node is locked.\n" +"Click to unlock" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "" +"Children are not selectable.\n" +"Click to make selectable" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "Toggle Visibility" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "Invalid node name, the following characters are not allowed:" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "Rename Node" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "Scene Tree (Nodes):" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "Node Configuration Warning!" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "Select a Node" +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Error loading template '%s'" +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Error - Could not create script in filesystem." +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Error loading script from %s" +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "N/A" +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Path is empty" +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Path is not local" +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Invalid base path" +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Directory of the same name exists" +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "File exists, will be reused" +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Invalid extension" +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Wrong extension chosen" +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Invalid Path" +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Invalid class name" +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Invalid inherited parent name or path" +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Script valid" +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Allowed: a-z, A-Z, 0-9 and _" +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Built-in script (into scene file)" +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Create new script file" +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Load existing script file" +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Language" +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Inherits" +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Class Name" +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Template" +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Built-in Script" +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Attach Node Script" +msgstr "" + +#: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Remote " +msgstr "Обриши" + +#: editor/script_editor_debugger.cpp +msgid "Bytes:" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Warning" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Error:" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Source:" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Function:" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Pick one or more items from the list to display the graph." +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Errors" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Child Process Connected" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Inspect Previous Instance" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Inspect Next Instance" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Stack Frames" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Variable" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Errors:" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Stack Trace (if applicable):" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Profiler" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Monitor" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Value" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Monitors" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "List of Video Memory Usage by Resource:" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Total:" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Video Mem" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Resource Path" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Type" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Format" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Usage" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Misc" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Clicked Control:" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Clicked Control Type:" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Live Edit Root:" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Set From Tree" +msgstr "" + +#: editor/settings_config_dialog.cpp +msgid "Shortcuts" +msgstr "" + +#: editor/spatial_editor_gizmos.cpp +msgid "Change Light Radius" +msgstr "" + +#: editor/spatial_editor_gizmos.cpp +msgid "Change AudioStreamPlayer3D Emission Angle" +msgstr "" + +#: editor/spatial_editor_gizmos.cpp +msgid "Change Camera FOV" +msgstr "" + +#: editor/spatial_editor_gizmos.cpp +msgid "Change Camera Size" +msgstr "" + +#: editor/spatial_editor_gizmos.cpp +msgid "Change Sphere Shape Radius" +msgstr "" + +#: editor/spatial_editor_gizmos.cpp +msgid "Change Box Shape Extents" +msgstr "" + +#: editor/spatial_editor_gizmos.cpp +msgid "Change Capsule Shape Radius" +msgstr "" + +#: editor/spatial_editor_gizmos.cpp +msgid "Change Capsule Shape Height" +msgstr "" + +#: editor/spatial_editor_gizmos.cpp +msgid "Change Ray Shape Length" +msgstr "" + +#: editor/spatial_editor_gizmos.cpp +msgid "Change Notifier Extents" +msgstr "" + +#: editor/spatial_editor_gizmos.cpp +msgid "Change Particles AABB" +msgstr "" + +#: editor/spatial_editor_gizmos.cpp +msgid "Change Probe Extents" +msgstr "" + +#: modules/gdnative/gd_native_library_editor.cpp +msgid "Library" +msgstr "" + +#: modules/gdnative/gd_native_library_editor.cpp +msgid "Status" +msgstr "" + +#: modules/gdnative/gd_native_library_editor.cpp +msgid "Libraries: " +msgstr "" + +#: modules/gdnative/register_types.cpp +msgid "GDNative" +msgstr "" + +#: modules/gdscript/gdscript_functions.cpp +#: modules/visual_script/visual_script_builtin_funcs.cpp +msgid "Invalid type argument to convert(), use TYPE_* constants." +msgstr "" + +#: modules/gdscript/gdscript_functions.cpp modules/mono/glue/glue_header.h +#: modules/visual_script/visual_script_builtin_funcs.cpp +msgid "Not enough bytes for decoding bytes, or invalid format." +msgstr "" + +#: modules/gdscript/gdscript_functions.cpp +msgid "step argument is zero!" +msgstr "" + +#: modules/gdscript/gdscript_functions.cpp +msgid "Not a script with an instance" +msgstr "" + +#: modules/gdscript/gdscript_functions.cpp +msgid "Not based on a script" +msgstr "" + +#: modules/gdscript/gdscript_functions.cpp +msgid "Not based on a resource file" +msgstr "" + +#: modules/gdscript/gdscript_functions.cpp +msgid "Invalid instance dictionary format (missing @path)" +msgstr "" + +#: modules/gdscript/gdscript_functions.cpp +msgid "Invalid instance dictionary format (can't load script at @path)" +msgstr "" + +#: modules/gdscript/gdscript_functions.cpp +msgid "Invalid instance dictionary format (invalid script at @path)" +msgstr "" + +#: modules/gdscript/gdscript_functions.cpp +msgid "Invalid instance dictionary (invalid subclasses)" +msgstr "" + +#: modules/gdscript/gdscript_functions.cpp +msgid "Object can't provide a length." +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "GridMap Delete Selection" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "GridMap Duplicate Selection" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Floor:" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +#, fuzzy +msgid "Grid Map" +msgstr "Корак мреже:" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Snap View" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +#, fuzzy +msgid "Previous Floor" +msgstr "Претодни директоријум" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Next Floor" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Clip Disabled" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Clip Above" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Clip Below" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Edit X Axis" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Edit Y Axis" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Edit Z Axis" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Cursor Rotate X" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Cursor Rotate Y" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Cursor Rotate Z" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Cursor Back Rotate X" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Cursor Back Rotate Y" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Cursor Back Rotate Z" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Cursor Clear Rotation" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Create Area" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Create Exterior Connector" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Erase Area" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +#, fuzzy +msgid "Clear Selection" +msgstr "Центрирај одабрано" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "GridMap Settings" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Pick Distance:" +msgstr "" + +#: modules/mono/editor/mono_bottom_panel.cpp +msgid "Builds" +msgstr "" + +#: modules/visual_script/visual_script.cpp +msgid "" +"A node yielded without working memory, please read the docs on how to yield " +"properly!" +msgstr "" + +#: modules/visual_script/visual_script.cpp +msgid "" +"Node yielded, but did not return a function state in the first working " +"memory." +msgstr "" + +#: modules/visual_script/visual_script.cpp +msgid "" +"Return value must be assigned to first element of node working memory! Fix " +"your node please." +msgstr "" + +#: modules/visual_script/visual_script.cpp +msgid "Node returned an invalid sequence output: " +msgstr "" + +#: modules/visual_script/visual_script.cpp +msgid "Found sequence bit but not the node in the stack, report bug!" +msgstr "" + +#: modules/visual_script/visual_script.cpp +msgid "Stack overflow with stack depth: " +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Change Signal Arguments" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Change Argument Type" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Change Argument name" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Set Variable Default Value" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Set Variable Type" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Functions:" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Variables:" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Name is not a valid identifier:" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Name already in use by another func/var/signal:" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Rename Function" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Rename Variable" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Rename Signal" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Add Function" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Add Variable" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Add Signal" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Change Expression" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Add Node" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Remove VisualScript Nodes" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Duplicate VisualScript Nodes" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Hold %s to drop a Getter. Hold Shift to drop a generic signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Hold Ctrl to drop a Getter. Hold Shift to drop a generic signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Hold %s to drop a simple reference to the node." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Hold Ctrl to drop a simple reference to the node." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Hold %s to drop a Variable Setter." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Hold Ctrl to drop a Variable Setter." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Add Preload Node" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Add Node(s) From Tree" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Add Getter Property" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Add Setter Property" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Change Base Type" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Move Node(s)" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Remove VisualScript Node" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Connect Nodes" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Condition" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Sequence" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Switch" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Iterator" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "While" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Return" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Call" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Get" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Script already has function '%s'" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Change Input Value" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't copy the function node." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Clipboard is empty!" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Paste VisualScript Nodes" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Remove Function" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Edit Variable" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Remove Variable" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Edit Signal" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Remove Signal" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Editing Variable:" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Editing Signal:" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Base Type:" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Available Nodes:" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select or create a function to edit graph" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Edit Signal Arguments:" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Edit Variable:" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Delete Selected" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Find Node Type" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Copy Nodes" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Cut Nodes" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Paste Nodes" +msgstr "" + +#: modules/visual_script/visual_script_flow_control.cpp +msgid "Input type not iterable: " +msgstr "" + +#: modules/visual_script/visual_script_flow_control.cpp +msgid "Iterator became invalid" +msgstr "" + +#: modules/visual_script/visual_script_flow_control.cpp +msgid "Iterator became invalid: " +msgstr "" + +#: modules/visual_script/visual_script_func_nodes.cpp +msgid "Invalid index property name." +msgstr "" + +#: modules/visual_script/visual_script_func_nodes.cpp +msgid "Base object is not a Node!" +msgstr "" + +#: modules/visual_script/visual_script_func_nodes.cpp +msgid "Path does not lead Node!" +msgstr "" + +#: modules/visual_script/visual_script_func_nodes.cpp +msgid "Invalid index property name '%s' in node %s." +msgstr "" + +#: modules/visual_script/visual_script_nodes.cpp +msgid ": Invalid argument of type: " +msgstr "" + +#: modules/visual_script/visual_script_nodes.cpp +msgid ": Invalid arguments: " +msgstr "" + +#: modules/visual_script/visual_script_nodes.cpp +msgid "VariableGet not found in script: " +msgstr "" + +#: modules/visual_script/visual_script_nodes.cpp +msgid "VariableSet not found in script: " +msgstr "" + +#: modules/visual_script/visual_script_nodes.cpp +msgid "Custom node has no _step() method, can't process graph." +msgstr "" + +#: modules/visual_script/visual_script_nodes.cpp +msgid "" +"Invalid return value from _step(), must be integer (seq out), or string " +"(error)." +msgstr "" + +#: platform/javascript/export/export.cpp +msgid "Run in Browser" +msgstr "" + +#: platform/javascript/export/export.cpp +msgid "Run exported HTML in the system's default browser." +msgstr "" + +#: platform/javascript/export/export.cpp +msgid "Could not write file:\n" +msgstr "" + +#: platform/javascript/export/export.cpp +msgid "Could not open template for export:\n" +msgstr "" + +#: platform/javascript/export/export.cpp +#, fuzzy +msgid "Invalid export template:\n" +msgstr "Управљај извозним шаблонима" + +#: platform/javascript/export/export.cpp +msgid "Could not read custom HTML shell:\n" +msgstr "" + +#: platform/javascript/export/export.cpp +#, fuzzy +msgid "Could not read boot splash image file:\n" +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 scene/3d/particles.cpp +msgid "" +"A material to process the particles is not assigned, so no behavior is " +"imprinted." +msgstr "" + +#: scene/2d/path_2d.cpp +msgid "PathFollow2D only works when set as a child of a Path2D node." +msgstr "" + +#: scene/2d/physics_body_2d.cpp +msgid "" +"Size changes to RigidBody2D (in character or rigid modes) will be overriden " +"by the physics engine when running.\n" +"Change the size in children collision shapes instead." +msgstr "" + +#: scene/2d/remote_transform_2d.cpp +msgid "Path property must point to a valid Node2D node to work." +msgstr "" + +#: scene/2d/visibility_notifier_2d.cpp +msgid "" +"VisibilityEnable2D works best when used with the edited scene root directly " +"as parent." +msgstr "" + +#: scene/3d/arvr_nodes.cpp +msgid "ARVRCamera must have an ARVROrigin node as its parent" +msgstr "" + +#: scene/3d/arvr_nodes.cpp +msgid "ARVRController must have an ARVROrigin node as its parent" +msgstr "" + +#: scene/3d/arvr_nodes.cpp +msgid "" +"The controller id must not be 0 or this controller will not be bound to an " +"actual controller" +msgstr "" + +#: scene/3d/arvr_nodes.cpp +msgid "ARVRAnchor must have an ARVROrigin node as its parent" +msgstr "" + +#: scene/3d/arvr_nodes.cpp +msgid "" +"The anchor id must not be 0 or this anchor will not be bound to an actual " +"anchor" +msgstr "" + +#: scene/3d/arvr_nodes.cpp +msgid "ARVROrigin requires an ARVRCamera child node" +msgstr "" + +#: scene/3d/collision_polygon.cpp +msgid "" +"CollisionPolygon only serves to provide a collision shape to a " +"CollisionObject derived node. Please only use it as a child of Area, " +"StaticBody, RigidBody, KinematicBody, etc. to give them a shape." +msgstr "" + +#: scene/3d/collision_polygon.cpp +msgid "An empty CollisionPolygon has no effect on collision." +msgstr "" + +#: scene/3d/collision_shape.cpp +msgid "" +"CollisionShape only serves to provide a collision shape to a CollisionObject " +"derived node. Please only use it as a child of Area, StaticBody, RigidBody, " +"KinematicBody, etc. to give them a shape." +msgstr "" + +#: scene/3d/collision_shape.cpp +msgid "" +"A shape must be provided for CollisionShape to function. Please create a " +"shape resource for it!" +msgstr "" + +#: scene/3d/gi_probe.cpp +msgid "Plotting Meshes" +msgstr "" + +#: scene/3d/gi_probe.cpp +msgid "Finishing Plot" +msgstr "" + +#: scene/3d/navigation_mesh.cpp +msgid "A NavigationMesh resource must be set or created for this node to work." +msgstr "" + +#: scene/3d/navigation_mesh.cpp +msgid "" +"NavigationMeshInstance must be a child or grandchild to a Navigation node. " +"It only provides navigation data." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" +"Nothing is visible because meshes have not been assigned to draw passes." +msgstr "" + +#: scene/3d/physics_body.cpp +msgid "" +"Size changes to RigidBody (in character or rigid modes) will be overriden by " +"the physics engine when running.\n" +"Change the size in children collision shapes instead." +msgstr "" + +#: scene/3d/remote_transform.cpp +msgid "Path property must point to a valid Spatial node to work." +msgstr "" + +#: scene/3d/scenario_fx.cpp +msgid "" +"Only one WorldEnvironment is allowed per scene (or set of instanced scenes)." +msgstr "" + +#: scene/3d/sprite_3d.cpp +msgid "" +"A SpriteFrames resource must be created or set in the 'Frames' property in " +"order for AnimatedSprite3D to display frames." +msgstr "" + +#: scene/3d/vehicle_body.cpp +msgid "" +"VehicleWheel serves to provide a wheel system to a VehicleBody. Please use " +"it as a child of a VehicleBody." +msgstr "" + +#: scene/gui/color_picker.cpp +msgid "Raw Mode" +msgstr "" + +#: scene/gui/color_picker.cpp +msgid "Add current color as a preset" +msgstr "" + +#: scene/gui/dialogs.cpp +msgid "Cancel" +msgstr "" + +#: scene/gui/dialogs.cpp +msgid "Alert!" +msgstr "" + +#: scene/gui/dialogs.cpp +msgid "Please Confirm..." +msgstr "" + +#: scene/gui/popup.cpp +msgid "" +"Popups will hide by default unless you call popup() or any of the popup*() " +"functions. Making them visible for editing is fine though, but they will " +"hide upon running." +msgstr "" + +#: scene/gui/scroll_container.cpp +msgid "" +"ScrollContainer is intended to work with a single child control.\n" +"Use a container as child (VBox,HBox,etc), or a Control and set the custom " +"minimum size manually." +msgstr "" + +#: scene/gui/tree.cpp +msgid "(Other)" +msgstr "" + +#: scene/main/scene_tree.cpp +msgid "" +"Default Environment as specified in Project Setings (Rendering -> Viewport -" +"> Default Environment) could not be loaded." +msgstr "" + +#: scene/main/viewport.cpp +msgid "" +"This viewport is not set as render target. If you intend for it to display " +"its contents directly to the screen, make it a child of a Control so it can " +"obtain a size. Otherwise, make it a RenderTarget and assign its internal " +"texture to some node for display." +msgstr "" + +#: scene/resources/dynamic_font.cpp +msgid "Error initializing FreeType." +msgstr "" + +#: scene/resources/dynamic_font.cpp +msgid "Unknown font format." +msgstr "" + +#: scene/resources/dynamic_font.cpp +msgid "Error loading font." +msgstr "" + +#: scene/resources/dynamic_font.cpp +msgid "Invalid font size." +msgstr "Неважећа величина фонта." + +#~ msgid "Cannot navigate to '" +#~ msgstr "Не могу прећи у '" + +#~ msgid "" +#~ "\n" +#~ "Source: " +#~ msgstr "" +#~ "\n" +#~ "Извор: " + +#~ msgid "Remove Point from Line2D" +#~ msgstr "Обриши тачку са Line2D" + +#~ msgid "Add Point to Line2D" +#~ msgstr "Уметни тачку Line2D" + +#~ msgid "Move Point in Line2D" +#~ msgstr "Помери тачку Line2D" + +#~ msgid "Split Segment (in line)" +#~ msgstr "Подели сегмент (у линији)" diff --git a/editor/translations/th.po b/editor/translations/th.po index 65bbafebb6..8332da93c9 100644 --- a/editor/translations/th.po +++ b/editor/translations/th.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2017-10-23 02:49+0000\n" +"PO-Revision-Date: 2017-11-08 07:49+0000\n" "Last-Translator: Poommetee Ketson <poommetee@protonmail.com>\n" "Language-Team: Thai <https://hosted.weblate.org/projects/godot-engine/godot/" "th/>\n" @@ -17,7 +17,7 @@ msgstr "" "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.17\n" +"X-Generator: Weblate 2.18-dev\n" #: editor/animation_editor.cpp msgid "Disabled" @@ -101,6 +101,7 @@ msgid "Anim Delete Keys" msgstr "ลบคีย์แอนิเมชัน" #: editor/animation_editor.cpp editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Duplicate Selection" msgstr "ทำซ้ำในแทร็กเดิม" @@ -634,6 +635,13 @@ msgstr "แก้ไขการอ้างอิง" msgid "Search Replacement Resource:" msgstr "ค้นหารีซอร์สมาแทนที่:" +#: editor/dependency_editor.cpp editor/editor_file_dialog.cpp +#: editor/editor_help.cpp editor/editor_node.cpp editor/filesystem_dock.cpp +#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp +#: editor/quick_open.cpp scene/gui/file_dialog.cpp +msgid "Open" +msgstr "เปิด" + #: editor/dependency_editor.cpp msgid "Owners Of:" msgstr "เจ้าของของ:" @@ -706,6 +714,16 @@ msgstr "ลบไฟล์ที่เลือก?" msgid "Delete" msgstr "ลบ" +#: editor/dictionary_property_edit.cpp +#, fuzzy +msgid "Change Dictionary Key" +msgstr "เปลี่ยนชื่อแอนิเมชัน:" + +#: editor/dictionary_property_edit.cpp +#, fuzzy +msgid "Change Dictionary Value" +msgstr "เปลี่ยนค่าในอาร์เรย์" + #: editor/editor_about.cpp msgid "Thanks from the Godot community!" msgstr "ขอขอบคุณจากชุมชนผู้ใช้ Godot!" @@ -1124,12 +1142,6 @@ msgstr "ทุกนามสุกลที่รู้จัก" msgid "All Files (*)" msgstr "ทุกไฟล์ (*)" -#: editor/editor_file_dialog.cpp editor/editor_help.cpp editor/editor_node.cpp -#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_selector.cpp editor/quick_open.cpp scene/gui/file_dialog.cpp -msgid "Open" -msgstr "เปิด" - #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Open a File" msgstr "เปิดไฟล์" @@ -1387,7 +1399,7 @@ msgstr "ผิดพลาดขณะอ่านไฟล์ '%s'" #: editor/editor_node.cpp msgid "Unexpected end of file '%s'." -msgstr "" +msgstr "ไฟล์ '%s' ไม่สมบูรณ์" #: editor/editor_node.cpp msgid "Missing '%s' or its dependencies." @@ -1489,6 +1501,16 @@ msgstr "" "อ่านรายละเอียดเพิ่มเติมได้จากคู่มือในส่วนของการนำเข้าฉาก" #: editor/editor_node.cpp +#, fuzzy +msgid "" +"This is a remote object so changes to it will not be kept.\n" +"Please read the documentation relevant to debugging to better understand " +"this workflow." +msgstr "" +"รีซอร์สนี้เป็นของฉากที่ถูกนำเข้า จึงไม่สามารถแก้ไขได้\n" +"อ่านรายละเอียดเพิ่มเติมได้จากคู่มือในส่วนของการนำเข้าฉาก" + +#: editor/editor_node.cpp msgid "Copy Params" msgstr "คัดลอกตัวแปร" @@ -1604,6 +1626,11 @@ msgid "Export Mesh Library" msgstr "ส่งออก Mesh Library" #: editor/editor_node.cpp +#, fuzzy +msgid "This operation can't be done without a root node." +msgstr "ทำไม่ได้ถ้าไม่ได้เลือกโหนด" + +#: editor/editor_node.cpp msgid "Export Tile Set" msgstr "ส่งออก Tile Set" @@ -1667,30 +1694,25 @@ msgid "Pick a Main Scene" msgstr "เลือกฉากเริ่มต้น" #: editor/editor_node.cpp -#, fuzzy msgid "Unable to enable addon plugin at: '%s' parsing of config failed." -msgstr "ไม่สามารถเปิดใช้งานปลั๊กอิน: '" +msgstr "ไม่สามารถเปิดใช้งานปลั๊กอิน: '%s'" #: editor/editor_node.cpp -#, fuzzy msgid "Unable to find script field for addon plugin at: 'res://addons/%s'." -msgstr "ไม่พบชื่อสคริปต์ใน: 'res://addons/" +msgstr "ไม่พบชื่อสคริปต์ในปลั๊กอิน: 'res://addons/%s'" #: editor/editor_node.cpp -#, fuzzy msgid "Unable to load addon script from path: '%s'." -msgstr "ไม่สามารถโหลดสคริปต์จาก: '" +msgstr "ไม่สามารถโหลดสคริปต์จาก: '%s'" #: editor/editor_node.cpp -#, fuzzy msgid "" "Unable to load addon script from path: '%s' Base type is not EditorPlugin." -msgstr "ไม่สามารถโหลดสคริปต์จาก: '" +msgstr "ไม่สามารถโหลดสคริปต์จาก: '%s' ไม่ได้สืบทอดจาก EditorPlugin" #: editor/editor_node.cpp -#, fuzzy msgid "Unable to load addon script from path: '%s' Script is not in tool mode." -msgstr "ไม่สามารถโหลดสคริปต์จาก: '" +msgstr "ไม่สามารถโหลดสคริปต์จาก: '%s' ไม่ใช่สคริปต์ tool" #: editor/editor_node.cpp msgid "" @@ -1739,12 +1761,23 @@ msgid "Switch Scene Tab" msgstr "สลับฉาก" #: editor/editor_node.cpp -msgid "%d more file(s)" +#, fuzzy +msgid "%d more files or folders" +msgstr "และอีก %d ไฟล์หรือโฟลเดอร์" + +#: editor/editor_node.cpp +#, fuzzy +msgid "%d more folders" msgstr "และอีก %d ไฟล์" #: editor/editor_node.cpp -msgid "%d more file(s) or folder(s)" -msgstr "และอีก %d ไฟล์หรือโฟลเดอร์" +#, fuzzy +msgid "%d more files" +msgstr "และอีก %d ไฟล์" + +#: editor/editor_node.cpp +msgid "Dock Position" +msgstr "" #: editor/editor_node.cpp msgid "Distraction Free Mode" @@ -1755,6 +1788,11 @@ msgid "Toggle distraction-free mode." msgstr "โหมดไร้สิ่งรบกวน" #: editor/editor_node.cpp +#, fuzzy +msgid "Add a new scene." +msgstr "เพิ่มแทร็กใหม่" + +#: editor/editor_node.cpp msgid "Scene" msgstr "ฉาก" @@ -1819,13 +1857,12 @@ msgid "TileSet.." msgstr "TileSet.." #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp -#: scene/gui/text_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Undo" msgstr "เลิกทำ" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp +#: scene/gui/line_edit.cpp msgid "Redo" msgstr "ทำซ้ำ" @@ -1863,17 +1900,17 @@ msgstr "ปิดและกลับสู่รายชื่อโปรเ #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp msgid "Debug" -msgstr "ดีบัค" +msgstr "แก้จุดบกพร่อง" #: editor/editor_node.cpp msgid "Deploy with Remote Debug" -msgstr "ส่งออกด้วยรีโมทดีบัค" +msgstr "ส่งออกพร้อมการแก้ไขจุดบกพร่องผ่านเครือข่าย" #: editor/editor_node.cpp msgid "" "When exporting or deploying, the resulting executable will attempt to " "connect to the IP of this computer in order to be debugged." -msgstr "เมื่อส่งออก โปรแกรมจะพยายามเชื่อมต่อมายังคอมพิวเตอร์เครื่องนี้เพื่อทำการดีบัค" +msgstr "เมื่อส่งออก โปรแกรมจะพยายามเชื่อมต่อมายังคอมพิวเตอร์เครื่องนี้เพื่อทำการแก้ไขจุดบกพร่อง" #: editor/editor_node.cpp msgid "Small Deploy with Network FS" @@ -2217,12 +2254,11 @@ msgstr "เวลาเฉลี่ย (วินาที)" #: editor/editor_profiler.cpp msgid "Frame %" -msgstr "เฟรม %" +msgstr "% ของเฟรม" #: editor/editor_profiler.cpp -#, fuzzy msgid "Physics Frame %" -msgstr "เฟรมคงที่ %" +msgstr "% ของเฟรมฟิสิกส์" #: editor/editor_profiler.cpp editor/script_editor_debugger.cpp msgid "Time:" @@ -2317,6 +2353,11 @@ msgid "(Current)" msgstr "(ปัจจุบัน)" #: editor/export_template_manager.cpp +#, fuzzy +msgid "Retrieving mirrors, please wait.." +msgstr "เชื่อมต่อไม่ได้ กรุณาลองใหม่" + +#: editor/export_template_manager.cpp msgid "Remove template version '%s'?" msgstr "ลบแม่แบบรุ่น '%s'?" @@ -2351,6 +2392,112 @@ msgid "Importing:" msgstr "นำเข้า:" #: editor/export_template_manager.cpp +msgid "" +"No download links found for this version. Direct download is only available " +"for official releases." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't resolve." +msgstr "ค้นหาไม่สำเร็จ" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't connect." +msgstr "เชื่อมต่อไม่ได้" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "No response." +msgstr "ไม่มีการตอบกลับ" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Req. Failed." +msgstr "ร้องขอผิดพลาด" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Redirect Loop." +msgstr "เปลี่ยนทางมากเกินไป" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Failed:" +msgstr "ผิดพลาด:" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't write file." +msgstr "เขียนไฟล์ไม่ได้:\n" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Download Complete." +msgstr "ดาวน์โหลดผิดพลาด" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Error requesting url: " +msgstr "ผิดพลาดขณะบันทึก atlas:" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connecting to Mirror.." +msgstr "กำลังเชื่อมต่อ.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Disconnected" +msgstr "ลบการเชื่อมโยง" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Resolving" +msgstr "กำลังค้นหา.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't Resolve" +msgstr "ค้นหาไม่สำเร็จ" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Connecting.." +msgstr "กำลังเชื่อมต่อ.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't Conect" +msgstr "เชื่อมต่อไม่ได้" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connected" +msgstr "เชื่อม" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Requesting.." +msgstr "กำลังร้องขอ.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Downloading" +msgstr "ดาวน์โหลด" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connection Error" +msgstr "กำลังเชื่อมต่อ.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "SSL Handshake Error" +msgstr "โหลดผิดพลาด" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "รุ่นปัจจุบัน:" @@ -2374,21 +2521,31 @@ msgstr "เลือกไฟล์แม่แบบ" msgid "Export Template Manager" msgstr "จัดการแม่แบบส่งออก" +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Download Templates" +msgstr "แม่แบบ" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Select mirror from list: " +msgstr "เลือกอุปกรณ์จากรายชื่อ" + #: editor/file_type_cache.cpp msgid "Can't open file_type_cache.cch for writing, not saving file type cache!" msgstr "เปิดไฟล์ file_type_cache.cch เพื่อเขียนไม่ได้ จะไม่บันทึกแคชของชนิดไฟล์!" #: editor/filesystem_dock.cpp -msgid "Cannot navigate to '" -msgstr "ไม่สามารถไปยัง '" +msgid "Cannot navigate to '%s' as it has not been found in the file system!" +msgstr "" #: editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails" -msgstr "" +msgstr "แสดงเป็นภาพตัวอย่าง" #: editor/filesystem_dock.cpp msgid "View items as a list" -msgstr "" +msgstr "แสดงเป็นรายชื่อไฟล์" #: editor/filesystem_dock.cpp msgid "" @@ -2399,15 +2556,6 @@ msgstr "" "สถานะ: นำเข้าไฟล์ล้มเหลว กรุณาแก้ไขไฟล์และนำเข้าใหม่" #: editor/filesystem_dock.cpp -#, fuzzy -msgid "" -"\n" -"Source: " -msgstr "" -"\n" -"ต้นฉบับ: " - -#: editor/filesystem_dock.cpp msgid "Cannot move/rename resources root." msgstr "ไม่สามารถย้าย/เปลี่ยนชื่อโฟลเดอร์ราก" @@ -2667,8 +2815,8 @@ msgid "Remove Poly And Point" msgstr "ลบรูปหลายเหลี่ยมและจุด" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." +#, fuzzy +msgid "Create a new polygon from scratch" msgstr "สร้างรูปหลายเหลี่ยมจากความว่างเปล่า" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -2683,6 +2831,11 @@ msgstr "" "Ctrl+เมาส์ซ้าย: แยกส่วน\n" "เมาส์ขวา: ลบจุด" +#: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy +msgid "Delete points" +msgstr "ลบจุด" + #: editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" msgstr "เปิดปิดการเล่นอัตโนมัติ" @@ -3018,18 +3171,10 @@ msgid "Can't resolve hostname:" msgstr "ไม่พบตำแหน่งนี้:" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't resolve." -msgstr "ค้นหาไม่สำเร็จ" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Connection error, please try again." msgstr "เชื่อมต่อไม่ได้ กรุณาลองใหม่" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't connect." -msgstr "เชื่อมต่อไม่ได้" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Can't connect to host:" msgstr "ไม่สามารถเชื่อมต่อกับโฮสต์:" @@ -3038,30 +3183,14 @@ msgid "No response from host:" msgstr "ไม่มีการตอบกลับจากโฮสต์:" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "No response." -msgstr "ไม่มีการตอบกลับ" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, return code:" msgstr "การร้องขอผิดพลาด รหัส:" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Req. Failed." -msgstr "ร้องขอผิดพลาด" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, too many redirects" msgstr "การร้องขอผิดพลาด เปลี่ยนทางมากเกินไป" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Redirect Loop." -msgstr "เปลี่ยนทางมากเกินไป" - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Failed:" -msgstr "ผิดพลาด:" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Bad download hash, assuming file has been tampered with." msgstr "แฮชผิดพลาด ไฟล์ดาวน์โหลดอาจเสียหาย" @@ -3090,14 +3219,6 @@ msgid "Resolving.." msgstr "กำลังค้นหา.." #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Connecting.." -msgstr "กำลังเชื่อมต่อ.." - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Requesting.." -msgstr "กำลังร้องขอ.." - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Error making request" msgstr "การร้องขอผิดพลาด" @@ -3210,6 +3331,39 @@ msgid "Move Action" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create new vertical guide" +msgstr "สร้างสคริปต์ใหม่" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove vertical guide" +msgstr "ลบตัวแปร" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Move horizontal guide" +msgstr "ย้ายจุดในเส้นโค้ง" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create new horizontal guide" +msgstr "สร้างสคริปต์ใหม่" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove horizontal guide" +msgstr "ลบคีย์ที่ผิดพลาด" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new horizontal and vertical guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Edit IK Chain" msgstr "แก้ไข IK Chain" @@ -3218,9 +3372,8 @@ msgid "Edit CanvasItem" msgstr "แก้ไข CanvasItem" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Anchors only" -msgstr "ตรึง" +msgstr "ปรับหมุดเท่านั้น" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Change Anchors and Margins" @@ -3280,9 +3433,8 @@ msgid "Pan Mode" msgstr "โหมดมุมมอง" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Toggles snapping" -msgstr "เปิด/ปิด จุดพักโปรแกรม" +msgstr "เปิด/ปิด การจำกัด" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -3290,23 +3442,20 @@ msgid "Use Snap" msgstr "จำกัดการเคลื่อนย้าย" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Snapping options" -msgstr "ตัวเลือกแอนิเมชัน" +msgstr "ตัวเลือกการจำกัด" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Snap to grid" -msgstr "โหมดการจำกัด:" +msgstr "จำกัดด้วยเส้นตาราง" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Rotation Snap" msgstr "จำกัดการหมุน" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Configure Snap..." -msgstr "ตั้งค่าการจำกัด.." +msgstr "ตั้งค่าการจำกัด..." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Snap Relative" @@ -3318,30 +3467,36 @@ msgstr "จำกัดให้ย้ายเป็นพิกเซล" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Smart snapping" -msgstr "" +msgstr "จำกัดอัตโนมัติ" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Snap to parent" -msgstr "ขยายให้เต็มโหนดแม่" +msgstr "จำกัดด้วยโหนดแม่" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Snap to node anchor" -msgstr "" +msgstr "จำกัดด้วยจุดหมุนของโหนด" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Snap to node sides" -msgstr "" +msgstr "จำกัดด้วยเส้นขอบของโหนด" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Snap to other nodes" -msgstr "" +msgstr "จำกัดด้วยโหนดอื่น" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Snap to guides" +msgstr "จำกัดด้วยเส้นตาราง" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Lock the selected object in place (can't be moved)." msgstr "ล็อคไม่ให้วัตถุที่เลือกย้ายตำแหน่ง" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Unlock the selected object (can be moved)." msgstr "ปลดล็อควัตถุที่เลือก" @@ -3392,6 +3547,11 @@ msgid "Show rulers" msgstr "แสดงไม้บรรทัด" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Show guides" +msgstr "แสดงไม้บรรทัด" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Selection" msgstr "ให้สิ่งที่เลือกอยู่กลางจอ" @@ -3578,6 +3738,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "กด Shift ค้างเพื่อปรับเส้นสัมผัสแยกกัน" +#: editor/plugins/gi_probe_editor_plugin.cpp +msgid "Bake GI Probe" +msgstr "" + #: editor/plugins/gradient_editor_plugin.cpp msgid "Add/Remove Color Ramp Point" msgstr "เพิ่ม/ลบตำแหน่งสี" @@ -3612,6 +3776,10 @@ msgid "Create Occluder Polygon" msgstr "สร้างรูปหลายเหลี่ยมกั้นแสง" #: editor/plugins/light_occluder_2d_editor_plugin.cpp +msgid "Create a new polygon from scratch." +msgstr "สร้างรูปหลายเหลี่ยมจากความว่างเปล่า" + +#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Edit existing polygon:" msgstr "แก้ไขรูปหลายเหลี่ยมเดิม:" @@ -3627,58 +3795,6 @@ msgstr "Ctrl+คลิกซ้าย: แยกส่วน" msgid "RMB: Erase Point." msgstr "คลิกขวา: ลบจุด" -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Remove Point from Line2D" -msgstr "ลบจุดจากเส้น" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Add Point to Line2D" -msgstr "เพิ่มจุดในเส้น" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Move Point in Line2D" -msgstr "ย้ายจุดในเส้น" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Select Points" -msgstr "เลือกจุด" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Shift+Drag: Select Control Points" -msgstr "Shift+ลาก: เลือกเส้นสัมผัส" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Click: Add Point" -msgstr "คลิก: เพิ่มจุด" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Right Click: Delete Point" -msgstr "คลิกขวา: ลบจุด" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Add Point (in empty space)" -msgstr "เพิ่มจุด (ในที่ว่าง)" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Split Segment (in line)" -msgstr "แยกส่วน (ในเส้น)" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Delete Point" -msgstr "ลบจุด" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "Mesh ว่างเปล่า!" @@ -3892,7 +4008,6 @@ msgid "Eroding walkable area..." msgstr "บีบแคบส่วนที่เดินผ่านได้..." #: editor/plugins/navigation_mesh_generator.cpp -#, fuzzy msgid "Partitioning..." msgstr "กำลังแบ่งส่วน..." @@ -4080,16 +4195,46 @@ msgid "Move Out-Control in Curve" msgstr "ย้ายจุดควบคุมขาออกของเส้นโค้ง" #: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Select Points" +msgstr "เลือกจุด" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Shift+Drag: Select Control Points" +msgstr "Shift+ลาก: เลือกเส้นสัมผัส" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Click: Add Point" +msgstr "คลิก: เพิ่มจุด" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Right Click: Delete Point" +msgstr "คลิกขวา: ลบจุด" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Select Control Points (Shift+Drag)" msgstr "เลือกเส้นสัมผัส (Shift+ลาก)" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Add Point (in empty space)" +msgstr "เพิ่มจุด (ในที่ว่าง)" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Split Segment (in curve)" msgstr "แยกส่วน (ในเส้นโค้ง)" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Delete Point" +msgstr "ลบจุด" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Close Curve" msgstr "ปิดเส้นโค้ง" @@ -4229,7 +4374,6 @@ msgstr "โหลดรีซอร์ส" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Paste" @@ -4276,6 +4420,21 @@ msgid " Class Reference" msgstr " ตำราอ้างอิงคลาส" #: editor/plugins/script_editor_plugin.cpp +#, fuzzy +msgid "Sort" +msgstr "เรียงตาม:" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Up" +msgstr "ย้ายขึ้น" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Down" +msgstr "ย้ายลง" + +#: editor/plugins/script_editor_plugin.cpp msgid "Next script" msgstr "สคริปต์ถัดไป" @@ -4327,6 +4486,10 @@ msgstr "ปิดคู่มือ" msgid "Close All" msgstr "ปิดทั้งหมด" +#: editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "รัน" @@ -4337,13 +4500,11 @@ msgstr "เปิด/ปิดแผงสคริปต์" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find.." msgstr "ค้นหา.." #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Next" msgstr "ค้นหาต่อไป" @@ -4366,11 +4527,11 @@ msgstr "ทำต่อไป" #: editor/plugins/script_editor_plugin.cpp msgid "Keep Debugger Open" -msgstr "เปิดตัวดีบัคค้างไว้" +msgstr "เปิดตัวแก้ไขจุดบกพร่องค้างไว้" #: editor/plugins/script_editor_plugin.cpp msgid "Debug with external editor" -msgstr "ดีบัคด้วยโปรแกรมอื่น" +msgstr "แก้จุดบกพร่องด้วยโปรแกรมอื่น" #: editor/plugins/script_editor_plugin.cpp msgid "Open Godot online documentation" @@ -4418,7 +4579,7 @@ msgstr "บันทึกอีกครั้ง" #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" -msgstr "ตัวดีบัค" +msgstr "ตัวแก้ไขจุดบกพร่อง" #: editor/plugins/script_editor_plugin.cpp msgid "" @@ -4449,36 +4610,25 @@ msgstr "ตัวพิมพ์เล็ก" msgid "Capitalize" msgstr "อักษรแรกพิมพ์ใหญ่" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" msgstr "ตัด" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Copy" msgstr "คัดลอก" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Select All" msgstr "เลือกทั้งหมด" -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Up" -msgstr "ย้ายขึ้น" - -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Down" -msgstr "ย้ายลง" - #: editor/plugins/script_text_editor.cpp msgid "Delete Line" -msgstr "ลบเส้น" +msgstr "ลบบรรทัด" #: editor/plugins/script_text_editor.cpp msgid "Indent Left" @@ -4497,6 +4647,23 @@ msgid "Clone Down" msgstr "คัดลอกบรรทัดลงมา" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Fold Line" +msgstr "ไปยังบรรทัด" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold Line" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Fold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Complete Symbol" msgstr "เสนอแนะคำเต็ม" @@ -4542,12 +4709,10 @@ msgid "Convert To Lowercase" msgstr "แปลงเป็นตัวพิมพ์เล็ก" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Previous" msgstr "ค้นหาก่อนหน้า" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Replace.." msgstr "แทนที่.." @@ -4556,7 +4721,6 @@ msgid "Goto Function.." msgstr "ไปยังฟังก์ชัน.." #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Goto Line.." msgstr "ไปยังบรรทัด.." @@ -4723,6 +4887,16 @@ msgid "View Plane Transform." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Scaling: " +msgstr "อัตราส่วน:" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Translating: " +msgstr "การแปล:" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Rotating %s degrees." msgstr "หมุน %s องศา" @@ -4803,6 +4977,10 @@ msgid "Vertices" msgstr "มุมรูปทรง" #: editor/plugins/spatial_editor_plugin.cpp +msgid "FPS" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Align with view" msgstr "ย้ายมาที่กล้อง" @@ -4835,6 +5013,16 @@ msgid "View Information" msgstr "แสดงข้อมูล" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "View FPS" +msgstr "ดูไฟล์" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Half Resolution" +msgstr "ปรับอัตราส่วนเวลาคีย์ที่เลือก" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Audio Listener" msgstr "ตัวรับเสียง" @@ -4965,6 +5153,11 @@ msgid "Tool Scale" msgstr "เครื่องมือปรับขนาด" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Toggle Freelook" +msgstr "สลับเต็มจอ" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Transform" msgstr "เคลื่อนย้าย" @@ -5217,11 +5410,11 @@ msgstr "ลบทั้งหมด" #: editor/plugins/theme_editor_plugin.cpp msgid "Edit theme.." -msgstr "" +msgstr "แก้ไขธีม.." #: editor/plugins/theme_editor_plugin.cpp msgid "Theme editing menu." -msgstr "" +msgstr "เมนูแก้ไขธีม" #: editor/plugins/theme_editor_plugin.cpp msgid "Add Class Items" @@ -5240,6 +5433,11 @@ msgid "Create Empty Editor Template" msgstr "สร้างแม่แบบเปล่า" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Create From Current Editor Theme" +msgstr "สร้างแม่แบบเปล่า" + +#: editor/plugins/theme_editor_plugin.cpp msgid "CheckBox Radio1" msgstr "ปุ่มเรดิโอ 1" @@ -5413,7 +5611,8 @@ msgid "Runnable" msgstr "รันได้" #: editor/project_export.cpp -msgid "Delete patch '" +#, fuzzy +msgid "Delete patch '%s' from list?" msgstr "ลบแพตช์ '" #: editor/project_export.cpp @@ -5500,7 +5699,7 @@ msgstr "แม่แบบส่งออกสำหรับแพลตฟอ #: editor/project_export.cpp msgid "Export With Debug" -msgstr "ส่งออกพร้อมตัวดีบัค" +msgstr "ส่งออกพร้อมการแก้ไขจุดบกพร่อง" #: editor/project_manager.cpp #, fuzzy @@ -5515,11 +5714,11 @@ msgstr "กรุณาเลือกไฟล์ 'project.godot'" msgid "" "Your project will be created in a non empty folder (you might want to create " "a new folder)." -msgstr "" +msgstr "จะสร้างโปรเจกต์ในโฟลเดอร์ที่มีไฟล์อยู่แล้ว (ท่านอาจต้องการสร้างโฟลเดอร์ใหม่)" #: editor/project_manager.cpp msgid "Please choose a folder that does not contain a 'project.godot' file." -msgstr "" +msgstr "กรุณาเลือกโฟลเดอร์ที่ไม่มีไฟล์ 'project.godot'" #: editor/project_manager.cpp msgid "Imported Project" @@ -5527,11 +5726,11 @@ msgstr "นำเข้าโปรเจกต์แล้ว" #: editor/project_manager.cpp msgid " " -msgstr "" +msgstr " " #: editor/project_manager.cpp msgid "It would be a good idea to name your project." -msgstr "" +msgstr "ควรตั้งชื่อโปรเจกต์" #: editor/project_manager.cpp msgid "Invalid project path (changed anything?)." @@ -5639,6 +5838,8 @@ msgid "" "Language changed.\n" "The UI will update next time the editor or project manager starts." msgstr "" +"เปลี่ยนภาษาแล้ว\n" +"การเปลี่ยนแปลงจะมีผลเมื่อเปิดโปรแกรมแก้ไขหรือตัวจัดการโปรเจกต์ใหม่" #: editor/project_manager.cpp msgid "" @@ -5671,9 +5872,8 @@ msgid "Exit" msgstr "ออก" #: editor/project_manager.cpp -#, fuzzy msgid "Restart Now" -msgstr "หาโหนดแม่ใหม่" +msgstr "เริ่มใหม่ทันที" #: editor/project_manager.cpp msgid "Can't run project" @@ -5712,10 +5912,6 @@ msgid "Add Input Action Event" msgstr "เพิ่มการกระทำ" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Meta+" -msgstr "Meta+" - -#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp msgid "Shift+" msgstr "Shift+" @@ -5837,12 +6033,13 @@ msgid "Select a setting item first!" msgstr "กรุณาเลือกตัวเลือกก่อน!" #: editor/project_settings_editor.cpp -msgid "No property '" +#, fuzzy +msgid "No property '%s' exists." msgstr "ไม่พบคุณสมบัติ '" #: editor/project_settings_editor.cpp -msgid "Setting '" -msgstr "ตัวเลือก '" +msgid "Setting '%s' is internal, and it can't be deleted." +msgstr "" #: editor/project_settings_editor.cpp msgid "Delete Item" @@ -5897,13 +6094,12 @@ msgid "Remove Resource Remap Option" msgstr "ลบการแทนที่" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Changed Locale Filter" -msgstr "ปรับขนาดกล้อง" +msgstr "แก้ไขตัวกรองภูมิภาค" #: editor/project_settings_editor.cpp msgid "Changed Locale Filter Mode" -msgstr "" +msgstr "แก้ไขโหมดการกรองภูมิภาค" #: editor/project_settings_editor.cpp msgid "Project Settings (project.godot)" @@ -5966,28 +6162,24 @@ msgid "Locale" msgstr "ท้องถิ่น" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Locales Filter" -msgstr "ท้องถิ่น" +msgstr "ตัวกรองภูมิภาค" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Show all locales" -msgstr "แสดงกระดูก" +msgstr "แสดงทุกภูมิภาค" #: editor/project_settings_editor.cpp msgid "Show only selected locales" -msgstr "" +msgstr "แสดงเฉพาะภูมิภาคที่เลือก" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Filter mode:" -msgstr "ตัวกรอง" +msgstr "โหมดการกรอง:" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Locales:" -msgstr "ท้องถิ่น" +msgstr "ภูมิภาค:" #: editor/project_settings_editor.cpp msgid "AutoLoad" @@ -6313,6 +6505,16 @@ msgid "Clear a script for the selected node." msgstr "ลบสคริปต์ของโหนดที่เลือก" #: editor/scene_tree_dock.cpp +#, fuzzy +msgid "Remote" +msgstr "ลบ" + +#: editor/scene_tree_dock.cpp +#, fuzzy +msgid "Local" +msgstr "ท้องถิ่น" + +#: editor/scene_tree_dock.cpp msgid "Clear Inheritance? (No Undo!)" msgstr "ลบการสืบทอด? (ย้อนกลับไม่ได้!)" @@ -6434,7 +6636,7 @@ msgstr "ตำแหน่งเริ่มต้นไม่ถูกต้อ #: editor/script_create_dialog.cpp msgid "Directory of the same name exists" -msgstr "" +msgstr "มีโฟลเดอร์ชื่อนี้อยู่แล้ว" #: editor/script_create_dialog.cpp msgid "File exists, will be reused" @@ -6506,6 +6708,11 @@ msgid "Attach Node Script" msgstr "เชื่อมสคริปต์ให้โหนด" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Remote " +msgstr "ลบ" + +#: editor/script_editor_debugger.cpp msgid "Bytes:" msgstr "ไบต์:" @@ -6527,7 +6734,7 @@ msgstr "ฟังก์ชัน:" #: editor/script_editor_debugger.cpp msgid "Pick one or more items from the list to display the graph." -msgstr "" +msgstr "เลือกข้อมูลจากรายชื่อเพื่อแสดงกราฟ" #: editor/script_editor_debugger.cpp msgid "Errors" @@ -6562,18 +6769,6 @@ msgid "Stack Trace (if applicable):" msgstr "สแตค (ถ้ามี):" #: editor/script_editor_debugger.cpp -msgid "Remote Inspector" -msgstr "คุณสมบัติ" - -#: editor/script_editor_debugger.cpp -msgid "Live Scene Tree:" -msgstr "ผังฉากปัจจุบัน:" - -#: editor/script_editor_debugger.cpp -msgid "Remote Object Properties: " -msgstr "คุณสมบัติ: " - -#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "ประสิทธิภาพ" @@ -6647,7 +6842,7 @@ msgstr "ปรับรัศมีแสง" #: editor/spatial_editor_gizmos.cpp msgid "Change AudioStreamPlayer3D Emission Angle" -msgstr "" +msgstr "แก้ไของศาการเปล่งเสียงของ AudioStreamPlayer3D" #: editor/spatial_editor_gizmos.cpp msgid "Change Camera FOV" @@ -6695,61 +6890,60 @@ msgid "Library" msgstr "ไลบรารี" #: modules/gdnative/gd_native_library_editor.cpp -#, fuzzy msgid "Status" -msgstr "สถานะ:" +msgstr "สถานะ" #: modules/gdnative/gd_native_library_editor.cpp msgid "Libraries: " -msgstr "" +msgstr "ไลบรารี: " #: modules/gdnative/register_types.cpp msgid "GDNative" -msgstr "" +msgstr "GDNative" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Invalid type argument to convert(), use TYPE_* constants." msgstr "ตัวแปรใน convert() ผิดพลาด ใช้ค่าคงที่ TYPE_* เท่านั้น" -#: modules/gdscript/gd_functions.cpp modules/mono/glue/glue_header.h +#: modules/gdscript/gdscript_functions.cpp modules/mono/glue/glue_header.h #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Not enough bytes for decoding bytes, or invalid format." msgstr "ไบต์ไม่ครบหรือผิดรูปแบบ ไม่สามารถแปลงค่าได้" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "step argument is zero!" msgstr "ตัวแปร step เป็นศูนย์!" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not a script with an instance" msgstr "ไม่ใช่สคริปต์ที่มีอินสแตนซ์" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a script" msgstr "ไม่ได้มีต้นกำเนิดจากสคริปต์" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a resource file" msgstr "ไม่ได้มีต้นกำเนิดมาจากไฟล์รีซอร์ส" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (missing @path)" msgstr "รูปแบบดิกชันนารีที่เก็บอินสแตนซ์ไม่ถูกต้อง (ไม่มี @path)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (can't load script at @path)" msgstr "รูปแบบดิกชันนารีที่เก็บอินสแตนซ์ไม่ถูกต้อง (โหลดสคริปต์ที่ @path ไม่ได้)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (invalid script at @path)" msgstr "รูปแบบดิกชันนารีที่เก็บอินสแตนซ์ไม่ถูกต้อง (สคริปต์ที่ @path ผิดพลาด)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary (invalid subclasses)" msgstr "ดิกชันนารีที่เก็บอินสแตนซ์ผิดพลาด (คลาสย่อยผิดพลาด)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Object can't provide a length." msgstr "ไม่สามารถบอกความยาวของวัตถุได้" @@ -6762,16 +6956,26 @@ msgid "GridMap Duplicate Selection" msgstr "ทำซ้ำใน GridMap" #: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Floor:" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +#, fuzzy +msgid "Grid Map" +msgstr "จำกัดด้วยเส้นตาราง" + +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Snap View" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Prev Level (%sDown Wheel)" -msgstr "ชั้นก่อนหน้า (%sล้อเมาส์ลง)" +#, fuzzy +msgid "Previous Floor" +msgstr "แท็บก่อนหน้า" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Next Level (%sUp Wheel)" -msgstr "ชั้นถัดไป (%sล้อเมาส์ขึ้น)" +msgid "Next Floor" +msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy @@ -6839,12 +7043,9 @@ msgid "Erase Area" msgstr "ลบพื้นที่" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Selection -> Duplicate" -msgstr "ทำซ้ำที่เลือก" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Selection -> Clear" -msgstr "ลบที่เลือก" +#, fuzzy +msgid "Clear Selection" +msgstr "ให้สิ่งที่เลือกอยู่กลางจอ" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Settings" @@ -6967,7 +7168,8 @@ msgid "Duplicate VisualScript Nodes" msgstr "ทำซ้ำโหนด" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Getter. Hold Shift to drop a generic signature." +#, fuzzy +msgid "Hold %s to drop a Getter. Hold Shift to drop a generic signature." msgstr "กดปุ่ม Meta ค้างเพื่อวาง Getter กด Shift ค้างเพื่อวาง generic signature" #: modules/visual_script/visual_script_editor.cpp @@ -6975,7 +7177,8 @@ msgid "Hold Ctrl to drop a Getter. Hold Shift to drop a generic signature." msgstr "กด Ctrl ค้างเพื่อวาง Getter กด Shift ค้างเพื่อวาง generic signature" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a simple reference to the node." +#, fuzzy +msgid "Hold %s to drop a simple reference to the node." msgstr "กดปุ่ม Meta เพื่อวางการอ้างอิงไปยังโหนดอย่างง่าย" #: modules/visual_script/visual_script_editor.cpp @@ -6983,7 +7186,8 @@ msgid "Hold Ctrl to drop a simple reference to the node." msgstr "กด Ctrl เพื่อวางการอ้างอิงไปยังโหนดอย่างง่าย" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Variable Setter." +#, fuzzy +msgid "Hold %s to drop a Variable Setter." msgstr "กดปุ่ม Meta ค้างเพื่อวาง Setter ของตัวแปร" #: modules/visual_script/visual_script_editor.cpp @@ -7056,7 +7260,7 @@ msgstr "รับ" #: modules/visual_script/visual_script_editor.cpp msgid "Script already has function '%s'" -msgstr "" +msgstr "สคริปต์มีฟังก์ชัน '%s' อยู่แล้ว" #: modules/visual_script/visual_script_editor.cpp msgid "Change Input Value" @@ -7209,12 +7413,23 @@ msgid "Could not write file:\n" msgstr "เขียนไฟล์ไม่ได้:\n" #: platform/javascript/export/export.cpp -msgid "Could not read file:\n" +msgid "Could not open template for export:\n" +msgstr "เปิดแม่แบบเพื่อส่งออกไม่ได้:\n" + +#: platform/javascript/export/export.cpp +#, fuzzy +msgid "Invalid export template:\n" +msgstr "ติดตั้งแม่แบบส่งออก" + +#: platform/javascript/export/export.cpp +#, fuzzy +msgid "Could not read custom HTML shell:\n" msgstr "อ่านไฟล์ไม่ได้:\n" #: platform/javascript/export/export.cpp -msgid "Could not open template for export:\n" -msgstr "เปิดแม่แบบเพื่อส่งออกไม่ได้:\n" +#, fuzzy +msgid "Could not read boot splash image file:\n" +msgstr "อ่านไฟล์ไม่ได้:\n" #: scene/2d/animated_sprite.cpp msgid "" @@ -7318,20 +7533,6 @@ msgstr "" msgid "Path property must point to a valid Node2D node to work." msgstr "ต้องแก้ไข Path ให้ชี้ไปยังโหนด Node2D จึงจะทำงานได้" -#: 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 "Viewport ใน path จะต้องปรับโหมดเป็น 'render target' จึงจะทำงานได้" - #: scene/2d/visibility_notifier_2d.cpp msgid "" "VisibilityEnable2D works best when used with the edited scene root directly " @@ -7394,6 +7595,15 @@ msgid "" "shape resource for it!" msgstr "ต้องมีรูปทรงเพื่อให้ CollisionShape ทำงานได้ กรุณาสร้างรูปทรง!" +#: scene/3d/gi_probe.cpp +#, fuzzy +msgid "Plotting Meshes" +msgstr "คัดลอกรูป" + +#: scene/3d/gi_probe.cpp +msgid "Finishing Plot" +msgstr "" + #: scene/3d/navigation_mesh.cpp msgid "A NavigationMesh resource must be set or created for this node to work." msgstr "ต้องมี NavigationMesh เพื่อให้โหนดนี้ทำงานได้" @@ -7439,7 +7649,7 @@ msgstr "ต้องมี SpriteFrames ใน 'Frames' เพื่อให้ msgid "" "VehicleWheel serves to provide a wheel system to a VehicleBody. Please use " "it as a child of a VehicleBody." -msgstr "" +msgstr "VehicleWheel เป็นระบบล้อของ VehicleBody กรุณาใช้เป็นโหนดลูกของ VehicleBody" #: scene/gui/color_picker.cpp msgid "Raw Mode" @@ -7480,6 +7690,10 @@ msgstr "" "ใช้ container เป็นโหนดลูก (VBox,HBox,ฯลฯ) หรือโหนดกลุ่ม Control " "และปรับขนาดเล็กสุดด้วยตนเอง" +#: scene/gui/tree.cpp +msgid "(Other)" +msgstr "" + #: scene/main/scene_tree.cpp msgid "" "Default Environment as specified in Project Setings (Rendering -> Viewport -" @@ -7515,6 +7729,68 @@ msgstr "ผิดพลาดขณะโหลดฟอนต์" msgid "Invalid font size." msgstr "ขนาดฟอนต์ผิดพลาด" +#~ msgid "Cannot navigate to '" +#~ msgstr "ไม่สามารถไปยัง '" + +#, fuzzy +#~ msgid "" +#~ "\n" +#~ "Source: " +#~ msgstr "" +#~ "\n" +#~ "ต้นฉบับ: " + +#~ msgid "Remove Point from Line2D" +#~ msgstr "ลบจุดจากเส้น" + +#~ msgid "Add Point to Line2D" +#~ msgstr "เพิ่มจุดในเส้น" + +#~ msgid "Move Point in Line2D" +#~ msgstr "ย้ายจุดในเส้น" + +#~ msgid "Split Segment (in line)" +#~ msgstr "แยกส่วน (ในเส้น)" + +#~ msgid "Meta+" +#~ msgstr "Meta+" + +#~ msgid "Setting '" +#~ msgstr "ตัวเลือก '" + +#~ msgid "Remote Inspector" +#~ msgstr "คุณสมบัติ" + +#~ msgid "Live Scene Tree:" +#~ msgstr "ผังฉากปัจจุบัน:" + +#~ msgid "Remote Object Properties: " +#~ msgstr "คุณสมบัติ: " + +#~ msgid "Prev Level (%sDown Wheel)" +#~ msgstr "ชั้นก่อนหน้า (%sล้อเมาส์ลง)" + +#~ msgid "Next Level (%sUp Wheel)" +#~ msgstr "ชั้นถัดไป (%sล้อเมาส์ขึ้น)" + +#~ msgid "Selection -> Duplicate" +#~ msgstr "ทำซ้ำที่เลือก" + +#~ msgid "Selection -> Clear" +#~ msgstr "ลบที่เลือก" + +#~ 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'" + +#~ msgid "" +#~ "The Viewport set in the path property must be set as 'render target' in " +#~ "order for this sprite to work." +#~ msgstr "Viewport ใน path จะต้องปรับโหมดเป็น 'render target' จึงจะทำงานได้" + #~ msgid "Filter:" #~ msgstr "ตัวกรอง:" @@ -7539,9 +7815,6 @@ msgstr "ขนาดฟอนต์ผิดพลาด" #~ msgid "Removed:" #~ msgstr "ลบ:" -#~ msgid "Error saving atlas:" -#~ msgstr "ผิดพลาดขณะบันทึก atlas:" - #~ msgid "Could not save atlas subtexture:" #~ msgstr "บันทึก texture ย่อยของ atlas ไม่ได้:" @@ -7915,9 +8188,6 @@ msgstr "ขนาดฟอนต์ผิดพลาด" #~ msgid "Cropping Images" #~ msgstr "ครอบตัดรูป" -#~ msgid "Blitting Images" -#~ msgstr "คัดลอกรูป" - #~ msgid "Couldn't save atlas image:" #~ msgstr "บันทึก Atlas ไม่ได้:" @@ -8275,9 +8545,6 @@ msgstr "ขนาดฟอนต์ผิดพลาด" #~ msgid "Save Translatable Strings" #~ msgstr "บันทึกสตริงหลายภาษา" -#~ msgid "Install Export Templates" -#~ msgstr "ติดตั้งแม่แบบส่งออก" - #~ msgid "Edit Script Options" #~ msgstr "แก้ไขตัวเลือกสคริปต์" diff --git a/editor/translations/tr.po b/editor/translations/tr.po index afb2c82be1..b31b828b85 100644 --- a/editor/translations/tr.po +++ b/editor/translations/tr.po @@ -104,6 +104,7 @@ msgid "Anim Delete Keys" msgstr "Canln Açarları Sil" #: editor/animation_editor.cpp editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Duplicate Selection" msgstr "Seçimi İkile" @@ -642,6 +643,13 @@ msgstr "Bağımlılık Düzenleyicisi" msgid "Search Replacement Resource:" msgstr "Değişim Kaynağını Ara:" +#: editor/dependency_editor.cpp editor/editor_file_dialog.cpp +#: editor/editor_help.cpp editor/editor_node.cpp editor/filesystem_dock.cpp +#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp +#: editor/quick_open.cpp scene/gui/file_dialog.cpp +msgid "Open" +msgstr "Aç" + #: editor/dependency_editor.cpp msgid "Owners Of:" msgstr "Bunun Sahibi:" @@ -715,6 +723,16 @@ msgstr "Seçili dizeçleri sil?" msgid "Delete" msgstr "Sil" +#: editor/dictionary_property_edit.cpp +#, fuzzy +msgid "Change Dictionary Key" +msgstr "Canlandırmanın Adını Değiştir:" + +#: editor/dictionary_property_edit.cpp +#, fuzzy +msgid "Change Dictionary Value" +msgstr "Dizi Değerini Değiştir" + #: editor/editor_about.cpp msgid "Thanks from the Godot community!" msgstr "Godot Topluluğu Sağ Olmanızı Diliyor!" @@ -1157,12 +1175,6 @@ msgstr "Tümü Onaylandı" msgid "All Files (*)" msgstr "Tüm Dizeçler (*)" -#: editor/editor_file_dialog.cpp editor/editor_help.cpp editor/editor_node.cpp -#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_selector.cpp editor/quick_open.cpp scene/gui/file_dialog.cpp -msgid "Open" -msgstr "Aç" - #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Open a File" msgstr "Bir Dizeç Aç" @@ -1532,6 +1544,13 @@ msgid "" msgstr "" #: editor/editor_node.cpp +msgid "" +"This is a remote object so changes to it will not be kept.\n" +"Please read the documentation relevant to debugging to better understand " +"this workflow." +msgstr "" + +#: editor/editor_node.cpp msgid "Copy Params" msgstr "Değişkenleri Tıpkıla" @@ -1653,6 +1672,11 @@ msgid "Export Mesh Library" msgstr "Örüntü Betikevini Dışa Aktar" #: editor/editor_node.cpp +#, fuzzy +msgid "This operation can't be done without a root node." +msgstr "Bu işlem bir sahne olmadan yapılamaz." + +#: editor/editor_node.cpp msgid "Export Tile Set" msgstr "Döşenti Dizi Dışa Aktar" @@ -1786,12 +1810,23 @@ msgid "Switch Scene Tab" msgstr "Sahne Sekmesine Geç" #: editor/editor_node.cpp -msgid "%d more file(s)" +#, fuzzy +msgid "%d more files or folders" +msgstr "%d daha çok dizeç(ler) veya dizin(ler)" + +#: editor/editor_node.cpp +#, fuzzy +msgid "%d more folders" msgstr "%d daha çok dizeç(ler)" #: editor/editor_node.cpp -msgid "%d more file(s) or folder(s)" -msgstr "%d daha çok dizeç(ler) veya dizin(ler)" +#, fuzzy +msgid "%d more files" +msgstr "%d daha çok dizeç(ler)" + +#: editor/editor_node.cpp +msgid "Dock Position" +msgstr "" #: editor/editor_node.cpp msgid "Distraction Free Mode" @@ -1803,6 +1838,11 @@ msgid "Toggle distraction-free mode." msgstr "Dikkat Dağıtmayan Biçim" #: editor/editor_node.cpp +#, fuzzy +msgid "Add a new scene." +msgstr "Yeni izler ekle." + +#: editor/editor_node.cpp msgid "Scene" msgstr "Sahne" @@ -1868,13 +1908,12 @@ msgid "TileSet.." msgstr "TileSet .." #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp -#: scene/gui/text_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Undo" msgstr "Geri" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp +#: scene/gui/line_edit.cpp msgid "Redo" msgstr "Geri" @@ -2393,6 +2432,11 @@ msgid "(Current)" msgstr "Geçerli:" #: editor/export_template_manager.cpp +#, fuzzy +msgid "Retrieving mirrors, please wait.." +msgstr "Bağlantı hatası, lütfen tekrar deneyiniz." + +#: editor/export_template_manager.cpp msgid "Remove template version '%s'?" msgstr "" @@ -2429,6 +2473,114 @@ msgid "Importing:" msgstr "İçe Aktarım:" #: editor/export_template_manager.cpp +msgid "" +"No download links found for this version. Direct download is only available " +"for official releases." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't resolve." +msgstr "Çözümlenemedi." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't connect." +msgstr "Bağlanamadı." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "No response." +msgstr "Cevap yok." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Req. Failed." +msgstr "İstem Başarısız." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Redirect Loop." +msgstr "Yönlendirme Döngüsü." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Failed:" +msgstr "Başarısız:" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't write file." +msgstr "Karo Bulunamadı:" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Download Complete." +msgstr "İndirme Hatası" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Error requesting url: " +msgstr "Atlas kaydedilirken sorun oluştu:" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connecting to Mirror.." +msgstr "Bağlan..." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Disconnected" +msgstr "Bağlantıyı kes" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Resolving" +msgstr "Kaydediliyor..." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't Resolve" +msgstr "Çözümlenemedi." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#, fuzzy +msgid "Connecting.." +msgstr "Bağlan..." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't Conect" +msgstr "Bağlanamadı." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connected" +msgstr "Bağla" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#, fuzzy +msgid "Requesting.." +msgstr "Deneme" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Downloading" +msgstr "Aşağı" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connection Error" +msgstr "Bağlan..." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "SSL Handshake Error" +msgstr "Sorunları Yükle" + +#: editor/export_template_manager.cpp #, fuzzy msgid "Current Version:" msgstr "Şu anki Sahne" @@ -2458,6 +2610,15 @@ msgstr "Seçili dizeçleri sil?" msgid "Export Template Manager" msgstr "Dışa Aktarım Kalıpları Yükleniyor" +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Download Templates" +msgstr "Öğeyi Kaldır" + +#: editor/export_template_manager.cpp +msgid "Select mirror from list: " +msgstr "" + #: editor/file_type_cache.cpp msgid "Can't open file_type_cache.cch for writing, not saving file type cache!" msgstr "" @@ -2465,7 +2626,7 @@ msgstr "" "kaydedilmiyor!" #: editor/filesystem_dock.cpp -msgid "Cannot navigate to '" +msgid "Cannot navigate to '%s' as it has not been found in the file system!" msgstr "" #: editor/filesystem_dock.cpp @@ -2484,13 +2645,6 @@ msgstr "" #: editor/filesystem_dock.cpp #, fuzzy -msgid "" -"\n" -"Source: " -msgstr "Kaynak:" - -#: editor/filesystem_dock.cpp -#, fuzzy msgid "Cannot move/rename resources root." msgstr "Kaynak yazı tipi yüklenemiyor / işlenemiyor." @@ -2768,8 +2922,8 @@ msgid "Remove Poly And Point" msgstr "Çokluyu ve Noktayı Kaldır" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." +#, fuzzy +msgid "Create a new polygon from scratch" msgstr "Sıfırdan yeni bir çokgen oluşturun." #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -2780,6 +2934,11 @@ msgid "" "RMB: Erase Point." msgstr "" +#: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy +msgid "Delete points" +msgstr "Noktayı Sil" + #: editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" msgstr "KendindenOynatmayı Aç/Kapat" @@ -3116,18 +3275,10 @@ msgid "Can't resolve hostname:" msgstr "Ana makine adı çözümlenemedi:" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't resolve." -msgstr "Çözümlenemedi." - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Connection error, please try again." msgstr "Bağlantı hatası, lütfen tekrar deneyiniz." #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't connect." -msgstr "Bağlanamadı." - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Can't connect to host:" msgstr "Ana makineye bağlanılamadı:" @@ -3136,30 +3287,14 @@ msgid "No response from host:" msgstr "Ana makineden cevap yok:" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "No response." -msgstr "Cevap yok." - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, return code:" msgstr "İstem başarısız, dönen kod:" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Req. Failed." -msgstr "İstem Başarısız." - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, too many redirects" msgstr "İstem Başarısız, çok fazla yönlendirme" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Redirect Loop." -msgstr "Yönlendirme Döngüsü." - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Failed:" -msgstr "Başarısız:" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Bad download hash, assuming file has been tampered with." msgstr "" @@ -3190,16 +3325,6 @@ msgstr "Kaydediliyor..." #: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy -msgid "Connecting.." -msgstr "Bağlan..." - -#: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy -msgid "Requesting.." -msgstr "Deneme" - -#: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Error making request" msgstr "Kaynak kaydedilirken sorun!" @@ -3312,6 +3437,39 @@ msgid "Move Action" msgstr "Eylemi Taşı" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create new vertical guide" +msgstr "Yeni Betik Oluştur" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove vertical guide" +msgstr "Değişkeni Kaldır" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Move horizontal guide" +msgstr "Noktayı Eğriye Taşı" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create new horizontal guide" +msgstr "Yeni Betik Oluştur" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove horizontal guide" +msgstr "Geçersiz açarları kaldır" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new horizontal and vertical guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Edit IK Chain" msgstr "IK Zincirini Düzenle" @@ -3443,10 +3601,17 @@ msgid "Snap to other nodes" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Snap to guides" +msgstr "Yapışma Biçimi:" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Lock the selected object in place (can't be moved)." msgstr "Seçilen nesneyi yerine kilitleyin (taşınamaz)." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Unlock the selected object (can be moved)." msgstr "Seçilen nesnenin kilidini açın (taşınabilir)." @@ -3499,6 +3664,11 @@ msgid "Show rulers" msgstr "Kemikleri Göster" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Show guides" +msgstr "Kemikleri Göster" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Selection" msgstr "İçre Seçimi" @@ -3698,6 +3868,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/gi_probe_editor_plugin.cpp +msgid "Bake GI Probe" +msgstr "" + #: editor/plugins/gradient_editor_plugin.cpp msgid "Add/Remove Color Ramp Point" msgstr "Renk Yokuşu Noktası Ekle / Kaldır" @@ -3730,6 +3904,10 @@ msgid "Create Occluder Polygon" msgstr "Engelleyici Çokgeni Oluştur" #: editor/plugins/light_occluder_2d_editor_plugin.cpp +msgid "Create a new polygon from scratch." +msgstr "Sıfırdan yeni bir çokgen oluşturun." + +#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Edit existing polygon:" msgstr "Var olan çokgeni düzenleyin:" @@ -3745,62 +3923,6 @@ msgstr "Ctrl + LMB: Parçayı Böl." msgid "RMB: Erase Point." msgstr "RMB: Noktayı Sil." -#: editor/plugins/line_2d_editor_plugin.cpp -#, fuzzy -msgid "Remove Point from Line2D" -msgstr "Noktayı Eğriden Kaldır" - -#: editor/plugins/line_2d_editor_plugin.cpp -#, fuzzy -msgid "Add Point to Line2D" -msgstr "Noktayı Eğriye Ekle" - -#: editor/plugins/line_2d_editor_plugin.cpp -#, fuzzy -msgid "Move Point in Line2D" -msgstr "Noktayı Eğriye Taşı" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Select Points" -msgstr "Noktaları Seç" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Shift+Drag: Select Control Points" -msgstr "Shift + Sürükle: Denetim Noktalarını Seç" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Click: Add Point" -msgstr "Tıkla: Nokta Ekle" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Right Click: Delete Point" -msgstr "Sağ tıkla: Nokta Sil" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Add Point (in empty space)" -msgstr "Nokta Ekle (boşlukta)" - -#: editor/plugins/line_2d_editor_plugin.cpp -#, fuzzy -msgid "Split Segment (in line)" -msgstr "Parçayı Ayır (eğriye göre)" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Delete Point" -msgstr "Noktayı Sil" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "Örüntü boş!" @@ -4221,16 +4343,46 @@ msgid "Move Out-Control in Curve" msgstr "Eğriye Denetimsiz Taşı" #: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Select Points" +msgstr "Noktaları Seç" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Shift+Drag: Select Control Points" +msgstr "Shift + Sürükle: Denetim Noktalarını Seç" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Click: Add Point" +msgstr "Tıkla: Nokta Ekle" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Right Click: Delete Point" +msgstr "Sağ tıkla: Nokta Sil" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Select Control Points (Shift+Drag)" msgstr "Denetim Noktalarını Seç (Shift + Sürükle)" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Add Point (in empty space)" +msgstr "Nokta Ekle (boşlukta)" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Split Segment (in curve)" msgstr "Parçayı Ayır (eğriye göre)" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Delete Point" +msgstr "Noktayı Sil" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Close Curve" msgstr "Eğriyi Kapat" @@ -4372,7 +4524,6 @@ msgstr "Kaynak Yükle" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Paste" @@ -4418,6 +4569,21 @@ msgid " Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#, fuzzy +msgid "Sort" +msgstr "Sırala:" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Up" +msgstr "Yukarı Taşı" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Down" +msgstr "Aşağı Taşı" + +#: editor/plugins/script_editor_plugin.cpp msgid "Next script" msgstr "Sonraki betik" @@ -4469,6 +4635,10 @@ msgstr "Belgeleri Kapat" msgid "Close All" msgstr "Tümünü Kapat" +#: editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "Çalıştır" @@ -4480,13 +4650,11 @@ msgstr "Beğenileni Aç / Kapat" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find.." msgstr "Bul.." #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Next" msgstr "Sonraki Bul" @@ -4598,33 +4766,22 @@ msgstr "" msgid "Capitalize" msgstr "" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" msgstr "Kes" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Copy" msgstr "Tıpkıla" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Select All" msgstr "Hepsini seç" -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Up" -msgstr "Yukarı Taşı" - -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Down" -msgstr "Aşağı Taşı" - #: editor/plugins/script_text_editor.cpp #, fuzzy msgid "Delete Line" @@ -4647,6 +4804,23 @@ msgid "Clone Down" msgstr "Aşağıya Eşle" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Fold Line" +msgstr "Dizeye Git" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold Line" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Fold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Complete Symbol" msgstr "Simgeyi Tamamla" @@ -4694,12 +4868,10 @@ msgid "Convert To Lowercase" msgstr "Şuna Dönüştür.." #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Previous" msgstr "Öncekini Bul" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Replace.." msgstr "Değiştir.." @@ -4708,7 +4880,6 @@ msgid "Goto Function.." msgstr "İşleve Git.." #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Goto Line.." msgstr "Dizeye Git.." @@ -4873,6 +5044,16 @@ msgid "View Plane Transform." msgstr "Düzlem Dönüşümünü Görüntüle." #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Scaling: " +msgstr "Ölçekle:" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Translating: " +msgstr "Çeviriler:" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Rotating %s degrees." msgstr "%s Düzey Dönüyor." @@ -4957,6 +5138,10 @@ msgid "Vertices" msgstr "Başucu" #: editor/plugins/spatial_editor_plugin.cpp +msgid "FPS" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Align with view" msgstr "Görünüme Ayarla" @@ -4992,6 +5177,16 @@ msgid "View Information" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "View FPS" +msgstr "Dosyaları Görüntüle" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Half Resolution" +msgstr "Seçimi Ölçekle" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Audio Listener" msgstr "Ses Dinleyici" @@ -5130,6 +5325,11 @@ msgid "Tool Scale" msgstr "Ölçekle:" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Toggle Freelook" +msgstr "Tam Ekran Aç / Kapat" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Transform" msgstr "Dönüşüm" @@ -5409,6 +5609,11 @@ msgid "Create Empty Editor Template" msgstr "Boş Düzenleyici Kalıbı Oluştur" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Create From Current Editor Theme" +msgstr "Boş Düzenleyici Kalıbı Oluştur" + +#: editor/plugins/theme_editor_plugin.cpp msgid "CheckBox Radio1" msgstr "OnayKutusu Radyo1" @@ -5588,7 +5793,7 @@ msgstr "Etkin" #: editor/project_export.cpp #, fuzzy -msgid "Delete patch '" +msgid "Delete patch '%s' from list?" msgstr "Girişi Sil" #: editor/project_export.cpp @@ -5917,10 +6122,6 @@ msgid "Add Input Action Event" msgstr "Giriş İşlem Olayı Ekle" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Meta+" -msgstr "Meta+" - -#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp msgid "Shift+" msgstr "Shift+" @@ -6047,13 +6248,12 @@ msgstr "" #: editor/project_settings_editor.cpp #, fuzzy -msgid "No property '" +msgid "No property '%s' exists." msgstr "Özellik:" #: editor/project_settings_editor.cpp -#, fuzzy -msgid "Setting '" -msgstr "Ayarlar" +msgid "Setting '%s' is internal, and it can't be deleted." +msgstr "" #: editor/project_settings_editor.cpp #, fuzzy @@ -6544,6 +6744,16 @@ msgid "Clear a script for the selected node." msgstr "Seçilen düğüm için betik temizle." #: editor/scene_tree_dock.cpp +#, fuzzy +msgid "Remote" +msgstr "Kaldır" + +#: editor/scene_tree_dock.cpp +#, fuzzy +msgid "Local" +msgstr "Yerel" + +#: editor/scene_tree_dock.cpp msgid "Clear Inheritance? (No Undo!)" msgstr "Kalıt Silinsin mi? (Geri Alınamaz!)" @@ -6740,6 +6950,11 @@ msgid "Attach Node Script" msgstr "Düğüm Betiği İliştir" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Remote " +msgstr "Kaldır" + +#: editor/script_editor_debugger.cpp msgid "Bytes:" msgstr "Baytlar:" @@ -6796,18 +7011,6 @@ msgid "Stack Trace (if applicable):" msgstr "İzi Yığ (uygulanabilirse):" #: editor/script_editor_debugger.cpp -msgid "Remote Inspector" -msgstr "Dolaylı Denetçi" - -#: editor/script_editor_debugger.cpp -msgid "Live Scene Tree:" -msgstr "Canlı Sahne Ağacı:" - -#: editor/script_editor_debugger.cpp -msgid "Remote Object Properties: " -msgstr "Dolaylı Nesne Özellikleri: " - -#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "Kesitçi" @@ -6941,50 +7144,50 @@ msgstr "" msgid "GDNative" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Invalid type argument to convert(), use TYPE_* constants." msgstr "" "convert() için geçersiz türde değiştirgen, TYPE_* sabitlerini kullanın." -#: modules/gdscript/gd_functions.cpp modules/mono/glue/glue_header.h +#: modules/gdscript/gdscript_functions.cpp modules/mono/glue/glue_header.h #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Not enough bytes for decoding bytes, or invalid format." msgstr "Geçersiz biçem ya da kod çözmek için yetersiz byte sayısı." -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "step argument is zero!" msgstr "adım değiştirgeni sıfır!" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not a script with an instance" msgstr "Örneği bulunan bir betik değil" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a script" msgstr "Bir betiğe bağlı değil" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a resource file" msgstr "Bir kaynak dizecine bağlı değil" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (missing @path)" msgstr "Geçersiz örnek sözlük biçemi (@path eksik)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (can't load script at @path)" msgstr "Geçersiz örnek sözlük biçemi (betik @path 'tan yüklenemiyor)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (invalid script at @path)" msgstr "Geçersiz örnek sözlük biçemi (@path 'taki kod geçersiz)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary (invalid subclasses)" msgstr "Geçersiz örnek sözlüğü (geçersiz altbölütler)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Object can't provide a length." msgstr "" @@ -6999,16 +7202,26 @@ msgid "GridMap Duplicate Selection" msgstr "Seçimi İkile" #: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Floor:" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +#, fuzzy +msgid "Grid Map" +msgstr "Izgara Yapışması" + +#: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy msgid "Snap View" msgstr "Üstten Görünüm" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Prev Level (%sDown Wheel)" -msgstr "" +#, fuzzy +msgid "Previous Floor" +msgstr "Önceki sekme" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Next Level (%sUp Wheel)" +msgid "Next Floor" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp @@ -7084,13 +7297,8 @@ msgstr "TileMap'i Sil" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy -msgid "Selection -> Duplicate" -msgstr "Yalnızca Seçim" - -#: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy -msgid "Selection -> Clear" -msgstr "Yalnızca Seçim" +msgid "Clear Selection" +msgstr "İçre Seçimi" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy @@ -7226,7 +7434,8 @@ msgid "Duplicate VisualScript Nodes" msgstr "Çizge Düğüm(lerini) İkile" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Getter. Hold Shift to drop a generic signature." +#, fuzzy +msgid "Hold %s to drop a Getter. Hold Shift to drop a generic signature." msgstr "" "Alıcı işlevini bırakmak için Alt'a basılı tutun. Genelgeçer imzayı bırakmak " "için Shift'e basılı tutun." @@ -7238,7 +7447,8 @@ msgstr "" "için Shift'e basılı tutun." #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a simple reference to the node." +#, fuzzy +msgid "Hold %s to drop a simple reference to the node." msgstr "Bir düğüme basit bir başvuru bırakmak için Alt'a basılı tutun." #: modules/visual_script/visual_script_editor.cpp @@ -7246,7 +7456,8 @@ msgid "Hold Ctrl to drop a simple reference to the node." msgstr "Bir düğüme basit bir başvuru bırakmak için Ctrl'e basılı tutun." #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Variable Setter." +#, fuzzy +msgid "Hold %s to drop a Variable Setter." msgstr "Bir Değişken Atayıcı bırakmak için Alt'a basılı tutun." #: modules/visual_script/visual_script_editor.cpp @@ -7487,13 +7698,23 @@ msgstr "Karo Bulunamadı:" #: platform/javascript/export/export.cpp #, fuzzy -msgid "Could not read file:\n" +msgid "Could not open template for export:\n" +msgstr "Dizin oluşturulamadı." + +#: platform/javascript/export/export.cpp +#, fuzzy +msgid "Invalid export template:\n" +msgstr "Dışa Aktarım Kalıplarını Yükle" + +#: platform/javascript/export/export.cpp +#, fuzzy +msgid "Could not read custom HTML shell:\n" msgstr "Karo Bulunamadı:" #: platform/javascript/export/export.cpp #, fuzzy -msgid "Could not open template for export:\n" -msgstr "Dizin oluşturulamadı." +msgid "Could not read boot splash image file:\n" +msgstr "Karo Bulunamadı:" #: scene/2d/animated_sprite.cpp msgid "" @@ -7610,22 +7831,6 @@ msgid "Path property must point to a valid Node2D node to work." msgstr "" "Yol niteliği çalışması için geçerli bir Node2D düğümüne işaret etmelidir." -#: 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 "" -"Yol niteliği çalışması için geçerli bir Viewport düğümüne işaret etmelidir. " -"Bu tür Viewport 'işleyici amacı' biçimine ayarlanmalıdır." - -#: 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 "" -"Bu sprite'ın çalışması için yol niteliğinde ayarlanan Viewport durumu " -"'işleyici amacı' olarak ayarlanmalıdır." - #: scene/2d/visibility_notifier_2d.cpp msgid "" "VisibilityEnable2D works best when used with the edited scene root directly " @@ -7695,6 +7900,15 @@ msgstr "" "CollisionShape'in çalışması için bir şekil verilmelidir. Lütfen bunun için " "bir şekil kaynağı oluşturun!" +#: scene/3d/gi_probe.cpp +#, fuzzy +msgid "Plotting Meshes" +msgstr "Bedizleri Blitle" + +#: scene/3d/gi_probe.cpp +msgid "Finishing Plot" +msgstr "" + #: scene/3d/navigation_mesh.cpp msgid "A NavigationMesh resource must be set or created for this node to work." msgstr "" @@ -7785,6 +7999,10 @@ msgid "" "minimum size manually." msgstr "" +#: scene/gui/tree.cpp +msgid "(Other)" +msgstr "" + #: scene/main/scene_tree.cpp msgid "" "Default Environment as specified in Project Setings (Rendering -> Viewport -" @@ -7819,6 +8037,66 @@ msgstr "Yazı türü yüklerken sorun oluştu." msgid "Invalid font size." msgstr "Geçersiz yazı türü boyutu." +#, fuzzy +#~ msgid "" +#~ "\n" +#~ "Source: " +#~ msgstr "Kaynak:" + +#, fuzzy +#~ msgid "Remove Point from Line2D" +#~ msgstr "Noktayı Eğriden Kaldır" + +#, fuzzy +#~ msgid "Add Point to Line2D" +#~ msgstr "Noktayı Eğriye Ekle" + +#, fuzzy +#~ msgid "Move Point in Line2D" +#~ msgstr "Noktayı Eğriye Taşı" + +#, fuzzy +#~ msgid "Split Segment (in line)" +#~ msgstr "Parçayı Ayır (eğriye göre)" + +#~ msgid "Meta+" +#~ msgstr "Meta+" + +#, fuzzy +#~ msgid "Setting '" +#~ msgstr "Ayarlar" + +#~ msgid "Remote Inspector" +#~ msgstr "Dolaylı Denetçi" + +#~ msgid "Live Scene Tree:" +#~ msgstr "Canlı Sahne Ağacı:" + +#~ msgid "Remote Object Properties: " +#~ msgstr "Dolaylı Nesne Özellikleri: " + +#, fuzzy +#~ msgid "Selection -> Duplicate" +#~ msgstr "Yalnızca Seçim" + +#, fuzzy +#~ msgid "Selection -> Clear" +#~ msgstr "Yalnızca Seçim" + +#~ msgid "" +#~ "Path property must point to a valid Viewport node to work. Such Viewport " +#~ "must be set to 'render target' mode." +#~ msgstr "" +#~ "Yol niteliği çalışması için geçerli bir Viewport düğümüne işaret " +#~ "etmelidir. Bu tür Viewport 'işleyici amacı' biçimine ayarlanmalıdır." + +#~ msgid "" +#~ "The Viewport set in the path property must be set as 'render target' in " +#~ "order for this sprite to work." +#~ msgstr "" +#~ "Bu sprite'ın çalışması için yol niteliğinde ayarlanan Viewport durumu " +#~ "'işleyici amacı' olarak ayarlanmalıdır." + #~ msgid "Filter:" #~ msgstr "Süzgeç:" @@ -7840,9 +8118,6 @@ msgstr "Geçersiz yazı türü boyutu." #~ msgid "Removed:" #~ msgstr "Silinen:" -#~ msgid "Error saving atlas:" -#~ msgstr "Atlas kaydedilirken sorun oluştu:" - #~ msgid "Could not save atlas subtexture:" #~ msgstr "Atlas alt dokusu kaydedilemedi:" @@ -8224,9 +8499,6 @@ msgstr "Geçersiz yazı türü boyutu." #~ msgid "Cropping Images" #~ msgstr "Bedizleri Kırpıyor" -#~ msgid "Blitting Images" -#~ msgstr "Bedizleri Blitle" - #~ msgid "Couldn't save atlas image:" #~ msgstr "Atlas bedizi kaydedilemedi:" @@ -8597,9 +8869,6 @@ msgstr "Geçersiz yazı türü boyutu." #~ msgid "Save Translatable Strings" #~ msgstr "Çevirilebilir Metinleri Kaydet" -#~ msgid "Install Export Templates" -#~ msgstr "Dışa Aktarım Kalıplarını Yükle" - #~ msgid "Edit Script Options" #~ msgstr "Betik Seçeneklerini Düzenle" diff --git a/editor/translations/ur_PK.po b/editor/translations/ur_PK.po index 3b624f4c8c..cf8e83faff 100644 --- a/editor/translations/ur_PK.po +++ b/editor/translations/ur_PK.po @@ -99,6 +99,7 @@ msgid "Anim Delete Keys" msgstr ".اینیمیشن کی کیز کو ڈیلیٹ کرو" #: editor/animation_editor.cpp editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Duplicate Selection" msgstr "" @@ -629,6 +630,13 @@ msgstr "" msgid "Search Replacement Resource:" msgstr "" +#: editor/dependency_editor.cpp editor/editor_file_dialog.cpp +#: editor/editor_help.cpp editor/editor_node.cpp editor/filesystem_dock.cpp +#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp +#: editor/quick_open.cpp scene/gui/file_dialog.cpp +msgid "Open" +msgstr "" + #: editor/dependency_editor.cpp msgid "Owners Of:" msgstr "" @@ -699,6 +707,14 @@ msgstr "" msgid "Delete" msgstr "" +#: editor/dictionary_property_edit.cpp +msgid "Change Dictionary Key" +msgstr "" + +#: editor/dictionary_property_edit.cpp +msgid "Change Dictionary Value" +msgstr "" + #: editor/editor_about.cpp msgid "Thanks from the Godot community!" msgstr "" @@ -1118,12 +1134,6 @@ msgstr ".سب کچھ تسلیم ہوچکا ہے" msgid "All Files (*)" msgstr "" -#: editor/editor_file_dialog.cpp editor/editor_help.cpp editor/editor_node.cpp -#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_selector.cpp editor/quick_open.cpp scene/gui/file_dialog.cpp -msgid "Open" -msgstr "" - #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Open a File" msgstr "" @@ -1480,6 +1490,13 @@ msgid "" msgstr "" #: editor/editor_node.cpp +msgid "" +"This is a remote object so changes to it will not be kept.\n" +"Please read the documentation relevant to debugging to better understand " +"this workflow." +msgstr "" + +#: editor/editor_node.cpp msgid "Copy Params" msgstr "" @@ -1589,6 +1606,10 @@ msgid "Export Mesh Library" msgstr "" #: editor/editor_node.cpp +msgid "This operation can't be done without a root node." +msgstr "" + +#: editor/editor_node.cpp msgid "Export Tile Set" msgstr "" @@ -1715,11 +1736,19 @@ msgid "Switch Scene Tab" msgstr "" #: editor/editor_node.cpp -msgid "%d more file(s)" +msgid "%d more files or folders" +msgstr "" + +#: editor/editor_node.cpp +msgid "%d more folders" +msgstr "" + +#: editor/editor_node.cpp +msgid "%d more files" msgstr "" #: editor/editor_node.cpp -msgid "%d more file(s) or folder(s)" +msgid "Dock Position" msgstr "" #: editor/editor_node.cpp @@ -1731,6 +1760,10 @@ msgid "Toggle distraction-free mode." msgstr "" #: editor/editor_node.cpp +msgid "Add a new scene." +msgstr "" + +#: editor/editor_node.cpp msgid "Scene" msgstr "" @@ -1795,13 +1828,12 @@ msgid "TileSet.." msgstr "" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp -#: scene/gui/text_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Undo" msgstr "" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp +#: scene/gui/line_edit.cpp msgid "Redo" msgstr "" @@ -2283,6 +2315,10 @@ msgid "(Current)" msgstr "" #: editor/export_template_manager.cpp +msgid "Retrieving mirrors, please wait.." +msgstr "" + +#: editor/export_template_manager.cpp msgid "Remove template version '%s'?" msgstr "" @@ -2317,6 +2353,101 @@ msgid "Importing:" msgstr "" #: editor/export_template_manager.cpp +msgid "" +"No download links found for this version. Direct download is only available " +"for official releases." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't resolve." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't connect." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "No response." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Req. Failed." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Redirect Loop." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Failed:" +msgstr "" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't write file." +msgstr "سب سکریپشن بنائیں" + +#: editor/export_template_manager.cpp +msgid "Download Complete." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Error requesting url: " +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Connecting to Mirror.." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Disconnected" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Resolving" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Can't Resolve" +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Connecting.." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Can't Conect" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Connected" +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Requesting.." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Downloading" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Connection Error" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "SSL Handshake Error" +msgstr "" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "" @@ -2341,12 +2472,21 @@ msgstr "" msgid "Export Template Manager" msgstr "" +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Download Templates" +msgstr ".تمام کا انتخاب" + +#: editor/export_template_manager.cpp +msgid "Select mirror from list: " +msgstr "" + #: editor/file_type_cache.cpp msgid "Can't open file_type_cache.cch for writing, not saving file type cache!" msgstr "" #: editor/filesystem_dock.cpp -msgid "Cannot navigate to '" +msgid "Cannot navigate to '%s' as it has not been found in the file system!" msgstr "" #: editor/filesystem_dock.cpp @@ -2364,12 +2504,6 @@ msgid "" msgstr "" #: editor/filesystem_dock.cpp -msgid "" -"\n" -"Source: " -msgstr "" - -#: editor/filesystem_dock.cpp msgid "Cannot move/rename resources root." msgstr "" @@ -2627,8 +2761,7 @@ msgid "Remove Poly And Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." +msgid "Create a new polygon from scratch" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -2639,6 +2772,11 @@ msgid "" "RMB: Erase Point." msgstr "" +#: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy +msgid "Delete points" +msgstr ".تمام کا انتخاب" + #: editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" msgstr "" @@ -2973,18 +3111,10 @@ msgid "Can't resolve hostname:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't resolve." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Connection error, please try again." msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't connect." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Can't connect to host:" msgstr "" @@ -2993,30 +3123,14 @@ msgid "No response from host:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "No response." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, return code:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Req. Failed." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, too many redirects" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Redirect Loop." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Failed:" -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Bad download hash, assuming file has been tampered with." msgstr "" @@ -3045,14 +3159,6 @@ msgid "Resolving.." msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Connecting.." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Requesting.." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Error making request" msgstr "" @@ -3165,6 +3271,37 @@ msgid "Move Action" msgstr "ایکشن منتقل کریں" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create new vertical guide" +msgstr "سب سکریپشن بنائیں" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Remove vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move horizontal guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create new horizontal guide" +msgstr "سب سکریپشن بنائیں" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove horizontal guide" +msgstr ".تمام کا انتخاب" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new horizontal and vertical guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Edit IK Chain" msgstr "" @@ -3286,10 +3423,16 @@ msgid "Snap to other nodes" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snap to guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Lock the selected object in place (can't be moved)." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Unlock the selected object (can be moved)." msgstr "" @@ -3340,6 +3483,10 @@ msgid "Show rulers" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Show guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Selection" msgstr "" @@ -3528,6 +3675,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/gi_probe_editor_plugin.cpp +msgid "Bake GI Probe" +msgstr "" + #: editor/plugins/gradient_editor_plugin.cpp msgid "Add/Remove Color Ramp Point" msgstr "" @@ -3560,6 +3711,10 @@ msgid "Create Occluder Polygon" msgstr "" #: editor/plugins/light_occluder_2d_editor_plugin.cpp +msgid "Create a new polygon from scratch." +msgstr "" + +#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Edit existing polygon:" msgstr "" @@ -3575,58 +3730,6 @@ msgstr "" msgid "RMB: Erase Point." msgstr "" -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Remove Point from Line2D" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Add Point to Line2D" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Move Point in Line2D" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Select Points" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Shift+Drag: Select Control Points" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Click: Add Point" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Right Click: Delete Point" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Add Point (in empty space)" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Split Segment (in line)" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Delete Point" -msgstr "" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "" @@ -4024,16 +4127,46 @@ msgid "Move Out-Control in Curve" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Select Points" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Shift+Drag: Select Control Points" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Click: Add Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Right Click: Delete Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Select Control Points (Shift+Drag)" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Add Point (in empty space)" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Split Segment (in curve)" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Delete Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Close Curve" msgstr "" @@ -4174,7 +4307,6 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Paste" @@ -4219,6 +4351,20 @@ msgid " Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +msgid "Sort" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Up" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Down" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Next script" msgstr "سب سکریپشن بنائیں" @@ -4271,6 +4417,10 @@ msgstr "" msgid "Close All" msgstr "" +#: editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "" @@ -4281,13 +4431,11 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find.." msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Next" msgstr "" @@ -4391,33 +4539,22 @@ msgstr "" msgid "Capitalize" msgstr "" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Copy" msgstr "" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Select All" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Up" -msgstr "" - -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Down" -msgstr "" - #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "" @@ -4439,6 +4576,22 @@ msgid "Clone Down" msgstr "" #: editor/plugins/script_text_editor.cpp +msgid "Fold Line" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold Line" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Fold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Complete Symbol" msgstr "" @@ -4484,12 +4637,10 @@ msgid "Convert To Lowercase" msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Previous" msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Replace.." msgstr "" @@ -4498,7 +4649,6 @@ msgid "Goto Function.." msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Goto Line.." msgstr "" @@ -4663,6 +4813,14 @@ msgid "View Plane Transform." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Scaling: " +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Translating: " +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Rotating %s degrees." msgstr "" @@ -4743,6 +4901,10 @@ msgid "Vertices" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "FPS" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Align with view" msgstr "" @@ -4775,6 +4937,14 @@ msgid "View Information" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "View FPS" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Half Resolution" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Audio Listener" msgstr "" @@ -4905,6 +5075,10 @@ msgid "Tool Scale" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Toggle Freelook" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Transform" msgstr "" @@ -5183,6 +5357,10 @@ msgid "Create Empty Editor Template" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Create From Current Editor Theme" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "CheckBox Radio1" msgstr "" @@ -5357,7 +5535,7 @@ msgid "Runnable" msgstr "" #: editor/project_export.cpp -msgid "Delete patch '" +msgid "Delete patch '%s' from list?" msgstr "" #: editor/project_export.cpp @@ -5652,10 +5830,6 @@ msgid "Add Input Action Event" msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Meta+" -msgstr "" - -#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp msgid "Shift+" msgstr "" @@ -5777,11 +5951,11 @@ msgid "Select a setting item first!" msgstr "" #: editor/project_settings_editor.cpp -msgid "No property '" +msgid "No property '%s' exists." msgstr "" #: editor/project_settings_editor.cpp -msgid "Setting '" +msgid "Setting '%s' is internal, and it can't be deleted." msgstr "" #: editor/project_settings_editor.cpp @@ -6251,6 +6425,15 @@ msgid "Clear a script for the selected node." msgstr "" #: editor/scene_tree_dock.cpp +#, fuzzy +msgid "Remote" +msgstr ".تمام کا انتخاب" + +#: editor/scene_tree_dock.cpp +msgid "Local" +msgstr "" + +#: editor/scene_tree_dock.cpp msgid "Clear Inheritance? (No Undo!)" msgstr "" @@ -6438,6 +6621,11 @@ msgid "Attach Node Script" msgstr "سب سکریپشن بنائیں" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Remote " +msgstr ".تمام کا انتخاب" + +#: editor/script_editor_debugger.cpp msgid "Bytes:" msgstr "" @@ -6494,18 +6682,6 @@ msgid "Stack Trace (if applicable):" msgstr "" #: editor/script_editor_debugger.cpp -msgid "Remote Inspector" -msgstr "" - -#: editor/script_editor_debugger.cpp -msgid "Live Scene Tree:" -msgstr "" - -#: editor/script_editor_debugger.cpp -msgid "Remote Object Properties: " -msgstr "" - -#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -6638,50 +6814,50 @@ msgstr "" msgid "GDNative" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Invalid type argument to convert(), use TYPE_* constants." msgstr "" ".استمال کیجۓ TYPE_* constants .کے لیے غلط ہیں convert() دیے گئے ارگمنٹس." -#: modules/gdscript/gd_functions.cpp modules/mono/glue/glue_header.h +#: modules/gdscript/gdscript_functions.cpp modules/mono/glue/glue_header.h #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Not enough bytes for decoding bytes, or invalid format." msgstr "یا تو ڈیکوڈ کرنے کے لئے بائیٹس کم ہیں یا پھر ناقص فارمیٹ ھے." -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "step argument is zero!" msgstr "سٹیپ کے ارگمنٹس سفر ہیں!" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not a script with an instance" msgstr ".یہ انسٹینس کے بغیر سکرپٹ نہی ہوتی" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a script" msgstr ".یہ سکرپٹ پر مبنی نہی ہے" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a resource file" msgstr ".یہ ریسورس فائل پر مبنی نہی ہے" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (missing @path)" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (can't load script at @path)" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (invalid script at @path)" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary (invalid subclasses)" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Object can't provide a length." msgstr "" @@ -6695,15 +6871,23 @@ msgid "GridMap Duplicate Selection" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Floor:" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Grid Map" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Snap View" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Prev Level (%sDown Wheel)" +msgid "Previous Floor" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Next Level (%sUp Wheel)" +msgid "Next Floor" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp @@ -6771,12 +6955,9 @@ msgid "Erase Area" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Selection -> Duplicate" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Selection -> Clear" -msgstr "" +#, fuzzy +msgid "Clear Selection" +msgstr ".تمام کا انتخاب" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Settings" @@ -6898,7 +7079,7 @@ msgid "Duplicate VisualScript Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Getter. Hold Shift to drop a generic signature." +msgid "Hold %s to drop a Getter. Hold Shift to drop a generic signature." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -6906,7 +7087,7 @@ msgid "Hold Ctrl to drop a Getter. Hold Shift to drop a generic signature." msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a simple reference to the node." +msgid "Hold %s to drop a simple reference to the node." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -6914,7 +7095,7 @@ msgid "Hold Ctrl to drop a simple reference to the node." msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Variable Setter." +msgid "Hold %s to drop a Variable Setter." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -7143,11 +7324,19 @@ msgid "Could not write file:\n" msgstr "" #: platform/javascript/export/export.cpp -msgid "Could not read file:\n" +msgid "Could not open template for export:\n" msgstr "" #: platform/javascript/export/export.cpp -msgid "Could not open template for export:\n" +msgid "Invalid export template:\n" +msgstr "" + +#: platform/javascript/export/export.cpp +msgid "Could not read custom HTML shell:\n" +msgstr "" + +#: platform/javascript/export/export.cpp +msgid "Could not read boot splash image file:\n" msgstr "" #: scene/2d/animated_sprite.cpp @@ -7239,18 +7428,6 @@ msgstr "" msgid "Path property must point to a valid Node2D node to work." 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 " @@ -7309,6 +7486,14 @@ msgid "" "shape resource for it!" msgstr "" +#: scene/3d/gi_probe.cpp +msgid "Plotting Meshes" +msgstr "" + +#: scene/3d/gi_probe.cpp +msgid "Finishing Plot" +msgstr "" + #: scene/3d/navigation_mesh.cpp msgid "A NavigationMesh resource must be set or created for this node to work." msgstr "" @@ -7386,6 +7571,10 @@ msgid "" "minimum size manually." msgstr "" +#: scene/gui/tree.cpp +msgid "(Other)" +msgstr "" + #: scene/main/scene_tree.cpp msgid "" "Default Environment as specified in Project Setings (Rendering -> Viewport -" diff --git a/editor/translations/zh_CN.po b/editor/translations/zh_CN.po index 3a67defced..f02b4f2260 100644 --- a/editor/translations/zh_CN.po +++ b/editor/translations/zh_CN.po @@ -13,14 +13,15 @@ # oberon-tonya <360119124@qq.com>, 2016. # sersoong <seraphim945@qq.com>, 2017. # wanfang liu <wanfang.liu@gmail.com>, 2016. +# WeiXiong Huang <wx_Huang@sina.com>, 2017. # Youmu <konpaku.w@gmail.com>, 2017. # msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2017-09-15 08:55+0000\n" -"Last-Translator: sersoong <seraphim945@qq.com>\n" +"PO-Revision-Date: 2017-11-13 02:50+0000\n" +"Last-Translator: WeiXiong Huang <wx_Huang@sina.com>\n" "Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/" "godot-engine/godot/zh_Hans/>\n" "Language: zh_CN\n" @@ -28,7 +29,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 2.17-dev\n" +"X-Generator: Weblate 2.18-dev\n" #: editor/animation_editor.cpp msgid "Disabled" @@ -111,6 +112,7 @@ msgid "Anim Delete Keys" msgstr "删除关键帧" #: editor/animation_editor.cpp editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Duplicate Selection" msgstr "复制选中项" @@ -640,6 +642,13 @@ msgstr "依赖编辑器" msgid "Search Replacement Resource:" msgstr "查找替换资源:" +#: editor/dependency_editor.cpp editor/editor_file_dialog.cpp +#: editor/editor_help.cpp editor/editor_node.cpp editor/filesystem_dock.cpp +#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp +#: editor/quick_open.cpp scene/gui/file_dialog.cpp +msgid "Open" +msgstr "打开" + #: editor/dependency_editor.cpp msgid "Owners Of:" msgstr "拥有者:" @@ -656,9 +665,8 @@ msgid "" msgstr "要删除的文件被其他资源所依赖,仍然要删除吗?(无法撤销)" #: editor/dependency_editor.cpp -#, fuzzy msgid "Cannot remove:\n" -msgstr "无法解析." +msgstr "无法移除:\n" #: editor/dependency_editor.cpp msgid "Error loading:" @@ -711,6 +719,16 @@ msgstr "删除选中的文件?" msgid "Delete" msgstr "删除" +#: editor/dictionary_property_edit.cpp +#, fuzzy +msgid "Change Dictionary Key" +msgstr "重命名动画:" + +#: editor/dictionary_property_edit.cpp +#, fuzzy +msgid "Change Dictionary Value" +msgstr "修改数组值" + #: editor/editor_about.cpp msgid "Thanks from the Godot community!" msgstr "感谢Godot社区!" @@ -745,32 +763,31 @@ msgstr "作者" #: editor/editor_about.cpp msgid "Platinum Sponsors" -msgstr "" +msgstr "白金赞助商" #: editor/editor_about.cpp msgid "Gold Sponsors" -msgstr "" +msgstr "金牌赞助商" #: editor/editor_about.cpp msgid "Mini Sponsors" -msgstr "" +msgstr "迷你赞助商" #: editor/editor_about.cpp msgid "Gold Donors" -msgstr "" +msgstr "黄金捐赠者" #: editor/editor_about.cpp msgid "Silver Donors" -msgstr "" +msgstr "白银捐赠者" #: editor/editor_about.cpp -#, fuzzy msgid "Bronze Donors" -msgstr "拷贝到下一行" +msgstr "青铜捐赠者" #: editor/editor_about.cpp msgid "Donors" -msgstr "" +msgstr "捐助" #: editor/editor_about.cpp msgid "License" @@ -894,9 +911,8 @@ msgid "Duplicate" msgstr "拷贝" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Reset Volume" -msgstr "重置缩放" +msgstr "重置音量" #: editor/editor_audio_buses.cpp msgid "Delete Effect" @@ -919,9 +935,8 @@ msgid "Duplicate Audio Bus" msgstr "复制音频总线" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Reset Bus Volume" -msgstr "重置缩放" +msgstr "重置总线音量" #: editor/editor_audio_buses.cpp msgid "Move Audio Bus" @@ -1131,12 +1146,6 @@ msgstr "所有可用类型" msgid "All Files (*)" msgstr "所有文件(*)" -#: editor/editor_file_dialog.cpp editor/editor_help.cpp editor/editor_node.cpp -#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_selector.cpp editor/quick_open.cpp scene/gui/file_dialog.cpp -msgid "Open" -msgstr "打开" - #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Open a File" msgstr "打开文件" @@ -1204,9 +1213,8 @@ msgid "Move Favorite Down" msgstr "向下移动收藏" #: editor/editor_file_dialog.cpp -#, fuzzy msgid "Go to parent folder" -msgstr "无法创建目录。" +msgstr "转到上层文件夹" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Directories & Files:" @@ -1267,27 +1275,24 @@ msgid "Brief Description:" msgstr "简介:" #: editor/editor_help.cpp -#, fuzzy msgid "Members" -msgstr "成员:" +msgstr "成员" #: editor/editor_help.cpp modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "成员:" #: editor/editor_help.cpp -#, fuzzy msgid "Public Methods" -msgstr "公共方法:" +msgstr "公共方法" #: editor/editor_help.cpp msgid "Public Methods:" msgstr "公共方法:" #: editor/editor_help.cpp -#, fuzzy msgid "GUI Theme Items" -msgstr "GUI主题:" +msgstr "GUI主题项目" #: editor/editor_help.cpp msgid "GUI Theme Items:" @@ -1298,9 +1303,8 @@ msgid "Signals:" msgstr "事件:" #: editor/editor_help.cpp -#, fuzzy msgid "Enumerations" -msgstr "枚举:" +msgstr "枚举" #: editor/editor_help.cpp msgid "Enumerations:" @@ -1311,23 +1315,20 @@ msgid "enum " msgstr "枚举 " #: editor/editor_help.cpp -#, fuzzy msgid "Constants" -msgstr "常量:" +msgstr "常量" #: editor/editor_help.cpp msgid "Constants:" msgstr "常量:" #: editor/editor_help.cpp -#, fuzzy msgid "Description" -msgstr "描述:" +msgstr "描述" #: editor/editor_help.cpp -#, fuzzy msgid "Properties" -msgstr "属性:" +msgstr "属性" #: editor/editor_help.cpp msgid "Property Description:" @@ -1338,11 +1339,12 @@ msgid "" "There is currently no description for this property. Please help us by " "[color=$color][url=$url]contributing one[/url][/color]!" msgstr "" +"当前没有此属性的说明。请帮助我们通过 [color=$color][url=$url] 贡献一个 [/url]" +"[/color]!" #: editor/editor_help.cpp -#, fuzzy msgid "Methods" -msgstr "方法列表:" +msgstr "方法" #: editor/editor_help.cpp msgid "Method Description:" @@ -1353,6 +1355,8 @@ msgid "" "There is currently no description for this method. Please help us by [color=" "$color][url=$url]contributing one[/url][/color]!" msgstr "" +"当前没有此方法的说明。请帮助我们通过 [color=$color] [url=$url] 贡献一个 [/" +"url][/color]!" #: editor/editor_help.cpp msgid "Search Text" @@ -1394,28 +1398,24 @@ msgid "Error while saving." msgstr "保存出错。" #: editor/editor_node.cpp -#, fuzzy msgid "Can't open '%s'." -msgstr "无法对'..'引用操作" +msgstr "无法打开 \"%s\"。" #: editor/editor_node.cpp -#, fuzzy msgid "Error while parsing '%s'." -msgstr "保存出错。" +msgstr "分析 \"%s\" 时出错。" #: editor/editor_node.cpp msgid "Unexpected end of file '%s'." -msgstr "" +msgstr "文件 \"%s\" 的意外结束。" #: editor/editor_node.cpp -#, fuzzy msgid "Missing '%s' or its dependencies." -msgstr "场景'%s'的依赖已被破坏:" +msgstr "缺少 \"%s\" 或其依赖项。" #: editor/editor_node.cpp -#, fuzzy msgid "Error while loading '%s'." -msgstr "保存出错。" +msgstr "加载 \"%s\" 时出错。" #: editor/editor_node.cpp msgid "Saving Scene" @@ -1480,18 +1480,23 @@ msgid "" "Please read the documentation relevant to importing scenes to better " "understand this workflow." msgstr "" +"此资源属于已导入的场景, 因此它不可编辑。\n" +"请阅读与导入场景相关的文档, 以便更好地理解此工作流。" #: editor/editor_node.cpp msgid "" "This resource belongs to a scene that was instanced or inherited.\n" "Changes to it will not be kept when saving the current scene." msgstr "" +"此资源属于实例或继承的场景。\n" +"保存当前场景时不会保留对它的更改。" #: editor/editor_node.cpp msgid "" "This resource was imported, so it's not editable. Change its settings in the " "import panel and then re-import." msgstr "" +"此资源已导入, 因此无法编辑。在 \"导入\" 面板中更改其设置, 然后重新导入。" #: editor/editor_node.cpp msgid "" @@ -1500,6 +1505,19 @@ msgid "" "Please read the documentation relevant to importing scenes to better " "understand this workflow." msgstr "" +"场景已被导入, 对它的更改将不会保留。\n" +"允许对它的实例或继承进行更改。\n" +"请阅读与导入场景相关的文档, 以便更好地理解此工作流。" + +#: editor/editor_node.cpp +#, fuzzy +msgid "" +"This is a remote object so changes to it will not be kept.\n" +"Please read the documentation relevant to debugging to better understand " +"this workflow." +msgstr "" +"此资源属于已导入的场景, 因此它不可编辑。\n" +"请阅读与导入场景相关的文档, 以便更好地理解此工作流。" #: editor/editor_node.cpp msgid "Copy Params" @@ -1617,6 +1635,11 @@ msgid "Export Mesh Library" msgstr "导出网格库(Mesh Library)" #: editor/editor_node.cpp +#, fuzzy +msgid "This operation can't be done without a root node." +msgstr "此操作必须先选择一个node才能执行。" + +#: editor/editor_node.cpp msgid "Export Tile Set" msgstr "导出砖块集(Tile Set)" @@ -1672,37 +1695,32 @@ msgstr "在打开项目管理器之前保存更改吗?" msgid "" "This option is deprecated. Situations where refresh must be forced are now " "considered a bug. Please report." -msgstr "" +msgstr "此选项已弃用。必须强制刷新的情况现在被视为 bug。请报告。" #: editor/editor_node.cpp msgid "Pick a Main Scene" msgstr "选择主场景" #: editor/editor_node.cpp -#, fuzzy msgid "Unable to enable addon plugin at: '%s' parsing of config failed." -msgstr "无法启用插件: '" +msgstr "无法在: \"%s\" 上启用加载项插件, 配置解析失败。" #: editor/editor_node.cpp -#, fuzzy msgid "Unable to find script field for addon plugin at: 'res://addons/%s'." -msgstr "在插件目录中没有找到脚本: 'res://addons/" +msgstr "在插件目录中没有找到脚本: 'res://addons/%s'。" #: editor/editor_node.cpp -#, fuzzy msgid "Unable to load addon script from path: '%s'." -msgstr "无法从路径加载插件脚本: '" +msgstr "无法从路径中加载插件脚本: \"%s\"。" #: editor/editor_node.cpp -#, fuzzy msgid "" "Unable to load addon script from path: '%s' Base type is not EditorPlugin." -msgstr "无法从路径加载插件脚本: '" +msgstr "无法从路径加载插件脚本: \"%s\" 基类型不是 EditorPlugin 的。" #: editor/editor_node.cpp -#, fuzzy msgid "Unable to load addon script from path: '%s' Script is not in tool mode." -msgstr "无法从路径加载插件脚本: '" +msgstr "无法从路径加载插件脚本: \"%s\" 脚本不在工具模式下。" #: editor/editor_node.cpp msgid "" @@ -1729,9 +1747,8 @@ msgid "Scene '%s' has broken dependencies:" msgstr "场景'%s'的依赖已被破坏:" #: editor/editor_node.cpp -#, fuzzy msgid "Clear Recent Scenes" -msgstr "清理当前文件" +msgstr "清除近期的场景" #: editor/editor_node.cpp msgid "Save Layout" @@ -1751,12 +1768,23 @@ msgid "Switch Scene Tab" msgstr "切换场景标签页" #: editor/editor_node.cpp -msgid "%d more file(s)" +#, fuzzy +msgid "%d more files or folders" +msgstr "更多的%d个文件或目录" + +#: editor/editor_node.cpp +#, fuzzy +msgid "%d more folders" msgstr "更多的%d个文件" #: editor/editor_node.cpp -msgid "%d more file(s) or folder(s)" -msgstr "更多的%d个文件或目录" +#, fuzzy +msgid "%d more files" +msgstr "更多的%d个文件" + +#: editor/editor_node.cpp +msgid "Dock Position" +msgstr "" #: editor/editor_node.cpp msgid "Distraction Free Mode" @@ -1767,6 +1795,11 @@ msgid "Toggle distraction-free mode." msgstr "切换无干扰模式。" #: editor/editor_node.cpp +#, fuzzy +msgid "Add a new scene." +msgstr "新建轨道。" + +#: editor/editor_node.cpp msgid "Scene" msgstr "场景" @@ -1831,13 +1864,12 @@ msgid "TileSet.." msgstr "砖块集.." #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp -#: scene/gui/text_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Undo" msgstr "撤销" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp +#: scene/gui/line_edit.cpp msgid "Redo" msgstr "重做" @@ -2095,9 +2127,8 @@ msgid "Object properties." msgstr "对象属性。" #: editor/editor_node.cpp -#, fuzzy msgid "Changes may be lost!" -msgstr "修改图片分组" +msgstr "更改可能会丢失!" #: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp #: editor/project_manager.cpp @@ -2181,9 +2212,8 @@ msgid "Open the previous Editor" msgstr "打开上一个编辑器" #: editor/editor_plugin.cpp -#, fuzzy msgid "Creating Mesh Previews" -msgstr "创建 Mesh(网格) 库" +msgstr "创建网格预览" #: editor/editor_plugin.cpp msgid "Thumbnail.." @@ -2235,9 +2265,8 @@ msgid "Frame %" msgstr "渲染速度" #: editor/editor_profiler.cpp -#, fuzzy msgid "Physics Frame %" -msgstr "固定帧速率 %" +msgstr "物理帧速率 %" #: editor/editor_profiler.cpp editor/script_editor_debugger.cpp msgid "Time:" @@ -2332,6 +2361,11 @@ msgid "(Current)" msgstr "(当前)" #: editor/export_template_manager.cpp +#, fuzzy +msgid "Retrieving mirrors, please wait.." +msgstr "连接错误,请重试。" + +#: editor/export_template_manager.cpp msgid "Remove template version '%s'?" msgstr "移除版本为 '%s' 的模板?" @@ -2366,6 +2400,112 @@ msgid "Importing:" msgstr "导入:" #: editor/export_template_manager.cpp +msgid "" +"No download links found for this version. Direct download is only available " +"for official releases." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't resolve." +msgstr "无法解析." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't connect." +msgstr "无法连接。" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "No response." +msgstr "无响应。" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Req. Failed." +msgstr "请求失败." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Redirect Loop." +msgstr "循环重定向。" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Failed:" +msgstr "失败:" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't write file." +msgstr "无法写入文件:\n" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Download Complete." +msgstr "下载错误" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Error requesting url: " +msgstr "保存贴图集出错:" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connecting to Mirror.." +msgstr "连接中.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Disconnected" +msgstr "删除事件连接" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Resolving" +msgstr "解析中.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't Resolve" +msgstr "无法解析." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Connecting.." +msgstr "连接中.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't Conect" +msgstr "无法连接。" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connected" +msgstr "连接" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Requesting.." +msgstr "正在请求.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Downloading" +msgstr "下载" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connection Error" +msgstr "连接中.." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "SSL Handshake Error" +msgstr "加载错误" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "当前版本:" @@ -2389,88 +2529,83 @@ msgstr "删除选中模板文件" msgid "Export Template Manager" msgstr "模板导出工具" +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Download Templates" +msgstr "模板" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Select mirror from list: " +msgstr "从列表中选择设备" + #: editor/file_type_cache.cpp msgid "Can't open file_type_cache.cch for writing, not saving file type cache!" msgstr "无法以可写方式打开file_type_cache.cch!" #: editor/filesystem_dock.cpp -msgid "Cannot navigate to '" -msgstr "无法导航到 '" +msgid "Cannot navigate to '%s' as it has not been found in the file system!" +msgstr "" #: editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails" -msgstr "" +msgstr "将项目作为缩略图的网格查看" #: editor/filesystem_dock.cpp msgid "View items as a list" -msgstr "" +msgstr "将项目作为列表查看" #: editor/filesystem_dock.cpp msgid "" "\n" "Status: Import of file failed. Please fix file and reimport manually." msgstr "" - -#: editor/filesystem_dock.cpp -msgid "" -"\n" -"Source: " -msgstr "" "\n" -"源: " +"状态: 导入文件失败。请手动修复文件和导入。" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Cannot move/rename resources root." -msgstr "无法加载/处理源字体。" +msgstr "无法移动/重命名根资源。" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Cannot move a folder into itself.\n" -msgstr "不允许导入文件本身:" +msgstr "无法将文件夹移动到其自身。\n" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Error moving:\n" -msgstr "移动目录出错:\n" +msgstr "移动时出错:\n" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Unable to update dependencies:\n" -msgstr "场景'%s'的依赖已被破坏:" +msgstr "无法更新依赖关系:\n" #: editor/filesystem_dock.cpp msgid "No name provided" -msgstr "" +msgstr "未提供名称" #: editor/filesystem_dock.cpp msgid "Provided name contains invalid characters" -msgstr "" +msgstr "提供的名称包含无效字符" #: editor/filesystem_dock.cpp -#, fuzzy msgid "No name provided." -msgstr "移动或重命名.." +msgstr "没有提供任何名称。" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Name contains invalid characters." -msgstr "字符合法:" +msgstr "名称包含无效字符。" #: editor/filesystem_dock.cpp -#, fuzzy msgid "A file or folder with this name already exists." -msgstr "分组名称已存在!" +msgstr "同名的文件夹已经存在。" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Renaming file:" -msgstr "重命名变量" +msgstr "重命名文件:" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Renaming folder:" -msgstr "重命名节点" +msgstr "重命名文件夹:" #: editor/filesystem_dock.cpp msgid "Expand all" @@ -2485,18 +2620,16 @@ msgid "Copy Path" msgstr "拷贝路径" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Rename.." -msgstr "重命名" +msgstr "重命名为..." #: editor/filesystem_dock.cpp msgid "Move To.." msgstr "移动.." #: editor/filesystem_dock.cpp -#, fuzzy msgid "New Folder.." -msgstr "新建目录" +msgstr "新建文件夹 .." #: editor/filesystem_dock.cpp msgid "Show In File Manager" @@ -2566,7 +2699,7 @@ msgstr "导入为独立场景" #: editor/import/resource_importer_scene.cpp #, fuzzy msgid "Import with Separate Animations" -msgstr "导入独立材质" +msgstr "导入独立动画" #: editor/import/resource_importer_scene.cpp msgid "Import with Separate Materials" @@ -2583,17 +2716,17 @@ msgstr "导入独立物体 + 材质" #: editor/import/resource_importer_scene.cpp #, fuzzy msgid "Import with Separate Objects+Animations" -msgstr "导入独立物体 + 材质" +msgstr "导入独立物体 + 动画" #: editor/import/resource_importer_scene.cpp #, fuzzy msgid "Import with Separate Materials+Animations" -msgstr "导入独立材质" +msgstr "导入独立材质 + 动画" #: editor/import/resource_importer_scene.cpp #, fuzzy msgid "Import with Separate Objects+Materials+Animations" -msgstr "导入独立物体 + 材质" +msgstr "导入独立物体 + 材质 + 动画" #: editor/import/resource_importer_scene.cpp msgid "Import as Multiple Scenes" @@ -2680,9 +2813,8 @@ msgid "Edit Poly" msgstr "编辑多边形" #: editor/plugins/abstract_polygon_2d_editor.cpp -#, fuzzy msgid "Insert Point" -msgstr "插入中" +msgstr "插入点" #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/collision_polygon_editor_plugin.cpp @@ -2695,8 +2827,8 @@ msgid "Remove Poly And Point" msgstr "移除多边形及顶点" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." +#, fuzzy +msgid "Create a new polygon from scratch" msgstr "从头开始创建一个新的多边形。" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -2711,6 +2843,11 @@ msgstr "" "Ctrl + LMB: 分离片段。\n" "人民币: 擦除点。" +#: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy +msgid "Delete points" +msgstr "删除顶点" + #: editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" msgstr "切换AutoPlay" @@ -3045,18 +3182,10 @@ msgid "Can't resolve hostname:" msgstr "无法解析主机名:" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't resolve." -msgstr "无法解析." - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Connection error, please try again." msgstr "连接错误,请重试。" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't connect." -msgstr "无法连接。" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Can't connect to host:" msgstr "无法连接到服务器:" @@ -3065,30 +3194,14 @@ msgid "No response from host:" msgstr "服务器无响应:" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "No response." -msgstr "无响应。" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, return code:" msgstr "请求失败,错误代码:" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Req. Failed." -msgstr "请求失败." - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, too many redirects" msgstr "请求失败,重定向次数过多" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Redirect Loop." -msgstr "循环重定向。" - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Failed:" -msgstr "失败:" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Bad download hash, assuming file has been tampered with." msgstr "文件hash值错误,该文件可能被篡改。" @@ -3117,14 +3230,6 @@ msgid "Resolving.." msgstr "解析中.." #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Connecting.." -msgstr "连接中.." - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Requesting.." -msgstr "正在请求.." - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Error making request" msgstr "请求错误" @@ -3237,6 +3342,39 @@ msgid "Move Action" msgstr "移动动作" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create new vertical guide" +msgstr "创建新脚本" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove vertical guide" +msgstr "删除变量" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Move horizontal guide" +msgstr "在曲线中移动顶点" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create new horizontal guide" +msgstr "创建新脚本" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove horizontal guide" +msgstr "移除无效键" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new horizontal and vertical guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Edit IK Chain" msgstr "编辑IK链" @@ -3245,14 +3383,12 @@ msgid "Edit CanvasItem" msgstr "编辑CanvasItem" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Anchors only" -msgstr "锚点" +msgstr "仅锚点" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Change Anchors and Margins" -msgstr "编辑锚点" +msgstr "更改锚点和边距" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Change Anchors" @@ -3306,9 +3442,8 @@ msgid "Pan Mode" msgstr "移动画布" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Toggles snapping" -msgstr "设置断点" +msgstr "切换吸附" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -3316,21 +3451,18 @@ msgid "Use Snap" msgstr "使用吸附" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Snapping options" -msgstr "动画选项" +msgstr "吸附选项" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Snap to grid" -msgstr "吸附模式:" +msgstr "吸附到网格" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Rotation Snap" msgstr "使用旋转吸附" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Configure Snap..." msgstr "设置吸附.." @@ -3344,30 +3476,36 @@ msgstr "使用像素吸附" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Smart snapping" -msgstr "" +msgstr "智能吸附" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Snap to parent" -msgstr "展开父节点" +msgstr "吸附到父节点" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Snap to node anchor" -msgstr "" +msgstr "吸附到node锚点" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Snap to node sides" -msgstr "" +msgstr "吸附到node边" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Snap to other nodes" -msgstr "" +msgstr "吸附到其他node节点" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Snap to guides" +msgstr "吸附到网格" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Lock the selected object in place (can't be moved)." msgstr "锁定选中对象的位置。" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Unlock the selected object (can be moved)." msgstr "解锁选中对象的位置。" @@ -3412,12 +3550,16 @@ msgstr "显示网格" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy msgid "Show helpers" -msgstr "显示骨骼" +msgstr "显示辅助线" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Show rulers" -msgstr "显示骨骼" +msgstr "显示标尺" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Show guides" +msgstr "显示标尺" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Selection" @@ -3428,9 +3570,8 @@ msgid "Frame Selection" msgstr "最大化显示选中节点" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Layout" -msgstr "保存布局" +msgstr "布局" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Insert Keys" @@ -3454,12 +3595,11 @@ msgstr "清除姿势" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Drag pivot from mouse position" -msgstr "" +msgstr "从鼠标位置拖动轴心" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Set pivot at mouse position" -msgstr "设置曲线输出位置(Pos)" +msgstr "在鼠标位置设置轴心" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Multiply grid step by 2" @@ -3545,26 +3685,27 @@ msgid "Update from Scene" msgstr "从场景中更新" #: editor/plugins/curve_editor_plugin.cpp +#, fuzzy msgid "Flat0" -msgstr "" +msgstr "Flat0" #: editor/plugins/curve_editor_plugin.cpp +#, fuzzy msgid "Flat1" -msgstr "" +msgstr "Flat1" #: editor/plugins/curve_editor_plugin.cpp -#, fuzzy msgid "Ease in" -msgstr "缓入" +msgstr "渐入" #: editor/plugins/curve_editor_plugin.cpp -#, fuzzy msgid "Ease out" -msgstr "缓出" +msgstr "渐出" #: editor/plugins/curve_editor_plugin.cpp +#, fuzzy msgid "Smoothstep" -msgstr "" +msgstr "圆滑次数" #: editor/plugins/curve_editor_plugin.cpp msgid "Modify Curve Point" @@ -3610,6 +3751,10 @@ msgstr "切换曲线线性Tangent" msgid "Hold Shift to edit tangents individually" msgstr "按住 Shift 可单独编辑切线" +#: editor/plugins/gi_probe_editor_plugin.cpp +msgid "Bake GI Probe" +msgstr "" + #: editor/plugins/gradient_editor_plugin.cpp msgid "Add/Remove Color Ramp Point" msgstr "添加/删除色彩渐变点" @@ -3644,6 +3789,10 @@ msgid "Create Occluder Polygon" msgstr "添加遮光多边形" #: editor/plugins/light_occluder_2d_editor_plugin.cpp +msgid "Create a new polygon from scratch." +msgstr "从头开始创建一个新的多边形。" + +#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Edit existing polygon:" msgstr "编辑已存在的多边形:" @@ -3659,58 +3808,6 @@ msgstr "Ctrl+鼠标左键:分割视图块。" msgid "RMB: Erase Point." msgstr "鼠标右键:移除点。" -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Remove Point from Line2D" -msgstr "从Line2D中移除顶点" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Add Point to Line2D" -msgstr "向Line2D添加顶点" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Move Point in Line2D" -msgstr "在Line2D中移动顶点" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Select Points" -msgstr "选择顶点" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Shift+Drag: Select Control Points" -msgstr "Shift+拖拽:选择控制点" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Click: Add Point" -msgstr "鼠标左键:添加点" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Right Click: Delete Point" -msgstr "鼠标右键:删除点" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Add Point (in empty space)" -msgstr "添加点(在空白处)" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Split Segment (in line)" -msgstr "拆分片段(使用线段)" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Delete Point" -msgstr "删除顶点" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "Mesh为空!" @@ -3892,36 +3989,35 @@ msgid "Bake!" msgstr "烘培!" #: editor/plugins/navigation_mesh_editor_plugin.cpp -#, fuzzy msgid "Bake the navigation mesh.\n" -msgstr "创建导航Mesh(网格)" +msgstr "烘焙导航网格(mesh).\n" #: editor/plugins/navigation_mesh_editor_plugin.cpp -#, fuzzy msgid "Clear the navigation mesh." -msgstr "创建导航Mesh(网格)" +msgstr "清除导航网格(mesh)。" #: editor/plugins/navigation_mesh_generator.cpp msgid "Setting up Configuration..." -msgstr "" +msgstr "正在设置配置..。" #: editor/plugins/navigation_mesh_generator.cpp msgid "Calculating grid size..." -msgstr "" +msgstr "正在计算网格大小..." #: editor/plugins/navigation_mesh_generator.cpp #, fuzzy msgid "Creating heightfield..." -msgstr "创建光的 Octree(八叉树)" +msgstr "创建高度图..." #: editor/plugins/navigation_mesh_generator.cpp #, fuzzy msgid "Marking walkable triangles..." -msgstr "可翻译字符串.." +msgstr "标记可移动三角形..." #: editor/plugins/navigation_mesh_generator.cpp +#, fuzzy msgid "Constructing compact heightfield..." -msgstr "" +msgstr "构建紧凑高度图..." #: editor/plugins/navigation_mesh_generator.cpp msgid "Eroding walkable area..." @@ -3930,35 +4026,35 @@ msgstr "" #: editor/plugins/navigation_mesh_generator.cpp #, fuzzy msgid "Partitioning..." -msgstr "警告" +msgstr "分区中..." #: editor/plugins/navigation_mesh_generator.cpp #, fuzzy msgid "Creating contours..." -msgstr "创建 Octree (八叉树) 纹理" +msgstr "正在创建轮廓..." #: editor/plugins/navigation_mesh_generator.cpp -#, fuzzy msgid "Creating polymesh..." -msgstr "创建轮廓网格(Outline Mesh).." +msgstr "创建多边形网格..." #: editor/plugins/navigation_mesh_generator.cpp #, fuzzy msgid "Converting to native navigation mesh..." -msgstr "创建导航Mesh(网格)" +msgstr "转换为导航网格(mesh)..." #: editor/plugins/navigation_mesh_generator.cpp +#, fuzzy msgid "Navigation Mesh Generator Setup:" -msgstr "" +msgstr "导航网格生成设置:" #: editor/plugins/navigation_mesh_generator.cpp #, fuzzy msgid "Parsing Geometry..." -msgstr "解析多边形中" +msgstr "解析多边形中..." #: editor/plugins/navigation_mesh_generator.cpp msgid "Done!" -msgstr "" +msgstr "完成 !" #: editor/plugins/navigation_polygon_editor_plugin.cpp msgid "Create Navigation Polygon" @@ -4117,16 +4213,46 @@ msgid "Move Out-Control in Curve" msgstr "移动曲线外控制点" #: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Select Points" +msgstr "选择顶点" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Shift+Drag: Select Control Points" +msgstr "Shift+拖拽:选择控制点" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Click: Add Point" +msgstr "鼠标左键:添加点" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Right Click: Delete Point" +msgstr "鼠标右键:删除点" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Select Control Points (Shift+Drag)" msgstr "选择控制点(Shift+拖动)" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Add Point (in empty space)" +msgstr "添加点(在空白处)" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Split Segment (in curve)" msgstr "拆分(曲线)" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Delete Point" +msgstr "删除顶点" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Close Curve" msgstr "关闭曲线" @@ -4142,12 +4268,12 @@ msgstr "设置曲线顶点坐标" #: editor/plugins/path_editor_plugin.cpp #, fuzzy msgid "Set Curve In Position" -msgstr "设置的曲线输入位置(Pos)" +msgstr "设置的曲线开始位置(Pos)" #: editor/plugins/path_editor_plugin.cpp #, fuzzy msgid "Set Curve Out Position" -msgstr "设置曲线输出位置(Pos)" +msgstr "设置曲线结束位置(Pos)" #: editor/plugins/path_editor_plugin.cpp msgid "Split Path" @@ -4266,7 +4392,6 @@ msgstr "加载资源" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Paste" @@ -4313,6 +4438,21 @@ msgid " Class Reference" msgstr " 类引用" #: editor/plugins/script_editor_plugin.cpp +#, fuzzy +msgid "Sort" +msgstr "排序:" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Up" +msgstr "向上移动" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Down" +msgstr "向下移动" + +#: editor/plugins/script_editor_plugin.cpp msgid "Next script" msgstr "下一个脚本" @@ -4364,6 +4504,10 @@ msgstr "关闭文档" msgid "Close All" msgstr "关闭全部" +#: editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "运行" @@ -4374,13 +4518,11 @@ msgstr "切换脚本面板" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find.." msgstr "查找.." #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Next" msgstr "查找下一项" @@ -4486,33 +4628,22 @@ msgstr "小写" msgid "Capitalize" msgstr "首字母大写" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" msgstr "剪切" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Copy" msgstr "复制" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Select All" msgstr "全选" -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Up" -msgstr "向上移动" - -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Down" -msgstr "向下移动" - #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "删除线" @@ -4534,6 +4665,23 @@ msgid "Clone Down" msgstr "拷贝到下一行" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Fold Line" +msgstr "转到行" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold Line" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Fold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Complete Symbol" msgstr "代码补全" @@ -4579,12 +4727,10 @@ msgid "Convert To Lowercase" msgstr "转换为小写" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Previous" msgstr "查找上一项" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Replace.." msgstr "替换.." @@ -4593,7 +4739,6 @@ msgid "Goto Function.." msgstr "前往函数.." #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Goto Line.." msgstr "前往行.." @@ -4758,6 +4903,16 @@ msgid "View Plane Transform." msgstr "视图平面变换。" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Scaling: " +msgstr "缩放:" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Translating: " +msgstr "语言:" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Rotating %s degrees." msgstr "旋转%s度。" @@ -4838,6 +4993,10 @@ msgid "Vertices" msgstr "顶点" #: editor/plugins/spatial_editor_plugin.cpp +msgid "FPS" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Align with view" msgstr "与视图对齐" @@ -4870,6 +5029,16 @@ msgid "View Information" msgstr "查看信息" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "View FPS" +msgstr "查看文件" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Half Resolution" +msgstr "缩放选中项" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Audio Listener" msgstr "音频监听器" @@ -5000,6 +5169,11 @@ msgid "Tool Scale" msgstr "缩放工具" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Toggle Freelook" +msgstr "全屏模式" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Transform" msgstr "变换" @@ -5169,14 +5343,12 @@ msgid "Insert Empty (After)" msgstr "插入空白帧(之后)" #: editor/plugins/sprite_frames_editor_plugin.cpp -#, fuzzy msgid "Move (Before)" -msgstr "移动节点" +msgstr "往前移动" #: editor/plugins/sprite_frames_editor_plugin.cpp -#, fuzzy msgid "Move (After)" -msgstr "向左移动" +msgstr "往后移动" #: editor/plugins/style_box_editor_plugin.cpp msgid "StyleBox Preview:" @@ -5253,11 +5425,11 @@ msgstr "移除全部" #: editor/plugins/theme_editor_plugin.cpp msgid "Edit theme.." -msgstr "" +msgstr "编辑主题.." #: editor/plugins/theme_editor_plugin.cpp msgid "Theme editing menu." -msgstr "" +msgstr "主题编辑菜单。" #: editor/plugins/theme_editor_plugin.cpp msgid "Add Class Items" @@ -5276,6 +5448,11 @@ msgid "Create Empty Editor Template" msgstr "创建编辑器主题模板" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Create From Current Editor Theme" +msgstr "创建编辑器主题模板" + +#: editor/plugins/theme_editor_plugin.cpp msgid "CheckBox Radio1" msgstr "复选框 选项1" @@ -5393,7 +5570,6 @@ msgid "Mirror Y" msgstr "沿Y轴翻转" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Paint Tile" msgstr "绘制砖块地图" @@ -5450,7 +5626,8 @@ msgid "Runnable" msgstr "启用" #: editor/project_export.cpp -msgid "Delete patch '" +#, fuzzy +msgid "Delete patch '%s' from list?" msgstr "删除Patch" #: editor/project_export.cpp @@ -5458,9 +5635,8 @@ msgid "Delete preset '%s'?" msgstr "删除选中的 '%s'?" #: editor/project_export.cpp -#, fuzzy msgid "Export templates for this platform are missing/corrupted: " -msgstr "没有下列平台的导出模板:" +msgstr "没有下列平台的导出模板: " #: editor/project_export.cpp msgid "Presets" @@ -5533,9 +5709,8 @@ msgid "Export templates for this platform are missing:" msgstr "没有下列平台的导出模板:" #: editor/project_export.cpp -#, fuzzy msgid "Export templates for this platform are missing/corrupted:" -msgstr "没有下列平台的导出模板:" +msgstr "没有此平台的导出模板:" #: editor/project_export.cpp msgid "Export With Debug" @@ -5544,22 +5719,21 @@ msgstr "导出为调试" #: editor/project_manager.cpp #, fuzzy msgid "The path does not exist." -msgstr "文件不存在。" +msgstr "路径不存在。" #: editor/project_manager.cpp -#, fuzzy msgid "Please choose a 'project.godot' file." -msgstr "请导出到项目目录之外!" +msgstr "请选择一个'project.godot'文件。" #: editor/project_manager.cpp msgid "" "Your project will be created in a non empty folder (you might want to create " "a new folder)." -msgstr "" +msgstr "您的工程在非空文件夹中创建 (您可能需要建立一个新文件夹)。" #: editor/project_manager.cpp msgid "Please choose a folder that does not contain a 'project.godot' file." -msgstr "" +msgstr "请选择一个不包含'project.godot'文件的文件夹。" #: editor/project_manager.cpp msgid "Imported Project" @@ -5571,21 +5745,19 @@ msgstr "" #: editor/project_manager.cpp msgid "It would be a good idea to name your project." -msgstr "" +msgstr "为项目命名是一个好主意。" #: editor/project_manager.cpp msgid "Invalid project path (changed anything?)." msgstr "项目路径非法(被外部修改?)。" #: editor/project_manager.cpp -#, fuzzy msgid "Couldn't get project.godot in project path." -msgstr "无法在项目目录下创建project.godot文件。" +msgstr "无法在项目目录下找到project.godot文件。" #: editor/project_manager.cpp -#, fuzzy msgid "Couldn't edit project.godot in project path." -msgstr "无法在项目目录下创建project.godot文件。" +msgstr "无法在项目目录下编辑project.godot文件。" #: editor/project_manager.cpp msgid "Couldn't create project.godot in project path." @@ -5596,14 +5768,12 @@ msgid "The following files failed extraction from package:" msgstr "提取以下文件失败:" #: editor/project_manager.cpp -#, fuzzy msgid "Rename Project" -msgstr "未命名项目" +msgstr "重命名项目" #: editor/project_manager.cpp -#, fuzzy msgid "Couldn't get project.godot in the project path." -msgstr "无法在项目目录下创建project.godot文件。" +msgstr "无法在项目目录下找到project.godot文件。" #: editor/project_manager.cpp msgid "New Game Project" @@ -5626,7 +5796,6 @@ msgid "Project Name:" msgstr "项目名称:" #: editor/project_manager.cpp -#, fuzzy msgid "Create folder" msgstr "新建目录" @@ -5647,9 +5816,8 @@ msgid "Unnamed Project" msgstr "未命名项目" #: editor/project_manager.cpp -#, fuzzy msgid "Can't open project" -msgstr "无法运行项目" +msgstr "无法打开项目" #: editor/project_manager.cpp msgid "Are you sure to open more than one project?" @@ -5685,6 +5853,8 @@ msgid "" "Language changed.\n" "The UI will update next time the editor or project manager starts." msgstr "" +"语言已更改。\n" +"用户界面将在下次编辑器或项目管理器启动时更新。" #: editor/project_manager.cpp msgid "" @@ -5717,9 +5887,8 @@ msgid "Exit" msgstr "退出" #: editor/project_manager.cpp -#, fuzzy msgid "Restart Now" -msgstr "重新开始(秒):" +msgstr "立即重新启动" #: editor/project_manager.cpp msgid "Can't run project" @@ -5758,10 +5927,6 @@ msgid "Add Input Action Event" msgstr "添加输入事件" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Meta+" -msgstr "Meta+" - -#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp msgid "Shift+" msgstr "Shift+" @@ -5879,31 +6044,29 @@ msgid "Add Global Property" msgstr "添加Getter属性" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Select a setting item first!" -msgstr "首先选择一个设置项目 !" +msgstr "请先选择一个设置项目 !" #: editor/project_settings_editor.cpp -msgid "No property '" +#, fuzzy +msgid "No property '%s' exists." msgstr "没有属性 '" #: editor/project_settings_editor.cpp -msgid "Setting '" -msgstr "设置 '" +msgid "Setting '%s' is internal, and it can't be deleted." +msgstr "" #: editor/project_settings_editor.cpp msgid "Delete Item" msgstr "删除输入事件" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Can't contain '/' or ':'" -msgstr "无法连接到服务器:" +msgstr "不能包含 \"/\" 或 \":\"" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Already existing" -msgstr "动作%s已存在!" +msgstr "已经存在" #: editor/project_settings_editor.cpp msgid "Error saving settings." @@ -5948,11 +6111,11 @@ msgstr "移除资源重定向选项" #: editor/project_settings_editor.cpp #, fuzzy msgid "Changed Locale Filter" -msgstr "更改混合时间" +msgstr "更改区域设置筛选模式" #: editor/project_settings_editor.cpp msgid "Changed Locale Filter Mode" -msgstr "" +msgstr "更改了区域设置筛选模式" #: editor/project_settings_editor.cpp msgid "Project Settings (project.godot)" @@ -6017,26 +6180,24 @@ msgstr "地区" #: editor/project_settings_editor.cpp #, fuzzy msgid "Locales Filter" -msgstr "纹理过滤:" +msgstr "区域筛选器" #: editor/project_settings_editor.cpp #, fuzzy msgid "Show all locales" -msgstr "显示骨骼" +msgstr "显示所有区域设置" #: editor/project_settings_editor.cpp msgid "Show only selected locales" -msgstr "" +msgstr "仅显示选定的区域设置" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Filter mode:" -msgstr "筛选节点" +msgstr "筛选模式:" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Locales:" -msgstr "地区" +msgstr "区域:" #: editor/project_settings_editor.cpp msgid "AutoLoad" @@ -6087,18 +6248,16 @@ msgid "New Script" msgstr "新建脚本" #: editor/property_editor.cpp -#, fuzzy msgid "Make Unique" -msgstr "添加骨骼" +msgstr "转换为独立资源" #: editor/property_editor.cpp msgid "Show in File System" msgstr "在资源管理器中展示" #: editor/property_editor.cpp -#, fuzzy msgid "Convert To %s" -msgstr "转换为.." +msgstr "转换为%s" #: editor/property_editor.cpp msgid "Error loading file: Not a resource!" @@ -6139,7 +6298,7 @@ msgstr "选择属性" #: editor/property_selector.cpp #, fuzzy msgid "Select Virtual Method" -msgstr "选择方式" +msgstr "选择虚拟方法" #: editor/property_selector.cpp msgid "Select Method" @@ -6262,7 +6421,7 @@ msgstr "废弃实例化" #: editor/scene_tree_dock.cpp msgid "Makes Sense!" -msgstr "有道理!" +msgstr "好的!" #: editor/scene_tree_dock.cpp msgid "Can't operate on nodes from a foreign scene!" @@ -6365,6 +6524,16 @@ msgid "Clear a script for the selected node." msgstr "清除选中节点的脚本。" #: editor/scene_tree_dock.cpp +#, fuzzy +msgid "Remote" +msgstr "移除" + +#: editor/scene_tree_dock.cpp +#, fuzzy +msgid "Local" +msgstr "地区" + +#: editor/scene_tree_dock.cpp msgid "Clear Inheritance? (No Undo!)" msgstr "确定要清除继承吗?(无法撤销!)" @@ -6486,12 +6655,12 @@ msgstr "父路径非法" #: editor/script_create_dialog.cpp msgid "Directory of the same name exists" -msgstr "" +msgstr "存在同名目录" #: editor/script_create_dialog.cpp #, fuzzy msgid "File exists, will be reused" -msgstr "文件已存在,确定要覆盖它吗?" +msgstr "文件存在, 将被重用" #: editor/script_create_dialog.cpp msgid "Invalid extension" @@ -6558,6 +6727,11 @@ msgid "Attach Node Script" msgstr "设置节点的脚本" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Remote " +msgstr "移除" + +#: editor/script_editor_debugger.cpp msgid "Bytes:" msgstr "字节:" @@ -6579,7 +6753,7 @@ msgstr "函数:" #: editor/script_editor_debugger.cpp msgid "Pick one or more items from the list to display the graph." -msgstr "" +msgstr "从列表中选取一个或多个项目以显示图形。" #: editor/script_editor_debugger.cpp msgid "Errors" @@ -6614,18 +6788,6 @@ msgid "Stack Trace (if applicable):" msgstr "调用堆栈:" #: editor/script_editor_debugger.cpp -msgid "Remote Inspector" -msgstr "远程属性面板" - -#: editor/script_editor_debugger.cpp -msgid "Live Scene Tree:" -msgstr "即时场景树:" - -#: editor/script_editor_debugger.cpp -msgid "Remote Object Properties: " -msgstr "远程对象属性: " - -#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "性能分析" @@ -6744,64 +6906,63 @@ msgstr "更改探针(Probe)范围" #: modules/gdnative/gd_native_library_editor.cpp #, fuzzy msgid "Library" -msgstr "MeshLibrary(网格库).." +msgstr "库" #: modules/gdnative/gd_native_library_editor.cpp -#, fuzzy msgid "Status" -msgstr "状态:" +msgstr "状态" #: modules/gdnative/gd_native_library_editor.cpp msgid "Libraries: " -msgstr "" +msgstr "库: " #: modules/gdnative/register_types.cpp msgid "GDNative" -msgstr "" +msgstr "GDNative" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Invalid type argument to convert(), use TYPE_* constants." msgstr "convert函数参数类型非法,请传入以“TYPE_”打头的常量。" -#: modules/gdscript/gd_functions.cpp modules/mono/glue/glue_header.h +#: modules/gdscript/gdscript_functions.cpp modules/mono/glue/glue_header.h #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Not enough bytes for decoding bytes, or invalid format." msgstr "没有足够的字节来解码或格式不正确。" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "step argument is zero!" msgstr "step参数为0!" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not a script with an instance" msgstr "脚本没有实例化" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a script" msgstr "没有基于脚本" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a resource file" msgstr "没有基于一个资源文件" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (missing @path)" msgstr "实例字典格式不正确(缺少@path)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (can't load script at @path)" msgstr "实例字典格式不正确(无法加载脚本@path)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (invalid script at @path)" msgstr "实例字典格式不正确(无效脚本@path)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary (invalid subclasses)" msgstr "非法的字典实例(派生类非法)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Object can't provide a length." msgstr "对象不能提供长度。" @@ -6814,18 +6975,26 @@ msgid "GridMap Duplicate Selection" msgstr "复制选中项" #: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Floor:" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +#, fuzzy +msgid "Grid Map" +msgstr "网格吸附" + +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Snap View" msgstr "捕捉视图" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy -msgid "Prev Level (%sDown Wheel)" -msgstr "上一级" +msgid "Previous Floor" +msgstr "上一个目录" #: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy -msgid "Next Level (%sUp Wheel)" -msgstr "下一级" +msgid "Next Floor" +msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clip Disabled" @@ -6892,12 +7061,9 @@ msgid "Erase Area" msgstr "擦除区域" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Selection -> Duplicate" -msgstr "选择->复制" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Selection -> Clear" -msgstr "选择->清空" +#, fuzzy +msgid "Clear Selection" +msgstr "居中显示选中节点" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Settings" @@ -6909,7 +7075,7 @@ msgstr "拾取距离:" #: modules/mono/editor/mono_bottom_panel.cpp msgid "Builds" -msgstr "" +msgstr "构建" #: modules/visual_script/visual_script.cpp msgid "" @@ -7019,7 +7185,8 @@ msgid "Duplicate VisualScript Nodes" msgstr "复制 VisualScript 节点" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Getter. Hold Shift to drop a generic signature." +#, fuzzy +msgid "Hold %s to drop a Getter. Hold Shift to drop a generic signature." msgstr "按住Meta键放置一个Getter节点,按住Shift键放置一个通用签名。" #: modules/visual_script/visual_script_editor.cpp @@ -7027,7 +7194,8 @@ msgid "Hold Ctrl to drop a Getter. Hold Shift to drop a generic signature." msgstr "按住Ctrl键放置一个Getter节点。按住Shift键放置一个通用签名。" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a simple reference to the node." +#, fuzzy +msgid "Hold %s to drop a simple reference to the node." msgstr "按住Meta键放置一个场景节点的引用节点。" #: modules/visual_script/visual_script_editor.cpp @@ -7035,7 +7203,8 @@ msgid "Hold Ctrl to drop a simple reference to the node." msgstr "按住Ctrl键放置一个场景节点的引用节点。" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Variable Setter." +#, fuzzy +msgid "Hold %s to drop a Variable Setter." msgstr "按住Meta键放置变量的Setter节点。" #: modules/visual_script/visual_script_editor.cpp @@ -7108,7 +7277,7 @@ msgstr "获取" #: modules/visual_script/visual_script_editor.cpp msgid "Script already has function '%s'" -msgstr "" +msgstr "脚本已存在函数 '%s'" #: modules/visual_script/visual_script_editor.cpp msgid "Change Input Value" @@ -7261,12 +7430,23 @@ msgid "Could not write file:\n" msgstr "无法写入文件:\n" #: platform/javascript/export/export.cpp -msgid "Could not read file:\n" +msgid "Could not open template for export:\n" +msgstr "无法打开导出模板:\n" + +#: platform/javascript/export/export.cpp +#, fuzzy +msgid "Invalid export template:\n" +msgstr "安装导出模板" + +#: platform/javascript/export/export.cpp +#, fuzzy +msgid "Could not read custom HTML shell:\n" msgstr "无法读取文件:\n" #: platform/javascript/export/export.cpp -msgid "Could not open template for export:\n" -msgstr "无法打开导出模板:\n" +#, fuzzy +msgid "Could not read boot splash image file:\n" +msgstr "无法读取文件:\n" #: scene/2d/animated_sprite.cpp msgid "" @@ -7372,21 +7552,6 @@ msgstr "" msgid "Path property must point to a valid Node2D node to work." msgstr "path属性必须指向一个合法的Node2D节点才能正常工作。" -#: 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 "" -"为了让此精灵正常工作,它的path属性所指向的Viewport需要开启'render target'。" - #: scene/2d/visibility_notifier_2d.cpp msgid "" "VisibilityEnable2D works best when used with the edited scene root directly " @@ -7451,6 +7616,15 @@ msgstr "" "CollisionShape节点必须拥有一个形状才能进行碰撞检测工作,请为它创建一个形状资" "源!" +#: scene/3d/gi_probe.cpp +#, fuzzy +msgid "Plotting Meshes" +msgstr "Blitting 图片" + +#: scene/3d/gi_probe.cpp +msgid "Finishing Plot" +msgstr "" + #: scene/3d/navigation_mesh.cpp msgid "A NavigationMesh resource must be set or created for this node to work." msgstr "此节点需要设置NavigationMesh资源才能工作。" @@ -7499,6 +7673,7 @@ msgid "" "VehicleWheel serves to provide a wheel system to a VehicleBody. Please use " "it as a child of a VehicleBody." msgstr "" +"VehicleWheel 为 VehicleBody 提供一个车轮系统。请将它作为VehicleBody的子节点。" #: scene/gui/color_picker.cpp msgid "Raw Mode" @@ -7539,6 +7714,10 @@ msgstr "" "使用Container(VBox,HBox等)作为其子控件并手动或设置Control的自定义最小尺" "寸。" +#: scene/gui/tree.cpp +msgid "(Other)" +msgstr "" + #: scene/main/scene_tree.cpp msgid "" "Default Environment as specified in Project Setings (Rendering -> Viewport -" @@ -7572,6 +7751,71 @@ msgstr "加载字体出错。" msgid "Invalid font size." msgstr "字体大小非法。" +#~ msgid "Cannot navigate to '" +#~ msgstr "无法导航到 '" + +#~ msgid "" +#~ "\n" +#~ "Source: " +#~ msgstr "" +#~ "\n" +#~ "源: " + +#~ msgid "Remove Point from Line2D" +#~ msgstr "从Line2D中移除顶点" + +#~ msgid "Add Point to Line2D" +#~ msgstr "向Line2D添加顶点" + +#~ msgid "Move Point in Line2D" +#~ msgstr "在Line2D中移动顶点" + +#~ msgid "Split Segment (in line)" +#~ msgstr "拆分片段(使用线段)" + +#~ msgid "Meta+" +#~ msgstr "Meta+" + +#~ msgid "Setting '" +#~ msgstr "设置 '" + +#~ msgid "Remote Inspector" +#~ msgstr "远程属性面板" + +#~ msgid "Live Scene Tree:" +#~ msgstr "即时场景树:" + +#~ msgid "Remote Object Properties: " +#~ msgstr "远程对象属性: " + +#, fuzzy +#~ msgid "Prev Level (%sDown Wheel)" +#~ msgstr "上一级" + +#, fuzzy +#~ msgid "Next Level (%sUp Wheel)" +#~ msgstr "下一级" + +#~ msgid "Selection -> Duplicate" +#~ msgstr "选择->复制" + +#~ msgid "Selection -> Clear" +#~ msgstr "选择->清空" + +#~ 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'。" + +#~ msgid "" +#~ "The Viewport set in the path property must be set as 'render target' in " +#~ "order for this sprite to work." +#~ msgstr "" +#~ "为了让此精灵正常工作,它的path属性所指向的Viewport需要开启'render " +#~ "target'。" + #~ msgid "Filter:" #~ msgstr "筛选:" @@ -7596,9 +7840,6 @@ msgstr "字体大小非法。" #~ msgid "Removed:" #~ msgstr "已移除:" -#~ msgid "Error saving atlas:" -#~ msgstr "保存贴图集出错:" - #~ msgid "Could not save atlas subtexture:" #~ msgstr "无法保存精灵集子贴图:" @@ -7983,9 +8224,6 @@ msgstr "字体大小非法。" #~ msgid "Cropping Images" #~ msgstr "剪裁图片" -#~ msgid "Blitting Images" -#~ msgstr "Blitting 图片" - #~ msgid "Couldn't save atlas image:" #~ msgstr "无法保存精灵集图片:" @@ -8358,9 +8596,6 @@ msgstr "字体大小非法。" #~ msgid "Save Translatable Strings" #~ msgstr "保存可翻译字符串" -#~ msgid "Install Export Templates" -#~ msgstr "安装导出模板" - #~ msgid "Edit Script Options" #~ msgstr "脚本编辑器选项" diff --git a/editor/translations/zh_HK.po b/editor/translations/zh_HK.po index 3828ea059c..f7275ad4ad 100644 --- a/editor/translations/zh_HK.po +++ b/editor/translations/zh_HK.po @@ -101,6 +101,7 @@ msgid "Anim Delete Keys" msgstr "移除動畫幀" #: editor/animation_editor.cpp editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy msgid "Duplicate Selection" msgstr "複製 Selection" @@ -634,6 +635,13 @@ msgstr "" msgid "Search Replacement Resource:" msgstr "" +#: editor/dependency_editor.cpp editor/editor_file_dialog.cpp +#: editor/editor_help.cpp editor/editor_node.cpp editor/filesystem_dock.cpp +#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp +#: editor/quick_open.cpp scene/gui/file_dialog.cpp +msgid "Open" +msgstr "開啟" + #: editor/dependency_editor.cpp msgid "Owners Of:" msgstr "" @@ -704,6 +712,15 @@ msgstr "要刪除選中檔案?" msgid "Delete" msgstr "刪除" +#: editor/dictionary_property_edit.cpp +msgid "Change Dictionary Key" +msgstr "" + +#: editor/dictionary_property_edit.cpp +#, fuzzy +msgid "Change Dictionary Value" +msgstr "動畫變化數值" + #: editor/editor_about.cpp msgid "Thanks from the Godot community!" msgstr "" @@ -1148,12 +1165,6 @@ msgstr "所有類型" msgid "All Files (*)" msgstr "所有檔案(*)" -#: editor/editor_file_dialog.cpp editor/editor_help.cpp editor/editor_node.cpp -#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_selector.cpp editor/quick_open.cpp scene/gui/file_dialog.cpp -msgid "Open" -msgstr "開啟" - #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Open a File" msgstr "開啟檔案" @@ -1524,6 +1535,13 @@ msgid "" msgstr "" #: editor/editor_node.cpp +msgid "" +"This is a remote object so changes to it will not be kept.\n" +"Please read the documentation relevant to debugging to better understand " +"this workflow." +msgstr "" + +#: editor/editor_node.cpp #, fuzzy msgid "Copy Params" msgstr "複製參數" @@ -1637,6 +1655,10 @@ msgid "Export Mesh Library" msgstr "匯出Mesh Library" #: editor/editor_node.cpp +msgid "This operation can't be done without a root node." +msgstr "" + +#: editor/editor_node.cpp msgid "Export Tile Set" msgstr "匯出Tile Set" @@ -1765,11 +1787,20 @@ msgid "Switch Scene Tab" msgstr "" #: editor/editor_node.cpp -msgid "%d more file(s)" +msgid "%d more files or folders" +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "%d more folders" +msgstr "無法新增資料夾" + +#: editor/editor_node.cpp +msgid "%d more files" msgstr "" #: editor/editor_node.cpp -msgid "%d more file(s) or folder(s)" +msgid "Dock Position" msgstr "" #: editor/editor_node.cpp @@ -1781,6 +1812,11 @@ msgid "Toggle distraction-free mode." msgstr "" #: editor/editor_node.cpp +#, fuzzy +msgid "Add a new scene." +msgstr "新增軌迹" + +#: editor/editor_node.cpp msgid "Scene" msgstr "場景" @@ -1846,13 +1882,12 @@ msgid "TileSet.." msgstr "TileSet.." #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp -#: scene/gui/text_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Undo" msgstr "復原" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp +#: scene/gui/line_edit.cpp msgid "Redo" msgstr "重製" @@ -2340,6 +2375,10 @@ msgid "(Current)" msgstr "" #: editor/export_template_manager.cpp +msgid "Retrieving mirrors, please wait.." +msgstr "" + +#: editor/export_template_manager.cpp msgid "Remove template version '%s'?" msgstr "" @@ -2374,6 +2413,110 @@ msgid "Importing:" msgstr "導入中:" #: editor/export_template_manager.cpp +msgid "" +"No download links found for this version. Direct download is only available " +"for official releases." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't resolve." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't connect." +msgstr "不能連接。" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "No response." +msgstr "沒有回應。" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Req. Failed." +msgstr "請求失敗。" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Redirect Loop." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Failed:" +msgstr "失敗:" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't write file." +msgstr "無法新增資料夾" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Download Complete." +msgstr "下載出現錯誤" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Error requesting url: " +msgstr "請求時出現錯誤" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connecting to Mirror.." +msgstr "連到..." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Disconnected" +msgstr "中斷" + +#: editor/export_template_manager.cpp +msgid "Resolving" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Can't Resolve" +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#, fuzzy +msgid "Connecting.." +msgstr "連到..." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't Conect" +msgstr "不能連接。" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connected" +msgstr "連到" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Requesting.." +msgstr "請求中..." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Downloading" +msgstr "下載出現錯誤" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connection Error" +msgstr "連到..." + +#: editor/export_template_manager.cpp +msgid "SSL Handshake Error" +msgstr "" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "" @@ -2400,12 +2543,21 @@ msgstr "要刪除選中檔案?" msgid "Export Template Manager" msgstr "" +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Download Templates" +msgstr "移除選項" + +#: editor/export_template_manager.cpp +msgid "Select mirror from list: " +msgstr "" + #: editor/file_type_cache.cpp msgid "Can't open file_type_cache.cch for writing, not saving file type cache!" msgstr "" #: editor/filesystem_dock.cpp -msgid "Cannot navigate to '" +msgid "Cannot navigate to '%s' as it has not been found in the file system!" msgstr "" #: editor/filesystem_dock.cpp @@ -2423,13 +2575,6 @@ msgid "" msgstr "" #: editor/filesystem_dock.cpp -#, fuzzy -msgid "" -"\n" -"Source: " -msgstr "來源:" - -#: editor/filesystem_dock.cpp msgid "Cannot move/rename resources root." msgstr "" @@ -2695,8 +2840,7 @@ msgid "Remove Poly And Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." +msgid "Create a new polygon from scratch" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -2707,6 +2851,11 @@ msgid "" "RMB: Erase Point." msgstr "" +#: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy +msgid "Delete points" +msgstr "刪除" + #: editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" msgstr "" @@ -3043,18 +3192,10 @@ msgid "Can't resolve hostname:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't resolve." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Connection error, please try again." msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't connect." -msgstr "不能連接。" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Can't connect to host:" msgstr "不能連到主機:" @@ -3063,31 +3204,15 @@ msgid "No response from host:" msgstr "主機沒有回應:" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "No response." -msgstr "沒有回應。" - -#: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy msgid "Request failed, return code:" msgstr "請求失敗," #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Req. Failed." -msgstr "請求失敗。" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, too many redirects" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Redirect Loop." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Failed:" -msgstr "失敗:" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Bad download hash, assuming file has been tampered with." msgstr "" @@ -3117,15 +3242,6 @@ msgid "Resolving.." msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy -msgid "Connecting.." -msgstr "連到..." - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Requesting.." -msgstr "請求中..." - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Error making request" msgstr "請求時出現錯誤" @@ -3238,6 +3354,37 @@ msgid "Move Action" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create new vertical guide" +msgstr "新增" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Remove vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move horizontal guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create new horizontal guide" +msgstr "新增" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove horizontal guide" +msgstr "只限選中" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new horizontal and vertical guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Edit IK Chain" msgstr "" @@ -3358,10 +3505,16 @@ msgid "Snap to other nodes" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snap to guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Lock the selected object in place (can't be moved)." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Unlock the selected object (can be moved)." msgstr "" @@ -3412,6 +3565,10 @@ msgid "Show rulers" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Show guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Selection" msgstr "" @@ -3603,6 +3760,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/gi_probe_editor_plugin.cpp +msgid "Bake GI Probe" +msgstr "" + #: editor/plugins/gradient_editor_plugin.cpp msgid "Add/Remove Color Ramp Point" msgstr "" @@ -3635,6 +3796,10 @@ msgid "Create Occluder Polygon" msgstr "" #: editor/plugins/light_occluder_2d_editor_plugin.cpp +msgid "Create a new polygon from scratch." +msgstr "" + +#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Edit existing polygon:" msgstr "" @@ -3650,58 +3815,6 @@ msgstr "" msgid "RMB: Erase Point." msgstr "" -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Remove Point from Line2D" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Add Point to Line2D" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Move Point in Line2D" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Select Points" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Shift+Drag: Select Control Points" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Click: Add Point" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Right Click: Delete Point" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Add Point (in empty space)" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Split Segment (in line)" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Delete Point" -msgstr "" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "" @@ -4100,16 +4213,46 @@ msgid "Move Out-Control in Curve" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Select Points" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Shift+Drag: Select Control Points" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Click: Add Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Right Click: Delete Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Select Control Points (Shift+Drag)" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Add Point (in empty space)" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Split Segment (in curve)" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Delete Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Close Curve" msgstr "" @@ -4250,7 +4393,6 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Paste" @@ -4295,6 +4437,21 @@ msgid " Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#, fuzzy +msgid "Sort" +msgstr "排序:" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Up" +msgstr "上移" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Down" +msgstr "下移" + +#: editor/plugins/script_editor_plugin.cpp msgid "Next script" msgstr "下一個腳本" @@ -4348,6 +4505,10 @@ msgstr "關閉場景" msgid "Close All" msgstr "關閉" +#: editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "運行" @@ -4358,13 +4519,11 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find.." msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Next" msgstr "" @@ -4471,33 +4630,22 @@ msgstr "" msgid "Capitalize" msgstr "" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" msgstr "剪下" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Copy" msgstr "複製" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Select All" msgstr "全選" -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Up" -msgstr "上移" - -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Down" -msgstr "下移" - #: editor/plugins/script_text_editor.cpp #, fuzzy msgid "Delete Line" @@ -4520,6 +4668,23 @@ msgid "Clone Down" msgstr "" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Fold Line" +msgstr "跳到行" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold Line" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Fold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Complete Symbol" msgstr "" @@ -4567,12 +4732,10 @@ msgid "Convert To Lowercase" msgstr "轉為..." #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Previous" msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Replace.." msgstr "" @@ -4581,7 +4744,6 @@ msgid "Goto Function.." msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Goto Line.." msgstr "" @@ -4746,6 +4908,15 @@ msgid "View Plane Transform." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Scaling: " +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Translating: " +msgstr "翻譯:" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Rotating %s degrees." msgstr "" @@ -4829,6 +5000,10 @@ msgid "Vertices" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "FPS" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Align with view" msgstr "" @@ -4861,6 +5036,16 @@ msgid "View Information" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "View FPS" +msgstr "檔案" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Half Resolution" +msgstr "縮放selection" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Audio Listener" msgstr "" @@ -4994,6 +5179,11 @@ msgid "Tool Scale" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Toggle Freelook" +msgstr "全螢幕" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Transform" msgstr "" @@ -5271,6 +5461,10 @@ msgid "Create Empty Editor Template" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Create From Current Editor Theme" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "CheckBox Radio1" msgstr "" @@ -5448,7 +5642,7 @@ msgstr "啟用" #: editor/project_export.cpp #, fuzzy -msgid "Delete patch '" +msgid "Delete patch '%s' from list?" msgstr "刪除" #: editor/project_export.cpp @@ -5751,10 +5945,6 @@ msgid "Add Input Action Event" msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Meta+" -msgstr "Meta+" - -#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp msgid "Shift+" msgstr "Shift+" @@ -5878,13 +6068,12 @@ msgid "Select a setting item first!" msgstr "" #: editor/project_settings_editor.cpp -msgid "No property '" +msgid "No property '%s' exists." msgstr "" #: editor/project_settings_editor.cpp -#, fuzzy -msgid "Setting '" -msgstr "設定" +msgid "Setting '%s' is internal, and it can't be deleted." +msgstr "" #: editor/project_settings_editor.cpp #, fuzzy @@ -6365,6 +6554,15 @@ msgid "Clear a script for the selected node." msgstr "" #: editor/scene_tree_dock.cpp +#, fuzzy +msgid "Remote" +msgstr "移除" + +#: editor/scene_tree_dock.cpp +msgid "Local" +msgstr "" + +#: editor/scene_tree_dock.cpp msgid "Clear Inheritance? (No Undo!)" msgstr "" @@ -6559,6 +6757,11 @@ msgid "Attach Node Script" msgstr "下一個腳本" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Remote " +msgstr "移除" + +#: editor/script_editor_debugger.cpp msgid "Bytes:" msgstr "" @@ -6615,19 +6818,6 @@ msgid "Stack Trace (if applicable):" msgstr "" #: editor/script_editor_debugger.cpp -msgid "Remote Inspector" -msgstr "" - -#: editor/script_editor_debugger.cpp -#, fuzzy -msgid "Live Scene Tree:" -msgstr "儲存場景" - -#: editor/script_editor_debugger.cpp -msgid "Remote Object Properties: " -msgstr "" - -#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -6760,49 +6950,49 @@ msgstr "" msgid "GDNative" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Invalid type argument to convert(), use TYPE_* constants." msgstr "" -#: modules/gdscript/gd_functions.cpp modules/mono/glue/glue_header.h +#: modules/gdscript/gdscript_functions.cpp modules/mono/glue/glue_header.h #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Not enough bytes for decoding bytes, or invalid format." msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "step argument is zero!" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not a script with an instance" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a script" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not based on a resource file" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (missing @path)" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (can't load script at @path)" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (invalid script at @path)" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary (invalid subclasses)" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Object can't provide a length." msgstr "" @@ -6817,15 +7007,23 @@ msgid "GridMap Duplicate Selection" msgstr "複製 Selection" #: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Floor:" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Grid Map" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Snap View" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Prev Level (%sDown Wheel)" +msgid "Previous Floor" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Next Level (%sUp Wheel)" +msgid "Next Floor" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp @@ -6896,13 +7094,8 @@ msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy -msgid "Selection -> Duplicate" -msgstr "只限選中" - -#: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy -msgid "Selection -> Clear" -msgstr "只限選中" +msgid "Clear Selection" +msgstr "縮放selection" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy @@ -7028,7 +7221,7 @@ msgid "Duplicate VisualScript Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Getter. Hold Shift to drop a generic signature." +msgid "Hold %s to drop a Getter. Hold Shift to drop a generic signature." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -7036,7 +7229,7 @@ msgid "Hold Ctrl to drop a Getter. Hold Shift to drop a generic signature." msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a simple reference to the node." +msgid "Hold %s to drop a simple reference to the node." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -7044,7 +7237,7 @@ msgid "Hold Ctrl to drop a simple reference to the node." msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Variable Setter." +msgid "Hold %s to drop a Variable Setter." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -7284,12 +7477,22 @@ msgstr "無法新增資料夾" #: platform/javascript/export/export.cpp #, fuzzy -msgid "Could not read file:\n" +msgid "Could not open template for export:\n" msgstr "無法新增資料夾" #: platform/javascript/export/export.cpp #, fuzzy -msgid "Could not open template for export:\n" +msgid "Invalid export template:\n" +msgstr "管理輸出範本" + +#: platform/javascript/export/export.cpp +#, fuzzy +msgid "Could not read custom HTML shell:\n" +msgstr "無法新增資料夾" + +#: platform/javascript/export/export.cpp +#, fuzzy +msgid "Could not read boot splash image file:\n" msgstr "無法新增資料夾" #: scene/2d/animated_sprite.cpp @@ -7381,18 +7584,6 @@ msgstr "" msgid "Path property must point to a valid Node2D node to work." 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 " @@ -7451,6 +7642,14 @@ msgid "" "shape resource for it!" msgstr "" +#: scene/3d/gi_probe.cpp +msgid "Plotting Meshes" +msgstr "" + +#: scene/3d/gi_probe.cpp +msgid "Finishing Plot" +msgstr "" + #: scene/3d/navigation_mesh.cpp msgid "A NavigationMesh resource must be set or created for this node to work." msgstr "" @@ -7528,6 +7727,10 @@ msgid "" "minimum size manually." msgstr "" +#: scene/gui/tree.cpp +msgid "(Other)" +msgstr "" + #: scene/main/scene_tree.cpp msgid "" "Default Environment as specified in Project Setings (Rendering -> Viewport -" @@ -7558,6 +7761,31 @@ msgstr "載入字形出現錯誤" msgid "Invalid font size." msgstr "無效字型" +#, fuzzy +#~ msgid "" +#~ "\n" +#~ "Source: " +#~ msgstr "來源:" + +#~ msgid "Meta+" +#~ msgstr "Meta+" + +#, fuzzy +#~ msgid "Setting '" +#~ msgstr "設定" + +#, fuzzy +#~ msgid "Live Scene Tree:" +#~ msgstr "儲存場景" + +#, fuzzy +#~ msgid "Selection -> Duplicate" +#~ msgstr "只限選中" + +#, fuzzy +#~ msgid "Selection -> Clear" +#~ msgstr "只限選中" + #~ msgid "Filter:" #~ msgstr "篩選:" diff --git a/editor/translations/zh_TW.po b/editor/translations/zh_TW.po index 7a392613d2..3104aa9371 100644 --- a/editor/translations/zh_TW.po +++ b/editor/translations/zh_TW.po @@ -5,21 +5,22 @@ # # Allen H <w84miracle@gmail.com>, 2017. # Chao Yu <casd82@gmail.com>, 2017. +# Cliffs Dover <bottle@dancingbottle.com>, 2017. # popcade <popcade@gmail.com>, 2016. # Sam Pan <sampan66@gmail.com>, 2016. # msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2017-07-31 15:51+0000\n" -"Last-Translator: Chao Yu <casd82@gmail.com>\n" +"PO-Revision-Date: 2017-11-13 02:50+0000\n" +"Last-Translator: Cliffs Dover <bottle@dancingbottle.com>\n" "Language-Team: Chinese (Traditional) <https://hosted.weblate.org/projects/" "godot-engine/godot/zh_Hant/>\n" "Language: zh_TW\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.16-dev\n" +"X-Generator: Weblate 2.18-dev\n" #: editor/animation_editor.cpp msgid "Disabled" @@ -102,6 +103,7 @@ msgid "Anim Delete Keys" msgstr "" #: editor/animation_editor.cpp editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Duplicate Selection" msgstr "複製所選" @@ -634,6 +636,13 @@ msgstr "" msgid "Search Replacement Resource:" msgstr "" +#: editor/dependency_editor.cpp editor/editor_file_dialog.cpp +#: editor/editor_help.cpp editor/editor_node.cpp editor/filesystem_dock.cpp +#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp +#: editor/quick_open.cpp scene/gui/file_dialog.cpp +msgid "Open" +msgstr "開啟" + #: editor/dependency_editor.cpp msgid "Owners Of:" msgstr "" @@ -656,7 +665,6 @@ msgid "Cannot remove:\n" msgstr "" #: editor/dependency_editor.cpp -#, fuzzy msgid "Error loading:" msgstr "載入時發生錯誤:" @@ -707,6 +715,14 @@ msgstr "確定刪除所選擇的檔案嗎?" msgid "Delete" msgstr "刪除" +#: editor/dictionary_property_edit.cpp +msgid "Change Dictionary Key" +msgstr "" + +#: editor/dictionary_property_edit.cpp +msgid "Change Dictionary Value" +msgstr "" + #: editor/editor_about.cpp msgid "Thanks from the Godot community!" msgstr "" @@ -720,9 +736,8 @@ msgid "Godot Engine contributors" msgstr "" #: editor/editor_about.cpp -#, fuzzy msgid "Project Founders" -msgstr "專案設定" +msgstr "專案創始人" #: editor/editor_about.cpp msgid "Lead Developer" @@ -972,9 +987,8 @@ msgid "Save this Bus Layout to a file." msgstr "" #: editor/editor_audio_buses.cpp editor/import_dock.cpp -#, fuzzy msgid "Load Default" -msgstr "預設" +msgstr "載入預設值" #: editor/editor_audio_buses.cpp msgid "Load the default Bus Layout." @@ -1066,7 +1080,6 @@ msgid "List:" msgstr "列表:" #: editor/editor_data.cpp -#, fuzzy msgid "Updating Scene" msgstr "更新場景" @@ -1131,12 +1144,6 @@ msgstr "" msgid "All Files (*)" msgstr "所有類型檔案" -#: editor/editor_file_dialog.cpp editor/editor_help.cpp editor/editor_node.cpp -#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_selector.cpp editor/quick_open.cpp scene/gui/file_dialog.cpp -msgid "Open" -msgstr "開啟" - #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Open a File" msgstr "" @@ -1315,7 +1322,6 @@ msgid "Constants:" msgstr "" #: editor/editor_help.cpp -#, fuzzy msgid "Description" msgstr "描述:" @@ -1334,9 +1340,8 @@ msgid "" msgstr "" #: editor/editor_help.cpp -#, fuzzy msgid "Methods" -msgstr "方法:" +msgstr "方法" #: editor/editor_help.cpp msgid "Method Description:" @@ -1353,9 +1358,8 @@ msgid "Search Text" msgstr "搜尋詞彙" #: editor/editor_log.cpp -#, fuzzy msgid "Output:" -msgstr " 輸出:" +msgstr "輸出:" #: editor/editor_log.cpp editor/plugins/animation_tree_editor_plugin.cpp #: editor/property_editor.cpp editor/script_editor_debugger.cpp @@ -1389,14 +1393,12 @@ msgid "Error while saving." msgstr "" #: editor/editor_node.cpp -#, fuzzy msgid "Can't open '%s'." -msgstr "連接..." +msgstr "無法開啟 \"%s\"。" #: editor/editor_node.cpp -#, fuzzy msgid "Error while parsing '%s'." -msgstr "載入場景時發生錯誤" +msgstr "分析 \"%s\" 時發生錯誤。" #: editor/editor_node.cpp msgid "Unexpected end of file '%s'." @@ -1407,9 +1409,8 @@ msgid "Missing '%s' or its dependencies." msgstr "" #: editor/editor_node.cpp -#, fuzzy msgid "Error while loading '%s'." -msgstr "載入場景時發生錯誤" +msgstr "載入 \"%s\" 時發生錯誤。" #: editor/editor_node.cpp msgid "Saving Scene" @@ -1497,6 +1498,13 @@ msgid "" msgstr "" #: editor/editor_node.cpp +msgid "" +"This is a remote object so changes to it will not be kept.\n" +"Please read the documentation relevant to debugging to better understand " +"this workflow." +msgstr "" + +#: editor/editor_node.cpp msgid "Copy Params" msgstr "複製參數" @@ -1607,6 +1615,11 @@ msgid "Export Mesh Library" msgstr "" #: editor/editor_node.cpp +#, fuzzy +msgid "This operation can't be done without a root node." +msgstr "此操作無法復原, 確定要還原嗎?" + +#: editor/editor_node.cpp msgid "Export Tile Set" msgstr "" @@ -1733,12 +1746,23 @@ msgid "Switch Scene Tab" msgstr "切換場景分頁" #: editor/editor_node.cpp -msgid "%d more file(s)" +#, fuzzy +msgid "%d more files or folders" +msgstr "還有 %d 個檔案或資料夾" + +#: editor/editor_node.cpp +#, fuzzy +msgid "%d more folders" msgstr "還有 %d 個檔案" #: editor/editor_node.cpp -msgid "%d more file(s) or folder(s)" -msgstr "還有 %d 個檔案或資料夾" +#, fuzzy +msgid "%d more files" +msgstr "還有 %d 個檔案" + +#: editor/editor_node.cpp +msgid "Dock Position" +msgstr "" #: editor/editor_node.cpp msgid "Distraction Free Mode" @@ -1750,6 +1774,11 @@ msgstr "" #: editor/editor_node.cpp #, fuzzy +msgid "Add a new scene." +msgstr "更新場景中.." + +#: editor/editor_node.cpp +#, fuzzy msgid "Scene" msgstr "場景" @@ -1814,13 +1843,12 @@ msgid "TileSet.." msgstr "" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp -#: scene/gui/text_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Undo" msgstr "復原" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp +#: scene/gui/line_edit.cpp msgid "Redo" msgstr "取消「復原」" @@ -2303,6 +2331,10 @@ msgid "(Current)" msgstr "" #: editor/export_template_manager.cpp +msgid "Retrieving mirrors, please wait.." +msgstr "" + +#: editor/export_template_manager.cpp msgid "Remove template version '%s'?" msgstr "" @@ -2337,6 +2369,109 @@ msgid "Importing:" msgstr "" #: editor/export_template_manager.cpp +msgid "" +"No download links found for this version. Direct download is only available " +"for official releases." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't resolve." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#, fuzzy +msgid "Can't connect." +msgstr "連接..." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "No response." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Req. Failed." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Redirect Loop." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Failed:" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Can't write file." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Download Complete." +msgstr "" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Error requesting url: " +msgstr "載入場景時發生錯誤" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connecting to Mirror.." +msgstr "連接..." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Disconnected" +msgstr "斷線" + +#: editor/export_template_manager.cpp +msgid "Resolving" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Can't Resolve" +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#, fuzzy +msgid "Connecting.." +msgstr "連接..." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Can't Conect" +msgstr "連接..." + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connected" +msgstr "連接..." + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Requesting.." +msgstr "" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Downloading" +msgstr "載入時發生錯誤:" + +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Connection Error" +msgstr "連接..." + +#: editor/export_template_manager.cpp +msgid "SSL Handshake Error" +msgstr "" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "" @@ -2360,12 +2495,21 @@ msgstr "" msgid "Export Template Manager" msgstr "" +#: editor/export_template_manager.cpp +#, fuzzy +msgid "Download Templates" +msgstr "載入場景時發生錯誤" + +#: editor/export_template_manager.cpp +msgid "Select mirror from list: " +msgstr "" + #: editor/file_type_cache.cpp msgid "Can't open file_type_cache.cch for writing, not saving file type cache!" msgstr "" #: editor/filesystem_dock.cpp -msgid "Cannot navigate to '" +msgid "Cannot navigate to '%s' as it has not been found in the file system!" msgstr "" #: editor/filesystem_dock.cpp @@ -2383,12 +2527,6 @@ msgid "" msgstr "" #: editor/filesystem_dock.cpp -msgid "" -"\n" -"Source: " -msgstr "" - -#: editor/filesystem_dock.cpp msgid "Cannot move/rename resources root." msgstr "" @@ -2651,8 +2789,7 @@ msgid "Remove Poly And Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." +msgid "Create a new polygon from scratch" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -2663,6 +2800,11 @@ msgid "" "RMB: Erase Point." msgstr "" +#: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy +msgid "Delete points" +msgstr "刪除" + #: editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" msgstr "" @@ -2999,19 +3141,10 @@ msgid "Can't resolve hostname:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Can't resolve." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Connection error, please try again." msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy -msgid "Can't connect." -msgstr "連接..." - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Can't connect to host:" msgstr "" @@ -3020,30 +3153,14 @@ msgid "No response from host:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "No response." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, return code:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Req. Failed." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, too many redirects" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -msgid "Redirect Loop." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Failed:" -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp msgid "Bad download hash, assuming file has been tampered with." msgstr "" @@ -3073,15 +3190,6 @@ msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy -msgid "Connecting.." -msgstr "連接..." - -#: editor/plugins/asset_library_editor_plugin.cpp -msgid "Requesting.." -msgstr "" - -#: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Error making request" msgstr "載入場景時發生錯誤" @@ -3194,6 +3302,35 @@ msgid "Move Action" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Remove vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move horizontal guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new horizontal guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Remove horizontal guide" +msgstr "移除" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new horizontal and vertical guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Edit IK Chain" msgstr "" @@ -3314,10 +3451,16 @@ msgid "Snap to other nodes" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snap to guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Lock the selected object in place (can't be moved)." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Unlock the selected object (can be moved)." msgstr "" @@ -3368,6 +3511,10 @@ msgid "Show rulers" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Show guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Selection" msgstr "" @@ -3557,6 +3704,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/gi_probe_editor_plugin.cpp +msgid "Bake GI Probe" +msgstr "" + #: editor/plugins/gradient_editor_plugin.cpp msgid "Add/Remove Color Ramp Point" msgstr "" @@ -3589,6 +3740,10 @@ msgid "Create Occluder Polygon" msgstr "" #: editor/plugins/light_occluder_2d_editor_plugin.cpp +msgid "Create a new polygon from scratch." +msgstr "" + +#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Edit existing polygon:" msgstr "" @@ -3604,58 +3759,6 @@ msgstr "" msgid "RMB: Erase Point." msgstr "" -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Remove Point from Line2D" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Add Point to Line2D" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Move Point in Line2D" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Select Points" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Shift+Drag: Select Control Points" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Click: Add Point" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Right Click: Delete Point" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Add Point (in empty space)" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -msgid "Split Segment (in line)" -msgstr "" - -#: editor/plugins/line_2d_editor_plugin.cpp -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp -msgid "Delete Point" -msgstr "" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "" @@ -4054,16 +4157,46 @@ msgid "Move Out-Control in Curve" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Select Points" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Shift+Drag: Select Control Points" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Click: Add Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Right Click: Delete Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Select Control Points (Shift+Drag)" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Add Point (in empty space)" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Split Segment (in curve)" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp +msgid "Delete Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp msgid "Close Curve" msgstr "" @@ -4203,7 +4336,6 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Paste" @@ -4248,6 +4380,21 @@ msgid " Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#, fuzzy +msgid "Sort" +msgstr "排序:" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Up" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +msgid "Move Down" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Next script" msgstr "" @@ -4299,6 +4446,10 @@ msgstr "" msgid "Close All" msgstr "" +#: editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "" @@ -4309,13 +4460,11 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find.." msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Next" msgstr "" @@ -4421,33 +4570,22 @@ msgstr "" msgid "Capitalize" msgstr "" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Copy" msgstr "" -#: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp scene/gui/line_edit.cpp +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Select All" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Up" -msgstr "" - -#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp -msgid "Move Down" -msgstr "" - #: editor/plugins/script_text_editor.cpp #, fuzzy msgid "Delete Line" @@ -4470,6 +4608,23 @@ msgid "Clone Down" msgstr "" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Fold Line" +msgstr "前往第...行" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold Line" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Fold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Complete Symbol" msgstr "" @@ -4517,12 +4672,10 @@ msgid "Convert To Lowercase" msgstr "轉換成.." #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Find Previous" msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Replace.." msgstr "" @@ -4531,7 +4684,6 @@ msgid "Goto Function.." msgstr "" #: editor/plugins/script_text_editor.cpp -#: editor/plugins/shader_editor_plugin.cpp msgid "Goto Line.." msgstr "" @@ -4696,6 +4848,14 @@ msgid "View Plane Transform." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Scaling: " +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Translating: " +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Rotating %s degrees." msgstr "" @@ -4777,6 +4937,10 @@ msgid "Vertices" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "FPS" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Align with view" msgstr "" @@ -4809,6 +4973,15 @@ msgid "View Information" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "View FPS" +msgstr "過濾檔案.." + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Half Resolution" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Audio Listener" msgstr "" @@ -4940,6 +5113,10 @@ msgid "Tool Scale" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Toggle Freelook" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Transform" msgstr "" @@ -5215,6 +5392,10 @@ msgid "Create Empty Editor Template" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Create From Current Editor Theme" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "CheckBox Radio1" msgstr "" @@ -5390,7 +5571,7 @@ msgid "Runnable" msgstr "" #: editor/project_export.cpp -msgid "Delete patch '" +msgid "Delete patch '%s' from list?" msgstr "" #: editor/project_export.cpp @@ -5690,10 +5871,6 @@ msgid "Add Input Action Event" msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Meta+" -msgstr "" - -#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp msgid "Shift+" msgstr "" @@ -5815,11 +5992,11 @@ msgid "Select a setting item first!" msgstr "" #: editor/project_settings_editor.cpp -msgid "No property '" +msgid "No property '%s' exists." msgstr "" #: editor/project_settings_editor.cpp -msgid "Setting '" +msgid "Setting '%s' is internal, and it can't be deleted." msgstr "" #: editor/project_settings_editor.cpp @@ -6292,6 +6469,15 @@ msgid "Clear a script for the selected node." msgstr "" #: editor/scene_tree_dock.cpp +#, fuzzy +msgid "Remote" +msgstr "移除" + +#: editor/scene_tree_dock.cpp +msgid "Local" +msgstr "" + +#: editor/scene_tree_dock.cpp msgid "Clear Inheritance? (No Undo!)" msgstr "" @@ -6479,6 +6665,11 @@ msgid "Attach Node Script" msgstr "" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Remote " +msgstr "移除" + +#: editor/script_editor_debugger.cpp msgid "Bytes:" msgstr "" @@ -6535,18 +6726,6 @@ msgid "Stack Trace (if applicable):" msgstr "" #: editor/script_editor_debugger.cpp -msgid "Remote Inspector" -msgstr "" - -#: editor/script_editor_debugger.cpp -msgid "Live Scene Tree:" -msgstr "" - -#: editor/script_editor_debugger.cpp -msgid "Remote Object Properties: " -msgstr "" - -#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -6683,54 +6862,54 @@ msgstr "" msgid "GDNative" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Invalid type argument to convert(), use TYPE_* constants." msgstr "" -#: modules/gdscript/gd_functions.cpp modules/mono/glue/glue_header.h +#: modules/gdscript/gdscript_functions.cpp modules/mono/glue/glue_header.h #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Not enough bytes for decoding bytes, or invalid format." msgstr "解碼字節位元不足,或為無效格式。" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "step argument is zero!" msgstr "step引數為0!" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Not a script with an instance" msgstr "非為單一事件腳本" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp #, fuzzy msgid "Not based on a script" msgstr "未依據腳本" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp #, fuzzy msgid "Not based on a resource file" msgstr "未依據資源檔案" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp #, fuzzy msgid "Invalid instance dictionary format (missing @path)" msgstr "無效的事件詞典格式(遺失 @path)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp #, fuzzy msgid "Invalid instance dictionary format (can't load script at @path)" msgstr "無效的事件詞典格式(無法載入腳本 @path)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp #, fuzzy msgid "Invalid instance dictionary format (invalid script at @path)" msgstr "無效的事件詞典格式(無效的腳本 @path)" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary (invalid subclasses)" msgstr "" -#: modules/gdscript/gd_functions.cpp +#: modules/gdscript/gdscript_functions.cpp msgid "Object can't provide a length." msgstr "" @@ -6745,15 +6924,24 @@ msgid "GridMap Duplicate Selection" msgstr "複製所選" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Snap View" +msgid "Floor:" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Prev Level (%sDown Wheel)" +msgid "Grid Map" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Next Level (%sUp Wheel)" +msgid "Snap View" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +#, fuzzy +msgid "Previous Floor" +msgstr "上個分頁" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Next Floor" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp @@ -6824,13 +7012,8 @@ msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy -msgid "Selection -> Duplicate" -msgstr "僅選擇區域" - -#: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy -msgid "Selection -> Clear" -msgstr "僅選擇區域" +msgid "Clear Selection" +msgstr "所有的選擇" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy @@ -6954,7 +7137,7 @@ msgid "Duplicate VisualScript Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Getter. Hold Shift to drop a generic signature." +msgid "Hold %s to drop a Getter. Hold Shift to drop a generic signature." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -6962,7 +7145,7 @@ msgid "Hold Ctrl to drop a Getter. Hold Shift to drop a generic signature." msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a simple reference to the node." +msgid "Hold %s to drop a simple reference to the node." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -6970,7 +7153,7 @@ msgid "Hold Ctrl to drop a simple reference to the node." msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Hold Meta to drop a Variable Setter." +msgid "Hold %s to drop a Variable Setter." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -7198,13 +7381,22 @@ msgid "Could not write file:\n" msgstr "" #: platform/javascript/export/export.cpp -msgid "Could not read file:\n" +msgid "Could not open template for export:\n" msgstr "" #: platform/javascript/export/export.cpp -msgid "Could not open template for export:\n" +msgid "Invalid export template:\n" +msgstr "" + +#: platform/javascript/export/export.cpp +msgid "Could not read custom HTML shell:\n" msgstr "" +#: platform/javascript/export/export.cpp +#, fuzzy +msgid "Could not read boot splash image file:\n" +msgstr "無法新增資料夾" + #: scene/2d/animated_sprite.cpp msgid "" "A SpriteFrames resource must be created or set in the 'Frames' property in " @@ -7300,18 +7492,6 @@ msgstr "" msgid "Path property must point to a valid Node2D node to work." 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 " @@ -7370,6 +7550,14 @@ msgid "" "shape resource for it!" msgstr "" +#: scene/3d/gi_probe.cpp +msgid "Plotting Meshes" +msgstr "" + +#: scene/3d/gi_probe.cpp +msgid "Finishing Plot" +msgstr "" + #: scene/3d/navigation_mesh.cpp msgid "A NavigationMesh resource must be set or created for this node to work." msgstr "" @@ -7447,6 +7635,10 @@ msgid "" "minimum size manually." msgstr "" +#: scene/gui/tree.cpp +msgid "(Other)" +msgstr "" + #: scene/main/scene_tree.cpp msgid "" "Default Environment as specified in Project Setings (Rendering -> Viewport -" @@ -7477,6 +7669,14 @@ msgstr "" msgid "Invalid font size." msgstr "" +#, fuzzy +#~ msgid "Selection -> Duplicate" +#~ msgstr "僅選擇區域" + +#, fuzzy +#~ msgid "Selection -> Clear" +#~ msgstr "僅選擇區域" + #~ msgid "Filter:" #~ msgstr "過濾器:" diff --git a/main/input_default.cpp b/main/input_default.cpp index 2940f432d5..7cc7521686 100644 --- a/main/input_default.cpp +++ b/main/input_default.cpp @@ -319,6 +319,15 @@ void InputDefault::parse_input_event(const Ref<InputEvent> &p_event) { set_joy_axis(jm->get_device(), jm->get_axis(), jm->get_axis_value()); } + Ref<InputEventGesture> ge = p_event; + + if (ge.is_valid()) { + + if (main_loop) { + main_loop->input_event(ge); + } + } + if (!p_event->is_echo()) { for (const Map<StringName, InputMap::Action>::Element *E = InputMap::get_singleton()->get_action_map().front(); E; E = E->next()) { diff --git a/main/main.cpp b/main/main.cpp index c4bca94b44..8b866e160f 100644..100755 --- a/main/main.cpp +++ b/main/main.cpp @@ -290,8 +290,6 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph register_core_settings(); //here globals is present - OS::get_singleton()->initialize_logger(); - translation_server = memnew(TranslationServer); performance = memnew(Performance); ClassDB::register_class<Performance>(); @@ -427,6 +425,7 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph } else if (I->get() == "-m" || I->get() == "--maximized") { // force maximized window init_maximized = true; + video_mode.maximized = true; } else if (I->get() == "-w" || I->get() == "--windowed") { // force windowed window init_windowed = true; @@ -744,10 +743,20 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph #endif } + GLOBAL_DEF("logging/file_logging/enable_file_logging", true); + GLOBAL_DEF("logging/file_logging/log_path", "user://logs/log.txt"); + GLOBAL_DEF("logging/file_logging/max_log_files", 10); + if (FileAccess::get_create_func(FileAccess::ACCESS_USERDATA) && GLOBAL_GET("logging/file_logging/enable_file_logging")) { + String base_path = GLOBAL_GET("logging/file_logging/log_path"); + int max_files = GLOBAL_GET("logging/file_logging/max_log_files"); + OS::get_singleton()->add_logger(memnew(RotatedFileLogger(base_path, max_files))); + } + if (editor) { Engine::get_singleton()->set_editor_hint(true); main_args.push_back("--editor"); init_maximized = true; + video_mode.maximized = true; use_custom_res = false; } @@ -823,8 +832,6 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph OS::get_singleton()->_keep_screen_on = GLOBAL_DEF("display/window/energy_saving/keep_screen_on", true); if (rtm == -1) { rtm = GLOBAL_DEF("rendering/threads/thread_model", OS::RENDER_THREAD_SAFE); - if (rtm >= 1) //hack for now - rtm = 1; } if (rtm >= 0 && rtm < 3) { diff --git a/misc/dist/ios_xcode/godot.iphone.debug.fat b/misc/dist/ios_xcode/godot.iphone.debug.fat deleted file mode 100755 index e69de29bb2..0000000000 --- a/misc/dist/ios_xcode/godot.iphone.debug.fat +++ /dev/null diff --git a/misc/dist/ios_xcode/godot.iphone.release.arm b/misc/dist/ios_xcode/godot.iphone.release.arm deleted file mode 100755 index e69de29bb2..0000000000 --- a/misc/dist/ios_xcode/godot.iphone.release.arm +++ /dev/null diff --git a/misc/dist/ios_xcode/godot.iphone.release.arm64 b/misc/dist/ios_xcode/godot.iphone.release.arm64 deleted file mode 100755 index e69de29bb2..0000000000 --- a/misc/dist/ios_xcode/godot.iphone.release.arm64 +++ /dev/null diff --git a/misc/dist/ios_xcode/godot.iphone.release.fat b/misc/dist/ios_xcode/godot.iphone.release.fat deleted file mode 100755 index e69de29bb2..0000000000 --- a/misc/dist/ios_xcode/godot.iphone.release.fat +++ /dev/null diff --git a/misc/dist/ios_xcode/godot_ios.xcodeproj/project.pbxproj b/misc/dist/ios_xcode/godot_ios.xcodeproj/project.pbxproj index 3f2db94193..ab15e35f63 100644 --- a/misc/dist/ios_xcode/godot_ios.xcodeproj/project.pbxproj +++ b/misc/dist/ios_xcode/godot_ios.xcodeproj/project.pbxproj @@ -8,8 +8,20 @@ /* Begin PBXBuildFile section */ 1F1575721F582BE20003B888 /* dylibs in Resources */ = {isa = PBXBuildFile; fileRef = 1F1575711F582BE20003B888 /* dylibs */; }; + 1FE926991FBBF85400F53A6F /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1FE926961FBBF7D400F53A6F /* SystemConfiguration.framework */; }; + 1FE9269A1FBBF85F00F53A6F /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1FE926951FBBF7C400F53A6F /* Security.framework */; }; + 1FE9269B1FBBF86200F53A6F /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1FE926941FBBF7BD00F53A6F /* QuartzCore.framework */; }; + 1FE9269C1FBBF86500F53A6F /* MediaPlayer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1FE926931FBBF7AD00F53A6F /* MediaPlayer.framework */; }; + 1FE9269D1FBBF86600F53A6F /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1FE926921FBBF7A000F53A6F /* GameController.framework */; }; + 1FE9269E1FBBF86900F53A6F /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1FE926911FBBF79500F53A6F /* CoreMotion.framework */; }; + 1FE9269F1FBBF86B00F53A6F /* CoreMedia.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1FE926901FBBF78E00F53A6F /* CoreMedia.framework */; }; + 1FE926A01FBBF86D00F53A6F /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1FE9268E1FBBF77300F53A6F /* AudioToolbox.framework */; }; + 1FE926A11FBBF86D00F53A6F /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1FE9268F1FBBF77F00F53A6F /* CoreAudio.framework */; }; + DEADBEEF2F582BE20003B888 /* $binary.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DEADBEEF1F582BE20003B888 /* $binary.a */; }; + 1FF8DBB11FBA9DE1009DE660 /* dummy.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1FF8DBB01FBA9DE1009DE660 /* dummy.cpp */; }; 1FF4C1851F584E3F00A41E41 /* GameKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1FF4C1841F584E3F00A41E41 /* GameKit.framework */; }; 1FF4C1871F584E5600A41E41 /* StoreKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1FF4C1861F584E5600A41E41 /* StoreKit.framework */; }; + 1FF4C1871F584E7600A41E41 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1FF4C1881F584E7600A41E41 /* StoreKit.framework */; }; D07CD43F1C5D573600B7FB28 /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D07CD4331C5D573600B7FB28 /* Default-568h@2x.png */; }; D07CD4411C5D573600B7FB28 /* Default-667h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D07CD4351C5D573600B7FB28 /* Default-667h@2x.png */; }; D07CD4421C5D573600B7FB28 /* Default-Portrait-736h@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D07CD4361C5D573600B7FB28 /* Default-Portrait-736h@3x.png */; }; @@ -26,14 +38,25 @@ D0BCFE4018AEBDA2004A7AAE /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0BCFE3F18AEBDA2004A7AAE /* OpenGLES.framework */; }; D0BCFE4618AEBDA2004A7AAE /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = D0BCFE4418AEBDA2004A7AAE /* InfoPlist.strings */; }; D0BCFE7818AEBFEB004A7AAE /* $binary.pck in Resources */ = {isa = PBXBuildFile; fileRef = D0BCFE7718AEBFEB004A7AAE /* $binary.pck */; }; - D0BCFE7A18AEC06A004A7AAE /* $binary.iphone in Resources */ = {isa = PBXBuildFile; fileRef = D0BCFE7918AEC06A004A7AAE /* $binary.iphone */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ - 1F1575711F582BE20003B888 /* dylibs */ = {isa = PBXFileReference; lastKnownFileType = folder; name = dylibs; path = dylibs; sourceTree = "<group>"; }; + 1F1575711F582BE20003B888 /* dylibs */ = {isa = PBXFileReference; lastKnownFileType = folder; name = dylibs; path = "$binary/dylibs"; sourceTree = "<group>"; }; + 1FE9268E1FBBF77300F53A6F /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; + 1FE9268F1FBBF77F00F53A6F /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; }; + 1FE926901FBBF78E00F53A6F /* CoreMedia.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMedia.framework; path = System/Library/Frameworks/CoreMedia.framework; sourceTree = SDKROOT; }; + 1FE926911FBBF79500F53A6F /* CoreMotion.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMotion.framework; path = System/Library/Frameworks/CoreMotion.framework; sourceTree = SDKROOT; }; + 1FE926921FBBF7A000F53A6F /* GameController.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GameController.framework; path = System/Library/Frameworks/GameController.framework; sourceTree = SDKROOT; }; + 1FE926931FBBF7AD00F53A6F /* MediaPlayer.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MediaPlayer.framework; path = System/Library/Frameworks/MediaPlayer.framework; sourceTree = SDKROOT; }; + 1FE926941FBBF7BD00F53A6F /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; + 1FE926951FBBF7C400F53A6F /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; }; + 1FE926961FBBF7D400F53A6F /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; }; + DEADBEEF1F582BE20003B888 /* $binary.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = godot; path = "$binary.a"; sourceTree = "<group>"; }; 1FF4C1841F584E3F00A41E41 /* GameKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GameKit.framework; path = System/Library/Frameworks/GameKit.framework; sourceTree = SDKROOT; }; 1FF4C1861F584E5600A41E41 /* StoreKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = StoreKit.framework; path = System/Library/Frameworks/StoreKit.framework; sourceTree = SDKROOT; }; + 1FF4C1881F584E7600A41E41 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; }; 1FF4C1881F584E6300A41E41 /* $binary.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = $binary.entitlements; sourceTree = "<group>"; }; + 1FF8DBB01FBA9DE1009DE660 /* dummy.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = dummy.cpp; sourceTree = "<group>"; }; D07CD4331C5D573600B7FB28 /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x.png"; sourceTree = "<group>"; }; D07CD4351C5D573600B7FB28 /* Default-667h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-667h@2x.png"; sourceTree = "<group>"; }; D07CD4361C5D573600B7FB28 /* Default-Portrait-736h@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-Portrait-736h@3x.png"; sourceTree = "<group>"; }; @@ -51,24 +74,35 @@ D0BCFE3F18AEBDA2004A7AAE /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; }; D0BCFE4318AEBDA2004A7AAE /* $binary-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "$binary-Info.plist"; sourceTree = "<group>"; }; D0BCFE4518AEBDA2004A7AAE /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; }; - D0BCFE4918AEBDA2004A7AAE /* $binary-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "$binary-Prefix.pch"; sourceTree = "<group>"; }; - D0BCFE6118AEBDA3004A7AAE /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; }; D0BCFE7718AEBFEB004A7AAE /* $binary.pck */ = {isa = PBXFileReference; lastKnownFileType = file; path = $binary.pck; sourceTree = "<group>"; }; - D0BCFE7918AEC06A004A7AAE /* $binary.iphone */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.executable"; path = $binary.iphone; sourceTree = "<group>"; }; /* End PBXFileReference section */ + $additional_pbx_files + /* Begin PBXFrameworksBuildPhase section */ D0BCFE3118AEBDA2004A7AAE /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D0BCFE3A18AEBDA2004A7AAE /* CoreGraphics.framework in Frameworks */, + 1FE926991FBBF85400F53A6F /* SystemConfiguration.framework in Frameworks */, + 1FE9269A1FBBF85F00F53A6F /* Security.framework in Frameworks */, + 1FE9269B1FBBF86200F53A6F /* QuartzCore.framework in Frameworks */, + 1FE9269C1FBBF86500F53A6F /* MediaPlayer.framework in Frameworks */, + 1FE9269D1FBBF86600F53A6F /* GameController.framework in Frameworks */, + 1FE9269E1FBBF86900F53A6F /* CoreMotion.framework in Frameworks */, + 1FE9269F1FBBF86B00F53A6F /* CoreMedia.framework in Frameworks */, + 1FE926A11FBBF86D00F53A6F /* CoreAudio.framework in Frameworks */, + 1FE926A01FBBF86D00F53A6F /* AudioToolbox.framework in Frameworks */, D0BCFE4018AEBDA2004A7AAE /* OpenGLES.framework in Frameworks */, 1FF4C1871F584E5600A41E41 /* StoreKit.framework in Frameworks */, - D0BCFE3A18AEBDA2004A7AAE /* CoreGraphics.framework in Frameworks */, + 1FF4C1871F584E7600A41E41 /* AVFoundation.framework in Frameworks */, D0BCFE3C18AEBDA2004A7AAE /* UIKit.framework in Frameworks */, 1FF4C1851F584E3F00A41E41 /* GameKit.framework in Frameworks */, D0BCFE3E18AEBDA2004A7AAE /* GLKit.framework in Frameworks */, D0BCFE3818AEBDA2004A7AAE /* Foundation.framework in Frameworks */, + DEADBEEF2F582BE20003B888 /* $binary.a */, + $additional_pbx_frameworks_build ); runOnlyForDeploymentPostprocessing = 0; }; @@ -79,11 +113,11 @@ isa = PBXGroup; children = ( 1F1575711F582BE20003B888 /* dylibs */, - D0BCFE7918AEC06A004A7AAE /* $binary.iphone */, D0BCFE7718AEBFEB004A7AAE /* $binary.pck */, D0BCFE4118AEBDA2004A7AAE /* $binary */, D0BCFE3618AEBDA2004A7AAE /* Frameworks */, D0BCFE3518AEBDA2004A7AAE /* Products */, + $additional_pbx_resources_refs ); sourceTree = "<group>"; }; @@ -98,14 +132,25 @@ D0BCFE3618AEBDA2004A7AAE /* Frameworks */ = { isa = PBXGroup; children = ( + 1FE926961FBBF7D400F53A6F /* SystemConfiguration.framework */, + 1FE926951FBBF7C400F53A6F /* Security.framework */, + 1FE926941FBBF7BD00F53A6F /* QuartzCore.framework */, + 1FE926931FBBF7AD00F53A6F /* MediaPlayer.framework */, + 1FE926921FBBF7A000F53A6F /* GameController.framework */, + 1FE926911FBBF79500F53A6F /* CoreMotion.framework */, + 1FE926901FBBF78E00F53A6F /* CoreMedia.framework */, + 1FE9268F1FBBF77F00F53A6F /* CoreAudio.framework */, + 1FE9268E1FBBF77300F53A6F /* AudioToolbox.framework */, 1FF4C1861F584E5600A41E41 /* StoreKit.framework */, 1FF4C1841F584E3F00A41E41 /* GameKit.framework */, + 1FF4C1881F584E7600A41E41 /* AVFoundation.framework */, D0BCFE3718AEBDA2004A7AAE /* Foundation.framework */, D0BCFE3918AEBDA2004A7AAE /* CoreGraphics.framework */, D0BCFE3B18AEBDA2004A7AAE /* UIKit.framework */, D0BCFE3D18AEBDA2004A7AAE /* GLKit.framework */, D0BCFE3F18AEBDA2004A7AAE /* OpenGLES.framework */, - D0BCFE6118AEBDA3004A7AAE /* XCTest.framework */, + DEADBEEF1F582BE20003B888 /* $binary.a */, + $additional_pbx_frameworks_refs ); name = Frameworks; sourceTree = "<group>"; @@ -124,6 +169,7 @@ D07CD43C1C5D573600B7FB28 /* Default-Portrait-1366h@2x.png */, D07CD44D1C5D589C00B7FB28 /* Images.xcassets */, D0BCFE4218AEBDA2004A7AAE /* Supporting Files */, + 1FF8DBB01FBA9DE1009DE660 /* dummy.cpp */, ); path = $binary; sourceTree = "<group>"; @@ -133,7 +179,6 @@ children = ( D0BCFE4318AEBDA2004A7AAE /* $binary-Info.plist */, D0BCFE4418AEBDA2004A7AAE /* InfoPlist.strings */, - D0BCFE4918AEBDA2004A7AAE /* $binary-Prefix.pch */, ); name = "Supporting Files"; sourceTree = "<group>"; @@ -218,7 +263,7 @@ D07CD4421C5D573600B7FB28 /* Default-Portrait-736h@3x.png in Resources */, D07CD4481C5D573600B7FB28 /* Default-Portrait-1366h@2x.png in Resources */, D0BCFE4618AEBDA2004A7AAE /* InfoPlist.strings in Resources */, - D0BCFE7A18AEC06A004A7AAE /* $binary.iphone in Resources */, + $additional_pbx_resources_build ); runOnlyForDeploymentPostprocessing = 0; }; @@ -229,6 +274,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 1FF8DBB11FBA9DE1009DE660 /* dummy.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -250,7 +296,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)"; + ARCHS = "$godot_archs"; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; @@ -265,6 +311,8 @@ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "$code_sign_identity_debug"; COPY_PHASE_STRIP = NO; + ENABLE_BITCODE = NO; + "FRAMEWORK_SEARCH_PATHS[arch=*]" = "$binary"; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_OPTIMIZATION_LEVEL = 0; @@ -280,7 +328,7 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 9.0; - ONLY_ACTIVE_ARCH = YES; + OTHER_LDFLAGS = "$linker_flags"; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; }; @@ -290,7 +338,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)"; + ARCHS = "$godot_archs"; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; @@ -306,6 +354,8 @@ CODE_SIGN_IDENTITY = "$code_sign_identity_release"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "$code_sign_identity_release"; COPY_PHASE_STRIP = YES; + ENABLE_BITCODE = NO; + "FRAMEWORK_SEARCH_PATHS[arch=*]" = "$binary"; ENABLE_NS_ASSERTIONS = NO; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; @@ -315,6 +365,7 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 9.0; + OTHER_LDFLAGS = "$linker_flags"; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; @@ -324,26 +375,23 @@ D0BCFE7218AEBDA3004A7AAE /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD)"; + ARCHS = "$godot_archs"; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_ENTITLEMENTS = $binary/$binary.entitlements; CODE_SIGN_IDENTITY = "$code_sign_identity_debug"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "$code_sign_identity_debug"; CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)"; DEVELOPMENT_TEAM = $team_id; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "$binary/$binary-Prefix.pch"; INFOPLIST_FILE = "$binary/$binary-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 9.0; LIBRARY_SEARCH_PATHS = ( "$(inherited)", - "$(PROJECT_DIR)/dylibs", ); PRODUCT_BUNDLE_IDENTIFIER = $identifier; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE = "$provisioning_profile_uuid_debug"; TARGETED_DEVICE_FAMILY = "1,2"; - VALID_ARCHS = "armv7 armv7s"; + VALID_ARCHS = "armv7 armv7s arm64 i386 x86_64"; WRAPPER_EXTENSION = app; }; name = Debug; @@ -351,26 +399,23 @@ D0BCFE7318AEBDA3004A7AAE /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD)"; + ARCHS = "$godot_archs"; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_ENTITLEMENTS = $binary/$binary.entitlements; CODE_SIGN_IDENTITY = "$code_sign_identity_release"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "$code_sign_identity_release"; CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)"; DEVELOPMENT_TEAM = $team_id; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "$binary/$binary-Prefix.pch"; INFOPLIST_FILE = "$binary/$binary-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 9.0; LIBRARY_SEARCH_PATHS = ( "$(inherited)", - "$(PROJECT_DIR)/dylibs", ); PRODUCT_BUNDLE_IDENTIFIER = $identifier; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE = "$provisioning_profile_uuid_release"; TARGETED_DEVICE_FAMILY = "1,2"; - VALID_ARCHS = "armv7 armv7s"; + VALID_ARCHS = "armv7 armv7s arm64 i386 x86_64"; WRAPPER_EXTENSION = app; }; name = Release; diff --git a/misc/dist/ios_xcode/godot_ios/dummy.cpp b/misc/dist/ios_xcode/godot_ios/dummy.cpp new file mode 100644 index 0000000000..78ec87fc10 --- /dev/null +++ b/misc/dist/ios_xcode/godot_ios/dummy.cpp @@ -0,0 +1 @@ +$cpp_code
\ No newline at end of file diff --git a/misc/dist/ios_xcode/godot_ios/dylibs/empty b/misc/dist/ios_xcode/godot_ios/dylibs/empty new file mode 100644 index 0000000000..4b5614362b --- /dev/null +++ b/misc/dist/ios_xcode/godot_ios/dylibs/empty @@ -0,0 +1 @@ +Dummy file to make dylibs folder exported
\ No newline at end of file diff --git a/misc/dist/ios_xcode/export_options.plist b/misc/dist/ios_xcode/godot_ios/export_options.plist index 86d89a6e42..3878a4dbe6 100644 --- a/misc/dist/ios_xcode/export_options.plist +++ b/misc/dist/ios_xcode/godot_ios/export_options.plist @@ -4,7 +4,17 @@ <dict> <key>method</key> <string>$export_method</string> + <key>teamID</key> <string>$team_id</string> + + <key>provisioningProfiles</key> + <dict> + <key>$identifier</key> + <string>$provisioning_profile_uuid</string> + </dict> + + <key>compileBitcode</key> + <false/> </dict> </plist>
\ No newline at end of file diff --git a/misc/dist/ios_xcode/godot_ios/godot_ios-Info.plist b/misc/dist/ios_xcode/godot_ios/godot_ios-Info.plist index 1531a41bd0..70932c1943 100644 --- a/misc/dist/ios_xcode/godot_ios/godot_ios-Info.plist +++ b/misc/dist/ios_xcode/godot_ios/godot_ios-Info.plist @@ -7,7 +7,7 @@ <key>CFBundleDisplayName</key> <string>$name</string> <key>CFBundleExecutable</key> - <string>$binary.iphone</string> + <string>$binary</string> <key>CFBundleIcons</key> <dict/> <key>CFBundleIcons~ipad</key> @@ -47,5 +47,6 @@ <string>UIInterfaceOrientationLandscapeLeft</string> <string>UIInterfaceOrientationLandscapeRight</string> </array> + $additional_plist_content </dict> </plist> diff --git a/misc/dist/ios_xcode/godot.iphone.debug.arm b/misc/dist/ios_xcode/libgodot.iphone.debug.fat.a index e69de29bb2..e69de29bb2 100755..100644 --- a/misc/dist/ios_xcode/godot.iphone.debug.arm +++ b/misc/dist/ios_xcode/libgodot.iphone.debug.fat.a diff --git a/misc/dist/ios_xcode/godot.iphone.debug.arm64 b/misc/dist/ios_xcode/libgodot.iphone.release.fat.a index e69de29bb2..e69de29bb2 100755..100644 --- a/misc/dist/ios_xcode/godot.iphone.debug.arm64 +++ b/misc/dist/ios_xcode/libgodot.iphone.release.fat.a diff --git a/modules/bullet/rigid_body_bullet.cpp b/modules/bullet/rigid_body_bullet.cpp index 98ae82bc5f..f5ab8221e3 100644 --- a/modules/bullet/rigid_body_bullet.cpp +++ b/modules/bullet/rigid_body_bullet.cpp @@ -511,12 +511,14 @@ void RigidBodyBullet::set_mode(PhysicsServer::BodyMode p_mode) { mode = PhysicsServer::BODY_MODE_RIGID; set_axis_lock(axis_lock); // Reload axis lock _internal_set_mass(0 == mass ? 1 : mass); + scratch_space_override_modificator(); break; } case PhysicsServer::BODY_MODE_CHARACTER: { mode = PhysicsServer::BODY_MODE_CHARACTER; set_axis_lock(axis_lock); // Reload axis lock _internal_set_mass(0 == mass ? 1 : mass); + scratch_space_override_modificator(); break; } } diff --git a/modules/bullet/space_bullet.cpp b/modules/bullet/space_bullet.cpp index e4d049b00d..853906063b 100644 --- a/modules/bullet/space_bullet.cpp +++ b/modules/bullet/space_bullet.cpp @@ -175,13 +175,13 @@ bool BulletPhysicsDirectSpaceState::cast_motion(const RID &p_shape, const Transf space->dynamicsWorld->convexSweepTest(bt_convex_shape, bt_xform_from, bt_xform_to, btResult, 0.002); - if (r_info) { - if (btResult.hasHit()) { + if (btResult.hasHit()) { + p_closest_safe = p_closest_unsafe = btResult.m_closestHitFraction; + if (r_info) { if (btCollisionObject::CO_RIGID_BODY == btResult.m_hitCollisionObject->getInternalType()) { B_TO_G(static_cast<const btRigidBody *>(btResult.m_hitCollisionObject)->getVelocityInLocalPoint(btResult.m_hitPointWorld), r_info->linear_velocity); } CollisionObjectBullet *collision_object = static_cast<CollisionObjectBullet *>(btResult.m_hitCollisionObject->getUserPointer()); - p_closest_safe = p_closest_unsafe = btResult.m_closestHitFraction; B_TO_G(btResult.m_hitPointWorld, r_info->point); B_TO_G(btResult.m_hitNormalWorld, r_info->normal); r_info->rid = collision_object->get_self(); diff --git a/modules/etc/image_etc.cpp b/modules/etc/image_etc.cpp index dc7d23bbd7..941df41694 100644 --- a/modules/etc/image_etc.cpp +++ b/modules/etc/image_etc.cpp @@ -129,7 +129,7 @@ static void _compress_etc(Image *p_img, float p_lossy_quality, bool force_etc1_f PoolVector<uint8_t>::Read r = img->get_data().read(); int target_size = Image::get_image_data_size(imgw, imgh, etc_format, p_img->has_mipmaps() ? -1 : 0); - int mmc = p_img->has_mipmaps() ? Image::get_image_required_mipmaps(imgw, imgh, etc_format) : 0; + int mmc = 1 + (p_img->has_mipmaps() ? Image::get_image_required_mipmaps(imgw, imgh, etc_format) : 0); PoolVector<uint8_t> dst_data; dst_data.resize(target_size); @@ -155,7 +155,7 @@ static void _compress_etc(Image *p_img, float p_lossy_quality, bool force_etc1_f print_line("begin encoding, format: " + Image::get_format_name(etc_format)); uint64_t t = OS::get_singleton()->get_ticks_msec(); - for (int i = 0; i < mmc + 1; i++) { + for (int i = 0; i < mmc; i++) { // convert source image to internal etc2comp format (which is equivalent to Image::FORMAT_RGBAF) // NOTE: We can alternatively add a case to Image::convert to handle Image::FORMAT_RGBAF conversion. int mipmap_ofs = 0, mipmap_size = 0, mipmap_w = 0, mipmap_h = 0; @@ -163,9 +163,9 @@ static void _compress_etc(Image *p_img, float p_lossy_quality, bool force_etc1_f const uint8_t *src = &r[mipmap_ofs]; Etc::ColorFloatRGBA *src_rgba_f = new Etc::ColorFloatRGBA[mipmap_w * mipmap_h]; - for (int i = 0; i < mipmap_w * mipmap_h; i++) { - int si = i * 4; // RGBA8 - src_rgba_f[i] = Etc::ColorFloatRGBA::ConvertFromRGBA8(src[si], src[si + 1], src[si + 2], src[si + 3]); + for (int j = 0; j < mipmap_w * mipmap_h; j++) { + int si = j * 4; // RGBA8 + src_rgba_f[j] = Etc::ColorFloatRGBA::ConvertFromRGBA8(src[si], src[si + 1], src[si + 2], src[si + 3]); } unsigned char *etc_data = NULL; @@ -173,15 +173,17 @@ static void _compress_etc(Image *p_img, float p_lossy_quality, bool force_etc1_f unsigned int extended_width = 0, extended_height = 0; Etc::Encode((float *)src_rgba_f, mipmap_w, mipmap_h, etc2comp_etc_format, error_metric, effort, num_cpus, num_cpus, &etc_data, &etc_data_len, &extended_width, &extended_height, &encoding_time); + CRASH_COND(wofs + etc_data_len > target_size); memcpy(&w[wofs], etc_data, etc_data_len); wofs += etc_data_len; delete[] etc_data; delete[] src_rgba_f; } + print_line("time encoding: " + rtos(OS::get_singleton()->get_ticks_msec() - t)); - p_img->create(imgw, imgh, mmc > 1 ? true : false, etc_format, dst_data); + p_img->create(imgw, imgh, p_img->has_mipmaps(), etc_format, dst_data); } static void _compress_etc1(Image *p_img, float p_lossy_quality) { diff --git a/modules/gdnative/SCsub b/modules/gdnative/SCsub index 66b8d5cbdd..54d0672a5b 100644 --- a/modules/gdnative/SCsub +++ b/modules/gdnative/SCsub @@ -19,19 +19,27 @@ def _spaced(e): return e if e[-1] == '*' else e + ' ' def _build_gdnative_api_struct_header(api): - ext_wrappers = '' + gdnative_api_init_macro = [ + '\textern const godot_gdnative_core_api_struct *_gdnative_wrapper_api_struct;' + ] for name in api['extensions']: - ext_wrappers += ' extern const godot_gdnative_ext_' + name + '_api_struct *_gdnative_wrapper_' + name + '_api_struct;' + gdnative_api_init_macro.append( + '\textern const godot_gdnative_ext_{0}_api_struct *_gdnative_wrapper_{0}_api_struct;'.format(name)) - ext_init = 'for (int i = 0; i < _gdnative_wrapper_api_struct->num_extensions; i++) { ' - ext_init += 'switch (_gdnative_wrapper_api_struct->extensions[i]->type) {' + gdnative_api_init_macro.append('\t_gdnative_wrapper_api_struct = options->api_struct;') + gdnative_api_init_macro.append('\tfor (int i = 0; i < _gdnative_wrapper_api_struct->num_extensions; i++) { ') + gdnative_api_init_macro.append('\t\tswitch (_gdnative_wrapper_api_struct->extensions[i]->type) {') for name in api['extensions']: - ext_init += 'case GDNATIVE_EXT_' + api['extensions'][name]['type'] + ': ' - ext_init += '_gdnative_wrapper_' + name + '_api_struct = (' + 'godot_gdnative_ext_' + name + '_api_struct *) _gdnative_wrapper_api_struct->extensions[i]; break;' - - ext_init += '}' + gdnative_api_init_macro.append( + '\t\t\tcase GDNATIVE_EXT_%s:' % api['extensions'][name]['type']) + gdnative_api_init_macro.append( + '\t\t\t\t_gdnative_wrapper_{0}_api_struct = (godot_gdnative_ext_{0}_api_struct *)' + ' _gdnative_wrapper_api_struct->extensions[i];'.format(name)) + gdnative_api_init_macro.append('\t\t\t\tbreak;') + gdnative_api_init_macro.append('\t\t}') + gdnative_api_init_macro.append('\t}') out = [ '/* THIS FILE IS GENERATED DO NOT EDIT */', @@ -43,25 +51,12 @@ def _build_gdnative_api_struct_header(api): '#include <nativescript/godot_nativescript.h>', '#include <pluginscript/godot_pluginscript.h>', '', - '#define GDNATIVE_API_INIT(options) do { extern const godot_gdnative_api_struct *_gdnative_wrapper_api_struct;' + ext_wrappers + ' _gdnative_wrapper_api_struct = options->api_struct; ' + ext_init + ' } while (0)', + '#define GDNATIVE_API_INIT(options) do { \\\n' + ' \\\n'.join(gdnative_api_init_macro) + ' \\\n } while (0)', '', '#ifdef __cplusplus', 'extern "C" {', '#endif', '', - 'typedef struct godot_gdnative_api_version {', - '\tunsigned int major;', - '\tunsigned int minor;', - '} godot_gdnative_api_version;', - '', - 'typedef struct godot_gdnative_api_struct godot_gdnative_api_struct;', - '', - 'struct godot_gdnative_api_struct {', - '\tunsigned int type;', - '\tgodot_gdnative_api_version version;', - '\tconst godot_gdnative_api_struct *next;', - '};', - '', 'enum GDNATIVE_API_TYPES {', '\tGDNATIVE_' + api['core']['type'] + ',' ] @@ -192,7 +187,7 @@ def _build_gdnative_wrapper_code(api): ] for name in api['extensions']: - out.append('godot_gdnative_ext_' + name + '_api_struct *_gdnative_wrapper_' + name + '_api_struct;') + out.append('godot_gdnative_ext_' + name + '_api_struct *_gdnative_wrapper_' + name + '_api_struct = 0;') out += [''] diff --git a/modules/gdnative/gdnative.cpp b/modules/gdnative/gdnative.cpp index 44d6dffc85..0132ef3c5d 100644 --- a/modules/gdnative/gdnative.cpp +++ b/modules/gdnative/gdnative.cpp @@ -64,7 +64,6 @@ void GDNativeLibrary::_bind_methods() { ClassDB::bind_method(D_METHOD("get_current_library_path"), &GDNativeLibrary::get_current_library_path); ClassDB::bind_method(D_METHOD("get_current_dependencies"), &GDNativeLibrary::get_current_dependencies); - ClassDB::bind_method(D_METHOD("is_current_library_statically_linked"), &GDNativeLibrary::is_current_library_statically_linked); ClassDB::bind_method(D_METHOD("should_load_once"), &GDNativeLibrary::should_load_once); ClassDB::bind_method(D_METHOD("is_singleton"), &GDNativeLibrary::is_singleton); @@ -109,6 +108,9 @@ Ref<GDNativeLibrary> GDNative::get_library() { return library; } +extern "C" void _gdnative_report_version_mismatch(const godot_object *p_library, const char *p_ext, godot_gdnative_api_version p_want, godot_gdnative_api_version p_have); +extern "C" void _gdnative_report_loading_error(const godot_object *p_library, const char *p_what); + bool GDNative::initialize() { if (library.is_null()) { ERR_PRINT("No library set, can't initialize GDNative object"); @@ -116,12 +118,18 @@ bool GDNative::initialize() { } String lib_path = library->get_current_library_path(); - if (lib_path.empty() && !library->is_current_library_statically_linked()) { + if (lib_path.empty()) { ERR_PRINT("No library set for this platform"); return false; } #ifdef IPHONE_ENABLED - String path = lib_path.replace("res://", "dylibs/"); + // on iOS we use static linking + String path = ""; +#elif defined(ANDROID_ENABLED) + // On Android dynamic libraries are located separately from resource assets, + // we should pass library name to dlopen(). The library name is flattened + // during export. + String path = lib_path.get_file(); #else String path = ProjectSettings::get_singleton()->globalize_path(lib_path); #endif @@ -137,7 +145,7 @@ bool GDNative::initialize() { } Error err = OS::get_singleton()->open_dynamic_library(path, native_handle); - if (err != OK && !library->is_current_library_statically_linked()) { + if (err != OK) { return false; } @@ -146,13 +154,12 @@ bool GDNative::initialize() { // we cheat here a little bit. you saw nothing initialized = true; - err = get_symbol(library->get_symbol_prefix() + init_symbol, library_init); + err = get_symbol(library->get_symbol_prefix() + init_symbol, library_init, false); initialized = false; if (err || !library_init) { - if (!library->is_current_library_statically_linked()) - OS::get_singleton()->close_dynamic_library(native_handle); + OS::get_singleton()->close_dynamic_library(native_handle); native_handle = NULL; ERR_PRINT("Failed to obtain godot_gdnative_init symbol"); return false; @@ -168,6 +175,8 @@ bool GDNative::initialize() { options.core_api_hash = ClassDB::get_api_hash(ClassDB::API_CORE); options.editor_api_hash = ClassDB::get_api_hash(ClassDB::API_EDITOR); options.no_api_hash = ClassDB::get_api_hash(ClassDB::API_NONE); + options.report_version_mismatch = &_gdnative_report_version_mismatch; + options.report_loading_error = &_gdnative_report_loading_error; options.gd_native_library = (godot_object *)(get_library().ptr()); options.active_library_path = (godot_string *)&path; @@ -277,7 +286,7 @@ Variant GDNative::call_native(StringName p_native_call_type, StringName p_proced return *(Variant *)&result; } -Error GDNative::get_symbol(StringName p_procedure_name, void *&r_handle) { +Error GDNative::get_symbol(StringName p_procedure_name, void *&r_handle, bool p_optional) { if (!initialized) { ERR_PRINT("No valid library handle, can't get symbol from GDNative object"); @@ -288,7 +297,7 @@ Error GDNative::get_symbol(StringName p_procedure_name, void *&r_handle) { native_handle, p_procedure_name, r_handle, - true); + p_optional); return result; } @@ -369,40 +378,8 @@ RES GDNativeLibraryResourceLoader::load(const String &p_path, const String &p_or } } - bool is_statically_linked = false; - { - - List<String> static_linking_keys; - config->get_section_keys("static_linking", &static_linking_keys); - - for (List<String>::Element *E = static_linking_keys.front(); E; E = E->next()) { - String key = E->get(); - - Vector<String> tags = key.split("."); - - bool skip = false; - - for (int i = 0; i < tags.size(); i++) { - bool has_feature = OS::get_singleton()->has_feature(tags[i]); - - if (!has_feature) { - skip = true; - break; - } - } - - if (skip) { - continue; - } - - is_statically_linked = config->get_value("static_linking", key); - break; - } - } - lib->current_library_path = entry_lib_path; lib->current_dependencies = dependency_paths; - lib->current_library_statically_linked = is_statically_linked; return lib; } diff --git a/modules/gdnative/gdnative.h b/modules/gdnative/gdnative.h index 061dff9267..bb260bdd1b 100644 --- a/modules/gdnative/gdnative.h +++ b/modules/gdnative/gdnative.h @@ -55,7 +55,6 @@ class GDNativeLibrary : public Resource { String current_library_path; Vector<String> current_dependencies; - bool current_library_statically_linked; bool singleton; bool load_once; @@ -75,9 +74,6 @@ public: _FORCE_INLINE_ Vector<String> get_current_dependencies() const { return current_dependencies; } - _FORCE_INLINE_ bool is_current_library_statically_linked() const { - return current_library_statically_linked; - } // things that are a property of the library itself, not platform specific _FORCE_INLINE_ bool should_load_once() const { @@ -103,12 +99,10 @@ public: static void _bind_methods(); }; -typedef godot_variant (*native_call_cb)(void *, godot_array *); - struct GDNativeCallRegistry { static GDNativeCallRegistry *singleton; - inline GDNativeCallRegistry *get_singleton() { + inline static GDNativeCallRegistry *get_singleton() { return singleton; } @@ -147,7 +141,7 @@ public: Variant call_native(StringName p_native_call_type, StringName p_procedure_name, Array p_arguments = Array()); - Error get_symbol(StringName p_procedure_name, void *&r_handle); + Error get_symbol(StringName p_procedure_name, void *&r_handle, bool p_optional = true); }; class GDNativeLibraryResourceLoader : public ResourceFormatLoader { diff --git a/modules/gdnative/gdnative/array.cpp b/modules/gdnative/gdnative/array.cpp index e0d9514985..8351c43574 100644 --- a/modules/gdnative/gdnative/array.cpp +++ b/modules/gdnative/gdnative/array.cpp @@ -302,6 +302,17 @@ void GDAPI godot_array_sort_custom(godot_array *p_self, godot_object *p_obj, con self->sort_custom((Object *)p_obj, *func); } +godot_int GDAPI godot_array_bsearch(godot_array *p_self, const godot_variant *p_value, const godot_bool p_before) { + Array *self = (Array *)p_self; + return self->bsearch((const Variant *)p_value, p_before); +} + +godot_int GDAPI godot_array_bsearch_custom(godot_array *p_self, const godot_variant *p_value, godot_object *p_obj, const godot_string *p_func, const godot_bool p_before) { + Array *self = (Array *)p_self; + const String *func = (const String *)p_func; + return self->bsearch_custom((const Variant *)p_value, (Object *)p_obj, *func, p_before); +} + void GDAPI godot_array_destroy(godot_array *p_self) { ((Array *)p_self)->~Array(); } diff --git a/modules/gdnative/gdnative/gdnative.cpp b/modules/gdnative/gdnative/gdnative.cpp index 6dfa7ec20b..92a88e354b 100644 --- a/modules/gdnative/gdnative/gdnative.cpp +++ b/modules/gdnative/gdnative/gdnative.cpp @@ -36,6 +36,8 @@ #include "os/os.h" #include "variant.h" +#include "modules/gdnative/gdnative.h" + #ifdef __cplusplus extern "C" { #endif @@ -113,6 +115,10 @@ godot_dictionary GDAPI godot_get_global_constants() { } // System functions +void GDAPI godot_register_native_call_type(const char *p_call_type, native_call_cb p_callback) { + GDNativeCallRegistry::get_singleton()->register_native_call_type(StringName(p_call_type), p_callback); +} + void GDAPI *godot_alloc(int p_bytes) { return memalloc(p_bytes); } @@ -137,6 +143,32 @@ void GDAPI godot_print(const godot_string *p_message) { print_line(*(String *)p_message); } +void _gdnative_report_version_mismatch(const godot_object *p_library, const char *p_ext, godot_gdnative_api_version p_want, godot_gdnative_api_version p_have) { + String message = "Error loading GDNative file "; + GDNativeLibrary *library = (GDNativeLibrary *)p_library; + + message += library->get_current_library_path() + ": Extension \"" + p_ext + "\" can't be loaded.\n"; + + Dictionary versions; + versions["have_major"] = p_have.major; + versions["have_minor"] = p_have.minor; + versions["want_major"] = p_want.major; + versions["want_minor"] = p_want.minor; + + message += String("Got version {have_major}.{have_minor} but needs {want_major}.{want_minor}!").format(versions); + + _err_print_error("gdnative_init", library->get_current_library_path().utf8().ptr(), 0, message.utf8().ptr()); +} + +void _gdnative_report_loading_error(const godot_object *p_library, const char *p_what) { + String message = "Error loading GDNative file "; + GDNativeLibrary *library = (GDNativeLibrary *)p_library; + + message += library->get_current_library_path() + ": " + p_what; + + _err_print_error("gdnative_init", library->get_current_library_path().utf8().ptr(), 0, message.utf8().ptr()); +} + #ifdef __cplusplus } #endif diff --git a/modules/gdnative/gdnative/node_path.cpp b/modules/gdnative/gdnative/node_path.cpp index 2bd278e050..8dfe151f91 100644 --- a/modules/gdnative/gdnative/node_path.cpp +++ b/modules/gdnative/gdnative/node_path.cpp @@ -91,10 +91,10 @@ godot_string GDAPI godot_node_path_get_subname(const godot_node_path *p_self, co return dest; } -godot_string GDAPI godot_node_path_get_property(const godot_node_path *p_self) { +godot_string GDAPI godot_node_path_get_concatenated_subnames(const godot_node_path *p_self) { godot_string dest; const NodePath *self = (const NodePath *)p_self; - memnew_placement(&dest, String(self->get_property())); + memnew_placement(&dest, String(self->get_concatenated_subnames())); return dest; } diff --git a/modules/gdnative/gdnative/string.cpp b/modules/gdnative/gdnative/string.cpp index 781b8754bd..67a037736c 100644 --- a/modules/gdnative/gdnative/string.cpp +++ b/modules/gdnative/gdnative/string.cpp @@ -89,11 +89,6 @@ wchar_t GDAPI godot_string_operator_index_const(const godot_string *p_self, cons return self->operator[](p_idx); } -const char GDAPI *godot_string_c_str(const godot_string *p_self) { - const String *self = (const String *)p_self; - return self->utf8().get_data(); -} - const wchar_t GDAPI *godot_string_unicode_str(const godot_string *p_self) { const String *self = (const String *)p_self; return self->c_str(); diff --git a/modules/gdnative/gdnative_api.json b/modules/gdnative/gdnative_api.json index 877c65dfb9..488ed93206 100644 --- a/modules/gdnative/gdnative_api.json +++ b/modules/gdnative/gdnative_api.json @@ -2680,6 +2680,26 @@ ] }, { + "name": "godot_array_bsearch", + "return_type": "godot_int", + "arguments": [ + ["godot_array *", "p_self"], + ["const godot_variant *", "p_value"], + ["const godot_bool", "p_before"] + ] + }, + { + "name": "godot_array_bsearch_custom", + "return_type": "godot_int", + "arguments": [ + ["godot_array *", "p_self"], + ["const godot_variant *", "p_value"], + ["godot_object *", "p_obj"], + ["const godot_string *", "p_func"], + ["const godot_bool", "p_before"] + ] + }, + { "name": "godot_array_destroy", "return_type": "void", "arguments": [ @@ -2898,7 +2918,7 @@ ] }, { - "name": "godot_node_path_get_property", + "name": "godot_node_path_get_concatenated_subnames", "return_type": "godot_string", "arguments": [ ["const godot_node_path *", "p_self"] @@ -4362,13 +4382,6 @@ ] }, { - "name": "godot_string_c_str", - "return_type": "const char *", - "arguments": [ - ["const godot_string *", "p_self"] - ] - }, - { "name": "godot_string_unicode_str", "return_type": "const wchar_t *", "arguments": [ @@ -5556,6 +5569,14 @@ ] }, { + "name": "godot_register_native_call_type", + "return_type": "void", + "arguments": [ + ["const char *", "call_type"], + ["native_call_cb", "p_callback"] + ] + }, + { "name": "godot_alloc", "return_type": "void *", "arguments": [ diff --git a/modules/gdnative/include/gdnative/array.h b/modules/gdnative/include/gdnative/array.h index 01ae61e280..484ffd10ba 100644 --- a/modules/gdnative/include/gdnative/array.h +++ b/modules/gdnative/include/gdnative/array.h @@ -124,6 +124,10 @@ void GDAPI godot_array_sort(godot_array *p_self); void GDAPI godot_array_sort_custom(godot_array *p_self, godot_object *p_obj, const godot_string *p_func); +godot_int GDAPI godot_array_bsearch(godot_array *p_self, const godot_variant *p_value, const godot_bool p_before); + +godot_int GDAPI godot_array_bsearch_custom(godot_array *p_self, const godot_variant *p_value, godot_object *p_obj, const godot_string *p_func, const godot_bool p_before); + void GDAPI godot_array_destroy(godot_array *p_self); #ifdef __cplusplus diff --git a/modules/gdnative/include/gdnative/gdnative.h b/modules/gdnative/include/gdnative/gdnative.h index 38a42ab658..6e69d43469 100644 --- a/modules/gdnative/include/gdnative/gdnative.h +++ b/modules/gdnative/include/gdnative/gdnative.h @@ -53,7 +53,7 @@ extern "C" { // This is for libraries *using* the header, NOT GODOT EXPOSING STUFF!! #ifdef _WIN32 -#define GDN_EXPORT +#define GDN_EXPORT __declspec(dllexport) #else #define GDN_EXPORT #endif @@ -229,13 +229,28 @@ void GDAPI godot_method_bind_ptrcall(godot_method_bind *p_method_bind, godot_obj godot_variant GDAPI godot_method_bind_call(godot_method_bind *p_method_bind, godot_object *p_instance, const godot_variant **p_args, const int p_arg_count, godot_variant_call_error *p_call_error); ////// Script API -struct godot_gdnative_api_struct; // Forward declaration +typedef struct godot_gdnative_api_version { + unsigned int major; + unsigned int minor; +} godot_gdnative_api_version; + +typedef struct godot_gdnative_api_struct godot_gdnative_api_struct; + +struct godot_gdnative_api_struct { + unsigned int type; + godot_gdnative_api_version version; + const godot_gdnative_api_struct *next; +}; + +#define GDNATIVE_VERSION_COMPATIBLE(want, have) (want.major == have.major && want.minor <= have.minor) typedef struct { godot_bool in_editor; uint64_t core_api_hash; uint64_t editor_api_hash; uint64_t no_api_hash; + void (*report_version_mismatch)(const godot_object *p_library, const char *p_what, godot_gdnative_api_version p_want, godot_gdnative_api_version p_have); + void (*report_loading_error)(const godot_object *p_library, const char *p_what); godot_object *gd_native_library; // pointer to GDNativeLibrary that is being initialized const struct godot_gdnative_core_api_struct *api_struct; const godot_string *active_library_path; @@ -259,6 +274,9 @@ typedef godot_variant (*godot_gdnative_procedure_fn)(godot_array *); ////// System Functions +typedef godot_variant (*native_call_cb)(void *, godot_array *); +void GDAPI godot_register_native_call_type(const char *p_call_type, native_call_cb p_callback); + //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); diff --git a/modules/gdnative/include/gdnative/node_path.h b/modules/gdnative/include/gdnative/node_path.h index 42446175d8..b5a59fd325 100644 --- a/modules/gdnative/include/gdnative/node_path.h +++ b/modules/gdnative/include/gdnative/node_path.h @@ -73,7 +73,7 @@ godot_int GDAPI godot_node_path_get_subname_count(const godot_node_path *p_self) godot_string GDAPI godot_node_path_get_subname(const godot_node_path *p_self, const godot_int p_idx); -godot_string GDAPI godot_node_path_get_property(const godot_node_path *p_self); +godot_string GDAPI godot_node_path_get_concatenated_subnames(const godot_node_path *p_self); godot_bool GDAPI godot_node_path_is_empty(const godot_node_path *p_self); diff --git a/modules/gdnative/include/gdnative/string.h b/modules/gdnative/include/gdnative/string.h index cca3eb2672..10358ceade 100644 --- a/modules/gdnative/include/gdnative/string.h +++ b/modules/gdnative/include/gdnative/string.h @@ -68,7 +68,6 @@ void GDAPI godot_string_get_data(const godot_string *p_self, char *p_dest, int * wchar_t GDAPI *godot_string_operator_index(godot_string *p_self, const godot_int p_idx); wchar_t GDAPI godot_string_operator_index_const(const godot_string *p_self, const godot_int p_idx); -const char GDAPI *godot_string_c_str(const godot_string *p_self); const wchar_t GDAPI *godot_string_unicode_str(const godot_string *p_self); godot_bool GDAPI godot_string_operator_equal(const godot_string *p_self, const godot_string *p_b); diff --git a/modules/gdnative/register_types.cpp b/modules/gdnative/register_types.cpp index 8af643df50..34099bf528 100644 --- a/modules/gdnative/register_types.cpp +++ b/modules/gdnative/register_types.cpp @@ -123,6 +123,11 @@ protected: virtual void _export_file(const String &p_path, const String &p_type, const Set<String> &p_features); }; +struct LibrarySymbol { + char *name; + bool is_required; +}; + void GDNativeExportPlugin::_export_file(const String &p_path, const String &p_type, const Set<String> &p_features) { if (p_type != "GDNativeLibrary") { return; @@ -136,7 +141,6 @@ void GDNativeExportPlugin::_export_file(const String &p_path, const String &p_ty Ref<ConfigFile> config = lib->get_config_file(); - String entry_lib_path; { List<String> entry_keys; @@ -161,14 +165,12 @@ void GDNativeExportPlugin::_export_file(const String &p_path, const String &p_ty continue; } - entry_lib_path = config->get_value("entry", key); - break; + String entry_lib_path = config->get_value("entry", key); + add_shared_object(entry_lib_path, tags); } } - Vector<String> dependency_paths; { - List<String> dependency_keys; config->get_section_keys("dependencies", &dependency_keys); @@ -191,47 +193,54 @@ void GDNativeExportPlugin::_export_file(const String &p_path, const String &p_ty continue; } - dependency_paths = config->get_value("dependencies", key); - break; + Vector<String> dependency_paths = config->get_value("dependencies", key); + for (int i = 0; i < dependency_paths.size(); i++) { + add_shared_object(dependency_paths[i], tags); + } } } - bool is_statically_linked = false; - { - - List<String> static_linking_keys; - config->get_section_keys("static_linking", &static_linking_keys); - - for (List<String>::Element *E = static_linking_keys.front(); E; E = E->next()) { - String key = E->get(); - - Vector<String> tags = key.split("."); - - bool skip = false; - - for (int i = 0; i < tags.size(); i++) { - bool has_feature = p_features.has(tags[i]); - - if (!has_feature) { - skip = true; - break; + if (p_features.has("iOS")) { + // Register symbols in the "fake" dynamic lookup table, because dlsym does not work well on iOS. + LibrarySymbol expected_symbols[] = { + { "gdnative_init", true }, + { "gdnative_terminate", false }, + { "nativescript_init", false }, + { "nativescript_frame", false }, + { "nativescript_thread_enter", false }, + { "nativescript_thread_exit", false }, + { "gdnative_singleton", false } + }; + String declare_pattern = "extern \"C\" void $name(void)$weak;\n"; + String additional_code = "extern void register_dynamic_symbol(char *name, void *address);\n" + "extern void add_ios_init_callback(void (*cb)());\n"; + String linker_flags = ""; + for (int i = 0; i < sizeof(expected_symbols) / sizeof(expected_symbols[0]); ++i) { + String full_name = lib->get_symbol_prefix() + expected_symbols[i].name; + String code = declare_pattern.replace("$name", full_name); + code = code.replace("$weak", expected_symbols[i].is_required ? "" : " __attribute__((weak))"); + additional_code += code; + + if (!expected_symbols[i].is_required) { + if (linker_flags.length() > 0) { + linker_flags += " "; } + linker_flags += "-Wl,-U,_" + full_name; } - - if (skip) { - continue; - } - - is_statically_linked = config->get_value("static_linking", key); - break; } - } - if (!is_statically_linked) - add_shared_object(entry_lib_path); + additional_code += String("void $prefixinit() {\n").replace("$prefix", lib->get_symbol_prefix()); + String register_pattern = " if (&$name) register_dynamic_symbol((char *)\"$name\", (void *)$name);\n"; + for (int i = 0; i < sizeof(expected_symbols) / sizeof(expected_symbols[0]); ++i) { + String full_name = lib->get_symbol_prefix() + expected_symbols[i].name; + additional_code += register_pattern.replace("$name", full_name); + } + additional_code += "}\n"; + additional_code += String("struct $prefixstruct {$prefixstruct() {add_ios_init_callback($prefixinit);}};\n").replace("$prefix", lib->get_symbol_prefix()); + additional_code += String("$prefixstruct $prefixstruct_instance;\n").replace("$prefix", lib->get_symbol_prefix()); - for (int i = 0; i < dependency_paths.size(); i++) { - add_shared_object(dependency_paths[i]); + add_ios_cpp_code(additional_code); + add_ios_linker_flags(linker_flags); } } @@ -271,9 +280,7 @@ void register_gdnative_types() { #ifdef TOOLS_ENABLED - if (Engine::get_singleton()->is_editor_hint()) { - EditorNode::add_init_callback(editor_init_callback); - } + EditorNode::add_init_callback(editor_init_callback); #endif ClassDB::register_class<GDNativeLibrary>(); diff --git a/modules/gdscript/gdscript.cpp b/modules/gdscript/gdscript.cpp index 55ea8a5f24..41a810ff00 100644 --- a/modules/gdscript/gdscript.cpp +++ b/modules/gdscript/gdscript.cpp @@ -100,7 +100,7 @@ GDScriptInstance *GDScript::_create_instance(const Variant **p_args, int p_argco #endif instance->owner->set_script_instance(instance); -/* STEP 2, INITIALIZE AND CONSRTUCT */ + /* STEP 2, INITIALIZE AND CONSRTUCT */ #ifndef NO_THREADS GDScriptLanguage::singleton->lock->lock(); @@ -615,6 +615,23 @@ ScriptLanguage *GDScript::get_language() const { return GDScriptLanguage::get_singleton(); } +void GDScript::get_constants(Map<StringName, Variant> *p_constants) { + + if (p_constants) { + for (Map<StringName, Variant>::Element *E = constants.front(); E; E = E->next()) { + (*p_constants)[E->key()] = E->value(); + } + } +} + +void GDScript::get_members(Set<StringName> *p_members) { + if (p_members) { + for (Set<StringName>::Element *E = members.front(); E; E = E->next()) { + p_members->insert(E->get()); + } + } +} + Variant GDScript::call(const StringName &p_method, const Variant **p_args, int p_argcount, Variant::CallError &r_error) { GDScript *top = this; diff --git a/modules/gdscript/gdscript.h b/modules/gdscript/gdscript.h index 3f6f431938..6e5d59ad0e 100644 --- a/modules/gdscript/gdscript.h +++ b/modules/gdscript/gdscript.h @@ -198,6 +198,9 @@ public: return -1; } + virtual void get_constants(Map<StringName, Variant> *p_constants); + virtual void get_members(Set<StringName> *p_members); + GDScript(); ~GDScript(); }; @@ -219,7 +222,7 @@ class GDScriptInstance : public ScriptInstance { void _ml_call_reversed(GDScript *sptr, const StringName &p_method, const Variant **p_args, int p_argcount); public: - _FORCE_INLINE_ Object *get_owner() { return owner; } + virtual 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; @@ -407,7 +410,8 @@ public: virtual String debug_get_stack_level_source(int p_level) const; virtual void debug_get_stack_level_locals(int p_level, List<String> *p_locals, List<Variant> *p_values, int p_max_subitems = -1, int p_max_depth = -1); virtual void debug_get_stack_level_members(int p_level, List<String> *p_members, List<Variant> *p_values, int p_max_subitems = -1, int p_max_depth = -1); - virtual void debug_get_globals(List<String> *p_locals, List<Variant> *p_values, int p_max_subitems = -1, int p_max_depth = -1); + virtual ScriptInstance *debug_get_stack_level_instance(int p_level); + virtual void debug_get_globals(List<String> *p_globals, List<Variant> *p_values, int p_max_subitems = -1, int p_max_depth = -1); virtual String debug_parse_stack_level_expression(int p_level, const String &p_expression, int p_max_subitems = -1, int p_max_depth = -1); virtual void reload_all_scripts(); diff --git a/modules/gdscript/gdscript_compiler.cpp b/modules/gdscript/gdscript_compiler.cpp index 3121a61436..4cd6472b7f 100644 --- a/modules/gdscript/gdscript_compiler.cpp +++ b/modules/gdscript/gdscript_compiler.cpp @@ -1686,21 +1686,44 @@ Error GDScriptCompiler::_parse_class(GDScript *p_script, GDScript *p_owner, cons base_class = p->subclasses[base]; break; } + + if (p->constants.has(base)) { + + base_class = p->constants[base]; + if (base_class.is_null()) { + _set_error("Constant is not a class: " + base, p_class); + return ERR_SCRIPT_FAILED; + } + break; + } + p = p->_owner; } if (base_class.is_valid()) { + String ident = base; + for (int i = 1; i < p_class->extends_class.size(); i++) { String subclass = p_class->extends_class[i]; + ident += ("." + subclass); + if (base_class->subclasses.has(subclass)) { base_class = base_class->subclasses[subclass]; + } else if (base_class->constants.has(subclass)) { + + Ref<GDScript> new_base_class = base_class->constants[subclass]; + if (new_base_class.is_null()) { + _set_error("Constant is not a class: " + ident, p_class); + return ERR_SCRIPT_FAILED; + } + base_class = new_base_class; } else { - _set_error("Could not find subclass: " + subclass, p_class); + _set_error("Could not find subclass: " + ident, p_class); return ERR_FILE_NOT_FOUND; } } diff --git a/modules/gdscript/gdscript_editor.cpp b/modules/gdscript/gdscript_editor.cpp index a74b8a8483..5a76acea6e 100644 --- a/modules/gdscript/gdscript_editor.cpp +++ b/modules/gdscript/gdscript_editor.cpp @@ -33,7 +33,7 @@ #include "gdscript_compiler.h" #include "global_constants.h" #include "os/file_access.h" -#include "project_settings.h" +#include "core/engine.h" #ifdef TOOLS_ENABLED #include "editor/editor_file_system.h" @@ -280,10 +280,62 @@ void GDScriptLanguage::debug_get_stack_level_members(int p_level, List<String> * p_values->push_back(instance->debug_get_member_by_index(E->get().index)); } } -void GDScriptLanguage::debug_get_globals(List<String> *p_locals, List<Variant> *p_values, int p_max_subitems, int p_max_depth) { - //no globals are really reachable in gdscript +ScriptInstance *GDScriptLanguage::debug_get_stack_level_instance(int p_level) { + + ERR_FAIL_COND_V(_debug_parse_err_line >= 0, NULL); + ERR_FAIL_INDEX_V(p_level, _debug_call_stack_pos, NULL); + + int l = _debug_call_stack_pos - p_level - 1; + ScriptInstance *instance = _call_stack[l].instance; + + return instance; } + +void GDScriptLanguage::debug_get_globals(List<String> *p_globals, List<Variant> *p_values, int p_max_subitems, int p_max_depth) { + + const Map<StringName, int> &name_idx = GDScriptLanguage::get_singleton()->get_global_map(); + const Variant *globals = GDScriptLanguage::get_singleton()->get_global_array(); + + List<Pair<String, Variant> > cinfo; + get_public_constants(&cinfo); + + for (const Map<StringName, int>::Element *E = name_idx.front(); E; E = E->next()) { + + if (ClassDB::class_exists(E->key()) || Engine::get_singleton()->has_singleton(E->key())) + continue; + + bool is_script_constant = false; + for (List<Pair<String, Variant> >::Element *CE = cinfo.front(); CE; CE = CE->next()) { + if (CE->get().first == E->key()) { + is_script_constant = true; + break; + } + } + if (is_script_constant) + continue; + + const Variant &var = globals[E->value()]; + if (Object *obj = var) { + if (Object::cast_to<GDScriptNativeClass>(obj)) + continue; + } + + bool skip = false; + for (int i = 0; i < GlobalConstants::get_global_constant_count(); i++) { + if (E->key() == GlobalConstants::get_global_constant_name(i)) { + skip = true; + break; + } + } + if (skip) + continue; + + p_globals->push_back(E->key()); + p_values->push_back(var); + } +} + String GDScriptLanguage::debug_parse_stack_level_expression(int p_level, const String &p_expression, int p_max_subitems, int p_max_depth) { if (_debug_parse_err_line >= 0) @@ -1743,7 +1795,7 @@ static void _find_type_arguments(GDScriptCompletionContext &context, const GDScr } } else { -//regular method + //regular method #if defined(DEBUG_METHODS_ENABLED) && defined(TOOLS_ENABLED) if (p_argidx < m->get_argument_count()) { diff --git a/modules/gdscript/gdscript_functions.cpp b/modules/gdscript/gdscript_functions.cpp index c6066ceefb..ca0a9582a7 100644 --- a/modules/gdscript/gdscript_functions.cpp +++ b/modules/gdscript/gdscript_functions.cpp @@ -84,6 +84,8 @@ const char *GDScriptFunctions::get_func_name(Function p_func) { "rad2deg", "linear2db", "db2linear", + "polar2cartesian", + "cartesian2polar", "wrapi", "wrapf", "max", @@ -408,6 +410,22 @@ void GDScriptFunctions::call(Function p_func, const Variant **p_args, int p_arg_ VALIDATE_ARG_NUM(0); r_ret = Math::db2linear((double)*p_args[0]); } break; + case MATH_POLAR2CARTESIAN: { + VALIDATE_ARG_COUNT(2); + VALIDATE_ARG_NUM(0); + VALIDATE_ARG_NUM(1); + double r = *p_args[0]; + double th = *p_args[1]; + r_ret = Vector2(r * Math::cos(th), r * Math::sin(th)); + } break; + case MATH_CARTESIAN2POLAR: { + VALIDATE_ARG_COUNT(2); + VALIDATE_ARG_NUM(0); + VALIDATE_ARG_NUM(1); + double x = *p_args[0]; + double y = *p_args[1]; + r_ret = Vector2(Math::sqrt(x * x + y * y), Math::atan2(y, x)); + } break; case MATH_WRAP: { VALIDATE_ARG_COUNT(3); r_ret = Math::wrapi((int64_t)*p_args[0], (int64_t)*p_args[1], (int64_t)*p_args[2]); @@ -1296,6 +1314,8 @@ bool GDScriptFunctions::is_deterministic(Function p_func) { case MATH_RAD2DEG: case MATH_LINEAR2DB: case MATH_DB2LINEAR: + case MATH_POLAR2CARTESIAN: + case MATH_CARTESIAN2POLAR: case MATH_WRAP: case MATH_WRAPF: case LOGIC_MAX: @@ -1526,6 +1546,16 @@ MethodInfo GDScriptFunctions::get_info(Function p_func) { mi.return_val.type = Variant::REAL; return mi; } break; + case MATH_POLAR2CARTESIAN: { + MethodInfo mi("polar2cartesian", PropertyInfo(Variant::REAL, "r"), PropertyInfo(Variant::REAL, "th")); + mi.return_val.type = Variant::VECTOR2; + return mi; + } break; + case MATH_CARTESIAN2POLAR: { + MethodInfo mi("cartesian2polar", PropertyInfo(Variant::REAL, "x"), PropertyInfo(Variant::REAL, "y")); + mi.return_val.type = Variant::VECTOR2; + return mi; + } break; case MATH_WRAP: { MethodInfo mi("wrapi", PropertyInfo(Variant::INT, "value"), PropertyInfo(Variant::INT, "min"), PropertyInfo(Variant::INT, "max")); mi.return_val.type = Variant::INT; diff --git a/modules/gdscript/gdscript_functions.h b/modules/gdscript/gdscript_functions.h index ecbede83a8..d1c5815cec 100644 --- a/modules/gdscript/gdscript_functions.h +++ b/modules/gdscript/gdscript_functions.h @@ -75,6 +75,8 @@ public: MATH_RAD2DEG, MATH_LINEAR2DB, MATH_DB2LINEAR, + MATH_POLAR2CARTESIAN, + MATH_CARTESIAN2POLAR, MATH_WRAP, MATH_WRAPF, LOGIC_MAX, diff --git a/modules/gdscript/gdscript_parser.cpp b/modules/gdscript/gdscript_parser.cpp index 1e677f11c4..bee9ef1998 100644 --- a/modules/gdscript/gdscript_parser.cpp +++ b/modules/gdscript/gdscript_parser.cpp @@ -2971,18 +2971,37 @@ void GDScriptParser::_parse_extends(ClassNode *p_class) { } while (true) { - if (tokenizer->get_token() != GDScriptTokenizer::TK_IDENTIFIER) { - _set_error("Invalid 'extends' syntax, expected string constant (path) and/or identifier (parent class)."); - return; - } + switch (tokenizer->get_token()) { + + case GDScriptTokenizer::TK_IDENTIFIER: { + + StringName identifier = tokenizer->get_token_identifier(); + p_class->extends_class.push_back(identifier); + } + break; + + case GDScriptTokenizer::TK_PERIOD: + break; + + default: { - StringName identifier = tokenizer->get_token_identifier(); - p_class->extends_class.push_back(identifier); + _set_error("Invalid 'extends' syntax, expected string constant (path) and/or identifier (parent class)."); + return; + } + } tokenizer->advance(1); - if (tokenizer->get_token() != GDScriptTokenizer::TK_PERIOD) - return; + + switch (tokenizer->get_token()) { + + case GDScriptTokenizer::TK_IDENTIFIER: + case GDScriptTokenizer::TK_PERIOD: + continue; + + default: + return; + } } } diff --git a/modules/gridmap/grid_map_editor_plugin.cpp b/modules/gridmap/grid_map_editor_plugin.cpp index 491adb31ee..3a5d0fd3fc 100644 --- a/modules/gridmap/grid_map_editor_plugin.cpp +++ b/modules/gridmap/grid_map_editor_plugin.cpp @@ -623,6 +623,16 @@ bool GridMapEditor::forward_spatial_input_event(Camera *p_camera, const Ref<Inpu return do_input_action(p_camera, mm->get_position(), false); } + Ref<InputEventPanGesture> pan_gesture = p_event; + if (pan_gesture.is_valid()) { + + if (pan_gesture->get_command() || pan_gesture->get_shift()) { + const real_t delta = pan_gesture->get_delta().y; + floor->set_value(floor->get_value() + SGN(delta)); + return true; + } + } + return false; } diff --git a/modules/mono/glue/cs_files/AABB.cs b/modules/mono/glue/cs_files/AABB.cs index 6ee3bbe53a..e6e12f7ba3 100644 --- a/modules/mono/glue/cs_files/AABB.cs +++ b/modules/mono/glue/cs_files/AABB.cs @@ -38,7 +38,7 @@ namespace Godot } } - public bool encloses(AABB with) + public bool Encloses(AABB with) { Vector3 src_min = position; Vector3 src_max = position + size; @@ -53,7 +53,7 @@ namespace Godot (src_max.z > dst_max.z)); } - public AABB expand(Vector3 to_point) + public AABB Expand(Vector3 to_point) { Vector3 begin = position; Vector3 end = position + size; @@ -75,12 +75,12 @@ namespace Godot return new AABB(begin, end - begin); } - public float get_area() + public float GetArea() { return size.x * size.y * size.z; } - public Vector3 get_endpoint(int idx) + public Vector3 GetEndpoint(int idx) { switch (idx) { @@ -105,7 +105,7 @@ namespace Godot } } - public Vector3 get_longest_axis() + public Vector3 GetLongestAxis() { Vector3 axis = new Vector3(1f, 0f, 0f); float max_size = size.x; @@ -125,7 +125,7 @@ namespace Godot return axis; } - public Vector3.Axis get_longest_axis_index() + public Vector3.Axis GetLongestAxisIndex() { Vector3.Axis axis = Vector3.Axis.X; float max_size = size.x; @@ -145,7 +145,7 @@ namespace Godot return axis; } - public float get_longest_axis_size() + public float GetLongestAxisSize() { float max_size = size.x; @@ -158,7 +158,7 @@ namespace Godot return max_size; } - public Vector3 get_shortest_axis() + public Vector3 GetShortestAxis() { Vector3 axis = new Vector3(1f, 0f, 0f); float max_size = size.x; @@ -178,7 +178,7 @@ namespace Godot return axis; } - public Vector3.Axis get_shortest_axis_index() + public Vector3.Axis GetShortestAxisIndex() { Vector3.Axis axis = Vector3.Axis.X; float max_size = size.x; @@ -198,7 +198,7 @@ namespace Godot return axis; } - public float get_shortest_axis_size() + public float GetShortestAxisSize() { float max_size = size.x; @@ -211,7 +211,7 @@ namespace Godot return max_size; } - public Vector3 get_support(Vector3 dir) + public Vector3 GetSupport(Vector3 dir) { Vector3 half_extents = size * 0.5f; Vector3 ofs = position + half_extents; @@ -222,7 +222,7 @@ namespace Godot (dir.z > 0f) ? -half_extents.z : half_extents.z); } - public AABB grow(float by) + public AABB Grow(float by) { AABB res = this; @@ -236,17 +236,17 @@ namespace Godot return res; } - public bool has_no_area() + public bool HasNoArea() { return size.x <= 0f || size.y <= 0f || size.z <= 0f; } - public bool has_no_surface() + public bool HasNoSurface() { return size.x <= 0f && size.y <= 0f && size.z <= 0f; } - public bool has_point(Vector3 point) + public bool HasPoint(Vector3 point) { if (point.x < position.x) return false; @@ -264,7 +264,7 @@ namespace Godot return true; } - public AABB intersection(AABB with) + public AABB Intersection(AABB with) { Vector3 src_min = position; Vector3 src_max = position + size; @@ -306,7 +306,7 @@ namespace Godot return new AABB(min, max - min); } - public bool intersects(AABB with) + public bool Intersects(AABB with) { if (position.x >= (with.position.x + with.size.x)) return false; @@ -324,7 +324,7 @@ namespace Godot return true; } - public bool intersects_plane(Plane plane) + public bool IntersectsPlane(Plane plane) { Vector3[] points = { @@ -343,7 +343,7 @@ namespace Godot for (int i = 0; i < 8; i++) { - if (plane.distance_to(points[i]) > 0) + if (plane.DistanceTo(points[i]) > 0) over = true; else under = true; @@ -352,7 +352,7 @@ namespace Godot return under && over; } - public bool intersects_segment(Vector3 from, Vector3 to) + public bool IntersectsSegment(Vector3 from, Vector3 to) { float min = 0f; float max = 1f; @@ -398,7 +398,7 @@ namespace Godot return true; } - public AABB merge(AABB with) + public AABB Merge(AABB with) { Vector3 beg_1 = position; Vector3 beg_2 = with.position; diff --git a/modules/mono/glue/cs_files/Basis.cs b/modules/mono/glue/cs_files/Basis.cs index c50e783349..ea92b1641b 100644 --- a/modules/mono/glue/cs_files/Basis.cs +++ b/modules/mono/glue/cs_files/Basis.cs @@ -56,9 +56,9 @@ namespace Godot { return new Vector3 ( - new Vector3(this[0, 0], this[1, 0], this[2, 0]).length(), - new Vector3(this[0, 1], this[1, 1], this[2, 1]).length(), - new Vector3(this[0, 2], this[1, 2], this[2, 2]).length() + new Vector3(this[0, 0], this[1, 0], this[2, 0]).Length(), + new Vector3(this[0, 1], this[1, 1], this[2, 1]).Length(), + new Vector3(this[0, 2], this[1, 2], this[2, 2]).Length() ); } } @@ -133,7 +133,7 @@ namespace Godot } } - internal static Basis create_from_axes(Vector3 xAxis, Vector3 yAxis, Vector3 zAxis) + internal static Basis CreateFromAxes(Vector3 xAxis, Vector3 yAxis, Vector3 zAxis) { return new Basis ( @@ -143,21 +143,21 @@ namespace Godot ); } - public float determinant() + public float Determinant() { return this[0, 0] * (this[1, 1] * this[2, 2] - this[2, 1] * this[1, 2]) - this[1, 0] * (this[0, 1] * this[2, 2] - this[2, 1] * this[0, 2]) + this[2, 0] * (this[0, 1] * this[1, 2] - this[1, 1] * this[0, 2]); } - public Vector3 get_axis(int axis) + public Vector3 GetAxis(int axis) { return new Vector3(this[0, axis], this[1, axis], this[2, axis]); } - public Vector3 get_euler() + public Vector3 GetEuler() { - Basis m = this.orthonormalized(); + Basis m = this.Orthonormalized(); Vector3 euler; euler.z = 0.0f; @@ -169,26 +169,26 @@ namespace Godot { if (mxy > -1.0f) { - euler.x = Mathf.asin(-mxy); - euler.y = Mathf.atan2(m.x[2], m.z[2]); - euler.z = Mathf.atan2(m.y[0], m.y[1]); + euler.x = Mathf.Asin(-mxy); + euler.y = Mathf.Atan2(m.x[2], m.z[2]); + euler.z = Mathf.Atan2(m.y[0], m.y[1]); } else { euler.x = Mathf.PI * 0.5f; - euler.y = -Mathf.atan2(-m.x[1], m.x[0]); + euler.y = -Mathf.Atan2(-m.x[1], m.x[0]); } } else { euler.x = -Mathf.PI * 0.5f; - euler.y = -Mathf.atan2(m.x[1], m.x[0]); + euler.y = -Mathf.Atan2(m.x[1], m.x[0]); } return euler; } - public int get_orthogonal_index() + public int GetOrthogonalIndex() { Basis orth = this; @@ -218,7 +218,7 @@ namespace Godot return 0; } - public Basis inverse() + public Basis Inverse() { Basis inv = this; @@ -259,27 +259,27 @@ namespace Godot return inv; } - public Basis orthonormalized() + public Basis Orthonormalized() { - Vector3 xAxis = get_axis(0); - Vector3 yAxis = get_axis(1); - Vector3 zAxis = get_axis(2); + Vector3 xAxis = GetAxis(0); + Vector3 yAxis = GetAxis(1); + Vector3 zAxis = GetAxis(2); - xAxis.normalize(); - yAxis = (yAxis - xAxis * (xAxis.dot(yAxis))); - yAxis.normalize(); - zAxis = (zAxis - xAxis * (xAxis.dot(zAxis)) - yAxis * (yAxis.dot(zAxis))); - zAxis.normalize(); + xAxis.Normalize(); + yAxis = (yAxis - xAxis * (xAxis.Dot(yAxis))); + yAxis.Normalize(); + zAxis = (zAxis - xAxis * (xAxis.Dot(zAxis)) - yAxis * (yAxis.Dot(zAxis))); + zAxis.Normalize(); - return Basis.create_from_axes(xAxis, yAxis, zAxis); + return Basis.CreateFromAxes(xAxis, yAxis, zAxis); } - public Basis rotated(Vector3 axis, float phi) + public Basis Rotated(Vector3 axis, float phi) { return new Basis(axis, phi) * this; } - public Basis scaled(Vector3 scale) + public Basis Scaled(Vector3 scale) { Basis m = this; @@ -296,22 +296,22 @@ namespace Godot return m; } - public float tdotx(Vector3 with) + public float Tdotx(Vector3 with) { return this[0, 0] * with[0] + this[1, 0] * with[1] + this[2, 0] * with[2]; } - public float tdoty(Vector3 with) + public float Tdoty(Vector3 with) { return this[0, 1] * with[0] + this[1, 1] * with[1] + this[2, 1] * with[2]; } - public float tdotz(Vector3 with) + public float Tdotz(Vector3 with) { return this[0, 2] * with[0] + this[1, 2] * with[1] + this[2, 2] * with[2]; } - public Basis transposed() + public Basis Transposed() { Basis tr = this; @@ -330,17 +330,17 @@ namespace Godot return tr; } - public Vector3 xform(Vector3 v) + public Vector3 Xform(Vector3 v) { return new Vector3 ( - this[0].dot(v), - this[1].dot(v), - this[2].dot(v) + this[0].Dot(v), + this[1].Dot(v), + this[2].Dot(v) ); } - public Vector3 xform_inv(Vector3 v) + public Vector3 XformInv(Vector3 v) { return new Vector3 ( @@ -354,7 +354,7 @@ namespace Godot float trace = x[0] + y[1] + z[2]; if (trace > 0.0f) { - float s = Mathf.sqrt(trace + 1.0f) * 2f; + float s = Mathf.Sqrt(trace + 1.0f) * 2f; float inv_s = 1f / s; return new Quat( (z[1] - y[2]) * inv_s, @@ -363,7 +363,7 @@ namespace Godot s * 0.25f ); } else if (x[0] > y[1] && x[0] > z[2]) { - float s = Mathf.sqrt(x[0] - y[1] - z[2] + 1.0f) * 2f; + float s = Mathf.Sqrt(x[0] - y[1] - z[2] + 1.0f) * 2f; float inv_s = 1f / s; return new Quat( s * 0.25f, @@ -372,7 +372,7 @@ namespace Godot (z[1] - y[2]) * inv_s ); } else if (y[1] > z[2]) { - float s = Mathf.sqrt(-x[0] + y[1] - z[2] + 1.0f) * 2f; + float s = Mathf.Sqrt(-x[0] + y[1] - z[2] + 1.0f) * 2f; float inv_s = 1f / s; return new Quat( (x[1] + y[0]) * inv_s, @@ -381,7 +381,7 @@ namespace Godot (x[2] - z[0]) * inv_s ); } else { - float s = Mathf.sqrt(-x[0] - y[1] + z[2] + 1.0f) * 2f; + float s = Mathf.Sqrt(-x[0] - y[1] + z[2] + 1.0f) * 2f; float inv_s = 1f / s; return new Quat( (x[2] + z[0]) * inv_s, @@ -394,7 +394,7 @@ namespace Godot public Basis(Quat quat) { - float s = 2.0f / quat.length_squared(); + float s = 2.0f / quat.LengthSquared(); float xs = quat.x * s; float ys = quat.y * s; @@ -418,8 +418,8 @@ namespace Godot { Vector3 axis_sq = new Vector3(axis.x * axis.x, axis.y * axis.y, axis.z * axis.z); - float cosine = Mathf.cos(phi); - float sine = Mathf.sin(phi); + float cosine = Mathf.Cos(phi); + float sine = Mathf.Sin(phi); this.x = new Vector3 ( @@ -461,9 +461,9 @@ namespace Godot { return new Basis ( - right.tdotx(left[0]), right.tdoty(left[0]), right.tdotz(left[0]), - right.tdotx(left[1]), right.tdoty(left[1]), right.tdotz(left[1]), - right.tdotx(left[2]), right.tdoty(left[2]), right.tdotz(left[2]) + right.Tdotx(left[0]), right.Tdoty(left[0]), right.Tdotz(left[0]), + right.Tdotx(left[1]), right.Tdoty(left[1]), right.Tdotz(left[1]), + right.Tdotx(left[2]), right.Tdoty(left[2]), right.Tdotz(left[2]) ); } diff --git a/modules/mono/glue/cs_files/Color.cs b/modules/mono/glue/cs_files/Color.cs index 0a00f83d47..db0e1fb744 100644 --- a/modules/mono/glue/cs_files/Color.cs +++ b/modules/mono/glue/cs_files/Color.cs @@ -45,8 +45,8 @@ namespace Godot { get { - float max = Mathf.max(r, Mathf.max(g, b)); - float min = Mathf.min(r, Mathf.min(g, b)); + float max = Mathf.Max(r, Mathf.Max(g, b)); + float min = Mathf.Min(r, Mathf.Min(g, b)); float delta = max - min; @@ -71,7 +71,7 @@ namespace Godot } set { - this = from_hsv(value, s, v); + this = FromHsv(value, s, v); } } @@ -79,8 +79,8 @@ namespace Godot { get { - float max = Mathf.max(r, Mathf.max(g, b)); - float min = Mathf.min(r, Mathf.min(g, b)); + float max = Mathf.Max(r, Mathf.Max(g, b)); + float min = Mathf.Min(r, Mathf.Min(g, b)); float delta = max - min; @@ -88,7 +88,7 @@ namespace Godot } set { - this = from_hsv(h, value, v); + this = FromHsv(h, value, v); } } @@ -96,11 +96,11 @@ namespace Godot { get { - return Mathf.max(r, Mathf.max(g, b)); + return Mathf.Max(r, Mathf.Max(g, b)); } set { - this = from_hsv(h, s, value); + this = FromHsv(h, s, value); } } @@ -154,10 +154,10 @@ namespace Godot } } - public static void to_hsv(Color color, out float hue, out float saturation, out float value) + public static void ToHsv(Color color, out float hue, out float saturation, out float value) { - int max = Mathf.max(color.r8, Mathf.max(color.g8, color.b8)); - int min = Mathf.min(color.r8, Mathf.min(color.g8, color.b8)); + int max = Mathf.Max(color.r8, Mathf.Max(color.g8, color.b8)); + int min = Mathf.Min(color.r8, Mathf.Min(color.g8, color.b8)); float delta = max - min; @@ -184,7 +184,7 @@ namespace Godot value = max / 255f; } - public static Color from_hsv(float hue, float saturation, float value, float alpha = 1.0f) + public static Color FromHsv(float hue, float saturation, float value, float alpha = 1.0f) { if (saturation == 0) { @@ -221,7 +221,7 @@ namespace Godot } } - public Color blend(Color over) + public Color Blend(Color over) { Color res; @@ -242,7 +242,7 @@ namespace Godot return res; } - public Color contrasted() + public Color Contrasted() { return new Color( (r + 0.5f) % 1.0f, @@ -251,12 +251,12 @@ namespace Godot ); } - public float gray() + public float Gray() { return (r + g + b) / 3.0f; } - public Color inverted() + public Color Inverted() { return new Color( 1.0f - r, @@ -265,7 +265,7 @@ namespace Godot ); } - public Color linear_interpolate(Color b, float t) + public Color LinearInterpolate(Color b, float t) { Color res = this; @@ -277,7 +277,7 @@ namespace Godot return res; } - public int to_32() + public int To32() { int c = (byte)(a * 255); c <<= 8; @@ -290,7 +290,7 @@ namespace Godot return c; } - public int to_ARGB32() + public int ToArgb32() { int c = (byte)(a * 255); c <<= 8; @@ -303,7 +303,7 @@ namespace Godot return c; } - public string to_html(bool include_alpha = true) + public string ToHtml(bool include_alpha = true) { String txt = string.Empty; @@ -375,7 +375,7 @@ namespace Godot private String _to_hex(float val) { - int v = (int)Mathf.clamp(val * 255.0f, 0, 255); + int v = (int)Mathf.Clamp(val * 255.0f, 0, 255); string ret = string.Empty; @@ -396,7 +396,7 @@ namespace Godot return ret; } - internal static bool html_is_valid(string color) + internal static bool HtmlIsValid(string color) { if (color.Length == 0) return false; diff --git a/modules/mono/glue/cs_files/GD.cs b/modules/mono/glue/cs_files/GD.cs index 40a42d23b4..99fc289161 100644 --- a/modules/mono/glue/cs_files/GD.cs +++ b/modules/mono/glue/cs_files/GD.cs @@ -6,32 +6,32 @@ namespace Godot { /*{GodotGlobalConstants}*/ - public static object bytes2var(byte[] bytes) + public static object Bytes2Var(byte[] bytes) { return NativeCalls.godot_icall_Godot_bytes2var(bytes); } - public static object convert(object what, int type) + public static object Convert(object what, int type) { return NativeCalls.godot_icall_Godot_convert(what, type); } - public static float db2linear(float db) + public static float Db2Linear(float db) { return (float)Math.Exp(db * 0.11512925464970228420089957273422); } - public static float dectime(float value, float amount, float step) + public static float Dectime(float value, float amount, float step) { float sgn = value < 0 ? -1.0f : 1.0f; - float val = Mathf.abs(value); + float val = Mathf.Abs(value); val -= amount * step; if (val < 0.0f) val = 0.0f; return val * sgn; } - public static FuncRef funcref(Object instance, string funcname) + public static FuncRef Funcref(Object instance, string funcname) { var ret = new FuncRef(); ret.SetInstance(instance); @@ -39,57 +39,57 @@ namespace Godot return ret; } - public static int hash(object var) + public static int Hash(object var) { return NativeCalls.godot_icall_Godot_hash(var); } - public static Object instance_from_id(int instance_id) + public static Object InstanceFromId(int instanceId) { - return NativeCalls.godot_icall_Godot_instance_from_id(instance_id); + return NativeCalls.godot_icall_Godot_instance_from_id(instanceId); } - public static double linear2db(double linear) + public static double Linear2Db(double linear) { return Math.Log(linear) * 8.6858896380650365530225783783321; } - public static Resource load(string path) + public static Resource Load(string path) { return ResourceLoader.Load(path); } - public static void print(params object[] what) + public static void Print(params object[] what) { NativeCalls.godot_icall_Godot_print(what); } - public static void print_stack() + public static void PrintStack() { - print(System.Environment.StackTrace); + Print(System.Environment.StackTrace); } - public static void printerr(params object[] what) + public static void Printerr(params object[] what) { NativeCalls.godot_icall_Godot_printerr(what); } - public static void printraw(params object[] what) + public static void Printraw(params object[] what) { NativeCalls.godot_icall_Godot_printraw(what); } - public static void prints(params object[] what) + public static void Prints(params object[] what) { NativeCalls.godot_icall_Godot_prints(what); } - public static void printt(params object[] what) + public static void Printt(params object[] what) { NativeCalls.godot_icall_Godot_printt(what); } - public static int[] range(int length) + public static int[] Range(int length) { int[] ret = new int[length]; @@ -101,7 +101,7 @@ namespace Godot return ret; } - public static int[] range(int from, int to) + public static int[] Range(int from, int to) { if (to < from) return new int[0]; @@ -116,7 +116,7 @@ namespace Godot return ret; } - public static int[] range(int from, int to, int increment) + public static int[] Range(int from, int to, int increment) { if (to < from && increment > 0) return new int[0]; @@ -153,37 +153,37 @@ namespace Godot return ret; } - public static void seed(int seed) + public static void Seed(int seed) { NativeCalls.godot_icall_Godot_seed(seed); } - public static string str(params object[] what) + public static string Str(params object[] what) { return NativeCalls.godot_icall_Godot_str(what); } - public static object str2var(string str) + public static object Str2Var(string str) { return NativeCalls.godot_icall_Godot_str2var(str); } - public static bool type_exists(string type) + public static bool TypeExists(string type) { return NativeCalls.godot_icall_Godot_type_exists(type); } - public static byte[] var2bytes(object var) + public static byte[] Var2Bytes(object var) { return NativeCalls.godot_icall_Godot_var2bytes(var); } - public static string var2str(object var) + public static string Var2Str(object var) { return NativeCalls.godot_icall_Godot_var2str(var); } - public static WeakRef weakref(Object obj) + public static WeakRef Weakref(Object obj) { return NativeCalls.godot_icall_Godot_weakref(Object.GetPtr(obj)); } diff --git a/modules/mono/glue/cs_files/Mathf.cs b/modules/mono/glue/cs_files/Mathf.cs index cb0eb1acdd..6951ace4fc 100644 --- a/modules/mono/glue/cs_files/Mathf.cs +++ b/modules/mono/glue/cs_files/Mathf.cs @@ -10,37 +10,42 @@ namespace Godot private const float Deg2RadConst = 0.0174532924f; private const float Rad2DegConst = 57.29578f; - public static float abs(float s) + public static float Abs(float s) { return Math.Abs(s); } - public static float acos(float s) + public static float Acos(float s) { return (float)Math.Acos(s); } - public static float asin(float s) + public static float Asin(float s) { return (float)Math.Asin(s); } - public static float atan(float s) + public static float Atan(float s) { return (float)Math.Atan(s); } - public static float atan2(float x, float y) + public static float Atan2(float x, float y) { return (float)Math.Atan2(x, y); } - public static float ceil(float s) + public static Vector2 Cartesian2Polar(float x, float y) + { + return new Vector2(Sqrt(x * x + y * y), Atan2(y, x)); + } + + public static float Ceil(float s) { return (float)Math.Ceiling(s); } - public static float clamp(float val, float min, float max) + public static float Clamp(float val, float min, float max) { if (val < min) { @@ -54,32 +59,32 @@ namespace Godot return val; } - public static float cos(float s) + public static float Cos(float s) { return (float)Math.Cos(s); } - public static float cosh(float s) + public static float Cosh(float s) { return (float)Math.Cosh(s); } - public static int decimals(float step) + public static int Decimals(float step) { - return decimals(step); + return Decimals(step); } - public static int decimals(decimal step) + public static int Decimals(decimal step) { return BitConverter.GetBytes(decimal.GetBits(step)[3])[2]; } - public static float deg2rad(float deg) + public static float Deg2Rad(float deg) { return deg * Deg2RadConst; } - public static float ease(float s, float curve) + public static float Ease(float s, float curve) { if (s < 0f) { @@ -94,35 +99,35 @@ namespace Godot { if (curve < 1.0f) { - return 1.0f - pow(1.0f - s, 1.0f / curve); + return 1.0f - Pow(1.0f - s, 1.0f / curve); } - return pow(s, curve); + return Pow(s, curve); } else if (curve < 0f) { if (s < 0.5f) { - return pow(s * 2.0f, -curve) * 0.5f; + return Pow(s * 2.0f, -curve) * 0.5f; } - return (1.0f - pow(1.0f - (s - 0.5f) * 2.0f, -curve)) * 0.5f + 0.5f; + return (1.0f - Pow(1.0f - (s - 0.5f) * 2.0f, -curve)) * 0.5f + 0.5f; } return 0f; } - public static float exp(float s) + public static float Exp(float s) { return (float)Math.Exp(s); } - public static float floor(float s) + public static float Floor(float s) { return (float)Math.Floor(s); } - public static float fposmod(float x, float y) + public static float Fposmod(float x, float y) { if (x >= 0f) { @@ -134,37 +139,37 @@ namespace Godot } } - public static float lerp(float from, float to, float weight) + public static float Lerp(float from, float to, float weight) { - return from + (to - from) * clamp(weight, 0f, 1f); + return from + (to - from) * Clamp(weight, 0f, 1f); } - public static float log(float s) + public static float Log(float s) { return (float)Math.Log(s); } - public static int max(int a, int b) + public static int Max(int a, int b) { return (a > b) ? a : b; } - public static float max(float a, float b) + public static float Max(float a, float b) { return (a > b) ? a : b; } - public static int min(int a, int b) + public static int Min(int a, int b) { return (a < b) ? a : b; } - public static float min(float a, float b) + public static float Min(float a, float b) { return (a < b) ? a : b; } - public static int nearest_po2(int val) + public static int NearestPo2(int val) { val--; val |= val >> 1; @@ -176,57 +181,62 @@ namespace Godot return val; } - public static float pow(float x, float y) + public static Vector2 Polar2Cartesian(float r, float th) + { + return new Vector2(r * Cos(th), r * Sin(th)); + } + + public static float Pow(float x, float y) { return (float)Math.Pow(x, y); } - public static float rad2deg(float rad) + public static float Rad2Deg(float rad) { return rad * Rad2DegConst; } - public static float round(float s) + public static float Round(float s) { return (float)Math.Round(s); } - public static float sign(float s) + public static float Sign(float s) { return (s < 0f) ? -1f : 1f; } - public static float sin(float s) + public static float Sin(float s) { return (float)Math.Sin(s); } - public static float sinh(float s) + public static float Sinh(float s) { return (float)Math.Sinh(s); } - public static float sqrt(float s) + public static float Sqrt(float s) { return (float)Math.Sqrt(s); } - public static float stepify(float s, float step) + public static float Stepify(float s, float step) { if (step != 0f) { - s = floor(s / step + 0.5f) * step; + s = Floor(s / step + 0.5f) * step; } return s; } - public static float tan(float s) + public static float Tan(float s) { return (float)Math.Tan(s); } - public static float tanh(float s) + public static float Tanh(float s) { return (float)Math.Tanh(s); } diff --git a/modules/mono/glue/cs_files/Plane.cs b/modules/mono/glue/cs_files/Plane.cs index 37f70aca1e..6365e71826 100644 --- a/modules/mono/glue/cs_files/Plane.cs +++ b/modules/mono/glue/cs_files/Plane.cs @@ -52,44 +52,44 @@ namespace Godot } } - public float distance_to(Vector3 point) + public float DistanceTo(Vector3 point) { - return normal.dot(point) - d; + return normal.Dot(point) - d; } - public Vector3 get_any_point() + public Vector3 GetAnyPoint() { return normal * d; } - public bool has_point(Vector3 point, float epsilon = Mathf.Epsilon) + public bool HasPoint(Vector3 point, float epsilon = Mathf.Epsilon) { - float dist = normal.dot(point) - d; - return Mathf.abs(dist) <= epsilon; + float dist = normal.Dot(point) - d; + return Mathf.Abs(dist) <= epsilon; } - public Vector3 intersect_3(Plane b, Plane c) + public Vector3 Intersect3(Plane b, Plane c) { - float denom = normal.cross(b.normal).dot(c.normal); + float denom = normal.Cross(b.normal).Dot(c.normal); - if (Mathf.abs(denom) <= Mathf.Epsilon) + if (Mathf.Abs(denom) <= Mathf.Epsilon) return new Vector3(); - Vector3 result = (b.normal.cross(c.normal) * this.d) + - (c.normal.cross(normal) * b.d) + - (normal.cross(b.normal) * c.d); + Vector3 result = (b.normal.Cross(c.normal) * this.d) + + (c.normal.Cross(normal) * b.d) + + (normal.Cross(b.normal) * c.d); return result / denom; } - public Vector3 intersect_ray(Vector3 from, Vector3 dir) + public Vector3 IntersectRay(Vector3 from, Vector3 dir) { - float den = normal.dot(dir); + float den = normal.Dot(dir); - if (Mathf.abs(den) <= Mathf.Epsilon) + if (Mathf.Abs(den) <= Mathf.Epsilon) return new Vector3(); - float dist = (normal.dot(from) - d) / den; + float dist = (normal.Dot(from) - d) / den; // This is a ray, before the emiting pos (from) does not exist if (dist > Mathf.Epsilon) @@ -98,15 +98,15 @@ namespace Godot return from + dir * -dist; } - public Vector3 intersect_segment(Vector3 begin, Vector3 end) + public Vector3 IntersectSegment(Vector3 begin, Vector3 end) { Vector3 segment = begin - end; - float den = normal.dot(segment); + float den = normal.Dot(segment); - if (Mathf.abs(den) <= Mathf.Epsilon) + if (Mathf.Abs(den) <= Mathf.Epsilon) return new Vector3(); - float dist = (normal.dot(begin) - d) / den; + float dist = (normal.Dot(begin) - d) / den; if (dist < -Mathf.Epsilon || dist > (1.0f + Mathf.Epsilon)) return new Vector3(); @@ -114,14 +114,14 @@ namespace Godot return begin + segment * -dist; } - public bool is_point_over(Vector3 point) + public bool IsPointOver(Vector3 point) { - return normal.dot(point) > d; + return normal.Dot(point) > d; } - public Plane normalized() + public Plane Normalized() { - float len = normal.length(); + float len = normal.Length(); if (len == 0) return new Plane(0, 0, 0, 0); @@ -129,9 +129,9 @@ namespace Godot return new Plane(normal / len, d / len); } - public Vector3 project(Vector3 point) + public Vector3 Project(Vector3 point) { - return point - normal * distance_to(point); + return point - normal * DistanceTo(point); } public Plane(float a, float b, float c, float d) @@ -148,9 +148,9 @@ namespace Godot public Plane(Vector3 v1, Vector3 v2, Vector3 v3) { - normal = (v1 - v3).cross(v1 - v2); - normal.normalize(); - d = normal.dot(v1); + normal = (v1 - v3).Cross(v1 - v2); + normal.Normalize(); + d = normal.Dot(v1); } public static Plane operator -(Plane plane) diff --git a/modules/mono/glue/cs_files/Quat.cs b/modules/mono/glue/cs_files/Quat.cs index 9b4b7fb297..c0ac41c5d7 100644 --- a/modules/mono/glue/cs_files/Quat.cs +++ b/modules/mono/glue/cs_files/Quat.cs @@ -58,40 +58,40 @@ namespace Godot } } - public Quat cubic_slerp(Quat b, Quat preA, Quat postB, float t) + public Quat CubicSlerp(Quat b, Quat preA, Quat postB, float t) { float t2 = (1.0f - t) * t * 2f; - Quat sp = slerp(b, t); - Quat sq = preA.slerpni(postB, t); - return sp.slerpni(sq, t2); + Quat sp = Slerp(b, t); + Quat sq = preA.Slerpni(postB, t); + return sp.Slerpni(sq, t2); } - public float dot(Quat b) + public float Dot(Quat b) { return x * b.x + y * b.y + z * b.z + w * b.w; } - public Quat inverse() + public Quat Inverse() { return new Quat(-x, -y, -z, w); } - public float length() + public float Length() { - return Mathf.sqrt(length_squared()); + return Mathf.Sqrt(LengthSquared()); } - public float length_squared() + public float LengthSquared() { - return dot(this); + return Dot(this); } - public Quat normalized() + public Quat Normalized() { - return this / length(); + return this / Length(); } - public void set(float x, float y, float z, float w) + public void Set(float x, float y, float z, float w) { this.x = x; this.y = y; @@ -99,7 +99,7 @@ namespace Godot this.w = w; } - public Quat slerp(Quat b, float t) + public Quat Slerp(Quat b, float t) { // Calculate cosine float cosom = x * b.x + y * b.y + z * b.z + w * b.w; @@ -128,10 +128,10 @@ namespace Godot if ((1.0 - cosom) > Mathf.Epsilon) { // Standard case (Slerp) - float omega = Mathf.acos(cosom); - sinom = Mathf.sin(omega); - scale0 = Mathf.sin((1.0f - t) * omega) / sinom; - scale1 = Mathf.sin(t * omega) / sinom; + float omega = Mathf.Acos(cosom); + sinom = Mathf.Sin(omega); + scale0 = Mathf.Sin((1.0f - t) * omega) / sinom; + scale1 = Mathf.Sin(t * omega) / sinom; } else { @@ -150,19 +150,19 @@ namespace Godot ); } - public Quat slerpni(Quat b, float t) + public Quat Slerpni(Quat b, float t) { - float dot = this.dot(b); + float dot = this.Dot(b); - if (Mathf.abs(dot) > 0.9999f) + if (Mathf.Abs(dot) > 0.9999f) { return this; } - float theta = Mathf.acos(dot); - float sinT = 1.0f / Mathf.sin(theta); - float newFactor = Mathf.sin(t * theta) * sinT; - float invFactor = Mathf.sin((1.0f - t) * theta) * sinT; + float theta = Mathf.Acos(dot); + float sinT = 1.0f / Mathf.Sin(theta); + float newFactor = Mathf.Sin(t * theta) * sinT; + float invFactor = Mathf.Sin((1.0f - t) * theta) * sinT; return new Quat ( @@ -173,10 +173,10 @@ namespace Godot ); } - public Vector3 xform(Vector3 v) + public Vector3 Xform(Vector3 v) { Quat q = this * v; - q *= this.inverse(); + q *= this.Inverse(); return new Vector3(q.x, q.y, q.z); } @@ -190,7 +190,7 @@ namespace Godot public Quat(Vector3 axis, float angle) { - float d = axis.length(); + float d = axis.Length(); if (d == 0f) { @@ -201,12 +201,12 @@ namespace Godot } else { - float s = Mathf.sin(angle * 0.5f) / d; + float s = Mathf.Sin(angle * 0.5f) / d; x = axis.x * s; y = axis.y * s; z = axis.z * s; - w = Mathf.cos(angle * 0.5f); + w = Mathf.Cos(angle * 0.5f); } } diff --git a/modules/mono/glue/cs_files/Rect2.cs b/modules/mono/glue/cs_files/Rect2.cs index 019342134a..f2718d7b7a 100644 --- a/modules/mono/glue/cs_files/Rect2.cs +++ b/modules/mono/glue/cs_files/Rect2.cs @@ -28,36 +28,36 @@ namespace Godot public float Area { - get { return get_area(); } + get { return GetArea(); } } - public Rect2 clip(Rect2 b) + public Rect2 Clip(Rect2 b) { Rect2 newRect = b; - if (!intersects(newRect)) + if (!Intersects(newRect)) return new Rect2(); - newRect.position.x = Mathf.max(b.position.x, position.x); - newRect.position.y = Mathf.max(b.position.y, position.y); + newRect.position.x = Mathf.Max(b.position.x, position.x); + newRect.position.y = Mathf.Max(b.position.y, position.y); Vector2 bEnd = b.position + b.size; Vector2 end = position + size; - newRect.size.x = Mathf.min(bEnd.x, end.x) - newRect.position.x; - newRect.size.y = Mathf.min(bEnd.y, end.y) - newRect.position.y; + newRect.size.x = Mathf.Min(bEnd.x, end.x) - newRect.position.x; + newRect.size.y = Mathf.Min(bEnd.y, end.y) - newRect.position.y; return newRect; } - public bool encloses(Rect2 b) + public bool Encloses(Rect2 b) { return (b.position.x >= position.x) && (b.position.y >= position.y) && ((b.position.x + b.size.x) < (position.x + size.x)) && ((b.position.y + b.size.y) < (position.y + size.y)); } - public Rect2 expand(Vector2 to) + public Rect2 Expand(Vector2 to) { Rect2 expanded = this; @@ -80,12 +80,12 @@ namespace Godot return expanded; } - public float get_area() + public float GetArea() { return size.x * size.y; } - public Rect2 grow(float by) + public Rect2 Grow(float by) { Rect2 g = this; @@ -97,7 +97,7 @@ namespace Godot return g; } - public Rect2 grow_individual(float left, float top, float right, float bottom) + public Rect2 GrowIndividual(float left, float top, float right, float bottom) { Rect2 g = this; @@ -109,11 +109,11 @@ namespace Godot return g; } - public Rect2 grow_margin(int margin, float by) + public Rect2 GrowMargin(int margin, float by) { Rect2 g = this; - g.grow_individual((GD.MARGIN_LEFT == margin) ? by : 0, + g.GrowIndividual((GD.MARGIN_LEFT == margin) ? by : 0, (GD.MARGIN_TOP == margin) ? by : 0, (GD.MARGIN_RIGHT == margin) ? by : 0, (GD.MARGIN_BOTTOM == margin) ? by : 0); @@ -121,12 +121,12 @@ namespace Godot return g; } - public bool has_no_area() + public bool HasNoArea() { return size.x <= 0 || size.y <= 0; } - public bool has_point(Vector2 point) + public bool HasPoint(Vector2 point) { if (point.x < position.x) return false; @@ -141,7 +141,7 @@ namespace Godot return true; } - public bool intersects(Rect2 b) + public bool Intersects(Rect2 b) { if (position.x > (b.position.x + b.size.x)) return false; @@ -155,15 +155,15 @@ namespace Godot return true; } - public Rect2 merge(Rect2 b) + public Rect2 Merge(Rect2 b) { Rect2 newRect; - newRect.position.x = Mathf.min(b.position.x, position.x); - newRect.position.y = Mathf.min(b.position.y, position.y); + newRect.position.x = Mathf.Min(b.position.x, position.x); + newRect.position.y = Mathf.Min(b.position.y, position.y); - newRect.size.x = Mathf.max(b.position.x + b.size.x, position.x + size.x); - newRect.size.y = Mathf.max(b.position.y + b.size.y, position.y + size.y); + newRect.size.x = Mathf.Max(b.position.x + b.size.x, position.x + size.x); + newRect.size.y = Mathf.Max(b.position.y + b.size.y, position.y + size.y); newRect.size = newRect.size - newRect.position; // Make relative again diff --git a/modules/mono/glue/cs_files/StringExtensions.cs b/modules/mono/glue/cs_files/StringExtensions.cs index 96041827aa..5c3ceff97d 100644 --- a/modules/mono/glue/cs_files/StringExtensions.cs +++ b/modules/mono/glue/cs_files/StringExtensions.cs @@ -10,15 +10,15 @@ namespace Godot { public static class StringExtensions { - private static int get_slice_count(this string instance, string splitter) + private static int GetSliceCount(this string instance, string splitter) { - if (instance.empty() || splitter.empty()) + if (instance.Empty() || splitter.Empty()) return 0; int pos = 0; int slices = 1; - while ((pos = instance.find(splitter, pos)) >= 0) + while ((pos = instance.Find(splitter, pos)) >= 0) { slices++; pos += splitter.Length; @@ -27,9 +27,9 @@ namespace Godot return slices; } - private static string get_slicec(this string instance, char splitter, int slice) + private static string GetSlicec(this string instance, char splitter, int slice) { - if (!instance.empty() && slice >= 0) + if (!instance.Empty() && slice >= 0) { int i = 0; int prev = 0; @@ -60,7 +60,7 @@ namespace Godot // <summary> // If the string is a path to a file, return the path to the file without the extension. // </summary> - public static string basename(this string instance) + public static string Basename(this string instance) { int index = instance.LastIndexOf('.'); @@ -73,7 +73,7 @@ namespace Godot // <summary> // Return true if the strings begins with the given string. // </summary> - public static bool begins_with(this string instance, string text) + public static bool BeginsWith(this string instance, string text) { return instance.StartsWith(text); } @@ -81,7 +81,7 @@ namespace Godot // <summary> // Return the bigrams (pairs of consecutive letters) of this string. // </summary> - public static string[] bigrams(this string instance) + public static string[] Bigrams(this string instance) { string[] b = new string[instance.Length - 1]; @@ -96,7 +96,7 @@ namespace Godot // <summary> // Return a copy of the string with special characters escaped using the C language standard. // </summary> - public static string c_escape(this string instance) + public static string CEscape(this string instance) { StringBuilder sb = new StringBuilder(string.Copy(instance)); @@ -118,7 +118,7 @@ namespace Godot // <summary> // Return a copy of the string with escaped characters replaced by their meanings according to the C language standard. // </summary> - public static string c_unescape(this string instance) + public static string CUnescape(this string instance) { StringBuilder sb = new StringBuilder(string.Copy(instance)); @@ -140,14 +140,14 @@ namespace Godot // <summary> // Change the case of some letters. Replace underscores with spaces, convert all letters to lowercase then capitalize first and every letter following the space character. For [code]capitalize camelCase mixed_with_underscores[/code] it will return [code]Capitalize Camelcase Mixed With Underscores[/code]. // </summary> - public static string capitalize(this string instance) + public static string Capitalize(this string instance) { string aux = instance.Replace("_", " ").ToLower(); string cap = string.Empty; - for (int i = 0; i < aux.get_slice_count(" "); i++) + for (int i = 0; i < aux.GetSliceCount(" "); i++) { - string slice = aux.get_slicec(' ', i); + string slice = aux.GetSlicec(' ', i); if (slice.Length > 0) { slice = char.ToUpper(slice[0]) + slice.Substring(1); @@ -163,12 +163,12 @@ namespace Godot // <summary> // Perform a case-sensitive comparison to another string, return -1 if less, 0 if equal and +1 if greater. // </summary> - public static int casecmp_to(this string instance, string to) + public static int CasecmpTo(this string instance, string to) { - if (instance.empty()) - return to.empty() ? 0 : -1; + if (instance.Empty()) + return to.Empty() ? 0 : -1; - if (to.empty()) + if (to.Empty()) return 1; int instance_idx = 0; @@ -195,7 +195,7 @@ namespace Godot // <summary> // Return true if the string is empty. // </summary> - public static bool empty(this string instance) + public static bool Empty(this string instance) { return string.IsNullOrEmpty(instance); } @@ -203,7 +203,7 @@ namespace Godot // <summary> // Return true if the strings ends with the given string. // </summary> - public static bool ends_with(this string instance, string text) + public static bool EndsWith(this string instance, string text) { return instance.EndsWith(text); } @@ -211,7 +211,7 @@ namespace Godot // <summary> // Erase [code]chars[/code] characters from the string starting from [code]pos[/code]. // </summary> - public static void erase(this StringBuilder instance, int pos, int chars) + public static void Erase(this StringBuilder instance, int pos, int chars) { instance.Remove(pos, chars); } @@ -219,9 +219,9 @@ namespace Godot // <summary> // If the string is a path to a file, return the extension. // </summary> - public static string extension(this string instance) + public static string Extension(this string instance) { - int pos = instance.find_last("."); + int pos = instance.FindLast("."); if (pos < 0) return instance; @@ -232,7 +232,7 @@ namespace Godot // <summary> // Find the first occurrence of a substring, return the starting position of the substring or -1 if not found. Optionally, the initial search index can be passed. // </summary> - public static int find(this string instance, string what, int from = 0) + public static int Find(this string instance, string what, int from = 0) { return instance.IndexOf(what, StringComparison.OrdinalIgnoreCase); } @@ -240,7 +240,7 @@ namespace Godot // <summary> // Find the last occurrence of a substring, return the starting position of the substring or -1 if not found. Optionally, the initial search index can be passed. // </summary> - public static int find_last(this string instance, string what) + public static int FindLast(this string instance, string what) { return instance.LastIndexOf(what, StringComparison.OrdinalIgnoreCase); } @@ -248,7 +248,7 @@ namespace Godot // <summary> // Find the first occurrence of a substring but search as case-insensitive, return the starting position of the substring or -1 if not found. Optionally, the initial search index can be passed. // </summary> - public static int findn(this string instance, string what, int from = 0) + public static int FindN(this string instance, string what, int from = 0) { return instance.IndexOf(what, StringComparison.Ordinal); } @@ -256,9 +256,9 @@ namespace Godot // <summary> // If the string is a path to a file, return the base directory. // </summary> - public static string get_base_dir(this string instance) + public static string GetBaseDir(this string instance) { - int basepos = instance.find("://"); + int basepos = instance.Find("://"); string rs = string.Empty; string @base = string.Empty; @@ -271,7 +271,7 @@ namespace Godot } else { - if (instance.begins_with("/")) + if (instance.BeginsWith("/")) { rs = instance.Substring(1, instance.Length); @base = "/"; @@ -282,7 +282,7 @@ namespace Godot } } - int sep = Mathf.max(rs.find_last("/"), rs.find_last("\\")); + int sep = Mathf.Max(rs.FindLast("/"), rs.FindLast("\\")); if (sep == -1) return @base; @@ -293,9 +293,9 @@ namespace Godot // <summary> // If the string is a path to a file, return the file and ignore the base directory. // </summary> - public static string get_file(this string instance) + public static string GetFile(this string instance) { - int sep = Mathf.max(instance.find_last("/"), instance.find_last("\\")); + int sep = Mathf.Max(instance.FindLast("/"), instance.FindLast("\\")); if (sep == -1) return instance; @@ -306,7 +306,7 @@ namespace Godot // <summary> // Hash the string and return a 32 bits integer. // </summary> - public static int hash(this string instance) + public static int Hash(this string instance) { int index = 0; int hashv = 5381; @@ -321,7 +321,7 @@ namespace Godot // <summary> // Convert a string containing an hexadecimal number into an int. // </summary> - public static int hex_to_int(this string instance) + public static int HexToInt(this string instance) { int sign = 1; @@ -340,7 +340,7 @@ namespace Godot // <summary> // Insert a substring at a given position. // </summary> - public static string insert(this string instance, int pos, string what) + public static string Insert(this string instance, int pos, string what) { return instance.Insert(pos, what); } @@ -348,7 +348,7 @@ namespace Godot // <summary> // If the string is a path to a file or directory, return true if the path is absolute. // </summary> - public static bool is_abs_path(this string instance) + public static bool IsAbsPath(this string instance) { return System.IO.Path.IsPathRooted(instance); } @@ -356,7 +356,7 @@ namespace Godot // <summary> // If the string is a path to a file or directory, return true if the path is relative. // </summary> - public static bool is_rel_path(this string instance) + public static bool IsRelPath(this string instance) { return !System.IO.Path.IsPathRooted(instance); } @@ -364,7 +364,7 @@ namespace Godot // <summary> // Check whether this string is a subsequence of the given string. // </summary> - public static bool is_subsequence_of(this string instance, string text, bool case_insensitive) + public static bool IsSubsequenceOf(this string instance, string text, bool case_insensitive) { int len = instance.Length; @@ -407,23 +407,23 @@ namespace Godot // <summary> // Check whether this string is a subsequence of the given string, considering case. // </summary> - public static bool is_subsequence_of(this string instance, string text) + public static bool IsSubsequenceOf(this string instance, string text) { - return instance.is_subsequence_of(text, false); + return instance.IsSubsequenceOf(text, false); } // <summary> // Check whether this string is a subsequence of the given string, without considering case. // </summary> - public static bool is_subsequence_ofi(this string instance, string text) + public static bool IsSubsequenceOfI(this string instance, string text) { - return instance.is_subsequence_of(text, true); + return instance.IsSubsequenceOf(text, true); } // <summary> // Check whether the string contains a valid float. // </summary> - public static bool is_valid_float(this string instance) + public static bool IsValidFloat(this string instance) { float f; return float.TryParse(instance, out f); @@ -432,15 +432,15 @@ namespace Godot // <summary> // Check whether the string contains a valid color in HTML notation. // </summary> - public static bool is_valid_html_color(this string instance) + public static bool IsValidHtmlColor(this string instance) { - return Color.html_is_valid(instance); + return Color.HtmlIsValid(instance); } // <summary> // Check whether the string is a valid identifier. As is common in programming languages, a valid identifier may contain only letters, digits and underscores (_) and the first character may not be a digit. // </summary> - public static bool is_valid_identifier(this string instance) + public static bool IsValidIdentifier(this string instance) { int len = instance.Length; @@ -467,7 +467,7 @@ namespace Godot // <summary> // Check whether the string contains a valid integer. // </summary> - public static bool is_valid_integer(this string instance) + public static bool IsValidInteger(this string instance) { int f; return int.TryParse(instance, out f); @@ -476,7 +476,7 @@ namespace Godot // <summary> // Check whether the string contains a valid IP address. // </summary> - public static bool is_valid_ip_address(this string instance) + public static bool IsValidIpAddress(this string instance) { string[] ip = instance.split("."); @@ -486,7 +486,7 @@ namespace Godot for (int i = 0; i < ip.Length; i++) { string n = ip[i]; - if (!n.is_valid_integer()) + if (!n.IsValidInteger()) return false; int val = n.to_int(); @@ -500,7 +500,7 @@ namespace Godot // <summary> // Return a copy of the string with special characters escaped using the JSON standard. // </summary> - public static string json_escape(this string instance) + public static string JsonEscape(this string instance) { StringBuilder sb = new StringBuilder(string.Copy(instance)); @@ -519,7 +519,7 @@ namespace Godot // <summary> // Return an amount of characters from the left of the string. // </summary> - public static string left(this string instance, int pos) + public static string Left(this string instance, int pos) { if (pos <= 0) return string.Empty; @@ -533,7 +533,7 @@ namespace Godot /// <summary> /// Return the length of the string in characters. /// </summary> - public static int length(this string instance) + public static int Length(this string instance) { return instance.Length; } @@ -541,7 +541,7 @@ namespace Godot // <summary> // Do a simple expression match, where '*' matches zero or more arbitrary characters and '?' matches any single character except '.'. // </summary> - public static bool expr_match(this string instance, string expr, bool case_sensitive) + public static bool ExprMatch(this string instance, string expr, bool caseSensitive) { if (expr.Length == 0 || instance.Length == 0) return false; @@ -551,21 +551,21 @@ namespace Godot case '\0': return instance[0] == 0; case '*': - return expr_match(expr + 1, instance, case_sensitive) || (instance[0] != 0 && expr_match(expr, instance + 1, case_sensitive)); + return ExprMatch(expr + 1, instance, caseSensitive) || (instance[0] != 0 && ExprMatch(expr, instance + 1, caseSensitive)); case '?': - return instance[0] != 0 && instance[0] != '.' && expr_match(expr + 1, instance + 1, case_sensitive); + return instance[0] != 0 && instance[0] != '.' && ExprMatch(expr + 1, instance + 1, caseSensitive); default: - return (case_sensitive ? instance[0] == expr[0] : char.ToUpper(instance[0]) == char.ToUpper(expr[0])) && - expr_match(expr + 1, instance + 1, case_sensitive); + return (caseSensitive ? instance[0] == expr[0] : char.ToUpper(instance[0]) == char.ToUpper(expr[0])) && + ExprMatch(expr + 1, instance + 1, caseSensitive); } } // <summary> // Do a simple case sensitive expression match, using ? and * wildcards (see [method expr_match]). // </summary> - public static bool match(this string instance, string expr) + public static bool Match(this string instance, string expr) { - return instance.expr_match(expr, true); + return instance.ExprMatch(expr, true); } // <summary> @@ -573,13 +573,13 @@ namespace Godot // </summary> public static bool matchn(this string instance, string expr) { - return instance.expr_match(expr, false); + return instance.ExprMatch(expr, false); } // <summary> // Return the MD5 hash of the string as an array of bytes. // </summary> - public static byte[] md5_buffer(this string instance) + public static byte[] Md5Buffer(this string instance) { return NativeCalls.godot_icall_String_md5_buffer(instance); } @@ -587,7 +587,7 @@ namespace Godot // <summary> // Return the MD5 hash of the string as a string. // </summary> - public static string md5_text(this string instance) + public static string Md5Text(this string instance) { return NativeCalls.godot_icall_String_md5_text(instance); } @@ -595,12 +595,12 @@ namespace Godot // <summary> // Perform a case-insensitive comparison to another string, return -1 if less, 0 if equal and +1 if greater. // </summary> - public static int nocasecmp_to(this string instance, string to) + public static int NocasecmpTo(this string instance, string to) { - if (instance.empty()) - return to.empty() ? 0 : -1; + if (instance.Empty()) + return to.Empty() ? 0 : -1; - if (to.empty()) + if (to.Empty()) return 1; int instance_idx = 0; @@ -627,7 +627,7 @@ namespace Godot // <summary> // Return the character code at position [code]at[/code]. // </summary> - public static int ord_at(this string instance, int at) + public static int OrdAt(this string instance, int at) { return instance[at]; } @@ -635,9 +635,9 @@ namespace Godot // <summary> // Format a number to have an exact number of [code]digits[/code] after the decimal point. // </summary> - public static string pad_decimals(this string instance, int digits) + public static string PadDecimals(this string instance, int digits) { - int c = instance.find("."); + int c = instance.Find("."); if (c == -1) { @@ -671,10 +671,10 @@ namespace Godot // <summary> // Format a number to have an exact number of [code]digits[/code] before the decimal point. // </summary> - public static string pad_zeros(this string instance, int digits) + public static string PadZeros(this string instance, int digits) { string s = instance; - int end = s.find("."); + int end = s.Find("."); if (end == -1) end = s.Length; @@ -704,7 +704,7 @@ namespace Godot // <summary> // Decode a percent-encoded string. See [method percent_encode]. // </summary> - public static string percent_decode(this string instance) + public static string PercentDecode(this string instance) { return Uri.UnescapeDataString(instance); } @@ -712,7 +712,7 @@ namespace Godot // <summary> // Percent-encode a string. This is meant to encode parameters in a URL when sending a HTTP GET request and bodies of form-urlencoded POST request. // </summary> - public static string percent_encode(this string instance) + public static string PercentEncode(this string instance) { return Uri.EscapeDataString(instance); } @@ -720,7 +720,7 @@ namespace Godot // <summary> // If the string is a path, this concatenates [code]file[/code] at the end of the string as a subpath. E.g. [code]"this/is".plus_file("path") == "this/is/path"[/code]. // </summary> - public static string plus_file(this string instance, string file) + public static string PlusFile(this string instance, string file) { if (instance.Length > 0 && instance[instance.Length - 1] == '/') return instance + file; @@ -731,7 +731,7 @@ namespace Godot // <summary> // Replace occurrences of a substring for different ones inside the string. // </summary> - public static string replace(this string instance, string what, string forwhat) + public static string Replace(this string instance, string what, string forwhat) { return instance.Replace(what, forwhat); } @@ -739,7 +739,7 @@ namespace Godot // <summary> // Replace occurrences of a substring for different ones inside the string, but search case-insensitive. // </summary> - public static string replacen(this string instance, string what, string forwhat) + public static string Replacen(this string instance, string what, string forwhat) { return Regex.Replace(instance, what, forwhat, RegexOptions.IgnoreCase); } @@ -747,7 +747,7 @@ namespace Godot // <summary> // Perform a search for a substring, but start from the end of the string instead of the beginning. // </summary> - public static int rfind(this string instance, string what, int from = -1) + public static int Rfind(this string instance, string what, int from = -1) { return NativeCalls.godot_icall_String_rfind(instance, what, from); } @@ -755,7 +755,7 @@ namespace Godot // <summary> // Perform a search for a substring, but start from the end of the string instead of the beginning. Also search case-insensitive. // </summary> - public static int rfindn(this string instance, string what, int from = -1) + public static int Rfindn(this string instance, string what, int from = -1) { return NativeCalls.godot_icall_String_rfindn(instance, what, from); } @@ -763,7 +763,7 @@ namespace Godot // <summary> // Return the right side of the string from a given position. // </summary> - public static string right(this string instance, int pos) + public static string Right(this string instance, int pos) { if (pos >= instance.Length) return instance; @@ -774,7 +774,7 @@ namespace Godot return instance.Substring(pos, (instance.Length - pos)); } - public static byte[] sha256_buffer(this string instance) + public static byte[] Sha256Buffer(this string instance) { return NativeCalls.godot_icall_String_sha256_buffer(instance); } @@ -782,7 +782,7 @@ namespace Godot // <summary> // Return the SHA-256 hash of the string as a string. // </summary> - public static string sha256_text(this string instance) + public static string Sha256Text(this string instance) { return NativeCalls.godot_icall_String_sha256_text(instance); } @@ -790,7 +790,7 @@ namespace Godot // <summary> // Return the similarity index of the text compared to this string. 1 means totally similar and 0 means totally dissimilar. // </summary> - public static float similarity(this string instance, string text) + public static float Similarity(this string instance, string text) { if (instance == text) { @@ -803,11 +803,11 @@ namespace Godot return 0.0f; } - string[] src_bigrams = instance.bigrams(); - string[] tgt_bigrams = text.bigrams(); + string[] srcBigrams = instance.Bigrams(); + string[] tgtBigrams = text.Bigrams(); - int src_size = src_bigrams.Length; - int tgt_size = tgt_bigrams.Length; + int src_size = srcBigrams.Length; + int tgt_size = tgtBigrams.Length; float sum = src_size + tgt_size; float inter = 0; @@ -816,7 +816,7 @@ namespace Godot { for (int j = 0; j < tgt_size; j++) { - if (src_bigrams[i] == tgt_bigrams[j]) + if (srcBigrams[i] == tgtBigrams[j]) { inter++; break; @@ -846,7 +846,7 @@ namespace Godot while (true) { - int end = instance.find(divisor, from); + int end = instance.Find(divisor, from); if (end < 0) end = len; if (allow_empty || (end > from)) diff --git a/modules/mono/glue/cs_files/Transform.cs b/modules/mono/glue/cs_files/Transform.cs index 74271e758b..5214100d36 100644 --- a/modules/mono/glue/cs_files/Transform.cs +++ b/modules/mono/glue/cs_files/Transform.cs @@ -9,38 +9,38 @@ namespace Godot public Basis basis; public Vector3 origin; - public Transform affine_inverse() + public Transform AffineInverse() { - Basis basisInv = basis.inverse(); - return new Transform(basisInv, basisInv.xform(-origin)); + Basis basisInv = basis.Inverse(); + return new Transform(basisInv, basisInv.Xform(-origin)); } - public Transform inverse() + public Transform Inverse() { - Basis basisTr = basis.transposed(); - return new Transform(basisTr, basisTr.xform(-origin)); + Basis basisTr = basis.Transposed(); + return new Transform(basisTr, basisTr.Xform(-origin)); } - public Transform looking_at(Vector3 target, Vector3 up) + public Transform LookingAt(Vector3 target, Vector3 up) { Transform t = this; t.set_look_at(origin, target, up); return t; } - public Transform orthonormalized() + public Transform Orthonormalized() { - return new Transform(basis.orthonormalized(), origin); + return new Transform(basis.Orthonormalized(), origin); } - public Transform rotated(Vector3 axis, float phi) + public Transform Rotated(Vector3 axis, float phi) { return new Transform(new Basis(axis, phi), new Vector3()) * this; } - public Transform scaled(Vector3 scale) + public Transform Scaled(Vector3 scale) { - return new Transform(basis.scaled(scale), origin * scale); + return new Transform(basis.Scaled(scale), origin * scale); } public void set_look_at(Vector3 eye, Vector3 target, Vector3 up) @@ -49,44 +49,44 @@ namespace Godot // Z vector Vector3 zAxis = eye - target; - zAxis.normalize(); + zAxis.Normalize(); Vector3 yAxis = up; - Vector3 xAxis = yAxis.cross(zAxis); + Vector3 xAxis = yAxis.Cross(zAxis); // Recompute Y = Z cross X - yAxis = zAxis.cross(xAxis); + yAxis = zAxis.Cross(xAxis); - xAxis.normalize(); - yAxis.normalize(); + xAxis.Normalize(); + yAxis.Normalize(); - basis = Basis.create_from_axes(xAxis, yAxis, zAxis); + basis = Basis.CreateFromAxes(xAxis, yAxis, zAxis); origin = eye; } - public Transform translated(Vector3 ofs) + public Transform Translated(Vector3 ofs) { return new Transform(basis, new Vector3 ( - origin[0] += basis[0].dot(ofs), - origin[1] += basis[1].dot(ofs), - origin[2] += basis[2].dot(ofs) + origin[0] += basis[0].Dot(ofs), + origin[1] += basis[1].Dot(ofs), + origin[2] += basis[2].Dot(ofs) )); } - public Vector3 xform(Vector3 v) + public Vector3 Xform(Vector3 v) { return new Vector3 ( - basis[0].dot(v) + origin.x, - basis[1].dot(v) + origin.y, - basis[2].dot(v) + origin.z + basis[0].Dot(v) + origin.x, + basis[1].Dot(v) + origin.y, + basis[2].Dot(v) + origin.z ); } - public Vector3 xform_inv(Vector3 v) + public Vector3 XformInv(Vector3 v) { Vector3 vInv = v - origin; @@ -100,7 +100,7 @@ namespace Godot public Transform(Vector3 xAxis, Vector3 yAxis, Vector3 zAxis, Vector3 origin) { - this.basis = Basis.create_from_axes(xAxis, yAxis, zAxis); + this.basis = Basis.CreateFromAxes(xAxis, yAxis, zAxis); this.origin = origin; } @@ -118,7 +118,7 @@ namespace Godot public static Transform operator *(Transform left, Transform right) { - left.origin = left.xform(right.origin); + left.origin = left.Xform(right.origin); left.basis *= right.basis; return left; } diff --git a/modules/mono/glue/cs_files/Transform2D.cs b/modules/mono/glue/cs_files/Transform2D.cs index 526dc767c6..fe7c5b5706 100644 --- a/modules/mono/glue/cs_files/Transform2D.cs +++ b/modules/mono/glue/cs_files/Transform2D.cs @@ -29,12 +29,12 @@ namespace Godot public float Rotation { - get { return Mathf.atan2(y.x, o.y); } + get { return Mathf.Atan2(y.x, o.y); } } public Vector2 Scale { - get { return new Vector2(x.length(), y.length()); } + get { return new Vector2(x.Length(), y.Length()); } } public Vector2 this[int index] @@ -103,7 +103,7 @@ namespace Godot } } - public Transform2D affine_inverse() + public Transform2D AffineInverse() { Transform2D inv = this; @@ -128,22 +128,22 @@ namespace Godot this[0] *= new Vector2(idet, -idet); this[1] *= new Vector2(-idet, idet); - this[2] = basis_xform(-this[2]); + this[2] = BasisXform(-this[2]); return inv; } - public Vector2 basis_xform(Vector2 v) + public Vector2 BasisXform(Vector2 v) { - return new Vector2(tdotx(v), tdoty(v)); + return new Vector2(Tdotx(v), Tdoty(v)); } - public Vector2 basis_xform_inv(Vector2 v) + public Vector2 BasisXformInv(Vector2 v) { - return new Vector2(x.dot(v), y.dot(v)); + return new Vector2(x.Dot(v), y.Dot(v)); } - public Transform2D interpolate_with(Transform2D m, float c) + public Transform2D InterpolateWith(Transform2D m, float c) { float r1 = Rotation; float r2 = m.Rotation; @@ -152,10 +152,10 @@ namespace Godot Vector2 s2 = m.Scale; // Slerp rotation - Vector2 v1 = new Vector2(Mathf.cos(r1), Mathf.sin(r1)); - Vector2 v2 = new Vector2(Mathf.cos(r2), Mathf.sin(r2)); + Vector2 v1 = new Vector2(Mathf.Cos(r1), Mathf.Sin(r1)); + Vector2 v2 = new Vector2(Mathf.Cos(r2), Mathf.Sin(r2)); - float dot = v1.dot(v2); + float dot = v1.Dot(v2); // Clamp dot to [-1, 1] dot = (dot < -1.0f) ? -1.0f : ((dot > 1.0f) ? 1.0f : dot); @@ -165,13 +165,13 @@ namespace Godot if (dot > 0.9995f) { // Linearly interpolate to avoid numerical precision issues - v = v1.linear_interpolate(v2, c).normalized(); + v = v1.LinearInterpolate(v2, c).Normalized(); } else { - float angle = c * Mathf.acos(dot); - Vector2 v3 = (v2 - v1 * dot).normalized(); - v = v1 * Mathf.cos(angle) + v3 * Mathf.sin(angle); + float angle = c * Mathf.Acos(dot); + Vector2 v3 = (v2 - v1 * dot).Normalized(); + v = v1 * Mathf.Cos(angle) + v3 * Mathf.Sin(angle); } // Extract parameters @@ -179,15 +179,15 @@ namespace Godot Vector2 p2 = m.Origin; // Construct matrix - Transform2D res = new Transform2D(Mathf.atan2(v.y, v.x), p1.linear_interpolate(p2, c)); - Vector2 scale = s1.linear_interpolate(s2, c); + Transform2D res = new Transform2D(Mathf.Atan2(v.y, v.x), p1.LinearInterpolate(p2, c)); + Vector2 scale = s1.LinearInterpolate(s2, c); res.x *= scale; res.y *= scale; return res; } - public Transform2D inverse() + public Transform2D Inverse() { Transform2D inv = this; @@ -196,21 +196,21 @@ namespace Godot inv.x.y = inv.y.x; inv.y.x = temp; - inv.o = inv.basis_xform(-inv.o); + inv.o = inv.BasisXform(-inv.o); return inv; } - public Transform2D orthonormalized() + public Transform2D Orthonormalized() { Transform2D on = this; Vector2 onX = on.x; Vector2 onY = on.y; - onX.normalize(); - onY = onY - onX * (onX.dot(onY)); - onY.normalize(); + onX.Normalize(); + onY = onY - onX * (onX.Dot(onY)); + onY.Normalize(); on.x = onX; on.y = onY; @@ -218,12 +218,12 @@ namespace Godot return on; } - public Transform2D rotated(float phi) + public Transform2D Rotated(float phi) { return this * new Transform2D(phi, new Vector2()); } - public Transform2D scaled(Vector2 scale) + public Transform2D Scaled(Vector2 scale) { Transform2D copy = this; copy.x *= scale; @@ -232,32 +232,32 @@ namespace Godot return copy; } - private float tdotx(Vector2 with) + private float Tdotx(Vector2 with) { return this[0, 0] * with[0] + this[1, 0] * with[1]; } - private float tdoty(Vector2 with) + private float Tdoty(Vector2 with) { return this[0, 1] * with[0] + this[1, 1] * with[1]; } - public Transform2D translated(Vector2 offset) + public Transform2D Translated(Vector2 offset) { Transform2D copy = this; - copy.o += copy.basis_xform(offset); + copy.o += copy.BasisXform(offset); return copy; } - public Vector2 xform(Vector2 v) + public Vector2 Xform(Vector2 v) { - return new Vector2(tdotx(v), tdoty(v)) + o; + return new Vector2(Tdotx(v), Tdoty(v)) + o; } - public Vector2 xform_inv(Vector2 v) + public Vector2 XformInv(Vector2 v) { Vector2 vInv = v - o; - return new Vector2(x.dot(vInv), y.dot(vInv)); + return new Vector2(x.Dot(vInv), y.Dot(vInv)); } public Transform2D(Vector2 xAxis, Vector2 yAxis, Vector2 origin) @@ -275,8 +275,8 @@ namespace Godot public Transform2D(float rot, Vector2 pos) { - float cr = Mathf.cos(rot); - float sr = Mathf.sin(rot); + float cr = Mathf.Cos(rot); + float sr = Mathf.Sin(rot); x.x = cr; y.y = cr; x.y = -sr; @@ -286,14 +286,14 @@ namespace Godot public static Transform2D operator *(Transform2D left, Transform2D right) { - left.o = left.xform(right.o); + left.o = left.Xform(right.o); float x0, x1, y0, y1; - x0 = left.tdotx(right.x); - x1 = left.tdoty(right.x); - y0 = left.tdotx(right.y); - y1 = left.tdoty(right.y); + x0 = left.Tdotx(right.x); + x1 = left.Tdoty(right.x); + y0 = left.Tdotx(right.y); + y1 = left.Tdoty(right.y); left.x.x = x0; left.x.y = x1; diff --git a/modules/mono/glue/cs_files/Vector2.cs b/modules/mono/glue/cs_files/Vector2.cs index 28fedc365b..238775bda2 100644 --- a/modules/mono/glue/cs_files/Vector2.cs +++ b/modules/mono/glue/cs_files/Vector2.cs @@ -46,57 +46,57 @@ namespace Godot } } - internal void normalize() + internal void Normalize() { float length = x * x + y * y; if (length != 0f) { - length = Mathf.sqrt(length); + length = Mathf.Sqrt(length); x /= length; y /= length; } } - private float cross(Vector2 b) + private float Cross(Vector2 b) { return x * b.y - y * b.x; } - public Vector2 abs() + public Vector2 Abs() { - return new Vector2(Mathf.abs(x), Mathf.abs(y)); + return new Vector2(Mathf.Abs(x), Mathf.Abs(y)); } - public float angle() + public float Angle() { - return Mathf.atan2(y, x); + return Mathf.Atan2(y, x); } - public float angle_to(Vector2 to) + public float AngleTo(Vector2 to) { - return Mathf.atan2(cross(to), dot(to)); + return Mathf.Atan2(Cross(to), Dot(to)); } - public float angle_to_point(Vector2 to) + public float AngleToPoint(Vector2 to) { - return Mathf.atan2(x - to.x, y - to.y); + return Mathf.Atan2(x - to.x, y - to.y); } - public float aspect() + public float Aspect() { return x / y; } - public Vector2 bounce(Vector2 n) + public Vector2 Bounce(Vector2 n) { - return -reflect(n); + return -Reflect(n); } - public Vector2 clamped(float length) + public Vector2 Clamped(float length) { Vector2 v = this; - float l = this.length(); + float l = this.Length(); if (l > 0 && length < l) { @@ -107,7 +107,7 @@ namespace Godot return v; } - public Vector2 cubic_interpolate(Vector2 b, Vector2 preA, Vector2 postB, float t) + public Vector2 CubicInterpolate(Vector2 b, Vector2 preA, Vector2 postB, float t) { Vector2 p0 = preA; Vector2 p1 = this; @@ -123,42 +123,42 @@ namespace Godot (-p0 + 3.0f * p1 - 3.0f * p2 + p3) * t3); } - public float distance_squared_to(Vector2 to) + public float DistanceSquaredTo(Vector2 to) { return (x - to.x) * (x - to.x) + (y - to.y) * (y - to.y); } - public float distance_to(Vector2 to) + public float DistanceTo(Vector2 to) { - return Mathf.sqrt((x - to.x) * (x - to.x) + (y - to.y) * (y - to.y)); + return Mathf.Sqrt((x - to.x) * (x - to.x) + (y - to.y) * (y - to.y)); } - public float dot(Vector2 with) + public float Dot(Vector2 with) { return x * with.x + y * with.y; } - public Vector2 floor() + public Vector2 Floor() { - return new Vector2(Mathf.floor(x), Mathf.floor(y)); + return new Vector2(Mathf.Floor(x), Mathf.Floor(y)); } - public bool is_normalized() + public bool IsNormalized() { - return Mathf.abs(length_squared() - 1.0f) < Mathf.Epsilon; + return Mathf.Abs(LengthSquared() - 1.0f) < Mathf.Epsilon; } - public float length() + public float Length() { - return Mathf.sqrt(x * x + y * y); + return Mathf.Sqrt(x * x + y * y); } - public float length_squared() + public float LengthSquared() { return x * x + y * y; } - public Vector2 linear_interpolate(Vector2 b, float t) + public Vector2 LinearInterpolate(Vector2 b, float t) { Vector2 res = this; @@ -168,35 +168,35 @@ namespace Godot return res; } - public Vector2 normalized() + public Vector2 Normalized() { Vector2 result = this; - result.normalize(); + result.Normalize(); return result; } - public Vector2 reflect(Vector2 n) + public Vector2 Reflect(Vector2 n) { - return 2.0f * n * dot(n) - this; + return 2.0f * n * Dot(n) - this; } - public Vector2 rotated(float phi) + public Vector2 Rotated(float phi) { - float rads = angle() + phi; - return new Vector2(Mathf.cos(rads), Mathf.sin(rads)) * length(); + float rads = Angle() + phi; + return new Vector2(Mathf.Cos(rads), Mathf.Sin(rads)) * Length(); } - public Vector2 slide(Vector2 n) + public Vector2 Slide(Vector2 n) { - return this - n * dot(n); + return this - n * Dot(n); } - public Vector2 snapped(Vector2 by) + public Vector2 Snapped(Vector2 by) { - return new Vector2(Mathf.stepify(x, by.x), Mathf.stepify(y, by.y)); + return new Vector2(Mathf.Stepify(x, by.x), Mathf.Stepify(y, by.y)); } - public Vector2 tangent() + public Vector2 Tangent() { return new Vector2(y, -x); } diff --git a/modules/mono/glue/cs_files/Vector3.cs b/modules/mono/glue/cs_files/Vector3.cs index c023cd83cf..190caa4b53 100644 --- a/modules/mono/glue/cs_files/Vector3.cs +++ b/modules/mono/glue/cs_files/Vector3.cs @@ -59,9 +59,9 @@ namespace Godot } } - internal void normalize() + internal void Normalize() { - float length = this.length(); + float length = this.Length(); if (length == 0f) { @@ -75,27 +75,27 @@ namespace Godot } } - public Vector3 abs() + public Vector3 Abs() { - return new Vector3(Mathf.abs(x), Mathf.abs(y), Mathf.abs(z)); + return new Vector3(Mathf.Abs(x), Mathf.Abs(y), Mathf.Abs(z)); } - public float angle_to(Vector3 to) + public float AngleTo(Vector3 to) { - return Mathf.atan2(cross(to).length(), dot(to)); + return Mathf.Atan2(Cross(to).Length(), Dot(to)); } - public Vector3 bounce(Vector3 n) + public Vector3 Bounce(Vector3 n) { - return -reflect(n); + return -Reflect(n); } - public Vector3 ceil() + public Vector3 Ceil() { - return new Vector3(Mathf.ceil(x), Mathf.ceil(y), Mathf.ceil(z)); + return new Vector3(Mathf.Ceil(x), Mathf.Ceil(y), Mathf.Ceil(z)); } - public Vector3 cross(Vector3 b) + public Vector3 Cross(Vector3 b) { return new Vector3 ( @@ -105,7 +105,7 @@ namespace Godot ); } - public Vector3 cubic_interpolate(Vector3 b, Vector3 preA, Vector3 postB, float t) + public Vector3 CubicInterpolate(Vector3 b, Vector3 preA, Vector3 postB, float t) { Vector3 p0 = preA; Vector3 p1 = this; @@ -122,46 +122,46 @@ namespace Godot ); } - public float distance_squared_to(Vector3 b) + public float DistanceSquaredTo(Vector3 b) { - return (b - this).length_squared(); + return (b - this).LengthSquared(); } - public float distance_to(Vector3 b) + public float DistanceTo(Vector3 b) { - return (b - this).length(); + return (b - this).Length(); } - public float dot(Vector3 b) + public float Dot(Vector3 b) { return x * b.x + y * b.y + z * b.z; } - public Vector3 floor() + public Vector3 Floor() { - return new Vector3(Mathf.floor(x), Mathf.floor(y), Mathf.floor(z)); + return new Vector3(Mathf.Floor(x), Mathf.Floor(y), Mathf.Floor(z)); } - public Vector3 inverse() + public Vector3 Inverse() { return new Vector3(1.0f / x, 1.0f / y, 1.0f / z); } - public bool is_normalized() + public bool IsNormalized() { - return Mathf.abs(length_squared() - 1.0f) < Mathf.Epsilon; + return Mathf.Abs(LengthSquared() - 1.0f) < Mathf.Epsilon; } - public float length() + public float Length() { float x2 = x * x; float y2 = y * y; float z2 = z * z; - return Mathf.sqrt(x2 + y2 + z2); + return Mathf.Sqrt(x2 + y2 + z2); } - public float length_squared() + public float LengthSquared() { float x2 = x * x; float y2 = y * y; @@ -170,7 +170,7 @@ namespace Godot return x2 + y2 + z2; } - public Vector3 linear_interpolate(Vector3 b, float t) + public Vector3 LinearInterpolate(Vector3 b, float t) { return new Vector3 ( @@ -180,24 +180,24 @@ namespace Godot ); } - public Axis max_axis() + public Axis MaxAxis() { return x < y ? (y < z ? Axis.Z : Axis.Y) : (x < z ? Axis.Z : Axis.X); } - public Axis min_axis() + public Axis MinAxis() { return x < y ? (x < z ? Axis.X : Axis.Z) : (y < z ? Axis.Y : Axis.Z); } - public Vector3 normalized() + public Vector3 Normalized() { Vector3 v = this; - v.normalize(); + v.Normalize(); return v; } - public Basis outer(Vector3 b) + public Basis Outer(Vector3 b) { return new Basis( new Vector3(x * b.x, x * b.y, x * b.z), @@ -206,36 +206,36 @@ namespace Godot ); } - public Vector3 reflect(Vector3 n) + public Vector3 Reflect(Vector3 n) { #if DEBUG - if (!n.is_normalized()) + if (!n.IsNormalized()) throw new ArgumentException(String.Format("{0} is not normalized", n), nameof(n)); #endif - return 2.0f * n * dot(n) - this; + return 2.0f * n * Dot(n) - this; } - public Vector3 rotated(Vector3 axis, float phi) + public Vector3 Rotated(Vector3 axis, float phi) { - return new Basis(axis, phi).xform(this); + return new Basis(axis, phi).Xform(this); } - public Vector3 slide(Vector3 n) + public Vector3 Slide(Vector3 n) { - return this - n * dot(n); + return this - n * Dot(n); } - public Vector3 snapped(Vector3 by) + public Vector3 Snapped(Vector3 by) { return new Vector3 ( - Mathf.stepify(x, by.x), - Mathf.stepify(y, by.y), - Mathf.stepify(z, by.z) + Mathf.Stepify(x, by.x), + Mathf.Stepify(y, by.y), + Mathf.Stepify(z, by.z) ); } - public Basis to_diagonal_matrix() + public Basis ToDiagonalMatrix() { return new Basis( x, 0f, 0f, diff --git a/modules/stb_vorbis/audio_stream_ogg_vorbis.cpp b/modules/stb_vorbis/audio_stream_ogg_vorbis.cpp index 951fc002b7..5c252bda86 100644 --- a/modules/stb_vorbis/audio_stream_ogg_vorbis.cpp +++ b/modules/stb_vorbis/audio_stream_ogg_vorbis.cpp @@ -36,54 +36,36 @@ #include "thirdparty/misc/stb_vorbis.c" #pragma GCC diagnostic pop -#ifndef CLAMP -#define CLAMP(m_a, m_min, m_max) (((m_a) < (m_min)) ? (m_min) : (((m_a) > (m_max)) ? m_max : m_a)) -#endif - void AudioStreamPlaybackOGGVorbis::_mix_internal(AudioFrame *p_buffer, int p_frames) { ERR_FAIL_COND(!active); int todo = p_frames; - int start_buffer = 0; + while (todo && active) { - while (todo > 0 && active) { - float *buffer = (float *)p_buffer; - if (start_buffer > 0) { - buffer = (buffer + start_buffer * 2); - } - int mixed = stb_vorbis_get_samples_float_interleaved(ogg_stream, 2, buffer, todo * 2); + int mixed = stb_vorbis_get_samples_float_interleaved(ogg_stream, 2, (float *)p_buffer, todo * 2); if (vorbis_stream->channels == 1 && mixed > 0) { //mix mono to stereo - for (int i = start_buffer; i < mixed; i++) { + for (int i = 0; i < mixed; i++) { p_buffer[i].r = p_buffer[i].l; } } todo -= mixed; frames_mixed += mixed; - if (todo > 0) { + if (todo) { //end of file! if (vorbis_stream->loop) { - //loop to the loop_beginning - seek(vorbis_stream->loop_begin); + //loop + seek(vorbis_stream->loop_offset); loops++; - // we still have buffer to fill, start from this element in the next iteration. - start_buffer = p_frames - todo; } else { - for (int i = p_frames - todo; i < p_frames; i++) { + for (int i = mixed; i < p_frames; i++) { p_buffer[i] = AudioFrame(0, 0); } active = false; - todo = 0; } - } else if (vorbis_stream->loop && frames_mixed >= vorbis_stream->loop_end_frames) { - // We reached loop_end. Loop to loop_begin plus whatever extra length we already mixed - uint32_t frames_to_advance = uint32_t(frames_mixed - vorbis_stream->loop_end_frames); - float start_loop = vorbis_stream->loop_begin + (float(frames_to_advance) / vorbis_stream->sample_rate); - seek(start_loop); - loops++; } } } @@ -217,9 +199,6 @@ void AudioStreamOGGVorbis::set_data(const PoolVector<uint8_t> &p_data) { //print_line("succeeded "+itos(ogg_alloc.alloc_buffer_length_in_bytes)+" setup "+itos(info.setup_memory_required)+" setup temp "+itos(info.setup_temp_memory_required)+" temp "+itos(info.temp_memory_required)+" maxframe"+itos(info.max_frame_size)); length = stb_vorbis_stream_length_in_seconds(ogg_stream); - if (loop_end == 0) { - set_loop_end(length); - } stb_vorbis_close(ogg_stream); data = AudioServer::get_singleton()->audio_data_alloc(src_data_len, src_datar.ptr()); @@ -254,24 +233,12 @@ bool AudioStreamOGGVorbis::has_loop() const { return loop; } -void AudioStreamOGGVorbis::set_loop_begin(float p_seconds) { - p_seconds = CLAMP(p_seconds, 0, length); - loop_begin = p_seconds; - loop_begin_frames = uint32_t(sample_rate * p_seconds); -} - -float AudioStreamOGGVorbis::get_loop_begin() const { - return loop_begin; -} - -void AudioStreamOGGVorbis::set_loop_end(float p_seconds) { - p_seconds = CLAMP(p_seconds, 0, length); - loop_end = p_seconds; - loop_end_frames = uint32_t(sample_rate * p_seconds); +void AudioStreamOGGVorbis::set_loop_offset(float p_seconds) { + loop_offset = p_seconds; } -float AudioStreamOGGVorbis::get_loop_end() const { - return loop_end; +float AudioStreamOGGVorbis::get_loop_offset() const { + return loop_offset; } void AudioStreamOGGVorbis::_bind_methods() { @@ -282,16 +249,12 @@ void AudioStreamOGGVorbis::_bind_methods() { ClassDB::bind_method(D_METHOD("set_loop", "enable"), &AudioStreamOGGVorbis::set_loop); ClassDB::bind_method(D_METHOD("has_loop"), &AudioStreamOGGVorbis::has_loop); - ClassDB::bind_method(D_METHOD("set_loop_begin", "seconds"), &AudioStreamOGGVorbis::set_loop_begin); - ClassDB::bind_method(D_METHOD("get_loop_begin"), &AudioStreamOGGVorbis::get_loop_begin); - - ClassDB::bind_method(D_METHOD("set_loop_end", "seconds"), &AudioStreamOGGVorbis::set_loop_end); - ClassDB::bind_method(D_METHOD("get_loop_end"), &AudioStreamOGGVorbis::get_loop_end); + ClassDB::bind_method(D_METHOD("set_loop_offset", "seconds"), &AudioStreamOGGVorbis::set_loop_offset); + ClassDB::bind_method(D_METHOD("get_loop_offset"), &AudioStreamOGGVorbis::get_loop_offset); ADD_PROPERTY(PropertyInfo(Variant::POOL_BYTE_ARRAY, "data", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR), "set_data", "get_data"); ADD_PROPERTY(PropertyInfo(Variant::BOOL, "loop", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR), "set_loop", "has_loop"); - ADD_PROPERTY(PropertyInfo(Variant::REAL, "loop_begin", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR), "set_loop_begin", "get_loop_begin"); - ADD_PROPERTY(PropertyInfo(Variant::REAL, "loop_end", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR), "set_loop_end", "get_loop_end"); + ADD_PROPERTY(PropertyInfo(Variant::REAL, "loop_offset", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR), "set_loop_offset", "get_loop_offset"); } AudioStreamOGGVorbis::AudioStreamOGGVorbis() { @@ -300,10 +263,7 @@ AudioStreamOGGVorbis::AudioStreamOGGVorbis() { length = 0; sample_rate = 1; channels = 1; - loop_begin = 0; - loop_end = 0; - loop_begin_frames = 0; - loop_end_frames = 0; + loop_offset = 0; decode_mem_size = 0; - loop = true; + loop = false; } diff --git a/modules/stb_vorbis/audio_stream_ogg_vorbis.h b/modules/stb_vorbis/audio_stream_ogg_vorbis.h index 9297d2246b..f4d381897b 100644 --- a/modules/stb_vorbis/audio_stream_ogg_vorbis.h +++ b/modules/stb_vorbis/audio_stream_ogg_vorbis.h @@ -92,11 +92,7 @@ class AudioStreamOGGVorbis : public AudioStream { int channels; float length; bool loop; - float loop_begin; - float loop_end; - - uint32_t loop_begin_frames; - uint32_t loop_end_frames; + float loop_offset; protected: static void _bind_methods(); @@ -105,11 +101,8 @@ public: void set_loop(bool p_enable); bool has_loop() const; - void set_loop_begin(float p_seconds); - float get_loop_begin() const; - - void set_loop_end(float p_seconds); - float get_loop_end() const; + void set_loop_offset(float p_seconds); + float get_loop_offset() const; virtual Ref<AudioStreamPlayback> instance_playback(); virtual String get_stream_name() const; diff --git a/modules/stb_vorbis/resource_importer_ogg_vorbis.cpp b/modules/stb_vorbis/resource_importer_ogg_vorbis.cpp index b7949e381c..4d28dc027b 100644 --- a/modules/stb_vorbis/resource_importer_ogg_vorbis.cpp +++ b/modules/stb_vorbis/resource_importer_ogg_vorbis.cpp @@ -72,15 +72,13 @@ String ResourceImporterOGGVorbis::get_preset_name(int p_idx) const { void ResourceImporterOGGVorbis::get_import_options(List<ImportOption> *r_options, int p_preset) const { r_options->push_back(ImportOption(PropertyInfo(Variant::BOOL, "loop"), true)); - r_options->push_back(ImportOption(PropertyInfo(Variant::REAL, "loop_begin"), 0)); - r_options->push_back(ImportOption(PropertyInfo(Variant::REAL, "loop_end"), 0)); + r_options->push_back(ImportOption(PropertyInfo(Variant::REAL, "loop_offset"), 0)); } Error ResourceImporterOGGVorbis::import(const String &p_source_file, const String &p_save_path, const Map<StringName, Variant> &p_options, List<String> *r_platform_variants, List<String> *r_gen_files) { bool loop = p_options["loop"]; - float loop_begin = p_options["loop_begin"]; - float loop_end = p_options["loop_end"]; + float loop_offset = p_options["loop_offset"]; FileAccess *f = FileAccess::open(p_source_file, FileAccess::READ); if (!f) { @@ -102,8 +100,7 @@ Error ResourceImporterOGGVorbis::import(const String &p_source_file, const Strin ogg_stream->set_data(data); ogg_stream->set_loop(loop); - ogg_stream->set_loop_begin(loop_begin); - if (loop_end > 0) ogg_stream->set_loop_end(loop_end); + ogg_stream->set_loop_offset(loop_offset); return ResourceSaver::save(p_save_path + ".oggstr", ogg_stream); } diff --git a/modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml b/modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml index 27231574d7..c45c8d2b64 100644 --- a/modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml +++ b/modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml @@ -151,68 +151,74 @@ <constant name="MATH_DB2LINEAR" value="39"> Convert the input from decibel volume to linear volume. </constant> - <constant name="MATH_WRAP" value="40"> + <constant name="MATH_POLAR2CARTESIAN" value="40"> + Converts a 2D point expressed in the polar coordinate system (a distance from the origin [code]r[/code] and an angle [code]th[/code]) to the cartesian coordinate system (x and y axis). </constant> - <constant name="MATH_WRAPF" value="41"> + <constant name="MATH_CARTESIAN2POLAR" value="41"> + Converts a 2D point expressed in the cartesian coordinate system (x and y axis) to the polar coordinate system (a distance from the origin and an angle). </constant> - <constant name="LOGIC_MAX" value="42"> + <constant name="MATH_WRAP" value="42"> + </constant> + <constant name="MATH_WRAPF" value="43"> + </constant> + <constant name="LOGIC_MAX" value="44"> Return the greater of the two numbers, also known as their maximum. </constant> - <constant name="LOGIC_MIN" value="43"> + <constant name="LOGIC_MIN" value="45"> Return the lesser of the two numbers, also known as their minimum. </constant> - <constant name="LOGIC_CLAMP" value="44"> + <constant name="LOGIC_CLAMP" value="46"> Return the input clamped inside the given range, ensuring the result is never outside it. Equivalent to `min(max(input, range_low), range_high)` </constant> - <constant name="LOGIC_NEAREST_PO2" value="45"> + <constant name="LOGIC_NEAREST_PO2" value="46"> Return the nearest power of 2 to the input. </constant> - <constant name="OBJ_WEAKREF" value="46"> + <constant name="OBJ_WEAKREF" value="47"> Create a [WeakRef] from the input. </constant> - <constant name="FUNC_FUNCREF" value="47"> + <constant name="FUNC_FUNCREF" value="48"> Create a [FuncRef] from the input. </constant> - <constant name="TYPE_CONVERT" value="48"> + <constant name="TYPE_CONVERT" value="49"> Convert between types. </constant> - <constant name="TYPE_OF" value="49"> + <constant name="TYPE_OF" value="50"> Return the type of the input as an integer. Check [enum Variant.Type] for the integers that might be returned. </constant> - <constant name="TYPE_EXISTS" value="50"> + <constant name="TYPE_EXISTS" value="51"> Checks if a type is registered in the [ClassDB]. </constant> - <constant name="TEXT_CHAR" value="51"> + <constant name="TEXT_CHAR" value="52"> Return a character with the given ascii value. </constant> - <constant name="TEXT_STR" value="52"> + <constant name="TEXT_STR" value="53"> Convert the input to a string. </constant> - <constant name="TEXT_PRINT" value="53"> + <constant name="TEXT_PRINT" value="54"> Print the given string to the output window. </constant> - <constant name="TEXT_PRINTERR" value="54"> + <constant name="TEXT_PRINTERR" value="55"> Print the given string to the standard error output. </constant> - <constant name="TEXT_PRINTRAW" value="55"> + <constant name="TEXT_PRINTRAW" value="56"> Print the given string to the standard output, without adding a newline. </constant> - <constant name="VAR_TO_STR" value="56"> + <constant name="VAR_TO_STR" value="57"> Serialize a [Variant] to a string. </constant> - <constant name="STR_TO_VAR" value="57"> + <constant name="STR_TO_VAR" value="58"> Deserialize a [Variant] from a string serialized using [VAR_TO_STR]. </constant> - <constant name="VAR_TO_BYTES" value="58"> + <constant name="VAR_TO_BYTES" value="59"> Serialize a [Variant] to a [PoolByteArray]. </constant> - <constant name="BYTES_TO_VAR" value="59"> + <constant name="BYTES_TO_VAR" value="60"> Deserialize a [Variant] from a [PoolByteArray] serialized using [VAR_TO_BYTES]. </constant> - <constant name="COLORN" value="60"> + <constant name="COLORN" value="61"> Return the [Color] with the given name and alpha ranging from 0 to 1. Note: names are defined in color_names.inc. </constant> - <constant name="FUNC_MAX" value="61"> + <constant name="FUNC_MAX" value="62"> The maximum value the [member function] property can have. </constant> </constants> diff --git a/modules/visual_script/visual_script_builtin_funcs.cpp b/modules/visual_script/visual_script_builtin_funcs.cpp index 8f7fe58bee..32f7519125 100644 --- a/modules/visual_script/visual_script_builtin_funcs.cpp +++ b/modules/visual_script/visual_script_builtin_funcs.cpp @@ -78,6 +78,8 @@ const char *VisualScriptBuiltinFunc::func_name[VisualScriptBuiltinFunc::FUNC_MAX "rad2deg", "linear2db", "db2linear", + "polar2cartesian", + "cartesian2polar", "wrapi", "wrapf", "max", @@ -191,6 +193,8 @@ int VisualScriptBuiltinFunc::get_func_argument_count(BuiltinFunc p_func) { case MATH_EASE: case MATH_STEPIFY: case MATH_RANDOM: + case MATH_POLAR2CARTESIAN: + case MATH_CARTESIAN2POLAR: case LOGIC_MAX: case LOGIC_MIN: case FUNC_FUNCREF: @@ -368,6 +372,18 @@ PropertyInfo VisualScriptBuiltinFunc::get_input_value_port_info(int p_idx) const case MATH_DB2LINEAR: { return PropertyInfo(Variant::REAL, "db"); } break; + case MATH_POLAR2CARTESIAN: { + if (p_idx == 0) + return PropertyInfo(Variant::REAL, "r"); + else + return PropertyInfo(Variant::REAL, "th"); + } break; + case MATH_CARTESIAN2POLAR: { + if (p_idx == 0) + return PropertyInfo(Variant::REAL, "x"); + else + return PropertyInfo(Variant::REAL, "y"); + } break; case MATH_WRAP: { if (p_idx == 0) return PropertyInfo(Variant::INT, "value"); @@ -573,6 +589,10 @@ PropertyInfo VisualScriptBuiltinFunc::get_output_value_port_info(int p_idx) cons case MATH_DB2LINEAR: { t = Variant::REAL; } break; + case MATH_POLAR2CARTESIAN: + case MATH_CARTESIAN2POLAR: { + t = Variant::VECTOR2; + } break; case MATH_WRAP: { t = Variant::INT; } break; @@ -922,6 +942,20 @@ void VisualScriptBuiltinFunc::exec_func(BuiltinFunc p_func, const Variant **p_in VALIDATE_ARG_NUM(0); *r_return = Math::db2linear((double)*p_inputs[0]); } break; + case VisualScriptBuiltinFunc::MATH_POLAR2CARTESIAN: { + VALIDATE_ARG_NUM(0); + VALIDATE_ARG_NUM(1); + double r = *p_inputs[0]; + double th = *p_inputs[1]; + *r_return = Vector2(r * Math::cos(th), r * Math::sin(th)); + } break; + case VisualScriptBuiltinFunc::MATH_CARTESIAN2POLAR: { + VALIDATE_ARG_NUM(0); + VALIDATE_ARG_NUM(1); + double x = *p_inputs[0]; + double y = *p_inputs[1]; + *r_return = Vector2(Math::sqrt(x * x + y * y), Math::atan2(y, x)); + } break; case VisualScriptBuiltinFunc::MATH_WRAP: { VALIDATE_ARG_NUM(0); VALIDATE_ARG_NUM(1); @@ -1294,6 +1328,8 @@ void VisualScriptBuiltinFunc::_bind_methods() { BIND_ENUM_CONSTANT(MATH_RAD2DEG); BIND_ENUM_CONSTANT(MATH_LINEAR2DB); BIND_ENUM_CONSTANT(MATH_DB2LINEAR); + BIND_ENUM_CONSTANT(MATH_POLAR2CARTESIAN); + BIND_ENUM_CONSTANT(MATH_CARTESIAN2POLAR); BIND_ENUM_CONSTANT(MATH_WRAP); BIND_ENUM_CONSTANT(MATH_WRAPF); BIND_ENUM_CONSTANT(LOGIC_MAX); @@ -1381,6 +1417,8 @@ void register_visual_script_builtin_func_node() { VisualScriptLanguage::singleton->add_register_func("functions/built_in/rad2deg", create_builtin_func_node<VisualScriptBuiltinFunc::MATH_RAD2DEG>); VisualScriptLanguage::singleton->add_register_func("functions/built_in/linear2db", create_builtin_func_node<VisualScriptBuiltinFunc::MATH_LINEAR2DB>); VisualScriptLanguage::singleton->add_register_func("functions/built_in/db2linear", create_builtin_func_node<VisualScriptBuiltinFunc::MATH_DB2LINEAR>); + VisualScriptLanguage::singleton->add_register_func("functions/built_in/polar2cartesian", create_builtin_func_node<VisualScriptBuiltinFunc::MATH_POLAR2CARTESIAN>); + VisualScriptLanguage::singleton->add_register_func("functions/built_in/cartesian2polar", create_builtin_func_node<VisualScriptBuiltinFunc::MATH_CARTESIAN2POLAR>); VisualScriptLanguage::singleton->add_register_func("functions/built_in/wrapi", create_builtin_func_node<VisualScriptBuiltinFunc::MATH_WRAP>); VisualScriptLanguage::singleton->add_register_func("functions/built_in/wrapf", create_builtin_func_node<VisualScriptBuiltinFunc::MATH_WRAPF>); diff --git a/modules/visual_script/visual_script_builtin_funcs.h b/modules/visual_script/visual_script_builtin_funcs.h index 34a2825938..54dc997b38 100644 --- a/modules/visual_script/visual_script_builtin_funcs.h +++ b/modules/visual_script/visual_script_builtin_funcs.h @@ -77,6 +77,8 @@ public: MATH_RAD2DEG, MATH_LINEAR2DB, MATH_DB2LINEAR, + MATH_POLAR2CARTESIAN, + MATH_CARTESIAN2POLAR, MATH_WRAP, MATH_WRAPF, LOGIC_MAX, diff --git a/modules/visual_script/visual_script_editor.cpp b/modules/visual_script/visual_script_editor.cpp index 83b8d8da2d..2318149ca5 100644 --- a/modules/visual_script/visual_script_editor.cpp +++ b/modules/visual_script/visual_script_editor.cpp @@ -1389,7 +1389,7 @@ bool VisualScriptEditor::can_drop_data_fw(const Point2 &p_point, const Variant & if (String(d["type"]) == "obj_property") { #ifdef OSX_ENABLED - const_cast<VisualScriptEditor *>(this)->_show_hint(TTR("Hold Meta to drop a Getter. Hold Shift to drop a generic signature.")); + const_cast<VisualScriptEditor *>(this)->_show_hint(vformat(TTR("Hold %s to drop a Getter. Hold Shift to drop a generic signature."), find_keycode_name(KEY_META))); #else const_cast<VisualScriptEditor *>(this)->_show_hint(TTR("Hold Ctrl to drop a Getter. Hold Shift to drop a generic signature.")); #endif @@ -1398,7 +1398,7 @@ bool VisualScriptEditor::can_drop_data_fw(const Point2 &p_point, const Variant & if (String(d["type"]) == "nodes") { #ifdef OSX_ENABLED - const_cast<VisualScriptEditor *>(this)->_show_hint(TTR("Hold Meta to drop a simple reference to the node.")); + const_cast<VisualScriptEditor *>(this)->_show_hint(vformat(TTR("Hold %s to drop a simple reference to the node."), find_keycode_name(KEY_META))); #else const_cast<VisualScriptEditor *>(this)->_show_hint(TTR("Hold Ctrl to drop a simple reference to the node.")); #endif @@ -1407,7 +1407,7 @@ bool VisualScriptEditor::can_drop_data_fw(const Point2 &p_point, const Variant & if (String(d["type"]) == "visual_script_variable_drag") { #ifdef OSX_ENABLED - const_cast<VisualScriptEditor *>(this)->_show_hint(TTR("Hold Meta to drop a Variable Setter.")); + const_cast<VisualScriptEditor *>(this)->_show_hint(vformat(TTR("Hold %s to drop a Variable Setter."), find_keycode_name(KEY_META))); #else const_cast<VisualScriptEditor *>(this)->_show_hint(TTR("Hold Ctrl to drop a Variable Setter.")); #endif diff --git a/modules/webm/config.py b/modules/webm/config.py index 0374bb36f7..dcae4447d5 100644 --- a/modules/webm/config.py +++ b/modules/webm/config.py @@ -1,5 +1,5 @@ def can_build(platform): - return True + return platform != 'iphone' def configure(env): pass diff --git a/platform/android/export/export.cpp b/platform/android/export/export.cpp index e1ff12c5ac..8776e6081e 100644 --- a/platform/android/export/export.cpp +++ b/platform/android/export/export.cpp @@ -467,52 +467,72 @@ class EditorExportAndroid : public EditorExportPlatform { return zipfi; } - static Set<String> get_abis() { - Set<String> abis; - abis.insert("armeabi"); - abis.insert("armeabi-v7a"); - abis.insert("arm64-v8a"); - abis.insert("x86"); - abis.insert("x86_64"); - abis.insert("mips"); - abis.insert("mips64"); + static Vector<String> get_abis() { + // mips and armv6 are dead (especially for games), so not including them + Vector<String> abis; + abis.push_back("armeabi-v7a"); + abis.push_back("arm64-v8a"); + abis.push_back("x86"); + abis.push_back("x86_64"); return abis; } - static Error save_apk_file(void *p_userdata, const String &p_path, const Vector<uint8_t> &p_data, int p_file, int p_total) { - APKExportData *ed = (APKExportData *)p_userdata; - String dst_path = p_path; - static Set<String> android_abis = get_abis(); - - if (dst_path.ends_with(".so")) { - String abi = dst_path.get_base_dir().get_file().strip_edges(); // parent dir name - if (android_abis.has(abi)) { - dst_path = "lib/" + abi + "/" + dst_path.get_file(); - } else { - String err = "Dynamic libraries must be located in the folder named after Android ABI they were compiled for. " + - p_path + " does not follow this convention."; - ERR_PRINT(err.utf8().get_data()); - return ERR_FILE_BAD_PATH; - } - } else { - dst_path = dst_path.replace_first("res://", "assets/"); - } - + static Error store_in_apk(APKExportData *ed, const String &p_path, const Vector<uint8_t> &p_data, int compression_method = Z_DEFLATED) { zip_fileinfo zipfi = get_zip_fileinfo(); - zipOpenNewFileInZip(ed->apk, - dst_path.utf8().get_data(), + p_path.utf8().get_data(), &zipfi, NULL, 0, NULL, 0, NULL, - _should_compress_asset(p_path, p_data) ? Z_DEFLATED : 0, + compression_method, Z_DEFAULT_COMPRESSION); zipWriteInFileInZip(ed->apk, p_data.ptr(), p_data.size()); zipCloseFileInZip(ed->apk); + + return OK; + } + + static Error save_apk_so(void *p_userdata, const SharedObject &p_so) { + if (!p_so.path.get_file().begins_with("lib")) { + String err = "Android .so file names must start with \"lib\", but got: " + p_so.path; + ERR_PRINT(err.utf8().get_data()); + return FAILED; + } + APKExportData *ed = (APKExportData *)p_userdata; + Vector<String> abis = get_abis(); + bool exported = false; + for (int i = 0; i < p_so.tags.size(); ++i) { + // shared objects can be fat (compatible with multiple ABIs) + int start_pos = 0; + int abi_index = abis.find(p_so.tags[i]); + if (abi_index != -1) { + exported = true; + start_pos = abi_index + 1; + String abi = abis[abi_index]; + String dst_path = "lib/" + abi + "/" + p_so.path.get_file(); + Vector<uint8_t> array = FileAccess::get_file_as_array(p_so.path); + Error store_err = store_in_apk(ed, dst_path, array); + ERR_FAIL_COND_V(store_err, store_err); + } + } + if (!exported) { + String abis_string = String(" ").join(abis); + String err = "Cannot determine ABI for library \"" + p_so.path + "\". One of the supported ABIs must be used as a tag: " + abis_string; + ERR_PRINT(err.utf8().get_data()); + return FAILED; + } + return OK; + } + + static Error save_apk_file(void *p_userdata, const String &p_path, const Vector<uint8_t> &p_data, int p_file, int p_total) { + APKExportData *ed = (APKExportData *)p_userdata; + String dst_path = p_path.replace_first("res://", "assets/"); + + store_in_apk(ed, dst_path, p_data, _should_compress_asset(p_path, p_data) ? Z_DEFLATED : 0); ed->ep->step("File: " + p_path, 3 + p_file * 100 / p_total); return OK; } @@ -935,6 +955,18 @@ class EditorExportAndroid : public EditorExportPlatform { //printf("end\n"); } + static Vector<String> get_enabled_abis(const Ref<EditorExportPreset> &p_preset) { + Vector<String> abis = get_abis(); + Vector<String> enabled_abis; + for (int i = 0; i < abis.size(); ++i) { + bool is_enabled = p_preset->get("architectures/" + abis[i]); + if (is_enabled) { + enabled_abis.push_back(abis[i]); + } + } + return enabled_abis; + } + public: enum { MAX_USER_PERMISSIONS = 20 @@ -951,6 +983,11 @@ public: r_features->push_back("etc"); else*/ r_features->push_back("etc2"); + + Vector<String> abis = get_enabled_abis(p_preset); + for (int i = 0; i < abis.size(); ++i) { + r_features->push_back(abis[i]); + } } virtual void get_export_options(List<ExportOption> *r_options) { @@ -967,8 +1004,6 @@ public: r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "package/name"), "")); r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "package/icon", PROPERTY_HINT_FILE, "png"), "")); r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "package/signed"), true)); - r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "architecture/arm"), true)); - r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "architecture/x86"), false)); r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "screen/immersive_mode"), true)); r_options->push_back(ExportOption(PropertyInfo(Variant::INT, "screen/orientation", PROPERTY_HINT_ENUM, "Landscape,Portrait"), 0)); r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "screen/support_small"), true)); @@ -982,6 +1017,13 @@ public: r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "apk_expansion/SALT"), "")); r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "apk_expansion/public_key", PROPERTY_HINT_MULTILINE_TEXT), "")); + Vector<String> abis = get_abis(); + for (int i = 0; i < abis.size(); ++i) { + String abi = abis[i]; + bool is_default = (abi == "armeabi-v7a"); + r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "architectures/" + abi), is_default)); + } + const char **perms = android_perms; while (*perms) { @@ -1295,10 +1337,6 @@ public: String unaligned_path = EditorSettings::get_singleton()->get_cache_dir().plus_file("tmpexport-unaligned.apk"); zipFile unaligned_apk = zipOpen2(unaligned_path.utf8().get_data(), APPEND_STATUS_CREATE, NULL, &io2); - bool export_x86 = p_preset->get("architecture/x86"); - bool export_arm = p_preset->get("architecture/arm"); - bool export_arm64 = p_preset->get("architecture/arm64"); - bool use_32_fb = p_preset->get("graphics/32_bits_framebuffer"); bool immersive = p_preset->get("screen/immersive_mode"); @@ -1318,6 +1356,8 @@ public: String release_username = p_preset->get("keystore/release_user"); String release_password = p_preset->get("keystore/release_password"); + Vector<String> enabled_abis = get_enabled_abis(p_preset); + while (ret == UNZ_OK) { //get filename @@ -1381,25 +1421,25 @@ public: } } - if (file == "lib/x86/*.so" && !export_x86) { - skip = true; - } - - if (file.match("lib/armeabi*/*.so") && !export_arm) { - skip = true; - } - - if (file.match("lib/arm64*/*.so") && !export_arm64) { - skip = true; + if (file.ends_with(".so")) { + bool enabled = false; + for (int i = 0; i < enabled_abis.size(); ++i) { + if (file.begins_with("lib/" + enabled_abis[i] + "/")) { + enabled = true; + break; + } + } + if (!enabled) { + skip = true; + } } if (file.begins_with("META-INF") && _signed) { skip = true; } - print_line("ADDING: " + file); - if (!skip) { + print_line("ADDING: " + file); // Respect decision on compression made by AAPT for the export template const bool uncompressed = info.compression_method == 0; @@ -1473,7 +1513,7 @@ public: ed.ep = &ep; ed.apk = unaligned_apk; - err = export_project_files(p_preset, save_apk_file, &ed); + err = export_project_files(p_preset, save_apk_file, &ed, save_apk_so); } } diff --git a/platform/android/os_android.cpp b/platform/android/os_android.cpp index d5ccf76631..b575f15559 100644 --- a/platform/android/os_android.cpp +++ b/platform/android/os_android.cpp @@ -114,15 +114,6 @@ void OS_Android::initialize_core() { #endif } -void OS_Android::initialize_logger() { - Vector<Logger *> loggers; - loggers.push_back(memnew(AndroidLogger)); - // FIXME: Reenable once we figure out how to get this properly in user:// - // instead of littering the user's working dirs (res:// + pwd) with log files (GH-12277) - //loggers.push_back(memnew(RotatedFileLogger("user://logs/log.txt"))); - _set_logger(memnew(CompositeLogger(loggers))); -} - void OS_Android::set_opengl_extensions(const char *p_gl_extensions) { ERR_FAIL_COND(!p_gl_extensions); @@ -705,7 +696,24 @@ String OS_Android::get_joy_guid(int p_device) const { } bool OS_Android::_check_internal_feature_support(const String &p_feature) { - return p_feature == "mobile" || p_feature == "etc" || p_feature == "etc2"; //TODO support etc2 only if GLES3 driver is selected + if (p_feature == "mobile" || p_feature == "etc" || p_feature == "etc2") { + //TODO support etc2 only if GLES3 driver is selected + return true; + } +#if defined(__aarch64__) + if (p_feature == "arm64-v8a") { + return true; + } +#elif defined(__ARM_ARCH_7A__) + if (p_feature == "armeabi-v7a" || p_feature == "armeabi") { + return true; + } +#elif defined(__arm__) + if (p_feature == "armeabi") { + return true; + } +#endif + return false; } OS_Android::OS_Android(GFXInitFunc p_gfx_init_func, void *p_gfx_init_ud, OpenURIFunc p_open_uri_func, GetUserDataDirFunc p_get_user_data_dir_func, GetLocaleFunc p_get_locale_func, GetModelFunc p_get_model_func, GetScreenDPIFunc p_get_screen_dpi_func, ShowVirtualKeyboardFunc p_show_vk, HideVirtualKeyboardFunc p_hide_vk, VirtualKeyboardHeightFunc p_vk_height_func, SetScreenOrientationFunc p_screen_orient, GetUniqueIDFunc p_get_unique_id, GetSystemDirFunc p_get_sdir_func, VideoPlayFunc p_video_play_func, VideoIsPlayingFunc p_video_is_playing_func, VideoPauseFunc p_video_pause_func, VideoStopFunc p_video_stop_func, SetKeepScreenOnFunc p_set_keep_screen_on_func, AlertFunc p_alert_func, bool p_use_apk_expansion) { @@ -745,7 +753,9 @@ OS_Android::OS_Android(GFXInitFunc p_gfx_init_func, void *p_gfx_init_ud, OpenURI alert_func = p_alert_func; use_reload_hooks = false; - _set_logger(memnew(AndroidLogger)); + Vector<Logger *> loggers; + loggers.push_back(memnew(AndroidLogger)); + _set_logger(memnew(CompositeLogger(loggers))); } OS_Android::~OS_Android() { diff --git a/platform/android/os_android.h b/platform/android/os_android.h index d25f60d540..3b7f55096e 100644 --- a/platform/android/os_android.h +++ b/platform/android/os_android.h @@ -144,7 +144,6 @@ public: virtual int get_audio_driver_count() const; virtual const char *get_audio_driver_name(int p_driver) const; - virtual void initialize_logger(); virtual void initialize_core(); virtual void initialize(const VideoMode &p_desired, int p_video_driver, int p_audio_driver); diff --git a/platform/iphone/SCsub b/platform/iphone/SCsub index 61798c5f87..550dfdd7d6 100644 --- a/platform/iphone/SCsub +++ b/platform/iphone/SCsub @@ -3,7 +3,7 @@ Import('env') iphone_lib = [ - + 'godot_iphone.cpp', 'os_iphone.cpp', 'sem_iphone.cpp', 'gl_view.mm', @@ -17,10 +17,10 @@ iphone_lib = [ ] env_ios = env.Clone() +ios_lib = env_ios.Library('iphone', iphone_lib) -obj = env_ios.Object('godot_iphone.cpp') +def combine_libs(target=None, source=None, env=None): + lib_path = target[0].srcnode().abspath + env.Execute('$IPHONEPATH/usr/bin/libtool -static -o "' + lib_path + '" ' + ' '.join([('"' + lib.srcnode().abspath + '"') for lib in source])) -prog = None -prog = env_ios.Program('#bin/godot', [obj] + iphone_lib) -action = "$IPHONEPATH/usr/bin/dsymutil " + File(prog)[0].path + " -o " + File(prog)[0].path + ".dSYM" -env.AddPostAction(prog, action) +combine_command = env_ios.Command('#bin/libgodot' + env_ios['LIBSUFFIX'], [ios_lib] + env_ios['LIBS'], combine_libs) diff --git a/platform/iphone/detect.py b/platform/iphone/detect.py index 4ea358f871..25674c2b47 100644 --- a/platform/iphone/detect.py +++ b/platform/iphone/detect.py @@ -61,10 +61,13 @@ def configure(env): env.Append(LINKFLAGS=['-flto']) ## Architecture + if env["ios_sim"] and not ("arch" in env): + env["arch"] = "x86" - if env["ios_sim"] or env["arch"] == "x86": # i386, simulator - env["arch"] = "x86" + if env["arch"] == "x86": # i386, simulator env["bits"] = "32" + elif env["arch"] == "x86_64": + env["bits"] = "64" elif (env["arch"] == "arm" or env["arch"] == "arm32" or env["arch"] == "armv7" or env["bits"] == "32"): # arm env["arch"] = "arm" env["bits"] = "32" @@ -95,10 +98,11 @@ def configure(env): ## Compile flags - if (env["arch"] == "x86"): + if (env["arch"] == "x86" or env["arch"] == "x86_64"): env['IPHONEPLATFORM'] = 'iPhoneSimulator' - env['ENV']['MACOSX_DEPLOYMENT_TARGET'] = '10.6' - env.Append(CCFLAGS='-arch i386 -fobjc-abi-version=2 -fobjc-legacy-dispatch -fmessage-length=0 -fpascal-strings -fblocks -fasm-blocks -D__IPHONE_OS_VERSION_MIN_REQUIRED=40100 -isysroot $IPHONESDK -mios-simulator-version-min=4.3 -DCUSTOM_MATRIX_TRANSFORM_H=\\\"build/iphone/matrix4_iphone.h\\\" -DCUSTOM_VECTOR3_TRANSFORM_H=\\\"build/iphone/vector3_iphone.h\\\"'.split()) + env['ENV']['MACOSX_DEPLOYMENT_TARGET'] = '10.9' + arch_flag = "i386" if env["arch"] == "x86" else env["arch"] + env.Append(CCFLAGS=('-arch ' + arch_flag + ' -fobjc-abi-version=2 -fobjc-legacy-dispatch -fmessage-length=0 -fpascal-strings -fblocks -fasm-blocks -isysroot $IPHONESDK -mios-simulator-version-min=9.0 -DCUSTOM_MATRIX_TRANSFORM_H=\\\"build/iphone/matrix4_iphone.h\\\" -DCUSTOM_VECTOR3_TRANSFORM_H=\\\"build/iphone/vector3_iphone.h\\\"').split()) elif (env["arch"] == "arm"): env.Append(CCFLAGS='-fno-objc-arc -arch armv7 -fmessage-length=0 -fno-strict-aliasing -fdiagnostics-print-source-range-info -fdiagnostics-show-category=id -fdiagnostics-parseable-fixits -fpascal-strings -fblocks -isysroot $IPHONESDK -fvisibility=hidden -mthumb "-DIBOutlet=__attribute__((iboutlet))" "-DIBOutletCollection(ClassName)=__attribute__((iboutletcollection(ClassName)))" "-DIBAction=void)__attribute__((ibaction)" -miphoneos-version-min=9.0 -MMD -MT dependencies'.split()) elif (env["arch"] == "arm64"): @@ -113,8 +117,9 @@ def configure(env): ## Link flags - if (env["arch"] == "x86"): - env.Append(LINKFLAGS=['-arch', 'i386', '-mios-simulator-version-min=4.3', + if (env["arch"] == "x86" or env["arch"] == "x86_64"): + arch_flag = "i386" if env["arch"] == "x86" else env["arch"] + env.Append(LINKFLAGS=['-arch', arch_flag, '-mios-simulator-version-min=9.0', '-isysroot', '$IPHONESDK', '-Xlinker', '-objc_abi_version', diff --git a/platform/iphone/export/export.cpp b/platform/iphone/export/export.cpp index 0507ef19d6..6aa1ed9f8d 100644 --- a/platform/iphone/export/export.cpp +++ b/platform/iphone/export/export.cpp @@ -56,11 +56,48 @@ class EditorExportPlatformIOS : public EditorExportPlatform { static Error _walk_dir_recursive(DirAccess *p_da, FileHandler p_handler, void *p_userdata); static Error _codesign(String p_file, void *p_userdata); - void _fix_config_file(const Ref<EditorExportPreset> &p_preset, Vector<uint8_t> &pfile, const String &p_name, const String &p_binary, bool p_debug); - static Error _export_dylibs(void *p_userdata, const String &p_path, const Vector<uint8_t> &p_data, int p_file, int p_total); + struct IOSConfigData { + String pkg_name; + String binary_name; + String plist_content; + String architectures; + String linker_flags; + String cpp_code; + }; + + struct ExportArchitecture { + String name; + bool is_default; + + ExportArchitecture() + : name(""), is_default(false) { + } + + ExportArchitecture(String p_name, bool p_is_default) { + name = p_name; + is_default = p_is_default; + } + }; + + struct IOSExportAsset { + String exported_path; + bool is_framework; // framework is anything linked to the binary, otherwise it's a resource + }; + + String _get_additional_plist_content(); + String _get_linker_flags(); + String _get_cpp_code(); + void _fix_config_file(const Ref<EditorExportPreset> &p_preset, Vector<uint8_t> &pfile, const IOSConfigData &p_config, bool p_debug); Error _export_loading_screens(const Ref<EditorExportPreset> &p_preset, const String &p_dest_dir); Error _export_icons(const Ref<EditorExportPreset> &p_preset, const String &p_iconset_dir); + Vector<ExportArchitecture> _get_supported_architectures(); + Vector<String> _get_preset_architectures(const Ref<EditorExportPreset> &p_preset); + + void _add_assets_to_project(Vector<uint8_t> &p_project_data, const Vector<IOSExportAsset> &p_additional_assets); + Error _export_additional_assets(const String &p_out_dir, const Vector<String> &p_assets, bool p_is_framework, Vector<IOSExportAsset> &r_exported_assets); + Error _export_additional_assets(const String &p_out_dir, const Vector<SharedObject> &p_libraries, Vector<IOSExportAsset> &r_exported_assets); + protected: virtual void get_preset_features(const Ref<EditorExportPreset> &p_preset, List<String> *r_features); virtual void get_export_options(List<ExportOption> *r_options); @@ -96,6 +133,17 @@ void EditorExportPlatformIOS::get_preset_features(const Ref<EditorExportPreset> if (p_preset->get("texture_format/etc2")) { r_features->push_back("etc2"); } + Vector<String> architectures = _get_preset_architectures(p_preset); + for (int i = 0; i < architectures.size(); ++i) { + r_features->push_back(architectures[i]); + } +} + +Vector<EditorExportPlatformIOS::ExportArchitecture> EditorExportPlatformIOS::_get_supported_architectures() { + Vector<ExportArchitecture> archs; + archs.push_back(ExportArchitecture("armv7", true)); + archs.push_back(ExportArchitecture("arm64", true)); + return archs; } void EditorExportPlatformIOS::get_export_options(List<ExportOption> *r_options) { @@ -120,7 +168,6 @@ void EditorExportPlatformIOS::get_export_options(List<ExportOption> *r_options) r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "application/short_version"), "1.0")); r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "application/version"), "1.0")); r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "application/copyright"), "")); - r_options->push_back(ExportOption(PropertyInfo(Variant::INT, "application/bits_mode", PROPERTY_HINT_ENUM, "Fat (32 & 64 bits),64 bits,32 bits"), 1)); r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "required_icons/iphone_120x120", PROPERTY_HINT_FILE, "png"), "")); // Home screen on iPhone/iPod Touch with retina display r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "required_icons/ipad_76x76", PROPERTY_HINT_FILE, "png"), "")); // Home screen on iPad @@ -145,10 +192,13 @@ void EditorExportPlatformIOS::get_export_options(List<ExportOption> *r_options) r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "texture_format/etc"), false)); r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "texture_format/etc2"), true)); - /* probably need some more info */ + Vector<ExportArchitecture> architectures = _get_supported_architectures(); + for (int i = 0; i < architectures.size(); ++i) { + r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "architectures/" + architectures[i].name), architectures[i].is_default)); + } } -void EditorExportPlatformIOS::_fix_config_file(const Ref<EditorExportPreset> &p_preset, Vector<uint8_t> &pfile, const String &p_name, const String &p_binary, bool p_debug) { +void EditorExportPlatformIOS::_fix_config_file(const Ref<EditorExportPreset> &p_preset, Vector<uint8_t> &pfile, const IOSConfigData &p_config, bool p_debug) { static const String export_method_string[] = { "app-store", "development", @@ -158,13 +208,12 @@ void EditorExportPlatformIOS::_fix_config_file(const Ref<EditorExportPreset> &p_ String str; String strnew; str.parse_utf8((const char *)pfile.ptr(), pfile.size()); - print_line(str); Vector<String> lines = str.split("\n"); for (int i = 0; i < lines.size(); i++) { if (lines[i].find("$binary") != -1) { - strnew += lines[i].replace("$binary", p_binary) + "\n"; + strnew += lines[i].replace("$binary", p_config.binary_name) + "\n"; } else if (lines[i].find("$name") != -1) { - strnew += lines[i].replace("$name", p_name) + "\n"; + strnew += lines[i].replace("$name", p_config.pkg_name) + "\n"; } else if (lines[i].find("$info") != -1) { strnew += lines[i].replace("$info", p_preset->get("application/info")) + "\n"; } else if (lines[i].find("$identifier") != -1) { @@ -186,10 +235,21 @@ void EditorExportPlatformIOS::_fix_config_file(const Ref<EditorExportPreset> &p_ strnew += lines[i].replace("$provisioning_profile_uuid_release", p_preset->get("application/provisioning_profile_uuid_release")) + "\n"; } else if (lines[i].find("$provisioning_profile_uuid_debug") != -1) { strnew += lines[i].replace("$provisioning_profile_uuid_debug", p_preset->get("application/provisioning_profile_uuid_debug")) + "\n"; + } else if (lines[i].find("$provisioning_profile_uuid") != -1) { + String uuid = p_debug ? p_preset->get("application/provisioning_profile_uuid_debug") : p_preset->get("application/provisioning_profile_uuid_release"); + strnew += lines[i].replace("$provisioning_profile_uuid", uuid) + "\n"; } else if (lines[i].find("$code_sign_identity_debug") != -1) { strnew += lines[i].replace("$code_sign_identity_debug", p_preset->get("application/code_sign_identity_debug")) + "\n"; } else if (lines[i].find("$code_sign_identity_release") != -1) { strnew += lines[i].replace("$code_sign_identity_release", p_preset->get("application/code_sign_identity_release")) + "\n"; + } else if (lines[i].find("$additional_plist_content") != -1) { + strnew += lines[i].replace("$additional_plist_content", p_config.plist_content) + "\n"; + } else if (lines[i].find("$godot_archs") != -1) { + strnew += lines[i].replace("$godot_archs", p_config.architectures) + "\n"; + } else if (lines[i].find("$linker_flags") != -1) { + strnew += lines[i].replace("$linker_flags", p_config.linker_flags) + "\n"; + } else if (lines[i].find("$cpp_code") != -1) { + strnew += lines[i].replace("$cpp_code", p_config.cpp_code) + "\n"; } else { strnew += lines[i] + "\n"; } @@ -204,27 +264,37 @@ void EditorExportPlatformIOS::_fix_config_file(const Ref<EditorExportPreset> &p_ } } -Error EditorExportPlatformIOS::_export_dylibs(void *p_userdata, const String &p_path, const Vector<uint8_t> &p_data, int p_file, int p_total) { - if (!p_path.ends_with(".dylib")) return OK; - const String &dest_dir = *(String *)p_userdata; - String rel_path = p_path.replace_first("res://", "dylibs/"); - DirAccess *dest_dir_access = DirAccess::open(dest_dir); - ERR_FAIL_COND_V(!dest_dir_access, ERR_CANT_OPEN); - - String base_dir = rel_path.get_base_dir(); - Error make_dir_err = OK; - if (!dest_dir_access->dir_exists(base_dir)) { - make_dir_err = dest_dir_access->make_dir_recursive(base_dir); - } - if (make_dir_err != OK) { - memdelete(dest_dir_access); - return make_dir_err; +String EditorExportPlatformIOS::_get_additional_plist_content() { + Vector<Ref<EditorExportPlugin> > export_plugins = EditorExport::get_singleton()->get_export_plugins(); + String result; + for (int i = 0; i < export_plugins.size(); ++i) { + result += export_plugins[i]->get_ios_plist_content(); } + return result; +} - Error copy_err = dest_dir_access->copy(p_path, dest_dir + rel_path); - memdelete(dest_dir_access); +String EditorExportPlatformIOS::_get_linker_flags() { + Vector<Ref<EditorExportPlugin> > export_plugins = EditorExport::get_singleton()->get_export_plugins(); + String result; + for (int i = 0; i < export_plugins.size(); ++i) { + String flags = export_plugins[i]->get_ios_linker_flags(); + if (flags.length() == 0) continue; + if (result.length() > 0) { + result += ' '; + } + result += flags; + } + // the flags will be enclosed in quotes, so need to escape them + return result.replace("\"", "\\\""); +} - return copy_err; +String EditorExportPlatformIOS::_get_cpp_code() { + Vector<Ref<EditorExportPlugin> > export_plugins = EditorExport::get_singleton()->get_export_plugins(); + String result; + for (int i = 0; i < export_plugins.size(); ++i) { + result += export_plugins[i]->get_ios_cpp_code(); + } + return result; } struct IconInfo { @@ -402,7 +472,207 @@ Error EditorExportPlatformIOS::_codesign(String p_file, void *p_userdata) { return OK; } +struct PbxId { +private: + static char _hex_char(uint8_t four_bits) { + if (four_bits < 10) { + return ('0' + four_bits); + } + return 'A' + (four_bits - 10); + } + + static String _hex_pad(uint32_t num) { + Vector<char> ret; + ret.resize(sizeof(num) * 2); + for (int i = 0; i < sizeof(num) * 2; ++i) { + uint8_t four_bits = (num >> (sizeof(num) * 8 - (i + 1) * 4)) & 0xF; + ret[i] = _hex_char(four_bits); + } + return String::utf8(ret.ptr(), ret.size()); + } + +public: + uint32_t high_bits; + uint32_t mid_bits; + uint32_t low_bits; + + String str() const { + return _hex_pad(high_bits) + _hex_pad(mid_bits) + _hex_pad(low_bits); + } + + PbxId &operator++() { + low_bits++; + if (!low_bits) { + mid_bits++; + if (!mid_bits) { + high_bits++; + } + } + + return *this; + } +}; + +struct ExportLibsData { + Vector<String> lib_paths; + String dest_dir; +}; + +void EditorExportPlatformIOS::_add_assets_to_project(Vector<uint8_t> &p_project_data, const Vector<IOSExportAsset> &p_additional_assets) { + Vector<Ref<EditorExportPlugin> > export_plugins = EditorExport::get_singleton()->get_export_plugins(); + Vector<String> frameworks; + for (int i = 0; i < export_plugins.size(); ++i) { + Vector<String> plugin_frameworks = export_plugins[i]->get_ios_frameworks(); + for (int j = 0; j < plugin_frameworks.size(); ++j) { + frameworks.push_back(plugin_frameworks[j]); + } + } + + // that is just a random number, we just need Godot IDs not to clash with + // existing IDs in the project. + PbxId current_id = { 0x58938401, 0, 0 }; + String pbx_files; + String pbx_frameworks_build; + String pbx_frameworks_refs; + String pbx_resources_build; + String pbx_resources_refs; + + const String file_info_format = String("$build_id = {isa = PBXBuildFile; fileRef = $ref_id; };\n") + + "$ref_id = {isa = PBXFileReference; lastKnownFileType = $file_type; name = $name; path = \"$file_path\"; sourceTree = \"<group>\"; };\n"; + for (int i = 0; i < p_additional_assets.size(); ++i) { + String build_id = (++current_id).str(); + String ref_id = (++current_id).str(); + const IOSExportAsset &asset = p_additional_assets[i]; + + String type; + if (asset.exported_path.ends_with(".framework")) { + type = "wrapper.framework"; + } else if (asset.exported_path.ends_with(".dylib")) { + type = "compiled.mach-o.dylib"; + } else if (asset.exported_path.ends_with(".a")) { + type = "archive.ar"; + } else { + type = "file"; + } + + String &pbx_build = asset.is_framework ? pbx_frameworks_build : pbx_resources_build; + String &pbx_refs = asset.is_framework ? pbx_frameworks_refs : pbx_resources_refs; + + if (pbx_build.length() > 0) { + pbx_build += ",\n"; + pbx_refs += ",\n"; + } + pbx_build += build_id; + pbx_refs += ref_id; + + Dictionary format_dict; + format_dict["build_id"] = build_id; + format_dict["ref_id"] = ref_id; + format_dict["name"] = asset.exported_path.get_file(); + format_dict["file_path"] = asset.exported_path; + format_dict["file_type"] = type; + pbx_files += file_info_format.format(format_dict, "$_"); + } + + String str = String::utf8((const char *)p_project_data.ptr(), p_project_data.size()); + str = str.replace("$additional_pbx_files", pbx_files); + str = str.replace("$additional_pbx_frameworks_build", pbx_frameworks_build); + str = str.replace("$additional_pbx_frameworks_refs", pbx_frameworks_refs); + str = str.replace("$additional_pbx_resources_build", pbx_resources_build); + str = str.replace("$additional_pbx_resources_refs", pbx_resources_refs); + + CharString cs = str.utf8(); + p_project_data.resize(cs.size() - 1); + for (int i = 0; i < cs.size() - 1; i++) { + p_project_data[i] = cs[i]; + } +} + +Error EditorExportPlatformIOS::_export_additional_assets(const String &p_out_dir, const Vector<String> &p_assets, bool p_is_framework, Vector<IOSExportAsset> &r_exported_assets) { + DirAccess *filesystem_da = DirAccess::create(DirAccess::ACCESS_FILESYSTEM); + ERR_FAIL_COND_V(!filesystem_da, ERR_CANT_CREATE); + for (int f_idx = 0; f_idx < p_assets.size(); ++f_idx) { + String asset = p_assets[f_idx]; + if (!asset.begins_with("res://")) { + // either SDK-builtin or already a part of the export template + IOSExportAsset exported_asset = { asset, p_is_framework }; + r_exported_assets.push_back(exported_asset); + } else { + DirAccess *da = DirAccess::create_for_path(asset); + if (!da) { + memdelete(filesystem_da); + ERR_FAIL_COND_V(!da, ERR_CANT_CREATE); + } + bool file_exists = da->file_exists(asset); + bool dir_exists = da->dir_exists(asset); + if (!file_exists && !dir_exists) { + memdelete(da); + memdelete(filesystem_da); + return ERR_FILE_NOT_FOUND; + } + String additional_dir = p_is_framework && asset.ends_with(".dylib") ? "/dylibs/" : "/"; + String destination_dir = p_out_dir + additional_dir + asset.get_base_dir().replace("res://", ""); + if (!filesystem_da->dir_exists(destination_dir)) { + Error make_dir_err = filesystem_da->make_dir_recursive(destination_dir); + if (make_dir_err) { + memdelete(da); + memdelete(filesystem_da); + return make_dir_err; + } + } + + String destination = destination_dir + "/" + asset.get_file(); + Error err = dir_exists ? da->copy_dir(asset, destination) : da->copy(asset, destination); + memdelete(da); + if (err) { + memdelete(filesystem_da); + return err; + } + IOSExportAsset exported_asset = { destination, p_is_framework }; + r_exported_assets.push_back(exported_asset); + } + } + memdelete(filesystem_da); + + return OK; +} + +Error EditorExportPlatformIOS::_export_additional_assets(const String &p_out_dir, const Vector<SharedObject> &p_libraries, Vector<IOSExportAsset> &r_exported_assets) { + Vector<Ref<EditorExportPlugin> > export_plugins = EditorExport::get_singleton()->get_export_plugins(); + for (int i = 0; i < export_plugins.size(); i++) { + Vector<String> frameworks = export_plugins[i]->get_ios_frameworks(); + Error err = _export_additional_assets(p_out_dir, frameworks, true, r_exported_assets); + ERR_FAIL_COND_V(err, err); + Vector<String> ios_bundle_files = export_plugins[i]->get_ios_bundle_files(); + err = _export_additional_assets(p_out_dir, ios_bundle_files, false, r_exported_assets); + ERR_FAIL_COND_V(err, err); + } + + Vector<String> library_paths; + for (int i = 0; i < p_libraries.size(); ++i) { + library_paths.push_back(p_libraries[i].path); + } + Error err = _export_additional_assets(p_out_dir, library_paths, true, r_exported_assets); + ERR_FAIL_COND_V(err, err); + + return OK; +} + +Vector<String> EditorExportPlatformIOS::_get_preset_architectures(const Ref<EditorExportPreset> &p_preset) { + Vector<ExportArchitecture> all_archs = _get_supported_architectures(); + Vector<String> enabled_archs; + for (int i = 0; i < all_archs.size(); ++i) { + bool is_enabled = p_preset->get("architectures/" + all_archs[i].name); + if (is_enabled) { + enabled_archs.push_back(all_archs[i].name); + } + } + return enabled_archs; +} + Error EditorExportPlatformIOS::export_project(const Ref<EditorExportPreset> &p_preset, bool p_debug, const String &p_path, int p_flags) { + ExportNotifier notifier(*this, p_preset, p_debug, p_path, p_flags); + String src_pkg_name; String dest_dir = p_path.get_base_dir() + "/"; String binary_name = p_path.get_file().get_basename(); @@ -427,26 +697,43 @@ Error EditorExportPlatformIOS::export_project(const Ref<EditorExportPreset> &p_p } } - FileAccess *src_f = NULL; - zlib_filefunc_def io = zipio_create_io_from_file(&src_f); + DirAccess *da = DirAccess::create(DirAccess::ACCESS_FILESYSTEM); + if (da) { + String current_dir = da->get_current_dir(); - ep.step("Creating app", 0); + // remove leftovers from last export so they don't interfere + // in case some files are no longer needed + if (da->change_dir(dest_dir + binary_name + ".xcodeproj") == OK) { + da->erase_contents_recursive(); + } + if (da->change_dir(dest_dir + binary_name) == OK) { + da->erase_contents_recursive(); + } - unzFile src_pkg_zip = unzOpen2(src_pkg_name.utf8().get_data(), &io); - if (!src_pkg_zip) { + da->change_dir(current_dir); - EditorNode::add_io_error("Could not find template app to export:\n" + src_pkg_name); - return ERR_FILE_NOT_FOUND; + if (!da->dir_exists(dest_dir + binary_name)) { + Error err = da->make_dir(dest_dir + binary_name); + if (err) { + memdelete(da); + return err; + } + } + memdelete(da); } - ERR_FAIL_COND_V(!src_pkg_zip, ERR_CANT_OPEN); - int ret = unzGoToFirstFile(src_pkg_zip); + ep.step("Making .pck", 0); + String pack_path = dest_dir + binary_name + ".pck"; + Vector<SharedObject> libraries; + Error err = save_pack(p_preset, pack_path, &libraries); + if (err) + return err; + + ep.step("Extracting and configuring Xcode project", 1); - String binary_to_use = "godot.iphone." + String(p_debug ? "debug" : "release") + "."; - int bits_mode = p_preset->get("application/bits_mode"); - binary_to_use += String(bits_mode == 0 ? "fat" : bits_mode == 1 ? "arm64" : "armv7"); + String library_to_use = "libgodot.iphone." + String(p_debug ? "debug" : "release") + ".fat.a"; - print_line("binary: " + binary_to_use); + print_line("static library: " + library_to_use); String pkg_name; if (p_preset->get("application/name") != "") pkg_name = p_preset->get("application/name"); // app_name @@ -455,22 +742,41 @@ Error EditorExportPlatformIOS::export_project(const Ref<EditorExportPreset> &p_p else pkg_name = "Unnamed"; - DirAccess *tmp_app_path = DirAccess::create_for_path(dest_dir); - ERR_FAIL_COND_V(!tmp_app_path, ERR_CANT_CREATE) - - /* Now process our template */ - bool found_binary = false; + bool found_library = false; int total_size = 0; + const String project_file = "godot_ios.xcodeproj/project.pbxproj"; Set<String> files_to_parse; files_to_parse.insert("godot_ios/godot_ios-Info.plist"); - files_to_parse.insert("godot_ios.xcodeproj/project.pbxproj"); - files_to_parse.insert("export_options.plist"); + files_to_parse.insert(project_file); + files_to_parse.insert("godot_ios/export_options.plist"); + files_to_parse.insert("godot_ios/dummy.cpp"); files_to_parse.insert("godot_ios.xcodeproj/project.xcworkspace/contents.xcworkspacedata"); files_to_parse.insert("godot_ios.xcodeproj/xcshareddata/xcschemes/godot_ios.xcscheme"); - print_line("Unzipping..."); + IOSConfigData config_data = { + pkg_name, + binary_name, + _get_additional_plist_content(), + String(" ").join(_get_preset_architectures(p_preset)), + _get_linker_flags(), + _get_cpp_code() + }; + + DirAccess *tmp_app_path = DirAccess::create_for_path(dest_dir); + ERR_FAIL_COND_V(!tmp_app_path, ERR_CANT_CREATE) + print_line("Unzipping..."); + FileAccess *src_f = NULL; + zlib_filefunc_def io = zipio_create_io_from_file(&src_f); + unzFile src_pkg_zip = unzOpen2(src_pkg_name.utf8().get_data(), &io); + if (!src_pkg_zip) { + EditorNode::add_io_error("Could not open export template (not a zip file?):\n" + src_pkg_name); + return ERR_CANT_OPEN; + } + ERR_FAIL_COND_V(!src_pkg_zip, ERR_CANT_OPEN); + int ret = unzGoToFirstFile(src_pkg_zip); + Vector<uint8_t> project_file_data; while (ret == UNZ_OK) { bool is_execute = false; @@ -496,15 +802,18 @@ Error EditorExportPlatformIOS::export_project(const Ref<EditorExportPreset> &p_p if (files_to_parse.has(file)) { print_line(String("parse ") + file); - _fix_config_file(p_preset, data, pkg_name, binary_name, p_debug); - } else if (file.begins_with("godot.iphone")) { - if (file != binary_to_use) { + _fix_config_file(p_preset, data, config_data, p_debug); + } else if (file.begins_with("libgodot.iphone")) { + if (file != library_to_use) { ret = unzGoToNextFile(src_pkg_zip); continue; //ignore! } - found_binary = true; + found_library = true; is_execute = true; - file = "godot_ios.iphone"; + file = "godot_ios.a"; + } + if (file == project_file) { + project_file_data = data; } ///@TODO need to parse logo files @@ -557,16 +866,16 @@ Error EditorExportPlatformIOS::export_project(const Ref<EditorExportPreset> &p_p /* we're done with our source zip */ unzClose(src_pkg_zip); - if (!found_binary) { - ERR_PRINTS("Requested template binary '" + binary_to_use + "' not found. It might be missing from your template archive."); + if (!found_library) { + ERR_PRINTS("Requested template library '" + library_to_use + "' not found. It might be missing from your template archive."); memdelete(tmp_app_path); return ERR_FILE_NOT_FOUND; } String iconset_dir = dest_dir + binary_name + "/Images.xcassets/AppIcon.appiconset/"; - Error err = OK; + err = OK; if (!tmp_app_path->dir_exists(iconset_dir)) { - Error err = tmp_app_path->make_dir_recursive(iconset_dir); + err = tmp_app_path->make_dir_recursive(iconset_dir); } memdelete(tmp_app_path); if (err) @@ -580,20 +889,23 @@ Error EditorExportPlatformIOS::export_project(const Ref<EditorExportPreset> &p_p if (err) return err; - ep.step("Making .pck", 1); - - String pack_path = dest_dir + binary_name + ".pck"; - err = save_pack(p_preset, pack_path); - if (err) - return err; - - err = export_project_files(p_preset, _export_dylibs, &dest_dir); - if (err) - return err; + print_line("Exporting additional assets"); + Vector<IOSExportAsset> assets; + _export_additional_assets(dest_dir + binary_name, libraries, assets); + _add_assets_to_project(project_file_data, assets); + String project_file_name = dest_dir + binary_name + ".xcodeproj/project.pbxproj"; + FileAccess *f = FileAccess::open(project_file_name, FileAccess::WRITE); + if (!f) { + ERR_PRINTS("Can't write '" + project_file_name + "'."); + return ERR_CANT_CREATE; + }; + f->store_buffer(project_file_data.ptr(), project_file_data.size()); + f->close(); + memdelete(f); #ifdef OSX_ENABLED ep.step("Code-signing dylibs", 2); - DirAccess *dylibs_dir = DirAccess::open(dest_dir + "dylibs"); + DirAccess *dylibs_dir = DirAccess::open(dest_dir + binary_name + "/dylibs"); ERR_FAIL_COND_V(!dylibs_dir, ERR_CANT_OPEN); CodesignData codesign_data(p_preset, p_debug); err = _walk_dir_recursive(dylibs_dir, _codesign, &codesign_data); @@ -625,13 +937,14 @@ Error EditorExportPlatformIOS::export_project(const Ref<EditorExportPreset> &p_p export_args.push_back("-archivePath"); export_args.push_back(archive_path); export_args.push_back("-exportOptionsPlist"); - export_args.push_back(dest_dir + "export_options.plist"); + export_args.push_back(dest_dir + binary_name + "/export_options.plist"); + export_args.push_back("-allowProvisioningUpdates"); export_args.push_back("-exportPath"); export_args.push_back(dest_dir); err = OS::get_singleton()->execute("xcodebuild", export_args, true); ERR_FAIL_COND_V(err, err); #else - print_line(".ipa can only be built on macOS. Leaving XCode project without building the package."); + print_line(".ipa can only be built on macOS. Leaving Xcode project without building the package."); #endif return OK; diff --git a/platform/iphone/game_center.mm b/platform/iphone/game_center.mm index 531b80eee3..d2104ae765 100644 --- a/platform/iphone/game_center.mm +++ b/platform/iphone/game_center.mm @@ -109,7 +109,7 @@ void GameCenter::connect() { GameCenter::get_singleton()->authenticated = true; } else { ret["result"] = "error"; - ret["error_code"] = error.code; + ret["error_code"] = (int64_t)error.code; ret["error_description"] = [error.localizedDescription UTF8String]; GameCenter::get_singleton()->authenticated = false; }; @@ -145,7 +145,7 @@ Error GameCenter::post_score(Variant p_score) { ret["result"] = "ok"; } else { ret["result"] = "error"; - ret["error_code"] = error.code; + ret["error_code"] = (int64_t)error.code; ret["error_description"] = [error.localizedDescription UTF8String]; }; @@ -183,7 +183,7 @@ Error GameCenter::award_achievement(Variant p_params) { ret["result"] = "ok"; } else { ret["result"] = "error"; - ret["error_code"] = error.code; + ret["error_code"] = (int64_t)error.code; }; pending_events.push_back(ret); @@ -241,7 +241,7 @@ void GameCenter::request_achievement_descriptions() { } else { ret["result"] = "error"; - ret["error_code"] = error.code; + ret["error_code"] = (int64_t)error.code; }; pending_events.push_back(ret); @@ -273,7 +273,7 @@ void GameCenter::request_achievements() { } else { ret["result"] = "error"; - ret["error_code"] = error.code; + ret["error_code"] = (int64_t)error.code; }; pending_events.push_back(ret); @@ -289,7 +289,7 @@ void GameCenter::reset_achievements() { ret["result"] = "ok"; } else { ret["result"] = "error"; - ret["error_code"] = error.code; + ret["error_code"] = (int64_t)error.code; }; pending_events.push_back(ret); @@ -358,7 +358,7 @@ Error GameCenter::request_identity_verification_signature() { ret["player_id"] = [player.playerID UTF8String]; } else { ret["result"] = "error"; - ret["error_code"] = error.code; + ret["error_code"] = (int64_t)error.code; ret["error_description"] = [error.localizedDescription UTF8String]; }; diff --git a/platform/iphone/os_iphone.cpp b/platform/iphone/os_iphone.cpp index 95d7710c76..fbe3bd310d 100644 --- a/platform/iphone/os_iphone.cpp +++ b/platform/iphone/os_iphone.cpp @@ -46,6 +46,7 @@ #include "sem_iphone.h" #include "ios.h" +#include <dlfcn.h> int OSIPhone::get_video_driver_count() const { @@ -96,15 +97,6 @@ void OSIPhone::initialize_core() { set_data_dir(data_dir); }; -void OSIPhone::initialize_logger() { - Vector<Logger *> loggers; - loggers.push_back(memnew(SyslogLogger)); - // FIXME: Reenable once we figure out how to get this properly in user:// - // instead of littering the user's working dirs (res:// + pwd) with log files (GH-12277) - //loggers.push_back(memnew(RotatedFileLogger("user://logs/log.txt"))); - _set_logger(memnew(CompositeLogger(loggers))); -} - void OSIPhone::initialize(const VideoMode &p_desired, int p_video_driver, int p_audio_driver) { supported_orientations = 0; @@ -402,6 +394,37 @@ void OSIPhone::alert(const String &p_alert, const String &p_title) { iOS::alert(utf8_alert.get_data(), utf8_title.get_data()); } +Error OSIPhone::open_dynamic_library(const String p_path, void *&p_library_handle) { + if (p_path.length() == 0) { + p_library_handle = RTLD_SELF; + return OK; + } + return OS_Unix::open_dynamic_library(p_path, p_library_handle); +} + +Error OSIPhone::close_dynamic_library(void *p_library_handle) { + if (p_library_handle == RTLD_SELF) { + return OK; + } + return OS_Unix::close_dynamic_library(p_library_handle); +} + +HashMap<String, void *> OSIPhone::dynamic_symbol_lookup_table; +void register_dynamic_symbol(char *name, void *address) { + OSIPhone::dynamic_symbol_lookup_table[String(name)] = address; +} + +Error OSIPhone::get_dynamic_library_symbol_handle(void *p_library_handle, const String p_name, void *&p_symbol_handle, bool p_optional) { + if (p_library_handle == RTLD_SELF) { + void **ptr = OSIPhone::dynamic_symbol_lookup_table.getptr(p_name); + if (ptr) { + p_symbol_handle = *ptr; + return OK; + } + } + return OS_Unix::get_dynamic_library_symbol_handle(p_library_handle, p_name, p_symbol_handle, p_optional); +} + void OSIPhone::set_video_mode(const VideoMode &p_video_mode, int p_screen) { video_mode = p_video_mode; @@ -558,7 +581,36 @@ bool OSIPhone::_check_internal_feature_support(const String &p_feature) { return p_feature == "mobile" || p_feature == "etc" || p_feature == "pvrtc" || p_feature == "etc2"; } +// Initialization order between compilation units is not guaranteed, +// so we use this as a hack to ensure certain code is called before +// everything else, but after all units are initialized. +typedef void (*init_callback)(); +static init_callback *ios_init_callbacks = NULL; +static int ios_init_callbacks_count = 0; +static int ios_init_callbacks_capacity = 0; + +void add_ios_init_callback(init_callback cb) { + if (ios_init_callbacks_count == ios_init_callbacks_capacity) { + void *new_ptr = realloc(ios_init_callbacks, sizeof(cb) * 32); + if (new_ptr) { + ios_init_callbacks = (init_callback *)(new_ptr); + ios_init_callbacks_capacity += 32; + } + } + if (ios_init_callbacks_capacity > ios_init_callbacks_count) { + ios_init_callbacks[ios_init_callbacks_count] = cb; + ++ios_init_callbacks_count; + } +} + OSIPhone::OSIPhone(int width, int height, String p_data_dir) { + for (int i = 0; i < ios_init_callbacks_count; ++i) { + ios_init_callbacks[i](); + } + free(ios_init_callbacks); + ios_init_callbacks = NULL; + ios_init_callbacks_count = 0; + ios_init_callbacks_capacity = 0; main_loop = NULL; visual_server = NULL; @@ -576,7 +628,13 @@ OSIPhone::OSIPhone(int width, int height, String p_data_dir) { // which is initialized in initialize_core data_dir = p_data_dir; - _set_logger(memnew(SyslogLogger)); + Vector<Logger *> loggers; + loggers.push_back(memnew(SyslogLogger)); +#ifdef DEBUG_ENABLED + // it seems iOS app's stdout/stderr is only obtainable if you launch it from Xcode + loggers.push_back(memnew(StdLogger)); +#endif + _set_logger(memnew(CompositeLogger(loggers))); }; OSIPhone::~OSIPhone() { diff --git a/platform/iphone/os_iphone.h b/platform/iphone/os_iphone.h index 433228b599..1ef673765a 100644 --- a/platform/iphone/os_iphone.h +++ b/platform/iphone/os_iphone.h @@ -60,6 +60,9 @@ private: MAX_EVENTS = 64, }; + static HashMap<String, void *> dynamic_symbol_lookup_table; + friend void register_dynamic_symbol(char *name, void *address); + uint8_t supported_orientations; VisualServer *visual_server; @@ -83,7 +86,6 @@ private: virtual int get_video_driver_count() const; virtual const char *get_video_driver_name(int p_driver) const; - virtual void initialize_logger(); virtual void initialize_core(); virtual void initialize(const VideoMode &p_desired, int p_video_driver, int p_audio_driver); @@ -153,6 +155,10 @@ public: virtual void alert(const String &p_alert, const String &p_title = "ALERT!"); + virtual Error open_dynamic_library(const String p_path, void *&p_library_handle); + virtual Error close_dynamic_library(void *p_library_handle); + virtual Error get_dynamic_library_symbol_handle(void *p_library_handle, const String p_name, void *&p_symbol_handle, bool p_optional = false); + virtual void set_video_mode(const VideoMode &p_video_mode, int p_screen = 0); virtual VideoMode get_video_mode(int p_screen = 0) const; virtual void get_fullscreen_mode_list(List<VideoMode> *p_list, int p_screen = 0) const; diff --git a/platform/javascript/export/export.cpp b/platform/javascript/export/export.cpp index 943f6d8f35..05b0fb3fbc 100644 --- a/platform/javascript/export/export.cpp +++ b/platform/javascript/export/export.cpp @@ -155,6 +155,7 @@ String EditorExportPlatformJavaScript::get_binary_extension() const { } Error EditorExportPlatformJavaScript::export_project(const Ref<EditorExportPreset> &p_preset, bool p_debug, const String &p_path, int p_flags) { + ExportNotifier notifier(*this, p_preset, p_debug, p_path, p_flags); String custom_debug = p_preset->get("custom_template/debug"); String custom_release = p_preset->get("custom_template/release"); diff --git a/platform/javascript/os_javascript.cpp b/platform/javascript/os_javascript.cpp index 74cfec14a6..d5c675d9e0 100644 --- a/platform/javascript/os_javascript.cpp +++ b/platform/javascript/os_javascript.cpp @@ -80,10 +80,6 @@ void OS_JavaScript::initialize_core() { FileAccess::make_default<FileAccessBufferedFA<FileAccessUnix> >(FileAccess::ACCESS_RESOURCES); } -void OS_JavaScript::initialize_logger() { - _set_logger(memnew(StdLogger)); -} - void OS_JavaScript::set_opengl_extensions(const char *p_gl_extensions) { ERR_FAIL_COND(!p_gl_extensions); diff --git a/platform/javascript/os_javascript.h b/platform/javascript/os_javascript.h index 77eeb02a9f..a95b069d03 100644 --- a/platform/javascript/os_javascript.h +++ b/platform/javascript/os_javascript.h @@ -81,7 +81,6 @@ public: virtual int get_audio_driver_count() const; virtual const char *get_audio_driver_name(int p_driver) const; - virtual void initialize_logger(); virtual void initialize_core(); virtual void initialize(const VideoMode &p_desired, int p_video_driver, int p_audio_driver); diff --git a/platform/osx/export/export.cpp b/platform/osx/export/export.cpp index f6922377e3..689b79b826 100644 --- a/platform/osx/export/export.cpp +++ b/platform/osx/export/export.cpp @@ -288,6 +288,7 @@ Error EditorExportPlatformOSX::_create_dmg(const String &p_dmg_path, const Strin } Error EditorExportPlatformOSX::export_project(const Ref<EditorExportPreset> &p_preset, bool p_debug, const String &p_path, int p_flags) { + ExportNotifier notifier(*this, p_preset, p_debug, p_path, p_flags); String src_pkg_name; diff --git a/platform/osx/os_osx.h b/platform/osx/os_osx.h index aa8ee1fe83..9a740a7bea 100644 --- a/platform/osx/os_osx.h +++ b/platform/osx/os_osx.h @@ -121,7 +121,6 @@ protected: virtual int get_video_driver_count() const; virtual const char *get_video_driver_name(int p_driver) const; - virtual void initialize_logger(); virtual void initialize_core(); virtual void initialize(const VideoMode &p_desired, int p_video_driver, int p_audio_driver); virtual void finalize(); diff --git a/platform/osx/os_osx.mm b/platform/osx/os_osx.mm index 110cb776ee..781e8de1ab 100644 --- a/platform/osx/os_osx.mm +++ b/platform/osx/os_osx.mm @@ -85,6 +85,15 @@ static int prev_mouse_y = 0; static int button_mask = 0; static bool mouse_down_control = false; +static Vector2 get_mouse_pos(NSEvent *event) { + + const NSRect contentRect = [OS_OSX::singleton->window_view frame]; + const NSPoint p = [event locationInWindow]; + mouse_x = p.x * OS_OSX::singleton->_mouse_scale([[event window] backingScaleFactor]); + mouse_y = (contentRect.size.height - p.y) * OS_OSX::singleton->_mouse_scale([[event window] backingScaleFactor]); + return Vector2(mouse_x, mouse_y); +} + @interface GodotApplication : NSApplication @end @@ -508,12 +517,9 @@ static void _mouseDownEvent(NSEvent *event, int index, int mask, bool pressed) { mm->set_button_mask(button_mask); prev_mouse_x = mouse_x; prev_mouse_y = mouse_y; - const NSRect contentRect = [OS_OSX::singleton->window_view frame]; - const NSPoint p = [event locationInWindow]; - mouse_x = p.x * OS_OSX::singleton->_mouse_scale([[event window] backingScaleFactor]); - mouse_y = (contentRect.size.height - p.y) * OS_OSX::singleton->_mouse_scale([[event window] backingScaleFactor]); - mm->set_position(Vector2(mouse_x, mouse_y)); - mm->set_global_position(Vector2(mouse_x, mouse_y)); + const Vector2 pos = get_mouse_pos(event); + mm->set_position(pos); + mm->set_global_position(pos); Vector2 relativeMotion = Vector2(); relativeMotion.x = [event deltaX] * OS_OSX::singleton->_mouse_scale([[event window] backingScaleFactor]); relativeMotion.y = [event deltaY] * OS_OSX::singleton->_mouse_scale([[event window] backingScaleFactor]); @@ -575,6 +581,15 @@ static void _mouseDownEvent(NSEvent *event, int index, int mask, bool pressed) { OS_OSX::singleton->input->set_mouse_in_window(true); } +- (void)magnifyWithEvent:(NSEvent *)event { + Ref<InputEventMagnifyGesture> ev; + ev.instance(); + get_key_modifier_state([event modifierFlags], ev); + ev->set_position(get_mouse_pos(event)); + ev->set_factor([event magnification] + 1.0); + OS_OSX::singleton->push_input(ev); +} + - (void)viewDidChangeBackingProperties { // nothing left to do here } @@ -838,6 +853,18 @@ inline void sendScrollEvent(int button, double factor, int modifierFlags) { OS_OSX::singleton->push_input(sc); } +inline void sendPanEvent(double dx, double dy, int modifierFlags) { + + Ref<InputEventPanGesture> pg; + pg.instance(); + + get_key_modifier_state(modifierFlags, pg); + Vector2 mouse_pos = Vector2(mouse_x, mouse_y); + pg->set_position(mouse_pos); + pg->set_delta(Vector2(-dx, -dy)); + OS_OSX::singleton->push_input(pg); +} + - (void)scrollWheel:(NSEvent *)event { double deltaX, deltaY; @@ -856,11 +883,16 @@ inline void sendScrollEvent(int button, double factor, int modifierFlags) { deltaX = [event deltaX]; deltaY = [event deltaY]; } - if (fabs(deltaX)) { - sendScrollEvent(0 > deltaX ? BUTTON_WHEEL_RIGHT : BUTTON_WHEEL_LEFT, fabs(deltaX * 0.3), [event modifierFlags]); - } - if (fabs(deltaY)) { - sendScrollEvent(0 < deltaY ? BUTTON_WHEEL_UP : BUTTON_WHEEL_DOWN, fabs(deltaY * 0.3), [event modifierFlags]); + + if ([event phase] != NSEventPhaseNone || [event momentumPhase] != NSEventPhaseNone) { + sendPanEvent(deltaX, deltaY, [event modifierFlags]); + } else { + if (fabs(deltaX)) { + sendScrollEvent(0 > deltaX ? BUTTON_WHEEL_RIGHT : BUTTON_WHEEL_LEFT, fabs(deltaX * 0.3), [event modifierFlags]); + } + if (fabs(deltaY)) { + sendScrollEvent(0 < deltaY ? BUTTON_WHEEL_UP : BUTTON_WHEEL_DOWN, fabs(deltaY * 0.3), [event modifierFlags]); + } } } @@ -1185,15 +1217,6 @@ public: typedef UnixTerminalLogger OSXTerminalLogger; #endif -void OS_OSX::initialize_logger() { - Vector<Logger *> loggers; - loggers.push_back(memnew(OSXTerminalLogger)); - // FIXME: Reenable once we figure out how to get this properly in user:// - // instead of littering the user's working dirs (res:// + pwd) with log files (GH-12277) - //loggers.push_back(memnew(RotatedFileLogger("user://logs/log.txt"))); - _set_logger(memnew(CompositeLogger(loggers))); -} - void OS_OSX::alert(const String &p_alert, const String &p_title) { // Set OS X-compliant variables NSAlert *window = [[NSAlert alloc] init]; @@ -2142,7 +2165,9 @@ OS_OSX::OS_OSX() { window_size = Vector2(1024, 600); zoomed = false; - _set_logger(memnew(OSXTerminalLogger)); + Vector<Logger *> loggers; + loggers.push_back(memnew(OSXTerminalLogger)); + _set_logger(memnew(CompositeLogger(loggers))); } bool OS_OSX::_check_internal_feature_support(const String &p_feature) { diff --git a/platform/uwp/os_uwp.cpp b/platform/uwp/os_uwp.cpp index 64e319327f..1655caf04b 100644 --- a/platform/uwp/os_uwp.cpp +++ b/platform/uwp/os_uwp.cpp @@ -179,15 +179,6 @@ void OSUWP::initialize_core() { cursor_shape = CURSOR_ARROW; } -void OSUWP::initialize_logger() { - Vector<Logger *> loggers; - loggers.push_back(memnew(WindowsTerminalLogger)); - // FIXME: Reenable once we figure out how to get this properly in user:// - // instead of littering the user's working dirs (res:// + pwd) with log files (GH-12277) - //loggers.push_back(memnew(RotatedFileLogger("user://logs/log.txt"))); - _set_logger(memnew(CompositeLogger(loggers))); -} - bool OSUWP::can_draw() const { return !minimized; @@ -834,7 +825,9 @@ OSUWP::OSUWP() { AudioDriverManager::add_driver(&audio_driver); - _set_logger(memnew(WindowsTerminalLogger)); + Vector<Logger *> loggers; + loggers.push_back(memnew(WindowsTerminalLogger)); + _set_logger(memnew(CompositeLogger(loggers))); } OSUWP::~OSUWP() { diff --git a/platform/uwp/os_uwp.h b/platform/uwp/os_uwp.h index 3c52fc29a8..8d69cd53fd 100644 --- a/platform/uwp/os_uwp.h +++ b/platform/uwp/os_uwp.h @@ -157,7 +157,6 @@ protected: virtual int get_audio_driver_count() const; virtual const char *get_audio_driver_name(int p_driver) const; - virtual void initialize_logger(); virtual void initialize_core(); virtual void initialize(const VideoMode &p_desired, int p_video_driver, int p_audio_driver); diff --git a/platform/windows/os_windows.cpp b/platform/windows/os_windows.cpp index 72d51ad62a..c189b3b744 100644 --- a/platform/windows/os_windows.cpp +++ b/platform/windows/os_windows.cpp @@ -201,15 +201,6 @@ void OS_Windows::initialize_core() { cursor_shape = CURSOR_ARROW; } -void OS_Windows::initialize_logger() { - Vector<Logger *> loggers; - loggers.push_back(memnew(WindowsTerminalLogger)); - // FIXME: Reenable once we figure out how to get this properly in user:// - // instead of littering the user's working dirs (res:// + pwd) with log files (GH-12277) - //loggers.push_back(memnew(RotatedFileLogger("user://logs/log.txt"))); - _set_logger(memnew(CompositeLogger(loggers))); -} - bool OS_Windows::can_draw() const { return !minimized; @@ -2326,7 +2317,9 @@ OS_Windows::OS_Windows(HINSTANCE _hInstance) { AudioDriverManager::add_driver(&driver_xaudio2); #endif - _set_logger(memnew(WindowsTerminalLogger)); + Vector<Logger *> loggers; + loggers.push_back(memnew(WindowsTerminalLogger)); + _set_logger(memnew(CompositeLogger(loggers))); } OS_Windows::~OS_Windows() { diff --git a/platform/windows/os_windows.h b/platform/windows/os_windows.h index 5e0c240dba..4367297262 100644 --- a/platform/windows/os_windows.h +++ b/platform/windows/os_windows.h @@ -145,7 +145,6 @@ protected: virtual int get_audio_driver_count() const; virtual const char *get_audio_driver_name(int p_driver) const; - virtual void initialize_logger(); virtual void initialize_core(); virtual void initialize(const VideoMode &p_desired, int p_video_driver, int p_audio_driver); diff --git a/platform/x11/os_x11.cpp b/platform/x11/os_x11.cpp index c1d744215d..d1aa129e77 100644 --- a/platform/x11/os_x11.cpp +++ b/platform/x11/os_x11.cpp @@ -250,41 +250,13 @@ void OS_X11::initialize(const VideoMode &p_desired, int p_video_driver, int p_au visual_server = memnew(VisualServerWrapMT(visual_server, get_render_thread_mode() == RENDER_SEPARATE_THREAD)); } - - // borderless fullscreen window mode - if (current_videomode.fullscreen) { - // set bypass compositor hint - Atom bypass_compositor = XInternAtom(x11_display, "_NET_WM_BYPASS_COMPOSITOR", False); - unsigned long compositing_disable_on = 1; - XChangeProperty(x11_display, x11_window, bypass_compositor, XA_CARDINAL, 32, PropModeReplace, (unsigned char *)&compositing_disable_on, 1); - - // needed for lxde/openbox, possibly others - Hints hints; - Atom property; - hints.flags = 2; - hints.decorations = 0; - property = XInternAtom(x11_display, "_MOTIF_WM_HINTS", True); - XChangeProperty(x11_display, x11_window, property, property, 32, PropModeReplace, (unsigned char *)&hints, 5); - XMapRaised(x11_display, x11_window); - XWindowAttributes xwa; - XGetWindowAttributes(x11_display, DefaultRootWindow(x11_display), &xwa); - XMoveResizeWindow(x11_display, x11_window, 0, 0, xwa.width, xwa.height); - - // code for netwm-compliants - XEvent xev; - Atom wm_state = XInternAtom(x11_display, "_NET_WM_STATE", False); - Atom fullscreen = XInternAtom(x11_display, "_NET_WM_STATE_FULLSCREEN", False); - - memset(&xev, 0, sizeof(xev)); - xev.type = ClientMessage; - xev.xclient.window = x11_window; - xev.xclient.message_type = wm_state; - xev.xclient.format = 32; - xev.xclient.data.l[0] = 1; - xev.xclient.data.l[1] = fullscreen; - xev.xclient.data.l[2] = 0; - - XSendEvent(x11_display, DefaultRootWindow(x11_display), False, SubstructureNotifyMask, &xev); + if (current_videomode.maximized) { + current_videomode.maximized = false; + set_window_maximized(true); + // borderless fullscreen window mode + } else if (current_videomode.fullscreen) { + current_videomode.fullscreen = false; + set_window_fullscreen(true); } else if (current_videomode.borderless_window) { Hints hints; Atom property; @@ -467,8 +439,17 @@ void OS_X11::initialize(const VideoMode &p_desired, int p_video_driver, int p_au _ensure_user_data_dir(); power_manager = memnew(PowerX11); + + XEvent xevent; + while (XCheckIfEvent(x11_display, &xevent, _check_window_events, NULL)) { + _window_changed(&xevent); + } } +int OS_X11::_check_window_events(Display *display, XEvent *event, char *arg) { + if (event->type == ConfigureNotify) return 1; + return 0; +} void OS_X11::xim_destroy_callback(::XIM im, ::XPointer client_data, ::XPointer call_data) { @@ -648,6 +629,9 @@ void OS_X11::get_fullscreen_mode_list(List<VideoMode> *p_list, int p_screen) con } void OS_X11::set_wm_fullscreen(bool p_enabled) { + if (current_videomode.fullscreen == p_enabled) + return; + if (p_enabled && !is_window_resizable()) { // Set the window as resizable to prevent window managers to ignore the fullscreen state flag. XSizeHints *xsh; @@ -971,6 +955,9 @@ bool OS_X11::is_window_minimized() const { } void OS_X11::set_window_maximized(bool p_enabled) { + if (is_window_maximized() == p_enabled) + return; + // Using EWMH -- Extended Window Manager Hints XEvent xev; Atom wm_state = XInternAtom(x11_display, "_NET_WM_STATE", False); @@ -1417,6 +1404,20 @@ static Atom pick_target_from_atoms(Display *p_disp, Atom p_t1, Atom p_t2, Atom p return None; } +void OS_X11::_window_changed(XEvent *event) { + + if (xic) { + // Not portable. + set_ime_position(Point2(0, 1)); + } + if ((event->xconfigure.width == current_videomode.width) && + (event->xconfigure.height == current_videomode.height)) + return; + + current_videomode.width = event->xconfigure.width; + current_videomode.height = event->xconfigure.height; +} + void OS_X11::process_xevents() { //printf("checking events %i\n", XPending(x11_display)); @@ -1498,18 +1499,7 @@ void OS_X11::process_xevents() { break; case ConfigureNotify: - if (xic) { - // Not portable. - set_ime_position(Point2(0, 1)); - } - /* call resizeGLScene only if our window-size changed */ - - if ((event.xconfigure.width == current_videomode.width) && - (event.xconfigure.height == current_videomode.height)) - break; - - current_videomode.width = event.xconfigure.width; - current_videomode.height = event.xconfigure.height; + _window_changed(&event); break; case ButtonPress: case ButtonRelease: { diff --git a/platform/x11/os_x11.h b/platform/x11/os_x11.h index 67f3807d99..a74e6ee5f3 100644 --- a/platform/x11/os_x11.h +++ b/platform/x11/os_x11.h @@ -187,6 +187,9 @@ protected: virtual void set_main_loop(MainLoop *p_main_loop); + void _window_changed(XEvent *xevent); + static int _check_window_events(Display *display, XEvent *xevent, char *arg); + public: virtual String get_name(); diff --git a/scene/2d/camera_2d.cpp b/scene/2d/camera_2d.cpp index d65a3bfe80..3164344d15 100644 --- a/scene/2d/camera_2d.cpp +++ b/scene/2d/camera_2d.cpp @@ -52,7 +52,11 @@ void Camera2D::_update_scroll() { if (viewport) { viewport->set_canvas_transform(xform); } - get_tree()->call_group_flags(SceneTree::GROUP_CALL_REALTIME, group_name, "_camera_moved", xform); + + Size2 screen_size = viewport->get_visible_rect().size; + Point2 screen_offset = (anchor_mode == ANCHOR_MODE_DRAG_CENTER ? (screen_size * 0.5) : Point2()); + + get_tree()->call_group_flags(SceneTree::GROUP_CALL_REALTIME, group_name, "_camera_moved", xform, screen_offset); }; } diff --git a/scene/2d/node_2d.cpp b/scene/2d/node_2d.cpp index 36fbf5fda6..45f780e50e 100644 --- a/scene/2d/node_2d.cpp +++ b/scene/2d/node_2d.cpp @@ -433,8 +433,6 @@ void Node2D::_bind_methods() { ClassDB::bind_method(D_METHOD("set_z_as_relative", "enable"), &Node2D::set_z_as_relative); ClassDB::bind_method(D_METHOD("is_z_relative"), &Node2D::is_z_relative); - ClassDB::bind_method(D_METHOD("_edit_set_pivot", "pivot"), &Node2D::_edit_set_pivot); - ClassDB::bind_method(D_METHOD("get_relative_transform_to_parent", "parent"), &Node2D::get_relative_transform_to_parent); ADD_GROUP("Transform", ""); diff --git a/scene/2d/parallax_background.cpp b/scene/2d/parallax_background.cpp index a13ce6278e..b9012e37b2 100644 --- a/scene/2d/parallax_background.cpp +++ b/scene/2d/parallax_background.cpp @@ -47,10 +47,12 @@ void ParallaxBackground::_notification(int p_what) { } } -void ParallaxBackground::_camera_moved(const Transform2D &p_transform) { +void ParallaxBackground::_camera_moved(const Transform2D &p_transform, const Point2 &p_screen_offset) { + + screen_offset = p_screen_offset; set_scroll_scale(p_transform.get_scale().dot(Vector2(0.5, 0.5))); - set_scroll_offset(p_transform.get_origin() / p_transform.get_scale()); + set_scroll_offset(p_transform.get_origin()); } void ParallaxBackground::set_scroll_scale(float p_scale) { @@ -106,9 +108,9 @@ void ParallaxBackground::_update_scroll() { continue; if (ignore_camera_zoom) - l->set_base_offset_and_scale(ofs, 1.0); + l->set_base_offset_and_scale(ofs, 1.0, screen_offset); else - l->set_base_offset_and_scale(ofs, scale); + l->set_base_offset_and_scale(ofs, scale, screen_offset); } } diff --git a/scene/2d/parallax_background.h b/scene/2d/parallax_background.h index 0dad1daeab..e37ec0db99 100644 --- a/scene/2d/parallax_background.h +++ b/scene/2d/parallax_background.h @@ -42,6 +42,7 @@ class ParallaxBackground : public CanvasLayer { float scale; Point2 base_offset; Point2 base_scale; + Point2 screen_offset; String group_name; Point2 limit_begin; Point2 limit_end; @@ -51,7 +52,7 @@ class ParallaxBackground : public CanvasLayer { void _update_scroll(); protected: - void _camera_moved(const Transform2D &p_transform); + void _camera_moved(const Transform2D &p_transform, const Point2 &p_screen_offset); void _notification(int p_what); static void _bind_methods(); diff --git a/scene/2d/parallax_layer.cpp b/scene/2d/parallax_layer.cpp index 8fe651cb5f..4a69841975 100644 --- a/scene/2d/parallax_layer.cpp +++ b/scene/2d/parallax_layer.cpp @@ -40,7 +40,7 @@ void ParallaxLayer::set_motion_scale(const Size2 &p_scale) { if (pb && is_inside_tree()) { Vector2 ofs = pb->get_final_offset(); float scale = pb->get_scroll_scale(); - set_base_offset_and_scale(ofs, scale); + set_base_offset_and_scale(ofs, scale, screen_offset); } } @@ -57,7 +57,7 @@ void ParallaxLayer::set_motion_offset(const Size2 &p_offset) { if (pb && is_inside_tree()) { Vector2 ofs = pb->get_final_offset(); float scale = pb->get_scroll_scale(); - set_base_offset_and_scale(ofs, scale); + set_base_offset_and_scale(ofs, scale, screen_offset); } } @@ -106,26 +106,28 @@ void ParallaxLayer::_notification(int p_what) { } } -void ParallaxLayer::set_base_offset_and_scale(const Point2 &p_offset, float p_scale) { +void ParallaxLayer::set_base_offset_and_scale(const Point2 &p_offset, float p_scale, const Point2 &p_screen_offset) { + screen_offset = p_screen_offset; if (!is_inside_tree()) return; if (Engine::get_singleton()->is_editor_hint()) return; - Point2 new_ofs = ((orig_offset + p_offset) * motion_scale) * p_scale + motion_offset; + + Point2 new_ofs = (screen_offset + (p_offset - screen_offset) * motion_scale) + motion_offset * p_scale + orig_offset * p_scale; + + Vector2 mirror = Vector2(1, 1); if (mirroring.x) { - double den = mirroring.x * p_scale; - new_ofs.x -= den * ceil(new_ofs.x / den); + mirror.x = -1; } if (mirroring.y) { - double den = mirroring.y * p_scale; - new_ofs.y -= den * ceil(new_ofs.y / den); + mirror.y = -1; } set_position(new_ofs); - set_scale(Vector2(1, 1) * p_scale); + set_scale(mirror * p_scale * orig_scale); } String ParallaxLayer::get_configuration_warning() const { diff --git a/scene/2d/parallax_layer.h b/scene/2d/parallax_layer.h index 95ca27c41a..6feb1fad67 100644 --- a/scene/2d/parallax_layer.h +++ b/scene/2d/parallax_layer.h @@ -43,6 +43,8 @@ class ParallaxLayer : public Node2D { Vector2 mirroring; void _update_mirroring(); + Point2 screen_offset; + protected: void _notification(int p_what); static void _bind_methods(); @@ -57,7 +59,7 @@ public: void set_mirroring(const Size2 &p_mirroring); Size2 get_mirroring() const; - void set_base_offset_and_scale(const Point2 &p_offset, float p_scale); + void set_base_offset_and_scale(const Point2 &p_offset, float p_scale, const Point2 &p_screen_offset); virtual String get_configuration_warning() const; ParallaxLayer(); diff --git a/scene/3d/particles.cpp b/scene/3d/particles.cpp index 915a10328b..2a032f5d96 100644 --- a/scene/3d/particles.cpp +++ b/scene/3d/particles.cpp @@ -836,9 +836,15 @@ void ParticlesMaterial::_update_shader() { if (flags[FLAG_DISABLE_Z]) { - code += " TRANSFORM[0] = vec4(cos(CUSTOM.x),-sin(CUSTOM.x),0.0,0.0);\n"; - code += " TRANSFORM[1] = vec4(sin(CUSTOM.x),cos(CUSTOM.x),0.0,0.0);\n"; - code += " TRANSFORM[2] = vec4(0.0,0.0,1.0,0.0);\n"; + if (flags[FLAG_ALIGN_Y_TO_VELOCITY]) { + code += " if (length(VELOCITY) > 0.0) { TRANSFORM[1].xyz = normalize(VELOCITY); } else { TRANSFORM[1].xyz = normalize(TRANSFORM[1].xyz); }\n"; + code += " TRANSFORM[0].xyz = normalize(cross(TRANSFORM[1].xyz,TRANSFORM[2].xyz));\n"; + code += " TRANSFORM[2] = vec4(0.0,0.0,1.0,0.0);\n"; + } else { + code += " TRANSFORM[0] = vec4(cos(CUSTOM.x),-sin(CUSTOM.x),0.0,0.0);\n"; + code += " TRANSFORM[1] = vec4(sin(CUSTOM.x),cos(CUSTOM.x),0.0,0.0);\n"; + code += " TRANSFORM[2] = vec4(0.0,0.0,1.0,0.0);\n"; + } } else { //orient particle Y towards velocity diff --git a/scene/animation/animation_cache.cpp b/scene/animation/animation_cache.cpp index b35b2568d1..fbe2593362 100644 --- a/scene/animation/animation_cache.cpp +++ b/scene/animation/animation_cache.cpp @@ -87,95 +87,90 @@ void AnimationCache::_update_cache() { Ref<Resource> res; - if (np.get_subname_count()) { - - if (animation->track_get_type(i) == Animation::TYPE_TRANSFORM) { + if (animation->track_get_type(i) == Animation::TYPE_TRANSFORM) { + if (np.get_subname_count() > 1) { path_cache.push_back(Path()); ERR_EXPLAIN("Transform tracks can't have a subpath: " + np); ERR_CONTINUE(animation->track_get_type(i) == Animation::TYPE_TRANSFORM); } - RES res; - - for (int j = 0; j < np.get_subname_count(); j++) { - res = j == 0 ? node->get(np.get_subname(j)) : res->get(np.get_subname(j)); - if (res.is_null()) - break; - } + Spatial *sp = Object::cast_to<Spatial>(node); - if (res.is_null()) { + if (!sp) { path_cache.push_back(Path()); - ERR_EXPLAIN("Invalid Track SubPath in Animation: " + np); - ERR_CONTINUE(res.is_null()); + ERR_EXPLAIN("Transform track not of type Spatial: " + np); + ERR_CONTINUE(!sp); } - path.resource = res; - path.object = res.ptr(); - - } else { - - if (animation->track_get_type(i) == Animation::TYPE_TRANSFORM) { - StringName property = np.get_property(); + if (np.get_subname_count() == 1) { + StringName property = np.get_subname(0); String ps = property; - Spatial *sp = Object::cast_to<Spatial>(node); + Skeleton *sk = Object::cast_to<Skeleton>(node); + if (!sk) { - if (!sp) { + path_cache.push_back(Path()); + ERR_EXPLAIN("Property defined in Transform track, but not a Skeleton!: " + np); + ERR_CONTINUE(!sk); + } + int idx = sk->find_bone(ps); + if (idx == -1) { path_cache.push_back(Path()); - ERR_EXPLAIN("Transform track not of type Spatial: " + np); - ERR_CONTINUE(!sp); + ERR_EXPLAIN("Property defined in Transform track, but not a Skeleton Bone!: " + np); + ERR_CONTINUE(idx == -1); } - if (ps != "") { + path.bone_idx = idx; + path.skeleton = sk; + } - Skeleton *sk = Object::cast_to<Skeleton>(node); - if (!sk) { + path.spatial = sp; - path_cache.push_back(Path()); - ERR_EXPLAIN("Property defined in Transform track, but not a Skeleton!: " + np); - ERR_CONTINUE(!sk); - } + } else { + if (np.get_subname_count() > 0) { - int idx = sk->find_bone(ps); - if (idx == -1) { + RES res; + Vector<StringName> leftover_subpath; - path_cache.push_back(Path()); - ERR_EXPLAIN("Property defined in Transform track, but not a Skeleton Bone!: " + np); - ERR_CONTINUE(idx == -1); - } + // We don't want to cache the last resource unless it is a method call + bool is_method = animation->track_get_type(i) == Animation::TYPE_METHOD; + root->get_node_and_resource(np, res, leftover_subpath, is_method); - path.bone_idx = idx; - path.skeleton = sk; + if (res.is_valid()) { + path.resource = res; + } else { + path.node = node; } + path.object = res.is_valid() ? res.ptr() : (Object *)node; + path.subpath = leftover_subpath; - path.spatial = sp; - } + } else { - path.node = node; - path.object = node; + path.node = node; + path.object = node; + path.subpath = np.get_subnames(); + } } if (animation->track_get_type(i) == Animation::TYPE_VALUE) { - if (np.get_property().operator String() == "") { + if (np.get_subname_count() == 0) { path_cache.push_back(Path()); ERR_EXPLAIN("Value Track lacks property: " + np); - ERR_CONTINUE(np.get_property().operator String() == ""); + ERR_CONTINUE(np.get_subname_count() == 0); } - path.property = np.get_property(); - } else if (animation->track_get_type(i) == Animation::TYPE_METHOD) { - if (np.get_property().operator String() != "") { + if (path.subpath.size() != 0) { // Trying to call a method of a non-resource path_cache.push_back(Path()); ERR_EXPLAIN("Method Track has property: " + np); - ERR_CONTINUE(np.get_property().operator String() != ""); + ERR_CONTINUE(path.subpath.size() != 0); } } @@ -226,7 +221,7 @@ void AnimationCache::set_track_value(int p_idx, const Variant &p_value) { return; ERR_FAIL_COND(!p.object); - p.object->set(p.property, p_value); + p.object->set_indexed(p.subpath, p_value); } void AnimationCache::call_track(int p_idx, const StringName &p_method, const Variant **p_args, int p_argcount, Variant::CallError &r_error) { diff --git a/scene/animation/animation_cache.h b/scene/animation/animation_cache.h index e593668df6..481de59730 100644 --- a/scene/animation/animation_cache.h +++ b/scene/animation/animation_cache.h @@ -46,7 +46,7 @@ class AnimationCache : public Object { Spatial *spatial; int bone_idx; - StringName property; + Vector<StringName> subpath; bool valid; Path() { object = NULL; diff --git a/scene/animation/animation_player.cpp b/scene/animation/animation_player.cpp index 6be3ff88d9..010f5a586f 100644 --- a/scene/animation/animation_player.cpp +++ b/scene/animation/animation_player.cpp @@ -242,7 +242,8 @@ void AnimationPlayer::_generate_node_caches(AnimationData *p_anim) { p_anim->node_cache[i] = NULL; RES resource; - Node *child = parent->get_node_and_resource(a->track_get_path(i), resource); + Vector<StringName> leftover_path; + Node *child = parent->get_node_and_resource(a->track_get_path(i), resource, leftover_path); if (!child) { ERR_EXPLAIN("On Animation: '" + p_anim->name + "', couldn't resolve track: '" + String(a->track_get_path(i)) + "'"); } @@ -250,9 +251,9 @@ void AnimationPlayer::_generate_node_caches(AnimationData *p_anim) { uint32_t id = resource.is_valid() ? resource->get_instance_id() : child->get_instance_id(); int bone_idx = -1; - if (a->track_get_path(i).get_property() && Object::cast_to<Skeleton>(child)) { + if (a->track_get_path(i).get_subname_count() == 1 && Object::cast_to<Skeleton>(child)) { - bone_idx = Object::cast_to<Skeleton>(child)->find_bone(a->track_get_path(i).get_property()); + bone_idx = Object::cast_to<Skeleton>(child)->find_bone(a->track_get_path(i).get_subname(0)); if (bone_idx == -1) { continue; @@ -289,8 +290,8 @@ void AnimationPlayer::_generate_node_caches(AnimationData *p_anim) { p_anim->node_cache[i]->skeleton = Object::cast_to<Skeleton>(child); if (p_anim->node_cache[i]->skeleton) { - StringName bone_name = a->track_get_path(i).get_property(); - if (bone_name.operator String() != "") { + if (a->track_get_path(i).get_subname_count() == 1) { + StringName bone_name = a->track_get_path(i).get_subname(0); p_anim->node_cache[i]->bone_idx = p_anim->node_cache[i]->skeleton->find_bone(bone_name); if (p_anim->node_cache[i]->bone_idx < 0) { @@ -311,24 +312,23 @@ void AnimationPlayer::_generate_node_caches(AnimationData *p_anim) { if (a->track_get_type(i) == Animation::TYPE_VALUE) { - StringName property = a->track_get_path(i).get_property(); - if (!p_anim->node_cache[i]->property_anim.has(property)) { + if (!p_anim->node_cache[i]->property_anim.has(a->track_get_path(i).get_concatenated_subnames())) { TrackNodeCache::PropertyAnim pa; - pa.prop = property; + pa.subpath = leftover_path; pa.object = resource.is_valid() ? (Object *)resource.ptr() : (Object *)child; pa.special = SP_NONE; pa.owner = p_anim->node_cache[i]; if (false && p_anim->node_cache[i]->node_2d) { - if (pa.prop == SceneStringNames::get_singleton()->transform_pos) + if (leftover_path.size() == 1 && leftover_path[0] == SceneStringNames::get_singleton()->transform_pos) pa.special = SP_NODE2D_POS; - else if (pa.prop == SceneStringNames::get_singleton()->transform_rot) + else if (leftover_path.size() == 1 && leftover_path[0] == SceneStringNames::get_singleton()->transform_rot) pa.special = SP_NODE2D_ROT; - else if (pa.prop == SceneStringNames::get_singleton()->transform_scale) + else if (leftover_path.size() == 1 && leftover_path[0] == SceneStringNames::get_singleton()->transform_scale) pa.special = SP_NODE2D_SCALE; } - p_anim->node_cache[i]->property_anim[property] = pa; + p_anim->node_cache[i]->property_anim[a->track_get_path(i).get_concatenated_subnames()] = pa; } } } @@ -396,7 +396,7 @@ void AnimationPlayer::_animation_process_animation(AnimationData *p_anim, float //StringName property=a->track_get_path(i).get_property(); - Map<StringName, TrackNodeCache::PropertyAnim>::Element *E = nc->property_anim.find(a->track_get_path(i).get_property()); + Map<StringName, TrackNodeCache::PropertyAnim>::Element *E = nc->property_anim.find(a->track_get_path(i).get_concatenated_subnames()); ERR_CONTINUE(!E); //should it continue, or create a new one? TrackNodeCache::PropertyAnim *pa = &E->get(); @@ -434,7 +434,7 @@ void AnimationPlayer::_animation_process_animation(AnimationData *p_anim, float case SP_NONE: { bool valid; - pa->object->set(pa->prop, value, &valid); //you are not speshul + pa->object->set_indexed(pa->subpath, value, &valid); //you are not speshul #ifdef DEBUG_ENABLED if (!valid) { ERR_PRINTS("Failed setting track value '" + String(pa->owner->path) + "'. Check if property exists or the type of key is valid. Animation '" + a->get_name() + "' at node '" + get_path() + "'."); @@ -622,7 +622,7 @@ void AnimationPlayer::_animation_update_transforms() { case SP_NONE: { bool valid; - pa->object->set(pa->prop, pa->value_accum, &valid); //you are not speshul + pa->object->set_indexed(pa->subpath, pa->value_accum, &valid); //you are not speshul #ifdef DEBUG_ENABLED if (!valid) { ERR_PRINTS("Failed setting key at time " + rtos(playback.current.pos) + " in Animation '" + get_current_animation() + "' at Node '" + get_path() + "', Track '" + String(pa->owner->path) + "'. Check if property exists or the type of key is right for the property"); diff --git a/scene/animation/animation_player.h b/scene/animation/animation_player.h index 83da3b2e5c..e4e021c7fe 100644 --- a/scene/animation/animation_player.h +++ b/scene/animation/animation_player.h @@ -83,7 +83,7 @@ private: TrackNodeCache *owner; SpecialProperty special; //small optimization - StringName prop; + Vector<StringName> subpath; Object *object; Variant value_accum; uint64_t accum_pass; diff --git a/scene/animation/animation_tree_player.cpp b/scene/animation/animation_tree_player.cpp index ad5329c94b..23eccec82f 100644 --- a/scene/animation/animation_tree_player.cpp +++ b/scene/animation/animation_tree_player.cpp @@ -811,7 +811,7 @@ void AnimationTreePlayer::_process_animation(float p_delta) { t.scale.y = 0; t.scale.z = 0; - t.value = t.object->get(t.property); + t.value = t.object->get_indexed(t.subpath); t.value.zero(); t.skip = false; @@ -890,8 +890,8 @@ void AnimationTreePlayer::_process_animation(float p_delta) { if (t.skip || !t.object) continue; - if (t.property) { // value track - t.object->set(t.property, t.value); + if (t.subpath.size()) { // value track + t.object->set_indexed(t.subpath, t.value); continue; } @@ -1475,7 +1475,8 @@ AnimationTreePlayer::Track *AnimationTreePlayer::_find_track(const NodePath &p_p ERR_FAIL_COND_V(!parent, NULL); RES resource; - Node *child = parent->get_node_and_resource(p_path, resource); + Vector<StringName> leftover_path; + Node *child = parent->get_node_and_resource(p_path, resource, leftover_path); if (!child) { String err = "Animation track references unknown Node: '" + String(p_path) + "'."; WARN_PRINT(err.ascii().get_data()); @@ -1483,21 +1484,18 @@ AnimationTreePlayer::Track *AnimationTreePlayer::_find_track(const NodePath &p_p } ObjectID id = child->get_instance_id(); - StringName property; int bone_idx = -1; - if (p_path.get_property()) { + if (p_path.get_subname_count()) { if (Object::cast_to<Skeleton>(child)) - bone_idx = Object::cast_to<Skeleton>(child)->find_bone(p_path.get_property()); - if (bone_idx == -1) - property = p_path.get_property(); + bone_idx = Object::cast_to<Skeleton>(child)->find_bone(p_path.get_subname(0)); } TrackKey key; key.id = id; key.bone_idx = bone_idx; - key.property = property; + key.subpath_concatenated = p_path.get_concatenated_subnames(); if (!track_map.has(key)) { @@ -1507,7 +1505,7 @@ AnimationTreePlayer::Track *AnimationTreePlayer::_find_track(const NodePath &p_p tr.skeleton = Object::cast_to<Skeleton>(child); tr.spatial = Object::cast_to<Spatial>(child); tr.bone_idx = bone_idx; - tr.property = property; + if (bone_idx == -1) tr.subpath = leftover_path; track_map[key] = tr; } diff --git a/scene/animation/animation_tree_player.h b/scene/animation/animation_tree_player.h index 3e2bb88198..c49b0c4d1b 100644 --- a/scene/animation/animation_tree_player.h +++ b/scene/animation/animation_tree_player.h @@ -78,14 +78,14 @@ private: struct TrackKey { uint32_t id; - StringName property; + StringName subpath_concatenated; int bone_idx; inline bool operator<(const TrackKey &p_right) const { if (id == p_right.id) { if (bone_idx == p_right.bone_idx) { - return property < p_right.property; + return subpath_concatenated < p_right.subpath_concatenated; } else return bone_idx < p_right.bone_idx; } else @@ -99,7 +99,7 @@ private: Spatial *spatial; Skeleton *skeleton; int bone_idx; - StringName property; + Vector<StringName> subpath; Vector3 loc; Quat rot; diff --git a/scene/animation/tween.cpp b/scene/animation/tween.cpp index 40d06dc756..151632a0cb 100644 --- a/scene/animation/tween.cpp +++ b/scene/animation/tween.cpp @@ -264,12 +264,12 @@ Variant &Tween::_get_initial_val(InterpolateData &p_data) { if (p_data.type == TARGETING_PROPERTY) { bool valid = false; - initial_val = object->get(p_data.target_key, &valid); + initial_val = object->get_indexed(p_data.target_key, &valid); ERR_FAIL_COND_V(!valid, p_data.initial_val); } else { Variant::CallError error; - initial_val = object->call(p_data.target_key, NULL, 0, error); + initial_val = object->call(p_data.target_key[0], NULL, 0, error); ERR_FAIL_COND_V(error.error != Variant::CallError::CALL_OK, p_data.initial_val); } return initial_val; @@ -296,12 +296,12 @@ Variant &Tween::_get_delta_val(InterpolateData &p_data) { if (p_data.type == FOLLOW_PROPERTY) { bool valid = false; - final_val = target->get(p_data.target_key, &valid); + final_val = target->get_indexed(p_data.target_key, &valid); ERR_FAIL_COND_V(!valid, p_data.initial_val); } else { Variant::CallError error; - final_val = target->call(p_data.target_key, NULL, 0, error); + final_val = target->call(p_data.target_key[0], NULL, 0, error); ERR_FAIL_COND_V(error.error != Variant::CallError::CALL_OK, p_data.initial_val); } @@ -462,6 +462,9 @@ Variant Tween::_run_equation(InterpolateData &p_data) { result = r; } break; + default: { + result = initial_val; + } break; }; #undef APPLY_EQUATION @@ -479,7 +482,7 @@ bool Tween::_apply_tween_value(InterpolateData &p_data, Variant &value) { case FOLLOW_PROPERTY: case TARGETING_PROPERTY: { bool valid = false; - object->set(p_data.key, value, &valid); + object->set_indexed(p_data.key, value, &valid); return valid; } @@ -489,9 +492,9 @@ bool Tween::_apply_tween_value(InterpolateData &p_data, Variant &value) { Variant::CallError error; if (value.get_type() != Variant::NIL) { Variant *arg[1] = { &value }; - object->call(p_data.key, (const Variant **)arg, 1, error); + object->call(p_data.key[0], (const Variant **)arg, 1, error); } else { - object->call(p_data.key, NULL, 0, error); + object->call(p_data.key[0], NULL, 0, error); } if (error.error == Variant::CallError::CALL_OK) @@ -548,7 +551,7 @@ void Tween::_tween_process(float p_delta) { continue; else if (prev_delaying) { - emit_signal("tween_started", object, data.key); + emit_signal("tween_started", object, NodePath(Vector<StringName>(), data.key, false)); _apply_tween_value(data, data.initial_val); } @@ -562,7 +565,7 @@ void Tween::_tween_process(float p_delta) { case INTER_PROPERTY: case INTER_METHOD: { Variant result = _run_equation(data); - emit_signal("tween_step", object, data.key, data.elapsed, result); + emit_signal("tween_step", object, NodePath(Vector<StringName>(), data.key, false), data.elapsed, result); _apply_tween_value(data, result); if (data.finish) _apply_tween_value(data, data.final_val); @@ -574,22 +577,22 @@ void Tween::_tween_process(float p_delta) { switch (data.args) { case 0: - object->call_deferred(data.key); + object->call_deferred(data.key[0]); break; case 1: - object->call_deferred(data.key, data.arg[0]); + object->call_deferred(data.key[0], data.arg[0]); break; case 2: - object->call_deferred(data.key, data.arg[0], data.arg[1]); + object->call_deferred(data.key[0], data.arg[0], data.arg[1]); break; case 3: - object->call_deferred(data.key, data.arg[0], data.arg[1], data.arg[2]); + object->call_deferred(data.key[0], data.arg[0], data.arg[1], data.arg[2]); break; case 4: - object->call_deferred(data.key, data.arg[0], data.arg[1], data.arg[2], data.arg[3]); + object->call_deferred(data.key[0], data.arg[0], data.arg[1], data.arg[2], data.arg[3]); break; case 5: - object->call_deferred(data.key, data.arg[0], data.arg[1], data.arg[2], data.arg[3], data.arg[4]); + object->call_deferred(data.key[0], data.arg[0], data.arg[1], data.arg[2], data.arg[3], data.arg[4]); break; } } else { @@ -601,17 +604,18 @@ void Tween::_tween_process(float p_delta) { &data.arg[3], &data.arg[4], }; - object->call(data.key, (const Variant **)arg, data.args, error); + object->call(data.key[0], (const Variant **)arg, data.args, error); } } break; + default: {} } if (data.finish) { - emit_signal("tween_completed", object, data.key); + emit_signal("tween_completed", object, NodePath(Vector<StringName>(), data.key, false)); // not repeat mode, remove completed action if (!repeat) - call_deferred("_remove", object, data.key, true); + call_deferred("_remove", object, NodePath(Vector<StringName>(), data.key, false), true); } } pending_update--; @@ -690,7 +694,7 @@ bool Tween::start() { return true; } -bool Tween::reset(Object *p_object, String p_key) { +bool Tween::reset(Object *p_object, StringName p_key) { pending_update++; for (List<InterpolateData>::Element *E = interpolates.front(); E; E = E->next()) { @@ -700,7 +704,7 @@ bool Tween::reset(Object *p_object, String p_key) { if (object == NULL) continue; - if (object == p_object && (data.key == p_key || p_key == "")) { + if (object == p_object && (data.concatenated_key == p_key || p_key == "")) { data.elapsed = 0; data.finish = false; @@ -727,7 +731,7 @@ bool Tween::reset_all() { return true; } -bool Tween::stop(Object *p_object, String p_key) { +bool Tween::stop(Object *p_object, StringName p_key) { pending_update++; for (List<InterpolateData>::Element *E = interpolates.front(); E; E = E->next()) { @@ -736,7 +740,7 @@ bool Tween::stop(Object *p_object, String p_key) { Object *object = ObjectDB::get_instance(data.id); if (object == NULL) continue; - if (object == p_object && (data.key == p_key || p_key == "")) + if (object == p_object && (data.concatenated_key == p_key || p_key == "")) data.active = false; } pending_update--; @@ -758,7 +762,7 @@ bool Tween::stop_all() { return true; } -bool Tween::resume(Object *p_object, String p_key) { +bool Tween::resume(Object *p_object, StringName p_key) { set_active(true); _set_process(true); @@ -770,7 +774,7 @@ bool Tween::resume(Object *p_object, String p_key) { Object *object = ObjectDB::get_instance(data.id); if (object == NULL) continue; - if (object == p_object && (data.key == p_key || p_key == "")) + if (object == p_object && (data.concatenated_key == p_key || p_key == "")) data.active = true; } pending_update--; @@ -792,12 +796,12 @@ bool Tween::resume_all() { return true; } -bool Tween::remove(Object *p_object, String p_key) { +bool Tween::remove(Object *p_object, StringName p_key) { _remove(p_object, p_key, false); return true; } -void Tween::_remove(Object *p_object, String p_key, bool first_only) { +void Tween::_remove(Object *p_object, StringName p_key, bool first_only) { if (pending_update != 0) { call_deferred("_remove", p_object, p_key, first_only); @@ -810,7 +814,7 @@ void Tween::_remove(Object *p_object, String p_key, bool first_only) { Object *object = ObjectDB::get_instance(data.id); if (object == NULL) continue; - if (object == p_object && (data.key == p_key || p_key == "")) { + if (object == p_object && (data.concatenated_key == p_key || p_key == "")) { for_removal.push_back(E); if (first_only) { break; @@ -850,8 +854,9 @@ bool Tween::seek(real_t p_time) { data.finish = true; data.elapsed = (data.delay + data.duration); - } else + } else { data.finish = false; + } switch (data.type) { case INTER_PROPERTY: @@ -993,11 +998,15 @@ bool Tween::_calc_delta_val(const Variant &p_initial_val, const Variant &p_final return true; } -bool Tween::interpolate_property(Object *p_object, String p_property, Variant p_initial_val, Variant p_final_val, real_t p_duration, TransitionType p_trans_type, EaseType p_ease_type, real_t p_delay) { +bool Tween::interpolate_property(Object *p_object, NodePath p_property, Variant p_initial_val, Variant p_final_val, real_t p_duration, TransitionType p_trans_type, EaseType p_ease_type, real_t p_delay) { if (pending_update != 0) { _add_pending_command("interpolate_property", p_object, p_property, p_initial_val, p_final_val, p_duration, p_trans_type, p_ease_type, p_delay); return true; } + p_property = p_property.get_as_property_path(); + + if (p_initial_val.get_type() == Variant::NIL) p_initial_val = p_object->get_indexed(p_property.get_subnames()); + // convert INT to REAL is better for interpolaters if (p_initial_val.get_type() == Variant::INT) p_initial_val = p_initial_val.operator real_t(); if (p_final_val.get_type() == Variant::INT) p_final_val = p_final_val.operator real_t(); @@ -1011,7 +1020,7 @@ bool Tween::interpolate_property(Object *p_object, String p_property, Variant p_ ERR_FAIL_COND_V(p_delay < 0, false); bool prop_valid = false; - p_object->get(p_property, &prop_valid); + p_object->get_indexed(p_property.get_subnames(), &prop_valid); ERR_FAIL_COND_V(!prop_valid, false); InterpolateData data; @@ -1021,7 +1030,8 @@ bool Tween::interpolate_property(Object *p_object, String p_property, Variant p_ data.elapsed = 0; data.id = p_object->get_instance_id(); - data.key = p_property; + data.key = p_property.get_subnames(); + data.concatenated_key = p_property.get_concatenated_subnames(); data.initial_val = p_initial_val; data.final_val = p_final_val; data.duration = p_duration; @@ -1036,7 +1046,7 @@ bool Tween::interpolate_property(Object *p_object, String p_property, Variant p_ return true; } -bool Tween::interpolate_method(Object *p_object, String p_method, Variant p_initial_val, Variant p_final_val, real_t p_duration, TransitionType p_trans_type, EaseType p_ease_type, real_t p_delay) { +bool Tween::interpolate_method(Object *p_object, StringName p_method, Variant p_initial_val, Variant p_final_val, real_t p_duration, TransitionType p_trans_type, EaseType p_ease_type, real_t p_delay) { if (pending_update != 0) { _add_pending_command("interpolate_method", p_object, p_method, p_initial_val, p_final_val, p_duration, p_trans_type, p_ease_type, p_delay); return true; @@ -1063,7 +1073,8 @@ bool Tween::interpolate_method(Object *p_object, String p_method, Variant p_init data.elapsed = 0; data.id = p_object->get_instance_id(); - data.key = p_method; + data.key.push_back(p_method); + data.concatenated_key = p_method; data.initial_val = p_initial_val; data.final_val = p_final_val; data.duration = p_duration; @@ -1100,7 +1111,8 @@ bool Tween::interpolate_callback(Object *p_object, real_t p_duration, String p_c data.elapsed = 0; data.id = p_object->get_instance_id(); - data.key = p_callback; + data.key.push_back(p_callback); + data.concatenated_key = p_callback; data.duration = p_duration; data.delay = 0; @@ -1152,7 +1164,8 @@ bool Tween::interpolate_deferred_callback(Object *p_object, real_t p_duration, S data.elapsed = 0; data.id = p_object->get_instance_id(); - data.key = p_callback; + data.key.push_back(p_callback); + data.concatenated_key = p_callback; data.duration = p_duration; data.delay = 0; @@ -1183,11 +1196,16 @@ bool Tween::interpolate_deferred_callback(Object *p_object, real_t p_duration, S return true; } -bool Tween::follow_property(Object *p_object, String p_property, Variant p_initial_val, Object *p_target, String p_target_property, real_t p_duration, TransitionType p_trans_type, EaseType p_ease_type, real_t p_delay) { +bool Tween::follow_property(Object *p_object, NodePath p_property, Variant p_initial_val, Object *p_target, NodePath p_target_property, real_t p_duration, TransitionType p_trans_type, EaseType p_ease_type, real_t p_delay) { if (pending_update != 0) { _add_pending_command("follow_property", p_object, p_property, p_initial_val, p_target, p_target_property, p_duration, p_trans_type, p_ease_type, p_delay); return true; } + p_property = p_property.get_as_property_path(); + p_target_property = p_target_property.get_as_property_path(); + + if (p_initial_val.get_type() == Variant::NIL) p_initial_val = p_object->get_indexed(p_property.get_subnames()); + // convert INT to REAL is better for interpolaters if (p_initial_val.get_type() == Variant::INT) p_initial_val = p_initial_val.operator real_t(); @@ -1201,11 +1219,11 @@ bool Tween::follow_property(Object *p_object, String p_property, Variant p_initi ERR_FAIL_COND_V(p_delay < 0, false); bool prop_valid = false; - p_object->get(p_property, &prop_valid); + p_object->get_indexed(p_property.get_subnames(), &prop_valid); ERR_FAIL_COND_V(!prop_valid, false); bool target_prop_valid = false; - Variant target_val = p_target->get(p_target_property, &target_prop_valid); + Variant target_val = p_target->get_indexed(p_target_property.get_subnames(), &target_prop_valid); ERR_FAIL_COND_V(!target_prop_valid, false); // convert INT to REAL is better for interpolaters @@ -1219,10 +1237,11 @@ bool Tween::follow_property(Object *p_object, String p_property, Variant p_initi data.elapsed = 0; data.id = p_object->get_instance_id(); - data.key = p_property; + data.key = p_property.get_subnames(); + data.concatenated_key = p_property.get_concatenated_subnames(); data.initial_val = p_initial_val; data.target_id = p_target->get_instance_id(); - data.target_key = p_target_property; + data.target_key = p_target_property.get_subnames(); data.duration = p_duration; data.trans_type = p_trans_type; data.ease_type = p_ease_type; @@ -1232,7 +1251,7 @@ bool Tween::follow_property(Object *p_object, String p_property, Variant p_initi return true; } -bool Tween::follow_method(Object *p_object, String p_method, Variant p_initial_val, Object *p_target, String p_target_method, real_t p_duration, TransitionType p_trans_type, EaseType p_ease_type, real_t p_delay) { +bool Tween::follow_method(Object *p_object, StringName p_method, Variant p_initial_val, Object *p_target, StringName p_target_method, real_t p_duration, TransitionType p_trans_type, EaseType p_ease_type, real_t p_delay) { if (pending_update != 0) { _add_pending_command("follow_method", p_object, p_method, p_initial_val, p_target, p_target_method, p_duration, p_trans_type, p_ease_type, p_delay); return true; @@ -1269,10 +1288,11 @@ bool Tween::follow_method(Object *p_object, String p_method, Variant p_initial_v data.elapsed = 0; data.id = p_object->get_instance_id(); - data.key = p_method; + data.key.push_back(p_method); + data.concatenated_key = p_method; data.initial_val = p_initial_val; data.target_id = p_target->get_instance_id(); - data.target_key = p_target_method; + data.target_key.push_back(p_target_method); data.duration = p_duration; data.trans_type = p_trans_type; data.ease_type = p_ease_type; @@ -1282,11 +1302,15 @@ bool Tween::follow_method(Object *p_object, String p_method, Variant p_initial_v return true; } -bool Tween::targeting_property(Object *p_object, String p_property, Object *p_initial, String p_initial_property, Variant p_final_val, real_t p_duration, TransitionType p_trans_type, EaseType p_ease_type, real_t p_delay) { +bool Tween::targeting_property(Object *p_object, NodePath p_property, Object *p_initial, NodePath p_initial_property, Variant p_final_val, real_t p_duration, TransitionType p_trans_type, EaseType p_ease_type, real_t p_delay) { + if (pending_update != 0) { _add_pending_command("targeting_property", p_object, p_property, p_initial, p_initial_property, p_final_val, p_duration, p_trans_type, p_ease_type, p_delay); return true; } + p_property = p_property.get_as_property_path(); + p_initial_property = p_initial_property.get_as_property_path(); + // convert INT to REAL is better for interpolaters if (p_final_val.get_type() == Variant::INT) p_final_val = p_final_val.operator real_t(); @@ -1300,11 +1324,11 @@ bool Tween::targeting_property(Object *p_object, String p_property, Object *p_in ERR_FAIL_COND_V(p_delay < 0, false); bool prop_valid = false; - p_object->get(p_property, &prop_valid); + p_object->get_indexed(p_property.get_subnames(), &prop_valid); ERR_FAIL_COND_V(!prop_valid, false); bool initial_prop_valid = false; - Variant initial_val = p_initial->get(p_initial_property, &initial_prop_valid); + Variant initial_val = p_initial->get_indexed(p_initial_property.get_subnames(), &initial_prop_valid); ERR_FAIL_COND_V(!initial_prop_valid, false); // convert INT to REAL is better for interpolaters @@ -1318,9 +1342,10 @@ bool Tween::targeting_property(Object *p_object, String p_property, Object *p_in data.elapsed = 0; data.id = p_object->get_instance_id(); - data.key = p_property; + data.key = p_property.get_subnames(); + data.concatenated_key = p_property.get_concatenated_subnames(); data.target_id = p_initial->get_instance_id(); - data.target_key = p_initial_property; + data.target_key = p_initial_property.get_subnames(); data.initial_val = initial_val; data.final_val = p_final_val; data.duration = p_duration; @@ -1335,7 +1360,7 @@ bool Tween::targeting_property(Object *p_object, String p_property, Object *p_in return true; } -bool Tween::targeting_method(Object *p_object, String p_method, Object *p_initial, String p_initial_method, Variant p_final_val, real_t p_duration, TransitionType p_trans_type, EaseType p_ease_type, real_t p_delay) { +bool Tween::targeting_method(Object *p_object, StringName p_method, Object *p_initial, StringName p_initial_method, Variant p_final_val, real_t p_duration, TransitionType p_trans_type, EaseType p_ease_type, real_t p_delay) { if (pending_update != 0) { _add_pending_command("targeting_method", p_object, p_method, p_initial, p_initial_method, p_final_val, p_duration, p_trans_type, p_ease_type, p_delay); return true; @@ -1372,9 +1397,10 @@ bool Tween::targeting_method(Object *p_object, String p_method, Object *p_initia data.elapsed = 0; data.id = p_object->get_instance_id(); - data.key = p_method; + data.key.push_back(p_method); + data.concatenated_key = p_method; data.target_id = p_initial->get_instance_id(); - data.target_key = p_initial_method; + data.target_key.push_back(p_initial_method); data.initial_val = initial_val; data.final_val = p_final_val; data.duration = p_duration; diff --git a/scene/animation/tween.h b/scene/animation/tween.h index fac1d346b4..44710b25f9 100644 --- a/scene/animation/tween.h +++ b/scene/animation/tween.h @@ -86,12 +86,13 @@ private: bool call_deferred; real_t elapsed; ObjectID id; - StringName key; + Vector<StringName> key; + StringName concatenated_key; Variant initial_val; Variant delta_val; Variant final_val; ObjectID target_id; - StringName target_key; + Vector<StringName> target_key; real_t duration; TransitionType trans_type; EaseType ease_type; @@ -132,7 +133,7 @@ private: void _tween_process(float p_delta); void _set_process(bool p_process, bool p_force = false); - void _remove(Object *p_object, String p_key, bool first_only); + void _remove(Object *p_object, StringName p_key, bool first_only); protected: bool _set(const StringName &p_name, const Variant &p_value); @@ -156,34 +157,34 @@ public: float get_speed_scale() const; bool start(); - bool reset(Object *p_object, String p_key); + bool reset(Object *p_object, StringName p_key); bool reset_all(); - bool stop(Object *p_object, String p_key); + bool stop(Object *p_object, StringName p_key); bool stop_all(); - bool resume(Object *p_object, String p_key); + bool resume(Object *p_object, StringName p_key); bool resume_all(); - bool remove(Object *p_object, String p_key); + bool remove(Object *p_object, StringName p_key); bool remove_all(); bool seek(real_t p_time); real_t tell() const; real_t get_runtime() const; - bool interpolate_property(Object *p_object, String p_property, Variant p_initial_val, Variant p_final_val, real_t p_duration, TransitionType p_trans_type, EaseType p_ease_type, real_t p_delay = 0); + bool interpolate_property(Object *p_object, NodePath p_property, Variant p_initial_val, Variant p_final_val, real_t p_duration, TransitionType p_trans_type, EaseType p_ease_type, real_t p_delay = 0); - bool interpolate_method(Object *p_object, String p_method, Variant p_initial_val, Variant p_final_val, real_t p_duration, TransitionType p_trans_type, EaseType p_ease_type, real_t p_delay = 0); + bool interpolate_method(Object *p_object, StringName p_method, Variant p_initial_val, Variant p_final_val, real_t p_duration, TransitionType p_trans_type, EaseType p_ease_type, real_t p_delay = 0); bool interpolate_callback(Object *p_object, real_t p_duration, String p_callback, VARIANT_ARG_DECLARE); bool interpolate_deferred_callback(Object *p_object, real_t p_duration, String p_callback, VARIANT_ARG_DECLARE); - bool follow_property(Object *p_object, String p_property, Variant p_initial_val, Object *p_target, String p_target_property, real_t p_duration, TransitionType p_trans_type, EaseType p_ease_type, real_t p_delay = 0); + bool follow_property(Object *p_object, NodePath p_property, Variant p_initial_val, Object *p_target, NodePath p_target_property, real_t p_duration, TransitionType p_trans_type, EaseType p_ease_type, real_t p_delay = 0); - bool follow_method(Object *p_object, String p_method, Variant p_initial_val, Object *p_target, String p_target_method, real_t p_duration, TransitionType p_trans_type, EaseType p_ease_type, real_t p_delay = 0); + bool follow_method(Object *p_object, StringName p_method, Variant p_initial_val, Object *p_target, StringName p_target_method, real_t p_duration, TransitionType p_trans_type, EaseType p_ease_type, real_t p_delay = 0); - bool targeting_property(Object *p_object, String p_property, Object *p_initial, String p_initial_property, Variant p_final_val, real_t p_duration, TransitionType p_trans_type, EaseType p_ease_type, real_t p_delay = 0); + bool targeting_property(Object *p_object, NodePath p_property, Object *p_initial, NodePath p_initial_property, Variant p_final_val, real_t p_duration, TransitionType p_trans_type, EaseType p_ease_type, real_t p_delay = 0); - bool targeting_method(Object *p_object, String p_method, Object *p_initial, String p_initial_method, Variant p_final_val, real_t p_duration, TransitionType p_trans_type, EaseType p_ease_type, real_t p_delay = 0); + bool targeting_method(Object *p_object, StringName p_method, Object *p_initial, StringName p_initial_method, Variant p_final_val, real_t p_duration, TransitionType p_trans_type, EaseType p_ease_type, real_t p_delay = 0); Tween(); ~Tween(); diff --git a/scene/gui/file_dialog.cpp b/scene/gui/file_dialog.cpp index 6ade4fcc38..6aba535572 100644 --- a/scene/gui/file_dialog.cpp +++ b/scene/gui/file_dialog.cpp @@ -323,6 +323,9 @@ void FileDialog::update_file_list() { while ((item = dir_access->get_next(&isdir)) != "") { + if (item == ".") + continue; + ishidden = dir_access->current_is_hidden(); if (show_hidden || !ishidden) { @@ -344,7 +347,7 @@ void FileDialog::update_file_list() { while (!dirs.empty()) { String &dir_name = dirs.front()->get(); TreeItem *ti = tree->create_item(root); - ti->set_text(0, dir_name + "/"); + ti->set_text(0, dir_name); ti->set_icon(0, folder); Dictionary d; diff --git a/scene/gui/graph_edit.cpp b/scene/gui/graph_edit.cpp index 946a8c47a3..da52fb39e0 100644 --- a/scene/gui/graph_edit.cpp +++ b/scene/gui/graph_edit.cpp @@ -964,6 +964,19 @@ void GraphEdit::_gui_input(const Ref<InputEvent> &p_ev) { emit_signal("delete_nodes_request"); accept_event(); } + + Ref<InputEventMagnifyGesture> magnify_gesture = p_ev; + if (magnify_gesture.is_valid()) { + + set_zoom_custom(zoom * magnify_gesture->get_factor(), magnify_gesture->get_position()); + } + + Ref<InputEventPanGesture> pan_gesture = p_ev; + if (pan_gesture.is_valid()) { + + h_scroll->set_value(h_scroll->get_value() + h_scroll->get_page() * pan_gesture->get_delta().x / 8); + v_scroll->set_value(v_scroll->get_value() + v_scroll->get_page() * pan_gesture->get_delta().y / 8); + } } void GraphEdit::clear_connections() { @@ -975,6 +988,11 @@ void GraphEdit::clear_connections() { void GraphEdit::set_zoom(float p_zoom) { + set_zoom_custom(p_zoom, get_size() / 2); +} + +void GraphEdit::set_zoom_custom(float p_zoom, const Vector2 &p_center) { + p_zoom = CLAMP(p_zoom, MIN_ZOOM, MAX_ZOOM); if (zoom == p_zoom) return; @@ -982,7 +1000,7 @@ void GraphEdit::set_zoom(float p_zoom) { zoom_minus->set_disabled(zoom == MIN_ZOOM); zoom_plus->set_disabled(zoom == MAX_ZOOM); - Vector2 sbofs = (Vector2(h_scroll->get_value(), v_scroll->get_value()) + get_size() / 2) / zoom; + Vector2 sbofs = (Vector2(h_scroll->get_value(), v_scroll->get_value()) + p_center) / zoom; zoom = p_zoom; top_layer->update(); @@ -992,7 +1010,7 @@ void GraphEdit::set_zoom(float p_zoom) { if (is_visible_in_tree()) { - Vector2 ofs = sbofs * zoom - get_size() / 2; + Vector2 ofs = sbofs * zoom - p_center; h_scroll->set_value(ofs.x); v_scroll->set_value(ofs.y); } diff --git a/scene/gui/graph_edit.h b/scene/gui/graph_edit.h index 4656b50133..e8e530848d 100644 --- a/scene/gui/graph_edit.h +++ b/scene/gui/graph_edit.h @@ -179,6 +179,7 @@ public: bool is_valid_connection_type(int p_type, int p_with_type) const; void set_zoom(float p_zoom); + void set_zoom_custom(float p_zoom, const Vector2 &p_center); float get_zoom() const; GraphEditFilter *get_top_layer() const { return top_layer; } diff --git a/scene/gui/item_list.cpp b/scene/gui/item_list.cpp index e9e9dcc859..51ab49e643 100644 --- a/scene/gui/item_list.cpp +++ b/scene/gui/item_list.cpp @@ -525,6 +525,11 @@ void ItemList::_gui_input(const Ref<InputEvent> &p_event) { return; } + if (mb->get_button_index() == BUTTON_RIGHT) { + emit_signal("rmb_clicked", mb->get_position()); + + return; + } } if (mb.is_valid() && mb->get_button_index() == BUTTON_WHEEL_UP && mb->is_pressed()) { @@ -708,6 +713,12 @@ void ItemList::_gui_input(const Ref<InputEvent> &p_event) { } } } + + Ref<InputEventPanGesture> pan_gesture = p_event; + if (pan_gesture.is_valid()) { + + scroll_bar->set_value(scroll_bar->get_value() + scroll_bar->get_page() * pan_gesture->get_delta().y / 8); + } } void ItemList::ensure_current_is_visible() { @@ -1397,6 +1408,7 @@ void ItemList::_bind_methods() { ADD_SIGNAL(MethodInfo("item_rmb_selected", PropertyInfo(Variant::INT, "index"), PropertyInfo(Variant::VECTOR2, "at_position"))); ADD_SIGNAL(MethodInfo("multi_selected", PropertyInfo(Variant::INT, "index"), PropertyInfo(Variant::BOOL, "selected"))); ADD_SIGNAL(MethodInfo("item_activated", PropertyInfo(Variant::INT, "index"))); + ADD_SIGNAL(MethodInfo("rmb_clicked", PropertyInfo(Variant::VECTOR2, "at_position"))); GLOBAL_DEF("gui/timers/incremental_search_max_interval_msec", 2000); } diff --git a/scene/gui/rich_text_label.cpp b/scene/gui/rich_text_label.cpp index 71e02cb2f7..124c268c8a 100644 --- a/scene/gui/rich_text_label.cpp +++ b/scene/gui/rich_text_label.cpp @@ -817,6 +817,16 @@ void RichTextLabel::_gui_input(Ref<InputEvent> p_event) { } } + Ref<InputEventPanGesture> pan_gesture = p_event; + if (pan_gesture.is_valid()) { + + if (scroll_active) + + vscroll->set_value(vscroll->get_value() + vscroll->get_page() * pan_gesture->get_delta().y * 0.5 / 8); + + return; + } + Ref<InputEventKey> k = p_event; if (k.is_valid()) { diff --git a/scene/gui/scroll_container.cpp b/scene/gui/scroll_container.cpp index 9022d67a4a..a71a1c5f92 100644 --- a/scene/gui/scroll_container.cpp +++ b/scene/gui/scroll_container.cpp @@ -180,6 +180,17 @@ void ScrollContainer::_gui_input(const Ref<InputEvent> &p_gui_input) { time_since_motion = 0; } } + + Ref<InputEventPanGesture> pan_gesture = p_gui_input; + if (pan_gesture.is_valid()) { + + if (h_scroll->is_visible_in_tree()) { + h_scroll->set_value(h_scroll->get_value() + h_scroll->get_page() * pan_gesture->get_delta().x / 8); + } + if (v_scroll->is_visible_in_tree()) { + v_scroll->set_value(v_scroll->get_value() + v_scroll->get_page() * pan_gesture->get_delta().y / 8); + } + } } void ScrollContainer::_update_scrollbar_position() { diff --git a/scene/gui/text_edit.cpp b/scene/gui/text_edit.cpp index c9af7eed0d..26ac4c5a7d 100644 --- a/scene/gui/text_edit.cpp +++ b/scene/gui/text_edit.cpp @@ -303,6 +303,8 @@ void TextEdit::_update_scrollbars() { int total_rows = (is_hiding_enabled() ? get_total_unhidden_rows() : text.size()); if (scroll_past_end_of_file_enabled) { total_rows += visible_rows - 1; + } else { + total_rows -= 1; } int vscroll_pixels = v_scroll->get_combined_minimum_size().width; @@ -355,6 +357,10 @@ void TextEdit::_update_scrollbars() { } update_line_scroll_pos(); + if (fabs(v_scroll->get_value() - get_line_scroll_pos()) >= 1) { + cursor.line_ofs += v_scroll->get_value() - get_line_scroll_pos(); + } + } else { cursor.line_ofs = 0; line_scroll_pos = 0; @@ -796,7 +802,9 @@ void TextEdit::_notification(int p_what) { update_line_scroll_pos(); int line = cursor.line_ofs - 1; - for (int i = 0; i < visible_rows; i++) { + // another row may be visible during smooth scrolling + int draw_amount = visible_rows + (smooth_scroll_enabled ? 1 : 0); + for (int i = 0; i < draw_amount; i++) { line++; @@ -1238,7 +1246,9 @@ void TextEdit::_notification(int p_what) { char_ofs += char_w; if (j == str.length() - 1 && is_folded(line)) { - cache.folded_eol_icon->draw(ci, Point2(char_ofs + char_margin, ofs_y), Color(1, 1, 1, 1), true); + int yofs = (get_row_height() - cache.folded_eol_icon->get_height()) / 2; + int xofs = cache.folded_eol_icon->get_width() / 2; + cache.folded_eol_icon->draw(ci, Point2(char_ofs + char_margin + xofs, ofs_y + yofs), Color(1, 1, 1, 1)); } } @@ -1775,46 +1785,10 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { if (mb->is_pressed()) { if (mb->get_button_index() == BUTTON_WHEEL_UP && !mb->get_command()) { - float scroll_factor = 3 * mb->get_factor(); - if (scrolling) { - target_v_scroll = (target_v_scroll - scroll_factor); - } else { - target_v_scroll = (v_scroll->get_value() - scroll_factor); - } - - if (smooth_scroll_enabled) { - if (target_v_scroll <= 0) { - target_v_scroll = 0; - } - scrolling = true; - set_physics_process(true); - } else { - v_scroll->set_value(target_v_scroll); - } + _scroll_up(3 * mb->get_factor()); } if (mb->get_button_index() == BUTTON_WHEEL_DOWN && !mb->get_command()) { - float scroll_factor = 3 * mb->get_factor(); - if (scrolling) { - target_v_scroll = (target_v_scroll + scroll_factor); - } else { - target_v_scroll = (v_scroll->get_value() + scroll_factor); - } - - if (smooth_scroll_enabled) { - int max_v_scroll = get_total_unhidden_rows(); - if (!scroll_past_end_of_file_enabled) { - max_v_scroll -= get_visible_rows(); - max_v_scroll = CLAMP(max_v_scroll, 0, get_total_unhidden_rows()); - } - - if (target_v_scroll > max_v_scroll) { - target_v_scroll = max_v_scroll; - } - scrolling = true; - set_physics_process(true); - } else { - v_scroll->set_value(target_v_scroll); - } + _scroll_down(3 * mb->get_factor()); } if (mb->get_button_index() == BUTTON_WHEEL_LEFT) { h_scroll->set_value(h_scroll->get_value() - (100 * mb->get_factor())); @@ -1971,6 +1945,19 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { } } + const Ref<InputEventPanGesture> pan_gesture = p_gui_input; + if (pan_gesture.is_valid()) { + + const real_t delta = pan_gesture->get_delta().y; + if (delta < 0) { + _scroll_up(-delta); + } else { + _scroll_down(delta); + } + h_scroll->set_value(h_scroll->get_value() + pan_gesture->get_delta().x * 100); + return; + } + Ref<InputEventMouseMotion> mm = p_gui_input; if (mm.is_valid()) { @@ -3064,6 +3051,50 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { } } +void TextEdit::_scroll_up(real_t p_delta) { + + if (scrolling) { + target_v_scroll = (target_v_scroll - p_delta); + } else { + target_v_scroll = (v_scroll->get_value() - p_delta); + } + + if (smooth_scroll_enabled) { + if (target_v_scroll <= 0) { + target_v_scroll = 0; + } + scrolling = true; + set_physics_process(true); + } else { + v_scroll->set_value(target_v_scroll); + } +} + +void TextEdit::_scroll_down(real_t p_delta) { + + if (scrolling) { + target_v_scroll = (target_v_scroll + p_delta); + } else { + target_v_scroll = (v_scroll->get_value() + p_delta); + } + + if (smooth_scroll_enabled) { + int max_v_scroll = get_total_unhidden_rows(); + if (!scroll_past_end_of_file_enabled) { + max_v_scroll -= get_visible_rows() + 1; + max_v_scroll = CLAMP(max_v_scroll, 0, get_total_unhidden_rows()); + } + + if (target_v_scroll > max_v_scroll) { + target_v_scroll = max_v_scroll; + } + scrolling = true; + set_physics_process(true); + } else { + v_scroll->set_value(target_v_scroll); + } +} + void TextEdit::_pre_shift_selection() { if (!selection.active || selection.selecting_mode == Selection::MODE_NONE) { @@ -3091,12 +3122,12 @@ void TextEdit::_scroll_lines_up() { scrolling = false; // adjust the vertical scroll - if (get_v_scroll() > 0) { + if (get_v_scroll() >= 0) { set_v_scroll(get_v_scroll() - 1); } // adjust the cursor - int num_lines = num_lines_from(CLAMP(cursor.line_ofs, 0, text.size() - 1), get_visible_rows()) - 1; + int num_lines = num_lines_from(CLAMP(cursor.line_ofs, 0, text.size() - 1), get_visible_rows()); if (cursor.line >= cursor.line_ofs + num_lines && !selection.active) { cursor_set_line(cursor.line_ofs + num_lines, false, false); } @@ -3108,7 +3139,7 @@ void TextEdit::_scroll_lines_down() { // calculate the maximum vertical scroll position int max_v_scroll = get_total_unhidden_rows(); if (!scroll_past_end_of_file_enabled) { - max_v_scroll -= get_visible_rows(); + max_v_scroll -= get_visible_rows() + 1; max_v_scroll = CLAMP(max_v_scroll, 0, get_total_unhidden_rows()); } @@ -3439,23 +3470,27 @@ void TextEdit::adjust_viewport_to_cursor() { visible_width -= 20; // give it a little more space int visible_rows = get_visible_rows(); - if (h_scroll->is_visible_in_tree()) + if (h_scroll->is_visible_in_tree() && !scroll_past_end_of_file_enabled) visible_rows -= ((h_scroll->get_combined_minimum_size().height - 1) / get_row_height()); int num_rows = num_lines_from(CLAMP(cursor.line_ofs, 0, text.size() - 1), MIN(visible_rows, text.size() - 1 - cursor.line_ofs)); - // if the cursor is off the screen - if (cursor.line >= (cursor.line_ofs + MAX(num_rows, visible_rows))) { - cursor.line_ofs = cursor.line - (num_lines_from(CLAMP(cursor.line, 0, text.size() - 1), -visible_rows) - 1); + // make sure the cursor is on the screen + if (cursor.line > (cursor.line_ofs + MAX(num_rows, visible_rows))) { + cursor.line_ofs = cursor.line - num_lines_from(cursor.line, -visible_rows) + 1; } if (cursor.line < cursor.line_ofs) { cursor.line_ofs = cursor.line; } - - // fixes deleting lines from moving the line ofs in a bad way - if (!scroll_past_end_of_file_enabled && get_total_unhidden_rows() > visible_rows && num_rows < visible_rows) { - cursor.line_ofs = text.size() - 1 - (num_lines_from(text.size() - 1, -visible_rows) - 1); + int line_ofs_max = text.size() - 1; + if (!scroll_past_end_of_file_enabled) { + line_ofs_max -= num_lines_from(text.size() - 1, -visible_rows) - 1; + line_ofs_max += (h_scroll->is_visible_in_tree() ? 1 : 0); + line_ofs_max += (cursor.line == text.size() - 1 ? 1 : 0); } + line_ofs_max = MAX(line_ofs_max, 0); + cursor.line_ofs = CLAMP(cursor.line_ofs, 0, line_ofs_max); + // adjust x offset int cursor_x = get_column_x_offset(cursor.column, text[cursor.line]); if (cursor_x > (cursor.x_ofs + visible_width)) @@ -3464,8 +3499,9 @@ void TextEdit::adjust_viewport_to_cursor() { if (cursor_x < cursor.x_ofs) cursor.x_ofs = cursor_x; + h_scroll->set_value(cursor.x_ofs); update_line_scroll_pos(); - v_scroll->set_value(get_line_scroll_pos() + 1); + v_scroll->set_value(get_line_scroll_pos()); update(); /* get_range()->set_max(text.size()); @@ -3504,6 +3540,7 @@ void TextEdit::center_viewport_to_cursor() { if (cursor_x < cursor.x_ofs) cursor.x_ofs = cursor_x; + h_scroll->set_value(cursor.x_ofs); update_line_scroll_pos(); v_scroll->set_value(get_line_scroll_pos()); @@ -3937,7 +3974,7 @@ void TextEdit::_update_caches() { cache.tab_icon = get_icon("tab"); cache.folded_icon = get_icon("GuiTreeArrowRight", "EditorIcons"); cache.can_fold_icon = get_icon("GuiTreeArrowDown", "EditorIcons"); - cache.folded_eol_icon = get_icon("GuiTabMenu", "EditorIcons"); + cache.folded_eol_icon = get_icon("GuiEllipsis", "EditorIcons"); text.set_font(cache.font); } @@ -4422,7 +4459,7 @@ int TextEdit::num_lines_from(int p_line_from, int unhidden_amount) const { ERR_FAIL_INDEX_V(p_line_from, text.size(), ABS(unhidden_amount)); if (!is_hiding_enabled()) - return unhidden_amount; + return ABS(unhidden_amount); int num_visible = 0; int num_total = 0; if (unhidden_amount >= 0) { diff --git a/scene/gui/text_edit.h b/scene/gui/text_edit.h index b1c7b14e58..bb9ca87d06 100644 --- a/scene/gui/text_edit.h +++ b/scene/gui/text_edit.h @@ -328,6 +328,9 @@ class TextEdit : public Control { void _update_selection_mode_word(); void _update_selection_mode_line(); + void _scroll_up(real_t p_delta); + void _scroll_down(real_t p_delta); + void _pre_shift_selection(); void _post_shift_selection(); diff --git a/scene/gui/tree.cpp b/scene/gui/tree.cpp index 749ff51f57..9213296c55 100644 --- a/scene/gui/tree.cpp +++ b/scene/gui/tree.cpp @@ -2612,6 +2612,12 @@ void Tree::_gui_input(Ref<InputEvent> p_event) { } break; } } + + Ref<InputEventPanGesture> pan_gesture = p_event; + if (pan_gesture.is_valid()) { + + v_scroll->set_value(v_scroll->get_value() + v_scroll->get_page() * pan_gesture->get_delta().y / 8); + } } bool Tree::edit_selected() { diff --git a/scene/main/node.cpp b/scene/main/node.cpp index 253084dd99..30b831adfc 100755 --- a/scene/main/node.cpp +++ b/scene/main/node.cpp @@ -2305,7 +2305,7 @@ void Node::_duplicate_signals(const Node *p_original, Node *p_copy) const { copytarget = target; if (copy && copytarget) { - copy->connect(E->get().signal, copytarget, E->get().method, E->get().binds, CONNECT_PERSIST); + copy->connect(E->get().signal, copytarget, E->get().method, E->get().binds, E->get().flags); } } } @@ -2502,24 +2502,19 @@ bool Node::has_node_and_resource(const NodePath &p_path) const { return false; Node *node = get_node(p_path); - if (p_path.get_subname_count()) { + bool result = false; - RES r; - for (int j = 0; j < p_path.get_subname_count(); j++) { - r = j == 0 ? node->get(p_path.get_subname(j)) : r->get(p_path.get_subname(j)); - if (r.is_null()) - return false; - } - } + node->get_indexed(p_path.get_subnames(), &result); - return true; + return result; } Array Node::_get_node_and_resource(const NodePath &p_path) { Node *node; RES res; - node = get_node_and_resource(p_path, res); + Vector<StringName> leftover_path; + node = get_node_and_resource(p_path, res, leftover_path); Array result; if (node) @@ -2532,21 +2527,35 @@ Array Node::_get_node_and_resource(const NodePath &p_path) { else result.push_back(Variant()); + result.push_back(NodePath(Vector<StringName>(), leftover_path, false)); + return result; } -Node *Node::get_node_and_resource(const NodePath &p_path, RES &r_res) const { +Node *Node::get_node_and_resource(const NodePath &p_path, RES &r_res, Vector<StringName> &r_leftover_subpath, bool p_last_is_property) const { Node *node = get_node(p_path); r_res = RES(); + r_leftover_subpath = Vector<StringName>(); if (!node) return NULL; if (p_path.get_subname_count()) { - for (int j = 0; j < p_path.get_subname_count(); j++) { - r_res = j == 0 ? node->get(p_path.get_subname(j)) : r_res->get(p_path.get_subname(j)); - ERR_FAIL_COND_V(r_res.is_null(), node); + int j = 0; + // If not p_last_is_property, we shouldn't consider the last one as part of the resource + for (; j < p_path.get_subname_count() - p_last_is_property; j++) { + RES new_res = j == 0 ? node->get(p_path.get_subname(j)) : r_res->get(p_path.get_subname(j)); + + if (new_res.is_null()) { + break; + } + + r_res = new_res; + } + for (; j < p_path.get_subname_count(); j++) { + // Put the rest of the subpath in the leftover path + r_leftover_subpath.push_back(p_path.get_subname(j)); } } diff --git a/scene/main/node.h b/scene/main/node.h index bd0b18c87a..2b71b71c8d 100644 --- a/scene/main/node.h +++ b/scene/main/node.h @@ -245,7 +245,7 @@ public: Node *get_node(const NodePath &p_path) const; Node *find_node(const String &p_mask, bool p_recursive = true, bool p_owned = true) const; bool has_node_and_resource(const NodePath &p_path) const; - Node *get_node_and_resource(const NodePath &p_path, RES &r_res) const; + Node *get_node_and_resource(const NodePath &p_path, RES &r_res, Vector<StringName> &r_leftover_subpath, bool p_last_is_property = true) const; Node *get_parent() const; _FORCE_INLINE_ SceneTree *get_tree() const { diff --git a/scene/main/viewport.cpp b/scene/main/viewport.cpp index 0a02f471c1..1f539041fd 100644 --- a/scene/main/viewport.cpp +++ b/scene/main/viewport.cpp @@ -2013,6 +2013,30 @@ void Viewport::_gui_input_event(Ref<InputEvent> p_event) { } } + Ref<InputEventGesture> gesture_event = p_event; + if (gesture_event.is_valid()) { + + Size2 pos = gesture_event->get_position(); + + Control *over = _gui_find_control(pos); + if (over) { + + if (over->can_process()) { + + gesture_event = gesture_event->xformed_by(Transform2D()); //make a copy + if (over == gui.mouse_focus) { + pos = gui.focus_inv_xform.xform(pos); + } else { + pos = over->get_global_transform_with_canvas().affine_inverse().xform(pos); + } + gesture_event->set_position(pos); + _gui_call_input(over, gesture_event); + } + get_tree()->set_input_as_handled(); + return; + } + } + Ref<InputEventScreenDrag> drag_event = p_event; if (drag_event.is_valid()) { diff --git a/servers/server_wrap_mt_common.h b/servers/server_wrap_mt_common.h index 51e7f446ea..0416dc6762 100644 --- a/servers/server_wrap_mt_common.h +++ b/servers/server_wrap_mt_common.h @@ -61,6 +61,7 @@ if (m_type##_id_pool.size() == 0) { \ int ret; \ command_queue.push_and_ret(this, &ServerNameWrapMT::m_type##allocn, &ret); \ + SYNC_DEBUG \ } \ rid = m_type##_id_pool.front()->get(); \ m_type##_id_pool.pop_front(); \ @@ -91,6 +92,7 @@ if (m_type##_id_pool.size() == 0) { \ int ret; \ command_queue.push_and_ret(this, &ServerNameWrapMT::m_type##allocn, p1, &ret); \ + SYNC_DEBUG \ } \ rid = m_type##_id_pool.front()->get(); \ m_type##_id_pool.pop_front(); \ @@ -121,6 +123,7 @@ if (m_type##_id_pool.size() == 0) { \ int ret; \ command_queue.push_and_ret(this, &ServerNameWrapMT::m_type##allocn, p1, p2, &ret); \ + SYNC_DEBUG \ } \ rid = m_type##_id_pool.front()->get(); \ m_type##_id_pool.pop_front(); \ @@ -151,6 +154,7 @@ if (m_type##_id_pool.size() == 0) { \ int ret; \ command_queue.push_and_ret(this, &ServerNameWrapMT::m_type##allocn, p1, p2, p3, &ret); \ + SYNC_DEBUG \ } \ rid = m_type##_id_pool.front()->get(); \ m_type##_id_pool.pop_front(); \ @@ -181,6 +185,7 @@ if (m_type##_id_pool.size() == 0) { \ int ret; \ command_queue.push_and_ret(this, &ServerNameWrapMT::m_type##allocn, p1, p2, p3, p4, &ret); \ + SYNC_DEBUG \ } \ rid = m_type##_id_pool.front()->get(); \ m_type##_id_pool.pop_front(); \ @@ -211,6 +216,7 @@ if (m_type##_id_pool.size() == 0) { \ int ret; \ command_queue.push_and_ret(this, &ServerNameWrapMT::m_type##allocn, p1, p2, p3, p4, p5, &ret); \ + SYNC_DEBUG \ } \ rid = m_type##_id_pool.front()->get(); \ m_type##_id_pool.pop_front(); \ @@ -255,6 +261,7 @@ virtual void m_type() { \ if (Thread::get_caller_id() != server_thread) { \ command_queue.push_and_sync(server_name, &ServerName::m_type); \ + SYNC_DEBUG \ } else { \ server_name->m_type(); \ } \ @@ -264,6 +271,7 @@ virtual void m_type() const { \ if (Thread::get_caller_id() != server_thread) { \ command_queue.push_and_sync(server_name, &ServerName::m_type); \ + SYNC_DEBUG \ } else { \ server_name->m_type(); \ } \ @@ -299,6 +307,7 @@ virtual void m_type(m_arg1 p1) { \ if (Thread::get_caller_id() != server_thread) { \ command_queue.push_and_sync(server_name, &ServerName::m_type, p1); \ + SYNC_DEBUG \ } else { \ server_name->m_type(p1); \ } \ @@ -308,6 +317,7 @@ virtual void m_type(m_arg1 p1) const { \ if (Thread::get_caller_id() != server_thread) { \ command_queue.push_and_sync(server_name, &ServerName::m_type, p1); \ + SYNC_DEBUG \ } else { \ server_name->m_type(p1); \ } \ @@ -359,6 +369,7 @@ virtual void m_type(m_arg1 p1, m_arg2 p2) { \ if (Thread::get_caller_id() != server_thread) { \ command_queue.push_and_sync(server_name, &ServerName::m_type, p1, p2); \ + SYNC_DEBUG \ } else { \ server_name->m_type(p1, p2); \ } \ @@ -368,6 +379,7 @@ virtual void m_type(m_arg1 p1, m_arg2 p2) const { \ if (Thread::get_caller_id() != server_thread) { \ command_queue.push_and_sync(server_name, &ServerName::m_type, p1, p2); \ + SYNC_DEBUG \ } else { \ server_name->m_type(p1, p2); \ } \ @@ -408,6 +420,7 @@ if (Thread::get_caller_id() != server_thread) { \ m_r ret; \ command_queue.push_and_ret(server_name, &ServerName::m_type, p1, p2, p3, &ret); \ + SYNC_DEBUG \ return ret; \ } else { \ return server_name->m_type(p1, p2, p3); \ @@ -418,6 +431,7 @@ virtual void m_type(m_arg1 p1, m_arg2 p2, m_arg3 p3) { \ if (Thread::get_caller_id() != server_thread) { \ command_queue.push_and_sync(server_name, &ServerName::m_type, p1, p2, p3); \ + SYNC_DEBUG \ } else { \ server_name->m_type(p1, p2, p3); \ } \ @@ -427,6 +441,7 @@ virtual void m_type(m_arg1 p1, m_arg2 p2, m_arg3 p3) const { \ if (Thread::get_caller_id() != server_thread) { \ command_queue.push_and_sync(server_name, &ServerName::m_type, p1, p2, p3); \ + SYNC_DEBUG \ } else { \ server_name->m_type(p1, p2, p3); \ } \ @@ -478,6 +493,7 @@ virtual void m_type(m_arg1 p1, m_arg2 p2, m_arg3 p3, m_arg4 p4) { \ if (Thread::get_caller_id() != server_thread) { \ command_queue.push_and_sync(server_name, &ServerName::m_type, p1, p2, p3, p4); \ + SYNC_DEBUG \ } else { \ server_name->m_type(p1, p2, p3, p4); \ } \ @@ -487,6 +503,7 @@ virtual void m_type(m_arg1 p1, m_arg2 p2, m_arg3 p3, m_arg4 p4) const { \ if (Thread::get_caller_id() != server_thread) { \ command_queue.push_and_sync(server_name, &ServerName::m_type, p1, p2, p3, p4); \ + SYNC_DEBUG \ } else { \ server_name->m_type(p1, p2, p3, p4); \ } \ @@ -538,6 +555,7 @@ virtual void m_type(m_arg1 p1, m_arg2 p2, m_arg3 p3, m_arg4 p4, m_arg5 p5) { \ if (Thread::get_caller_id() != server_thread) { \ command_queue.push_and_sync(server_name, &ServerName::m_type, p1, p2, p3, p4, p5); \ + SYNC_DEBUG \ } else { \ server_name->m_type(p1, p2, p3, p4, p5); \ } \ @@ -547,6 +565,7 @@ virtual void m_type(m_arg1 p1, m_arg2 p2, m_arg3 p3, m_arg4 p4, m_arg5 p5) const { \ if (Thread::get_caller_id() != server_thread) { \ command_queue.push_and_sync(server_name, &ServerName::m_type, p1, p2, p3, p4, p5); \ + SYNC_DEBUG \ } else { \ server_name->m_type(p1, p2, p3, p4, p5); \ } \ @@ -587,6 +606,7 @@ if (Thread::get_caller_id() != server_thread) { \ m_r ret; \ command_queue.push_and_ret(server_name, &ServerName::m_type, p1, p2, p3, p4, p5, p6, &ret); \ + SYNC_DEBUG \ return ret; \ } else { \ return server_name->m_type(p1, p2, p3, p4, p5, p6); \ @@ -597,6 +617,7 @@ virtual void m_type(m_arg1 p1, m_arg2 p2, m_arg3 p3, m_arg4 p4, m_arg5 p5, m_arg6 p6) { \ if (Thread::get_caller_id() != server_thread) { \ command_queue.push_and_sync(server_name, &ServerName::m_type, p1, p2, p3, p4, p5, p6); \ + SYNC_DEBUG \ } else { \ server_name->m_type(p1, p2, p3, p4, p5, p6); \ } \ @@ -606,6 +627,7 @@ virtual void m_type(m_arg1 p1, m_arg2 p2, m_arg3 p3, m_arg4 p4, m_arg5 p5, m_arg6 p6) const { \ if (Thread::get_caller_id() != server_thread) { \ command_queue.push_and_sync(server_name, &ServerName::m_type, p1, p2, p3, p4, p5, p6); \ + SYNC_DEBUG \ } else { \ server_name->m_type(p1, p2, p3, p4, p5, p6); \ } \ @@ -657,6 +679,7 @@ virtual void m_type(m_arg1 p1, m_arg2 p2, m_arg3 p3, m_arg4 p4, m_arg5 p5, m_arg6 p6, m_arg7 p7) { \ if (Thread::get_caller_id() != server_thread) { \ command_queue.push_and_sync(server_name, &ServerName::m_type, p1, p2, p3, p4, p5, p6, p7); \ + SYNC_DEBUG \ } else { \ server_name->m_type(p1, p2, p3, p4, p5, p6, p7); \ } \ @@ -666,6 +689,7 @@ virtual void m_type(m_arg1 p1, m_arg2 p2, m_arg3 p3, m_arg4 p4, m_arg5 p5, m_arg6 p6, m_arg7 p7) const { \ if (Thread::get_caller_id() != server_thread) { \ command_queue.push_and_sync(server_name, &ServerName::m_type, p1, p2, p3, p4, p5, p6, p7); \ + SYNC_DEBUG \ } else { \ server_name->m_type(p1, p2, p3, p4, p5, p6, p7); \ } \ @@ -717,6 +741,7 @@ virtual void m_type(m_arg1 p1, m_arg2 p2, m_arg3 p3, m_arg4 p4, m_arg5 p5, m_arg6 p6, m_arg7 p7, m_arg8 p8) { \ if (Thread::get_caller_id() != server_thread) { \ command_queue.push_and_sync(server_name, &ServerName::m_type, p1, p2, p3, p4, p5, p6, p7, p8); \ + SYNC_DEBUG \ } else { \ server_name->m_type(p1, p2, p3, p4, p5, p6, p7, p8); \ } \ @@ -726,6 +751,7 @@ virtual void m_type(m_arg1 p1, m_arg2 p2, m_arg3 p3, m_arg4 p4, m_arg5 p5, m_arg6 p6, m_arg7 p7, m_arg8 p8) const { \ if (Thread::get_caller_id() != server_thread) { \ command_queue.push_and_sync(server_name, &ServerName::m_type, p1, p2, p3, p4, p5, p6, p7, p8); \ + SYNC_DEBUG \ } else { \ server_name->m_type(p1, p2, p3, p4, p5, p6, p7, p8); \ } \ diff --git a/servers/visual/visual_server_raster.h b/servers/visual/visual_server_raster.h index 08a0cfa269..7551485919 100644 --- a/servers/visual/visual_server_raster.h +++ b/servers/visual/visual_server_raster.h @@ -504,6 +504,8 @@ public: BIND3(instance_set_surface_material, RID, int, RID) BIND2(instance_set_visible, RID, bool) + BIND2(instance_set_custom_aabb, RID, AABB) + BIND2(instance_attach_skeleton, RID, RID) BIND2(instance_set_exterior, RID, bool) diff --git a/servers/visual/visual_server_scene.cpp b/servers/visual/visual_server_scene.cpp index 4febd1a61b..5b1eb8357d 100644 --- a/servers/visual/visual_server_scene.cpp +++ b/servers/visual/visual_server_scene.cpp @@ -587,6 +587,36 @@ void VisualServerScene::instance_set_visible(RID p_instance, bool p_visible) { } } +inline bool is_geometry_instance(VisualServer::InstanceType p_type) { + return p_type == VS::INSTANCE_MESH || p_type == VS::INSTANCE_MULTIMESH || p_type == VS::INSTANCE_PARTICLES || p_type == VS::INSTANCE_IMMEDIATE; +} + +void VisualServerScene::instance_set_custom_aabb(RID p_instance, AABB p_aabb) { + + Instance *instance = instance_owner.get(p_instance); + ERR_FAIL_COND(!instance); + ERR_FAIL_COND(!is_geometry_instance(instance->base_type)); + + if(p_aabb != AABB()) { + + // Set custom AABB + if (instance->custom_aabb == NULL) + instance->custom_aabb = memnew(AABB); + *instance->custom_aabb = p_aabb; + + } else { + + // Clear custom AABB + if (instance->custom_aabb != NULL) { + memdelete(instance->custom_aabb); + instance->custom_aabb = NULL; + } + } + + if (instance->scenario) + _instance_queue_update(instance, true, false); +} + void VisualServerScene::instance_attach_skeleton(RID p_instance, RID p_skeleton) { Instance *instance = instance_owner.get(p_instance); @@ -828,23 +858,35 @@ void VisualServerScene::_update_instance_aabb(Instance *p_instance) { } break; case VisualServer::INSTANCE_MESH: { - new_aabb = VSG::storage->mesh_get_aabb(p_instance->base, p_instance->skeleton); + if (p_instance->custom_aabb) + new_aabb = *p_instance->custom_aabb; + else + new_aabb = VSG::storage->mesh_get_aabb(p_instance->base, p_instance->skeleton); } break; case VisualServer::INSTANCE_MULTIMESH: { - new_aabb = VSG::storage->multimesh_get_aabb(p_instance->base); + if (p_instance->custom_aabb) + new_aabb = *p_instance->custom_aabb; + else + new_aabb = VSG::storage->multimesh_get_aabb(p_instance->base); } break; case VisualServer::INSTANCE_IMMEDIATE: { - new_aabb = VSG::storage->immediate_get_aabb(p_instance->base); + if (p_instance->custom_aabb) + new_aabb = *p_instance->custom_aabb; + else + new_aabb = VSG::storage->immediate_get_aabb(p_instance->base); } break; case VisualServer::INSTANCE_PARTICLES: { - new_aabb = VSG::storage->particles_get_aabb(p_instance->base); + if (p_instance->custom_aabb) + new_aabb = *p_instance->custom_aabb; + else + new_aabb = VSG::storage->particles_get_aabb(p_instance->base); } break; case VisualServer::INSTANCE_LIGHT: { @@ -866,6 +908,7 @@ void VisualServerScene::_update_instance_aabb(Instance *p_instance) { default: {} } + // <Zylann> This is why I didn't re-use Instance::aabb to implement custom AABBs if (p_instance->extra_margin) new_aabb.grow_by(p_instance->extra_margin); diff --git a/servers/visual/visual_server_scene.h b/servers/visual/visual_server_scene.h index 2738fa058d..d075be76ca 100644 --- a/servers/visual/visual_server_scene.h +++ b/servers/visual/visual_server_scene.h @@ -197,6 +197,7 @@ public: AABB aabb; AABB transformed_aabb; + AABB *custom_aabb; // <Zylann> would using aabb directly with a bool be better? float extra_margin; uint32_t object_ID; @@ -251,12 +252,16 @@ public: last_frame_pass = 0; version = 1; base_data = NULL; + + custom_aabb = NULL; } ~Instance() { if (base_data) memdelete(base_data); + if (custom_aabb) + memdelete(custom_aabb); } }; @@ -460,6 +465,8 @@ public: virtual void instance_set_surface_material(RID p_instance, int p_surface, RID p_material); virtual void instance_set_visible(RID p_instance, bool p_visible); + virtual void instance_set_custom_aabb(RID p_insatnce, AABB aabb); + virtual void instance_attach_skeleton(RID p_instance, RID p_skeleton); virtual void instance_set_exterior(RID p_instance, bool p_enabled); diff --git a/servers/visual/visual_server_wrap_mt.cpp b/servers/visual/visual_server_wrap_mt.cpp index 1a03c72529..a9bfef7ef3 100644 --- a/servers/visual/visual_server_wrap_mt.cpp +++ b/servers/visual/visual_server_wrap_mt.cpp @@ -37,14 +37,7 @@ void VisualServerWrapMT::thread_exit() { void VisualServerWrapMT::thread_draw() { - draw_mutex->lock(); - - draw_pending--; - bool draw = (draw_pending == 0); // only draw when no more flushes are pending - - draw_mutex->unlock(); - - if (draw) { + if (!atomic_decrement(&draw_pending)) { visual_server->draw(); } @@ -52,11 +45,7 @@ void VisualServerWrapMT::thread_draw() { void VisualServerWrapMT::thread_flush() { - draw_mutex->lock(); - - draw_pending--; - - draw_mutex->unlock(); + atomic_decrement(&draw_pending); } void VisualServerWrapMT::_thread_callback(void *_instance) { @@ -92,15 +81,8 @@ void VisualServerWrapMT::sync() { if (create_thread) { - /* TODO: sync with the thread */ - - /* - ERR_FAIL_COND(!draw_mutex); - draw_mutex->lock(); - draw_pending++; //cambiar por un saferefcount - draw_mutex->unlock(); - */ - //command_queue.push( this, &VisualServerWrapMT::thread_flush); + atomic_increment(&draw_pending); + command_queue.push_and_sync(this, &VisualServerWrapMT::thread_flush); } else { command_queue.flush_all(); //flush all pending from other threads @@ -111,14 +93,8 @@ void VisualServerWrapMT::draw() { if (create_thread) { - /* TODO: Make it draw - ERR_FAIL_COND(!draw_mutex); - draw_mutex->lock(); - draw_pending++; //cambiar por un saferefcount - draw_mutex->unlock(); - - command_queue.push( this, &VisualServerWrapMT::thread_draw); - */ + atomic_increment(&draw_pending); + command_queue.push(this, &VisualServerWrapMT::thread_draw); } else { visual_server->draw(); @@ -129,7 +105,6 @@ void VisualServerWrapMT::init() { if (create_thread) { - draw_mutex = Mutex::create(); print_line("CREATING RENDER THREAD"); OS::get_singleton()->release_rendering_thread(); if (create_thread) { @@ -181,9 +156,6 @@ void VisualServerWrapMT::finish() { canvas_item_free_cached_ids(); canvas_light_occluder_free_cached_ids(); canvas_occluder_polygon_free_cached_ids(); - - if (draw_mutex) - memdelete(draw_mutex); } VisualServerWrapMT::VisualServerWrapMT(VisualServer *p_contained, bool p_create_thread) @@ -192,7 +164,6 @@ VisualServerWrapMT::VisualServerWrapMT(VisualServer *p_contained, bool p_create_ visual_server = p_contained; create_thread = p_create_thread; thread = NULL; - draw_mutex = NULL; draw_pending = 0; draw_thread_up = false; alloc_mutex = Mutex::create(); diff --git a/servers/visual/visual_server_wrap_mt.h b/servers/visual/visual_server_wrap_mt.h index 509b77cf9c..417e8de833 100644 --- a/servers/visual/visual_server_wrap_mt.h +++ b/servers/visual/visual_server_wrap_mt.h @@ -52,8 +52,7 @@ class VisualServerWrapMT : public VisualServer { volatile bool draw_thread_up; bool create_thread; - Mutex *draw_mutex; - int draw_pending; + uint64_t draw_pending; void thread_draw(); void thread_flush(); @@ -424,6 +423,7 @@ public: FUNC3(instance_set_blend_shape_weight, RID, int, float) FUNC3(instance_set_surface_material, RID, int, RID) FUNC2(instance_set_visible, RID, bool) + FUNC2(instance_set_custom_aabb, RID, AABB) FUNC2(instance_attach_skeleton, RID, RID) FUNC2(instance_set_exterior, RID, bool) diff --git a/servers/visual_server.h b/servers/visual_server.h index 3edde7ec85..c4b1583009 100644 --- a/servers/visual_server.h +++ b/servers/visual_server.h @@ -753,6 +753,8 @@ public: virtual void instance_set_surface_material(RID p_instance, int p_surface, RID p_material) = 0; virtual void instance_set_visible(RID p_instance, bool p_visible) = 0; + virtual void instance_set_custom_aabb(RID p_instance, AABB aabb) = 0; + virtual void instance_attach_skeleton(RID p_instance, RID p_skeleton) = 0; virtual void instance_set_exterior(RID p_instance, bool p_enabled) = 0; diff --git a/version.py b/version.py index 38847d68f5..cce155c9af 100644 --- a/version.py +++ b/version.py @@ -2,5 +2,5 @@ short_name = "godot" name = "Godot Engine" major = 3 minor = 0 -status = "alpha" +status = "beta" module_config = "" |
