diff options
175 files changed, 5183 insertions, 3704 deletions
diff --git a/core/config/project_settings.cpp b/core/config/project_settings.cpp index 12d936d456..28fbc78501 100644 --- a/core/config/project_settings.cpp +++ b/core/config/project_settings.cpp @@ -1200,6 +1200,10 @@ ProjectSettings::ProjectSettings() { GLOBAL_DEF_BASIC("audio/buses/default_bus_layout", "res://default_bus_layout.tres"); custom_prop_info["audio/buses/default_bus_layout"] = PropertyInfo(Variant::STRING, "audio/buses/default_bus_layout", PROPERTY_HINT_FILE, "*.tres"); + GLOBAL_DEF_RST("audio/general/2d_panning_strength", 1.0f); + custom_prop_info["audio/general/2d_panning_strength"] = PropertyInfo(Variant::FLOAT, "audio/general/2d_panning_strength", PROPERTY_HINT_RANGE, "0,4,0.01"); + GLOBAL_DEF_RST("audio/general/3d_panning_strength", 1.0f); + custom_prop_info["audio/general/3d_panning_strength"] = PropertyInfo(Variant::FLOAT, "audio/general/3d_panning_strength", PROPERTY_HINT_RANGE, "0,4,0.01"); PackedStringArray extensions = PackedStringArray(); extensions.push_back("gd"); @@ -1246,6 +1250,9 @@ ProjectSettings::ProjectSettings() { GLOBAL_DEF_INTERNAL("application/config/features", PackedStringArray()); GLOBAL_DEF_INTERNAL("internationalization/locale/translation_remaps", PackedStringArray()); GLOBAL_DEF_INTERNAL("internationalization/locale/translations", PackedStringArray()); + + GLOBAL_DEF("rendering/textures/vram_compression/minimum_size", 512); + custom_prop_info["rendering/textures/vram_compression/minimum_size"] = PropertyInfo(Variant::INT, "rendering/textures/vram_compression/minimum_size", PROPERTY_HINT_RANGE, "16,16384,1"); } ProjectSettings::~ProjectSettings() { diff --git a/core/core_bind.cpp b/core/core_bind.cpp index 194c7fdefd..8fafc459e3 100644 --- a/core/core_bind.cpp +++ b/core/core_bind.cpp @@ -2076,9 +2076,9 @@ bool ClassDB::has_integer_constant(const StringName &p_class, const StringName & return success; } -int ClassDB::get_integer_constant(const StringName &p_class, const StringName &p_name) const { +int64_t ClassDB::get_integer_constant(const StringName &p_class, const StringName &p_name) const { bool found; - int c = ::ClassDB::get_integer_constant(p_class, p_name, &found); + int64_t c = ::ClassDB::get_integer_constant(p_class, p_name, &found); ERR_FAIL_COND_V(!found, 0); return c; } diff --git a/core/core_bind.h b/core/core_bind.h index e4d15d5c9d..c2098b1b59 100644 --- a/core/core_bind.h +++ b/core/core_bind.h @@ -604,7 +604,7 @@ public: PackedStringArray get_integer_constant_list(const StringName &p_class, bool p_no_inheritance = false) const; bool has_integer_constant(const StringName &p_class, const StringName &p_name) const; - int get_integer_constant(const StringName &p_class, const StringName &p_name) const; + int64_t get_integer_constant(const StringName &p_class, const StringName &p_name) const; bool has_enum(const StringName &p_class, const StringName &p_name, bool p_no_inheritance = false) const; PackedStringArray get_enum_list(const StringName &p_class, bool p_no_inheritance = false) const; diff --git a/core/core_constants.cpp b/core/core_constants.cpp index 4f22c99656..4e0845e625 100644 --- a/core/core_constants.cpp +++ b/core/core_constants.cpp @@ -42,19 +42,19 @@ struct _CoreConstant { bool ignore_value_in_docs = false; #endif const char *name = nullptr; - int value = 0; + int64_t value = 0; _CoreConstant() {} #ifdef DEBUG_METHODS_ENABLED - _CoreConstant(const StringName &p_enum_name, const char *p_name, int p_value, bool p_ignore_value_in_docs = false) : + _CoreConstant(const StringName &p_enum_name, const char *p_name, int64_t p_value, bool p_ignore_value_in_docs = false) : enum_name(p_enum_name), ignore_value_in_docs(p_ignore_value_in_docs), name(p_name), value(p_value) { } #else - _CoreConstant(const char *p_name, int p_value) : + _CoreConstant(const char *p_name, int64_t p_value) : name(p_name), value(p_value) { } @@ -73,13 +73,13 @@ static Vector<_CoreConstant> _global_constants; // This just binds enum classes as if they were regular enum constants. #define BIND_CORE_ENUM_CLASS_CONSTANT(m_enum, m_prefix, m_member) \ - _global_constants.push_back(_CoreConstant(__constant_get_enum_name(m_enum::m_member, #m_prefix "_" #m_member), #m_prefix "_" #m_member, (int)m_enum::m_member)); + _global_constants.push_back(_CoreConstant(__constant_get_enum_name(m_enum::m_member, #m_prefix "_" #m_member), #m_prefix "_" #m_member, (int64_t)m_enum::m_member)); #define BIND_CORE_ENUM_CLASS_CONSTANT_CUSTOM(m_enum, m_name, m_member) \ - _global_constants.push_back(_CoreConstant(__constant_get_enum_name(m_enum::m_member, #m_name), #m_name, (int)m_enum::m_member)); + _global_constants.push_back(_CoreConstant(__constant_get_enum_name(m_enum::m_member, #m_name), #m_name, (int64_t)m_enum::m_member)); #define BIND_CORE_ENUM_CLASS_CONSTANT_NO_VAL(m_enum, m_prefix, m_member) \ - _global_constants.push_back(_CoreConstant(__constant_get_enum_name(m_enum::m_member, #m_prefix "_" #m_member), #m_prefix "_" #m_member, (int)m_enum::m_member, true)); + _global_constants.push_back(_CoreConstant(__constant_get_enum_name(m_enum::m_member, #m_prefix "_" #m_member), #m_prefix "_" #m_member, (int64_t)m_enum::m_member, true)); #define BIND_CORE_ENUM_CONSTANT_CUSTOM(m_custom_name, m_constant) \ _global_constants.push_back(_CoreConstant(__constant_get_enum_name(m_constant, #m_constant), m_custom_name, m_constant)); @@ -103,13 +103,13 @@ static Vector<_CoreConstant> _global_constants; // This just binds enum classes as if they were regular enum constants. #define BIND_CORE_ENUM_CLASS_CONSTANT(m_enum, m_prefix, m_member) \ - _global_constants.push_back(_CoreConstant(#m_prefix "_" #m_member, (int)m_enum::m_member)); + _global_constants.push_back(_CoreConstant(#m_prefix "_" #m_member, (int64_t)m_enum::m_member)); #define BIND_CORE_ENUM_CLASS_CONSTANT_CUSTOM(m_enum, m_name, m_member) \ - _global_constants.push_back(_CoreConstant(#m_name, (int)m_enum::m_member)); + _global_constants.push_back(_CoreConstant(#m_name, (int64_t)m_enum::m_member)); #define BIND_CORE_ENUM_CLASS_CONSTANT_NO_VAL(m_enum, m_prefix, m_member) \ - _global_constants.push_back(_CoreConstant(#m_prefix "_" #m_member, (int)m_enum::m_member)); + _global_constants.push_back(_CoreConstant(#m_prefix "_" #m_member, (int64_t)m_enum::m_member)); #define BIND_CORE_ENUM_CONSTANT_CUSTOM(m_custom_name, m_constant) \ _global_constants.push_back(_CoreConstant(m_custom_name, m_constant)); @@ -213,6 +213,25 @@ void register_global_constants() { BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F14); BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F15); BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F16); + BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F17); + BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F18); + BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F19); + BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F20); + BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F21); + BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F22); + BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F23); + BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F24); + BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F25); + BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F26); + BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F27); + BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F28); + BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F29); + BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F30); + BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F31); + BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F32); + BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F33); + BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F34); + BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F35); BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, KP_MULTIPLY); BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, KP_DIVIDE); BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, KP_SUBTRACT); @@ -753,6 +772,6 @@ const char *CoreConstants::get_global_constant_name(int p_idx) { return _global_constants[p_idx].name; } -int CoreConstants::get_global_constant_value(int p_idx) { +int64_t CoreConstants::get_global_constant_value(int p_idx) { return _global_constants[p_idx].value; } diff --git a/core/core_constants.h b/core/core_constants.h index 9302c23959..d5b3b156b2 100644 --- a/core/core_constants.h +++ b/core/core_constants.h @@ -39,7 +39,7 @@ public: static StringName get_global_constant_enum(int p_idx); static bool get_ignore_value_in_docs(int p_idx); static const char *get_global_constant_name(int p_idx); - static int get_global_constant_value(int p_idx); + static int64_t get_global_constant_value(int p_idx); }; #endif // GLOBAL_CONSTANTS_H diff --git a/core/extension/extension_api_dump.cpp b/core/extension/extension_api_dump.cpp index 9e8addf8aa..edd48cf9cd 100644 --- a/core/extension/extension_api_dump.cpp +++ b/core/extension/extension_api_dump.cpp @@ -334,14 +334,14 @@ Dictionary NativeExtensionAPIDump::generate_extension_api() { { // Global enums and constants. Array constants; - HashMap<String, List<Pair<String, int>>> enum_list; + HashMap<String, List<Pair<String, int64_t>>> enum_list; for (int i = 0; i < CoreConstants::get_global_constant_count(); i++) { - int value = CoreConstants::get_global_constant_value(i); + int64_t value = CoreConstants::get_global_constant_value(i); String enum_name = CoreConstants::get_global_constant_enum(i); String name = CoreConstants::get_global_constant_name(i); if (!enum_name.is_empty()) { - enum_list[enum_name].push_back(Pair<String, int>(name, value)); + enum_list[enum_name].push_back(Pair<String, int64_t>(name, value)); } else { Dictionary d; d["name"] = name; @@ -353,11 +353,11 @@ Dictionary NativeExtensionAPIDump::generate_extension_api() { api_dump["global_constants"] = constants; Array enums; - for (const KeyValue<String, List<Pair<String, int>>> &E : enum_list) { + for (const KeyValue<String, List<Pair<String, int64_t>>> &E : enum_list) { Dictionary d1; d1["name"] = E.key; Array values; - for (const Pair<String, int> &F : E.value) { + for (const Pair<String, int64_t> &F : E.value) { Dictionary d2; d2["name"] = F.first; d2["value"] = F.second; diff --git a/core/extension/native_extension.cpp b/core/extension/native_extension.cpp index ac9d2ca8a6..ebdfa20725 100644 --- a/core/extension/native_extension.cpp +++ b/core/extension/native_extension.cpp @@ -281,6 +281,7 @@ void NativeExtension::_get_library_path(const GDNativeExtensionClassLibraryPtr p Error NativeExtension::open_library(const String &p_path, const String &p_entry_symbol) { Error err = OS::get_singleton()->open_dynamic_library(p_path, library, true, &library_path); if (err != OK) { + ERR_PRINT("GDExtension dynamic library not found: " + p_path); return err; } @@ -289,6 +290,7 @@ Error NativeExtension::open_library(const String &p_path, const String &p_entry_ err = OS::get_singleton()->get_dynamic_library_symbol_handle(library, p_entry_symbol, entry_funcptr, false); if (err != OK) { + ERR_PRINT("GDExtension entry point '" + p_entry_symbol + "' not found in library " + p_path); OS::get_singleton()->close_dynamic_library(library); return err; } @@ -299,6 +301,7 @@ Error NativeExtension::open_library(const String &p_path, const String &p_entry_ level_initialized = -1; return OK; } else { + ERR_PRINT("GDExtension initialization function '" + p_entry_symbol + "' returned an error."); return FAILED; } } @@ -387,6 +390,7 @@ Ref<Resource> NativeExtensionResourceLoader::load(const String &p_path, const St } if (err != OK) { + ERR_PRINT("Error loading GDExtension config file: " + p_path); return Ref<Resource>(); } @@ -394,6 +398,7 @@ Ref<Resource> NativeExtensionResourceLoader::load(const String &p_path, const St if (r_error) { *r_error = ERR_INVALID_DATA; } + ERR_PRINT("GDExtension config file must contain 'configuration.entry_symbol' key: " + p_path); return Ref<Resource>(); } @@ -426,6 +431,7 @@ Ref<Resource> NativeExtensionResourceLoader::load(const String &p_path, const St if (r_error) { *r_error = ERR_FILE_NOT_FOUND; } + ERR_PRINT("No GDExtension library found for current architecture; in config file " + p_path); return Ref<Resource>(); } @@ -443,6 +449,7 @@ Ref<Resource> NativeExtensionResourceLoader::load(const String &p_path, const St } if (err != OK) { + // Errors already logged in open_library() return Ref<Resource>(); } diff --git a/core/math/audio_frame.h b/core/math/audio_frame.h index 8b244e9fe4..b3d63c0094 100644 --- a/core/math/audio_frame.h +++ b/core/math/audio_frame.h @@ -52,7 +52,7 @@ static const float AUDIO_MIN_PEAK_DB = -200.0f; // linear2db(AUDIO_PEAK_OFFSET) struct AudioFrame { //left and right samples - float l, r; + float l = 0.f, r = 0.f; _ALWAYS_INLINE_ const float &operator[](int idx) const { return idx == 0 ? l : r; } _ALWAYS_INLINE_ float &operator[](int idx) { return idx == 0 ? l : r; } diff --git a/core/object/class_db.cpp b/core/object/class_db.cpp index f61bd24efd..533cb6e789 100644 --- a/core/object/class_db.cpp +++ b/core/object/class_db.cpp @@ -228,7 +228,7 @@ uint64_t ClassDB::get_api_hash(APIType p_api) { List<StringName> snames; - for (const KeyValue<StringName, int> &F : t->constant_map) { + for (const KeyValue<StringName, int64_t> &F : t->constant_map) { snames.push_back(F.key); } @@ -536,7 +536,7 @@ MethodBind *ClassDB::get_method(const StringName &p_class, const StringName &p_n return nullptr; } -void ClassDB::bind_integer_constant(const StringName &p_class, const StringName &p_enum, const StringName &p_name, int p_constant) { +void ClassDB::bind_integer_constant(const StringName &p_class, const StringName &p_enum, const StringName &p_name, int64_t p_constant) { OBJTYPE_WLOCK; ClassInfo *type = classes.getptr(p_class); @@ -583,7 +583,7 @@ void ClassDB::get_integer_constant_list(const StringName &p_class, List<String> } #else - for (const KeyValue<StringName, int> &E : type->constant_map) { + for (const KeyValue<StringName, int64_t> &E : type->constant_map) { p_constants->push_back(E.key); } @@ -596,13 +596,13 @@ void ClassDB::get_integer_constant_list(const StringName &p_class, List<String> } } -int ClassDB::get_integer_constant(const StringName &p_class, const StringName &p_name, bool *p_success) { +int64_t ClassDB::get_integer_constant(const StringName &p_class, const StringName &p_name, bool *p_success) { OBJTYPE_RLOCK; ClassInfo *type = classes.getptr(p_class); while (type) { - int *constant = type->constant_map.getptr(p_name); + int64_t *constant = type->constant_map.getptr(p_name); if (constant) { if (p_success) { *p_success = true; @@ -1066,7 +1066,7 @@ bool ClassDB::get_property(Object *p_object, const StringName &p_property, Varia return true; } - const int *c = check->constant_map.getptr(p_property); //constants count + const int64_t *c = check->constant_map.getptr(p_property); //constants count if (c) { r_value = *c; return true; diff --git a/core/object/class_db.h b/core/object/class_db.h index 2448a86e33..f2f73dc674 100644 --- a/core/object/class_db.h +++ b/core/object/class_db.h @@ -103,7 +103,7 @@ public: ObjectNativeExtension *native_extension = nullptr; HashMap<StringName, MethodBind *> method_map; - HashMap<StringName, int> constant_map; + HashMap<StringName, int64_t> constant_map; HashMap<StringName, List<StringName>> enum_map; HashMap<StringName, MethodInfo> signal_map; List<PropertyInfo> property_list; @@ -325,9 +325,9 @@ public: static void add_virtual_method(const StringName &p_class, const MethodInfo &p_method, bool p_virtual = true, const Vector<String> &p_arg_names = Vector<String>(), bool p_object_core = false); static void get_virtual_methods(const StringName &p_class, List<MethodInfo> *p_methods, bool p_no_inheritance = false); - static void bind_integer_constant(const StringName &p_class, const StringName &p_enum, const StringName &p_name, int p_constant); + static void bind_integer_constant(const StringName &p_class, const StringName &p_enum, const StringName &p_name, int64_t p_constant); static void get_integer_constant_list(const StringName &p_class, List<String> *p_constants, bool p_no_inheritance = false); - static int get_integer_constant(const StringName &p_class, const StringName &p_name, bool *p_success = nullptr); + static int64_t get_integer_constant(const StringName &p_class, const StringName &p_name, bool *p_success = nullptr); static bool has_integer_constant(const StringName &p_class, const StringName &p_name, bool p_no_inheritance = false); static StringName get_integer_constant_enum(const StringName &p_class, const StringName &p_name, bool p_no_inheritance = false); diff --git a/core/os/keyboard.cpp b/core/os/keyboard.cpp index 24907d34c8..3e690991d9 100644 --- a/core/os/keyboard.cpp +++ b/core/os/keyboard.cpp @@ -86,6 +86,25 @@ static const _KeyCodeText _keycodes[] = { {Key::F14 ,"F14"}, {Key::F15 ,"F15"}, {Key::F16 ,"F16"}, + {Key::F17 ,"F17"}, + {Key::F18 ,"F18"}, + {Key::F19 ,"F19"}, + {Key::F20 ,"F20"}, + {Key::F21 ,"F21"}, + {Key::F22 ,"F22"}, + {Key::F23 ,"F23"}, + {Key::F24 ,"F24"}, + {Key::F25 ,"F25"}, + {Key::F26 ,"F26"}, + {Key::F27 ,"F27"}, + {Key::F28 ,"F28"}, + {Key::F29 ,"F29"}, + {Key::F30 ,"F30"}, + {Key::F31 ,"F31"}, + {Key::F32 ,"F32"}, + {Key::F33 ,"F33"}, + {Key::F34 ,"F34"}, + {Key::F35 ,"F35"}, {Key::KP_MULTIPLY ,"Kp Multiply"}, {Key::KP_DIVIDE ,"Kp Divide"}, {Key::KP_SUBTRACT ,"Kp Subtract"}, @@ -333,6 +352,25 @@ bool keycode_has_unicode(Key p_keycode) { case Key::F14: case Key::F15: case Key::F16: + case Key::F17: + case Key::F18: + case Key::F19: + case Key::F20: + case Key::F21: + case Key::F22: + case Key::F23: + case Key::F24: + case Key::F25: + case Key::F26: + case Key::F27: + case Key::F28: + case Key::F29: + case Key::F30: + case Key::F31: + case Key::F32: + case Key::F33: + case Key::F34: + case Key::F35: case Key::SUPER_L: case Key::SUPER_R: case Key::MENU: diff --git a/core/os/keyboard.h b/core/os/keyboard.h index 3176a8a210..517a53e505 100644 --- a/core/os/keyboard.h +++ b/core/os/keyboard.h @@ -85,6 +85,25 @@ enum class Key { F14 = SPECIAL | 0x29, F15 = SPECIAL | 0x2A, F16 = SPECIAL | 0x2B, + F17 = SPECIAL | 0x2C, + F18 = SPECIAL | 0x2D, + F19 = SPECIAL | 0x2E, + F20 = SPECIAL | 0x2F, + F21 = SPECIAL | 0x30, + F22 = SPECIAL | 0x31, + F23 = SPECIAL | 0x32, + F24 = SPECIAL | 0x33, + F25 = SPECIAL | 0x34, + F26 = SPECIAL | 0x35, + F27 = SPECIAL | 0x36, + F28 = SPECIAL | 0x37, + F29 = SPECIAL | 0x38, + F30 = SPECIAL | 0x39, + F31 = SPECIAL | 0x3A, + F32 = SPECIAL | 0x3B, + F33 = SPECIAL | 0x3C, + F34 = SPECIAL | 0x3D, + F35 = SPECIAL | 0x3E, KP_MULTIPLY = SPECIAL | 0x81, KP_DIVIDE = SPECIAL | 0x82, KP_SUBTRACT = SPECIAL | 0x83, @@ -100,54 +119,54 @@ enum class Key { KP_7 = SPECIAL | 0x8D, KP_8 = SPECIAL | 0x8E, KP_9 = SPECIAL | 0x8F, - SUPER_L = SPECIAL | 0x2C, - SUPER_R = SPECIAL | 0x2D, - MENU = SPECIAL | 0x2E, - HYPER_L = SPECIAL | 0x2F, - HYPER_R = SPECIAL | 0x30, - HELP = SPECIAL | 0x31, - DIRECTION_L = SPECIAL | 0x32, - DIRECTION_R = SPECIAL | 0x33, - BACK = SPECIAL | 0x40, - FORWARD = SPECIAL | 0x41, - STOP = SPECIAL | 0x42, - REFRESH = SPECIAL | 0x43, - VOLUMEDOWN = SPECIAL | 0x44, - VOLUMEMUTE = SPECIAL | 0x45, - VOLUMEUP = SPECIAL | 0x46, - BASSBOOST = SPECIAL | 0x47, - BASSUP = SPECIAL | 0x48, - BASSDOWN = SPECIAL | 0x49, - TREBLEUP = SPECIAL | 0x4A, - TREBLEDOWN = SPECIAL | 0x4B, - MEDIAPLAY = SPECIAL | 0x4C, - MEDIASTOP = SPECIAL | 0x4D, - MEDIAPREVIOUS = SPECIAL | 0x4E, - MEDIANEXT = SPECIAL | 0x4F, - MEDIARECORD = SPECIAL | 0x50, - HOMEPAGE = SPECIAL | 0x51, - FAVORITES = SPECIAL | 0x52, - SEARCH = SPECIAL | 0x53, - STANDBY = SPECIAL | 0x54, - OPENURL = SPECIAL | 0x55, - LAUNCHMAIL = SPECIAL | 0x56, - LAUNCHMEDIA = SPECIAL | 0x57, - LAUNCH0 = SPECIAL | 0x58, - LAUNCH1 = SPECIAL | 0x59, - LAUNCH2 = SPECIAL | 0x5A, - LAUNCH3 = SPECIAL | 0x5B, - LAUNCH4 = SPECIAL | 0x5C, - LAUNCH5 = SPECIAL | 0x5D, - LAUNCH6 = SPECIAL | 0x5E, - LAUNCH7 = SPECIAL | 0x5F, - LAUNCH8 = SPECIAL | 0x60, - LAUNCH9 = SPECIAL | 0x61, - LAUNCHA = SPECIAL | 0x62, - LAUNCHB = SPECIAL | 0x63, - LAUNCHC = SPECIAL | 0x64, - LAUNCHD = SPECIAL | 0x65, - LAUNCHE = SPECIAL | 0x66, - LAUNCHF = SPECIAL | 0x67, + SUPER_L = SPECIAL | 0x40, + SUPER_R = SPECIAL | 0x41, + MENU = SPECIAL | 0x42, + HYPER_L = SPECIAL | 0x43, + HYPER_R = SPECIAL | 0x44, + HELP = SPECIAL | 0x45, + DIRECTION_L = SPECIAL | 0x46, + DIRECTION_R = SPECIAL | 0x47, + BACK = SPECIAL | 0x48, + FORWARD = SPECIAL | 0x49, + STOP = SPECIAL | 0x4A, + REFRESH = SPECIAL | 0x4B, + VOLUMEDOWN = SPECIAL | 0x4C, + VOLUMEMUTE = SPECIAL | 0x4D, + VOLUMEUP = SPECIAL | 0x4E, + BASSBOOST = SPECIAL | 0x4F, + BASSUP = SPECIAL | 0x50, + BASSDOWN = SPECIAL | 0x51, + TREBLEUP = SPECIAL | 0x52, + TREBLEDOWN = SPECIAL | 0x53, + MEDIAPLAY = SPECIAL | 0x54, + MEDIASTOP = SPECIAL | 0x55, + MEDIAPREVIOUS = SPECIAL | 0x56, + MEDIANEXT = SPECIAL | 0x57, + MEDIARECORD = SPECIAL | 0x58, + HOMEPAGE = SPECIAL | 0x59, + FAVORITES = SPECIAL | 0x5A, + SEARCH = SPECIAL | 0x5B, + STANDBY = SPECIAL | 0x5C, + OPENURL = SPECIAL | 0x5D, + LAUNCHMAIL = SPECIAL | 0x5E, + LAUNCHMEDIA = SPECIAL | 0x5F, + LAUNCH0 = SPECIAL | 0x60, + LAUNCH1 = SPECIAL | 0x61, + LAUNCH2 = SPECIAL | 0x62, + LAUNCH3 = SPECIAL | 0x63, + LAUNCH4 = SPECIAL | 0x64, + LAUNCH5 = SPECIAL | 0x65, + LAUNCH6 = SPECIAL | 0x66, + LAUNCH7 = SPECIAL | 0x67, + LAUNCH8 = SPECIAL | 0x68, + LAUNCH9 = SPECIAL | 0x69, + LAUNCHA = SPECIAL | 0x6A, + LAUNCHB = SPECIAL | 0x6B, + LAUNCHC = SPECIAL | 0x6C, + LAUNCHD = SPECIAL | 0x6D, + LAUNCHE = SPECIAL | 0x6E, + LAUNCHF = SPECIAL | 0x6F, UNKNOWN = SPECIAL | 0xFFFFFF, diff --git a/core/variant/variant_call.cpp b/core/variant/variant_call.cpp index b335f2fcf4..6e8dc64811 100644 --- a/core/variant/variant_call.cpp +++ b/core/variant/variant_call.cpp @@ -919,7 +919,7 @@ struct _VariantCall { } struct ConstantData { - HashMap<StringName, int> value; + HashMap<StringName, int64_t> value; #ifdef DEBUG_ENABLED List<StringName> value_ordered; #endif @@ -931,7 +931,7 @@ struct _VariantCall { static ConstantData *constant_data; - static void add_constant(int p_type, StringName p_constant_name, int p_constant_value) { + static void add_constant(int p_type, StringName p_constant_name, int64_t p_constant_value) { constant_data[p_type].value[p_constant_name] = p_constant_value; #ifdef DEBUG_ENABLED constant_data[p_type].value_ordered.push_back(p_constant_name); @@ -1245,7 +1245,7 @@ void Variant::get_constants_for_type(Variant::Type p_type, List<StringName> *p_c for (const List<StringName>::Element *E = cd.value_ordered.front(); E; E = E->next()) { p_constants->push_back(E->get()); #else - for (const KeyValue<StringName, int> &E : cd.value) { + for (const KeyValue<StringName, int64_t> &E : cd.value) { p_constants->push_back(E.key); #endif } @@ -1281,7 +1281,7 @@ Variant Variant::get_constant_value(Variant::Type p_type, const StringName &p_va ERR_FAIL_INDEX_V(p_type, Variant::VARIANT_MAX, 0); _VariantCall::ConstantData &cd = _VariantCall::constant_data[p_type]; - HashMap<StringName, int>::Iterator E = cd.value.find(p_value); + HashMap<StringName, int64_t>::Iterator E = cd.value.find(p_value); if (!E) { HashMap<StringName, Variant>::Iterator F = cd.variant_value.find(p_value); if (F) { diff --git a/doc/classes/@GlobalScope.xml b/doc/classes/@GlobalScope.xml index 18ea29857b..9f4041fa2b 100644 --- a/doc/classes/@GlobalScope.xml +++ b/doc/classes/@GlobalScope.xml @@ -1414,6 +1414,63 @@ <constant name="KEY_F16" value="16777259" enum="Key"> F16 key. </constant> + <constant name="KEY_F17" value="16777260" enum="Key"> + F17 key. + </constant> + <constant name="KEY_F18" value="16777261" enum="Key"> + F18 key. + </constant> + <constant name="KEY_F19" value="16777262" enum="Key"> + F19 key. + </constant> + <constant name="KEY_F20" value="16777263" enum="Key"> + F20 key. + </constant> + <constant name="KEY_F21" value="16777264" enum="Key"> + F21 key. + </constant> + <constant name="KEY_F22" value="16777265" enum="Key"> + F22 key. + </constant> + <constant name="KEY_F23" value="16777266" enum="Key"> + F23 key. + </constant> + <constant name="KEY_F24" value="16777267" enum="Key"> + F24 key. + </constant> + <constant name="KEY_F25" value="16777268" enum="Key"> + F25 key. Only supported on macOS and Linux due to a Windows limitation. + </constant> + <constant name="KEY_F26" value="16777269" enum="Key"> + F26 key. Only supported on macOS and Linux due to a Windows limitation. + </constant> + <constant name="KEY_F27" value="16777270" enum="Key"> + F27 key. Only supported on macOS and Linux due to a Windows limitation. + </constant> + <constant name="KEY_F28" value="16777271" enum="Key"> + F28 key. Only supported on macOS and Linux due to a Windows limitation. + </constant> + <constant name="KEY_F29" value="16777272" enum="Key"> + F29 key. Only supported on macOS and Linux due to a Windows limitation. + </constant> + <constant name="KEY_F30" value="16777273" enum="Key"> + F30 key. Only supported on macOS and Linux due to a Windows limitation. + </constant> + <constant name="KEY_F31" value="16777274" enum="Key"> + F31 key. Only supported on macOS and Linux due to a Windows limitation. + </constant> + <constant name="KEY_F32" value="16777275" enum="Key"> + F32 key. Only supported on macOS and Linux due to a Windows limitation. + </constant> + <constant name="KEY_F33" value="16777276" enum="Key"> + F33 key. Only supported on macOS and Linux due to a Windows limitation. + </constant> + <constant name="KEY_F34" value="16777277" enum="Key"> + F34 key. Only supported on macOS and Linux due to a Windows limitation. + </constant> + <constant name="KEY_F35" value="16777278" enum="Key"> + F35 key. Only supported on macOS and Linux due to a Windows limitation. + </constant> <constant name="KEY_KP_MULTIPLY" value="16777345" enum="Key"> Multiply (*) key on the numeric keypad. </constant> @@ -1459,148 +1516,148 @@ <constant name="KEY_KP_9" value="16777359" enum="Key"> Number 9 on the numeric keypad. </constant> - <constant name="KEY_SUPER_L" value="16777260" enum="Key"> + <constant name="KEY_SUPER_L" value="16777280" enum="Key"> Left Super key (Windows key). </constant> - <constant name="KEY_SUPER_R" value="16777261" enum="Key"> + <constant name="KEY_SUPER_R" value="16777281" enum="Key"> Right Super key (Windows key). </constant> - <constant name="KEY_MENU" value="16777262" enum="Key"> + <constant name="KEY_MENU" value="16777282" enum="Key"> Context menu key. </constant> - <constant name="KEY_HYPER_L" value="16777263" enum="Key"> + <constant name="KEY_HYPER_L" value="16777283" enum="Key"> Left Hyper key. </constant> - <constant name="KEY_HYPER_R" value="16777264" enum="Key"> + <constant name="KEY_HYPER_R" value="16777284" enum="Key"> Right Hyper key. </constant> - <constant name="KEY_HELP" value="16777265" enum="Key"> + <constant name="KEY_HELP" value="16777285" enum="Key"> Help key. </constant> - <constant name="KEY_DIRECTION_L" value="16777266" enum="Key"> + <constant name="KEY_DIRECTION_L" value="16777286" enum="Key"> Left Direction key. </constant> - <constant name="KEY_DIRECTION_R" value="16777267" enum="Key"> + <constant name="KEY_DIRECTION_R" value="16777287" enum="Key"> Right Direction key. </constant> - <constant name="KEY_BACK" value="16777280" enum="Key"> + <constant name="KEY_BACK" value="16777288" enum="Key"> Media back key. Not to be confused with the Back button on an Android device. </constant> - <constant name="KEY_FORWARD" value="16777281" enum="Key"> + <constant name="KEY_FORWARD" value="16777289" enum="Key"> Media forward key. </constant> - <constant name="KEY_STOP" value="16777282" enum="Key"> + <constant name="KEY_STOP" value="16777290" enum="Key"> Media stop key. </constant> - <constant name="KEY_REFRESH" value="16777283" enum="Key"> + <constant name="KEY_REFRESH" value="16777291" enum="Key"> Media refresh key. </constant> - <constant name="KEY_VOLUMEDOWN" value="16777284" enum="Key"> + <constant name="KEY_VOLUMEDOWN" value="16777292" enum="Key"> Volume down key. </constant> - <constant name="KEY_VOLUMEMUTE" value="16777285" enum="Key"> + <constant name="KEY_VOLUMEMUTE" value="16777293" enum="Key"> Mute volume key. </constant> - <constant name="KEY_VOLUMEUP" value="16777286" enum="Key"> + <constant name="KEY_VOLUMEUP" value="16777294" enum="Key"> Volume up key. </constant> - <constant name="KEY_BASSBOOST" value="16777287" enum="Key"> + <constant name="KEY_BASSBOOST" value="16777295" enum="Key"> Bass Boost key. </constant> - <constant name="KEY_BASSUP" value="16777288" enum="Key"> + <constant name="KEY_BASSUP" value="16777296" enum="Key"> Bass up key. </constant> - <constant name="KEY_BASSDOWN" value="16777289" enum="Key"> + <constant name="KEY_BASSDOWN" value="16777297" enum="Key"> Bass down key. </constant> - <constant name="KEY_TREBLEUP" value="16777290" enum="Key"> + <constant name="KEY_TREBLEUP" value="16777298" enum="Key"> Treble up key. </constant> - <constant name="KEY_TREBLEDOWN" value="16777291" enum="Key"> + <constant name="KEY_TREBLEDOWN" value="16777299" enum="Key"> Treble down key. </constant> - <constant name="KEY_MEDIAPLAY" value="16777292" enum="Key"> + <constant name="KEY_MEDIAPLAY" value="16777300" enum="Key"> Media play key. </constant> - <constant name="KEY_MEDIASTOP" value="16777293" enum="Key"> + <constant name="KEY_MEDIASTOP" value="16777301" enum="Key"> Media stop key. </constant> - <constant name="KEY_MEDIAPREVIOUS" value="16777294" enum="Key"> + <constant name="KEY_MEDIAPREVIOUS" value="16777302" enum="Key"> Previous song key. </constant> - <constant name="KEY_MEDIANEXT" value="16777295" enum="Key"> + <constant name="KEY_MEDIANEXT" value="16777303" enum="Key"> Next song key. </constant> - <constant name="KEY_MEDIARECORD" value="16777296" enum="Key"> + <constant name="KEY_MEDIARECORD" value="16777304" enum="Key"> Media record key. </constant> - <constant name="KEY_HOMEPAGE" value="16777297" enum="Key"> + <constant name="KEY_HOMEPAGE" value="16777305" enum="Key"> Home page key. </constant> - <constant name="KEY_FAVORITES" value="16777298" enum="Key"> + <constant name="KEY_FAVORITES" value="16777306" enum="Key"> Favorites key. </constant> - <constant name="KEY_SEARCH" value="16777299" enum="Key"> + <constant name="KEY_SEARCH" value="16777307" enum="Key"> Search key. </constant> - <constant name="KEY_STANDBY" value="16777300" enum="Key"> + <constant name="KEY_STANDBY" value="16777308" enum="Key"> Standby key. </constant> - <constant name="KEY_OPENURL" value="16777301" enum="Key"> + <constant name="KEY_OPENURL" value="16777309" enum="Key"> Open URL / Launch Browser key. </constant> - <constant name="KEY_LAUNCHMAIL" value="16777302" enum="Key"> + <constant name="KEY_LAUNCHMAIL" value="16777310" enum="Key"> Launch Mail key. </constant> - <constant name="KEY_LAUNCHMEDIA" value="16777303" enum="Key"> + <constant name="KEY_LAUNCHMEDIA" value="16777311" enum="Key"> Launch Media key. </constant> - <constant name="KEY_LAUNCH0" value="16777304" enum="Key"> + <constant name="KEY_LAUNCH0" value="16777312" enum="Key"> Launch Shortcut 0 key. </constant> - <constant name="KEY_LAUNCH1" value="16777305" enum="Key"> + <constant name="KEY_LAUNCH1" value="16777313" enum="Key"> Launch Shortcut 1 key. </constant> - <constant name="KEY_LAUNCH2" value="16777306" enum="Key"> + <constant name="KEY_LAUNCH2" value="16777314" enum="Key"> Launch Shortcut 2 key. </constant> - <constant name="KEY_LAUNCH3" value="16777307" enum="Key"> + <constant name="KEY_LAUNCH3" value="16777315" enum="Key"> Launch Shortcut 3 key. </constant> - <constant name="KEY_LAUNCH4" value="16777308" enum="Key"> + <constant name="KEY_LAUNCH4" value="16777316" enum="Key"> Launch Shortcut 4 key. </constant> - <constant name="KEY_LAUNCH5" value="16777309" enum="Key"> + <constant name="KEY_LAUNCH5" value="16777317" enum="Key"> Launch Shortcut 5 key. </constant> - <constant name="KEY_LAUNCH6" value="16777310" enum="Key"> + <constant name="KEY_LAUNCH6" value="16777318" enum="Key"> Launch Shortcut 6 key. </constant> - <constant name="KEY_LAUNCH7" value="16777311" enum="Key"> + <constant name="KEY_LAUNCH7" value="16777319" enum="Key"> Launch Shortcut 7 key. </constant> - <constant name="KEY_LAUNCH8" value="16777312" enum="Key"> + <constant name="KEY_LAUNCH8" value="16777320" enum="Key"> Launch Shortcut 8 key. </constant> - <constant name="KEY_LAUNCH9" value="16777313" enum="Key"> + <constant name="KEY_LAUNCH9" value="16777321" enum="Key"> Launch Shortcut 9 key. </constant> - <constant name="KEY_LAUNCHA" value="16777314" enum="Key"> + <constant name="KEY_LAUNCHA" value="16777322" enum="Key"> Launch Shortcut A key. </constant> - <constant name="KEY_LAUNCHB" value="16777315" enum="Key"> + <constant name="KEY_LAUNCHB" value="16777323" enum="Key"> Launch Shortcut B key. </constant> - <constant name="KEY_LAUNCHC" value="16777316" enum="Key"> + <constant name="KEY_LAUNCHC" value="16777324" enum="Key"> Launch Shortcut C key. </constant> - <constant name="KEY_LAUNCHD" value="16777317" enum="Key"> + <constant name="KEY_LAUNCHD" value="16777325" enum="Key"> Launch Shortcut D key. </constant> - <constant name="KEY_LAUNCHE" value="16777318" enum="Key"> + <constant name="KEY_LAUNCHE" value="16777326" enum="Key"> Launch Shortcut E key. </constant> - <constant name="KEY_LAUNCHF" value="16777319" enum="Key"> + <constant name="KEY_LAUNCHF" value="16777327" enum="Key"> Launch Shortcut F key. </constant> <constant name="KEY_UNKNOWN" value="33554431" enum="Key"> @@ -2444,7 +2501,7 @@ Hints that an integer property is a bitmask using the optionally named 3D physics layers. </constant> <constant name="PROPERTY_HINT_LAYERS_3D_NAVIGATION" value="14" enum="PropertyHint"> - Hints that an integer property is a bitmask using the optionally named 2D navigation layers. + Hints that an integer property is a bitmask using the optionally named 3D navigation layers. </constant> <constant name="PROPERTY_HINT_FILE" value="15" enum="PropertyHint"> Hints that a string property is a path to a file. Editing it will show a file dialog for picking the path. The hint string can be a set of filters with wildcards like [code]"*.png,*.jpg"[/code]. diff --git a/doc/classes/AudioStreamPlayer2D.xml b/doc/classes/AudioStreamPlayer2D.xml index 7d0470f396..76666b1f27 100644 --- a/doc/classes/AudioStreamPlayer2D.xml +++ b/doc/classes/AudioStreamPlayer2D.xml @@ -64,6 +64,9 @@ <member name="max_polyphony" type="int" setter="set_max_polyphony" getter="get_max_polyphony" default="1"> The maximum number of sounds this node can play at the same time. Playing additional sounds after this value is reached will cut off the oldest sounds. </member> + <member name="panning_strength" type="float" setter="set_panning_strength" getter="get_panning_strength" default="1.0"> + Scales the panning strength for this node by multiplying the base [member ProjectSettings.audio/general/2d_panning_strength] with this factor. Higher values will pan audio from left to right more dramatically than lower values. + </member> <member name="pitch_scale" type="float" setter="set_pitch_scale" getter="get_pitch_scale" default="1.0"> The pitch and the tempo of the audio, as a multiplier of the audio sample's sample rate. </member> diff --git a/doc/classes/AudioStreamPlayer3D.xml b/doc/classes/AudioStreamPlayer3D.xml index 8356596f54..a49b1e2291 100644 --- a/doc/classes/AudioStreamPlayer3D.xml +++ b/doc/classes/AudioStreamPlayer3D.xml @@ -86,6 +86,9 @@ <member name="max_polyphony" type="int" setter="set_max_polyphony" getter="get_max_polyphony" default="1"> The maximum number of sounds this node can play at the same time. Playing additional sounds after this value is reached will cut off the oldest sounds. </member> + <member name="panning_strength" type="float" setter="set_panning_strength" getter="get_panning_strength" default="1.0"> + Scales the panning strength for this node by multiplying the base [member ProjectSettings.audio/general/3d_panning_strength] with this factor. Higher values will pan audio from left to right more dramatically than lower values. + </member> <member name="pitch_scale" type="float" setter="set_pitch_scale" getter="get_pitch_scale" default="1.0"> The pitch and the tempo of the audio, as a multiplier of the audio sample's sample rate. </member> diff --git a/doc/classes/NavigationRegion2D.xml b/doc/classes/NavigationRegion2D.xml index 62e64f2a3c..2647e961c9 100644 --- a/doc/classes/NavigationRegion2D.xml +++ b/doc/classes/NavigationRegion2D.xml @@ -26,7 +26,7 @@ Determines if the [NavigationRegion2D] is enabled or disabled. </member> <member name="enter_cost" type="float" setter="set_enter_cost" getter="get_enter_cost" default="0.0"> - When pathfinding enters this regions navmesh from another regions navmesh the [code]enter_cost[/code] value is added to the path distance for determining the shortest path. + When pathfinding enters this region's navmesh from another regions navmesh the [code]enter_cost[/code] value is added to the path distance for determining the shortest path. </member> <member name="navigation_layers" type="int" setter="set_navigation_layers" getter="get_navigation_layers" default="1"> A bitfield determining all navigation layers the region belongs to. These navigation layers can be checked upon when requesting a path with [method NavigationServer2D.map_get_path]. @@ -35,7 +35,7 @@ The [NavigationPolygon] resource to use. </member> <member name="travel_cost" type="float" setter="set_travel_cost" getter="get_travel_cost" default="1.0"> - When pathfinding moves inside this regions navmesh the traveled distances are multiplied with [code]travel_cost[/code] for determining the shortest path. + When pathfinding moves inside this region's navmesh the traveled distances are multiplied with [code]travel_cost[/code] for determining the shortest path. </member> </members> </class> diff --git a/doc/classes/NavigationRegion3D.xml b/doc/classes/NavigationRegion3D.xml index 3af7fe5c97..61dcd13dc8 100644 --- a/doc/classes/NavigationRegion3D.xml +++ b/doc/classes/NavigationRegion3D.xml @@ -33,7 +33,7 @@ Determines if the [NavigationRegion3D] is enabled or disabled. </member> <member name="enter_cost" type="float" setter="set_enter_cost" getter="get_enter_cost" default="0.0"> - When pathfinding enters this regions navmesh from another regions navmesh the [code]enter_cost[/code] value is added to the path distance for determining the shortest path. + When pathfinding enters this region's navmesh from another regions navmesh the [code]enter_cost[/code] value is added to the path distance for determining the shortest path. </member> <member name="navigation_layers" type="int" setter="set_navigation_layers" getter="get_navigation_layers" default="1"> A bitfield determining all navigation layers the region belongs to. These navigation layers can be checked upon when requesting a path with [method NavigationServer3D.map_get_path]. @@ -42,7 +42,7 @@ The [NavigationMesh] resource to use. </member> <member name="travel_cost" type="float" setter="set_travel_cost" getter="get_travel_cost" default="1.0"> - When pathfinding moves inside this regions navmesh the traveled distances are multiplied with [code]travel_cost[/code] for determining the shortest path. + When pathfinding moves inside this region's navmesh the traveled distances are multiplied with [code]travel_cost[/code] for determining the shortest path. </member> </members> <signals> diff --git a/doc/classes/ProjectSettings.xml b/doc/classes/ProjectSettings.xml index ad95572bf1..2c28a297cf 100644 --- a/doc/classes/ProjectSettings.xml +++ b/doc/classes/ProjectSettings.xml @@ -307,6 +307,12 @@ <member name="audio/driver/output_latency.web" type="int" setter="" getter="" default="50"> Safer override for [member audio/driver/output_latency] in the Web platform, to avoid audio issues especially on mobile devices. </member> + <member name="audio/general/2d_panning_strength" type="float" setter="" getter="" default="1.0"> + The base strength of the panning effect for all AudioStreamPlayer2D nodes. The panning strength can be further scaled on each Node using [member AudioStreamPlayer2D.panning_strength]. + </member> + <member name="audio/general/3d_panning_strength" type="float" setter="" getter="" default="1.0"> + The base strength of the panning effect for all AudioStreamPlayer3D nodes. The panning strength can be further scaled on each Node using [member AudioStreamPlayer3D.panning_strength]. + </member> <member name="audio/video/video_delay_compensation_ms" type="int" setter="" getter="" default="0"> Setting to hardcode audio delay when playing video. Best to leave this untouched unless you know what you are doing. </member> @@ -1927,6 +1933,11 @@ If [code]true[/code], the texture importer will import VRAM-compressed textures using the S3 Texture Compression algorithm. This algorithm is only supported on desktop platforms and consoles. [b]Note:[/b] Changing this setting does [i]not[/i] impact textures that were already imported before. To make this setting apply to textures that were already imported, exit the editor, remove the [code].godot/imported/[/code] folder located inside the project folder then restart the editor (see [member application/config/use_hidden_project_data_directory]). </member> + <member name="rendering/textures/vram_compression/minimum_size" type="int" setter="" getter="" default="512"> + When a texture is detected as used in 3D in the editor, only enable VRAM compression if its size is greater than or equal to [code]minimum_size * minimum_size[/code] pixels. This is done to prevent reducing texture quality when it doesn't save much video memory, especially for pixel art. + For non-square textures, the pixel count is used. For example, with [member rendering/textures/vram_compression/minimum_size] set to [code]512[/code], a 512×512 texture will use VRAM compression, while 256×256 textures, 256×512 and 1024×64 textures will keep their existing compression mode (Lossless by default). + [b]Note:[/b] This project setting only affects textures that are detected to be used in 3D at a given time. Textures that were already imported will not be affected by changes to this setting. To force 3D detection to occur again, select a texture in the FileSystem dock, change its Detect 3D import option in the Import dock to [b]VRAM Compressed[/b] or [b]Basis Universal[/b] then click [b]Reimport[/b]. + </member> <member name="rendering/vulkan/descriptor_pools/max_descriptors_per_pool" type="int" setter="" getter="" default="64"> </member> <member name="rendering/vulkan/rendering/back_end" type="int" setter="" getter="" default="0"> diff --git a/doc/classes/World3D.xml b/doc/classes/World3D.xml index c57029a180..56a662d062 100644 --- a/doc/classes/World3D.xml +++ b/doc/classes/World3D.xml @@ -19,7 +19,7 @@ The World3D's [Environment]. </member> <member name="fallback_environment" type="Environment" setter="set_fallback_environment" getter="get_fallback_environment"> - The World3D's fallback_environment will be used if the World3D's [Environment] fails or is missing. + The World3D's fallback environment will be used if [member environment] fails or is missing. </member> <member name="navigation_map" type="RID" setter="" getter="get_navigation_map"> The [RID] of this world's navigation map. Used by the [NavigationServer3D]. diff --git a/doc/translations/ar.po b/doc/translations/ar.po index b68cb7cd59..8354193353 100644 --- a/doc/translations/ar.po +++ b/doc/translations/ar.po @@ -480,7 +480,7 @@ msgstr "" #, fuzzy msgid "" "Compares two values by checking their actual contents, recursing into any " -"`Array` or `Dictionary` up to its deepest level.\n" +"[Array] or [Dictionary] up to its deepest level.\n" "This compares to [code]==[/code] in a number of ways:\n" "- For [code]null[/code], [code]int[/code], [code]float[/code], [code]String[/" "code], [code]Object[/code] and [code]RID[/code] both [code]deep_equal[/code] " @@ -3561,6 +3561,12 @@ msgstr "" #: doc/classes/@GlobalScope.xml msgid "" +"Hints that an integer property is a bitmask using the optionally named 3D " +"navigation layers." +msgstr "" + +#: doc/classes/@GlobalScope.xml +msgid "" "Hints that a string property is a path to a file. Editing it will show a " "file dialog for picking the path. The hint string can be a set of filters " "with wildcards like [code]\"*.png,*.jpg\"[/code]." @@ -30323,8 +30329,8 @@ msgstr "" #: doc/classes/InputEventJoypadButton.xml msgid "" -"Represents the pressure the user puts on the button with his finger, if the " -"controller supports it. Ranges from [code]0[/code] to [code]1[/code]." +"Represents the pressure the user puts on the button with their finger, if " +"the controller supports it. Ranges from [code]0[/code] to [code]1[/code]." msgstr "" #: doc/classes/InputEventJoypadMotion.xml @@ -36715,7 +36721,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding enters this regions navmesh from another regions navmesh " +"When pathfinding enters this region's navmesh from another regions navmesh " "the [code]enter_cost[/code] value is added to the path distance for " "determining the shortest path." msgstr "" @@ -36735,7 +36741,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding moves inside this regions navmesh the traveled distances " +"When pathfinding moves inside this region's navmesh the traveled distances " "are multiplied with [code]travel_cost[/code] for determining the shortest " "path." msgstr "" @@ -47559,6 +47565,18 @@ msgstr "" #: doc/classes/ProjectSettings.xml msgid "" +"Default naming style for scene files to infer from their root nodes. " +"Possible options are:\n" +"- [code]0[/code] (Auto): Uses the scene root name as is without changing its " +"casing.\n" +"- [code]1[/code] (PascalCase): Converts the scene root name to PascalCase " +"casing.\n" +"- [code]2[/code] (snake_case): Converts the scene root name to snake_case " +"casing." +msgstr "" + +#: doc/classes/ProjectSettings.xml +msgid "" "Search path for project-specific script templates. Godot will search for " "script templates both in the editor-specific path and in this project-" "specific path." @@ -66862,11 +66880,12 @@ msgid "This enabler will stop [Particles2D] nodes." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _process function." +msgid "This enabler will stop the parent's [method Node._process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _physics_process function." +msgid "" +"This enabler will stop the parent's [method Node._physics_process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml @@ -74904,8 +74923,8 @@ msgstr "" #: doc/classes/World.xml msgid "" -"The World's fallback_environment will be used if the World's [Environment] " -"fails or is missing." +"The World's fallback environment will be used if [member environment] fails " +"or is missing." msgstr "" #: doc/classes/World.xml diff --git a/doc/translations/ca.po b/doc/translations/ca.po index 5553d751ee..234b5cd60c 100644 --- a/doc/translations/ca.po +++ b/doc/translations/ca.po @@ -460,7 +460,7 @@ msgstr "" #: modules/gdscript/doc_classes/@GDScript.xml msgid "" "Compares two values by checking their actual contents, recursing into any " -"`Array` or `Dictionary` up to its deepest level.\n" +"[Array] or [Dictionary] up to its deepest level.\n" "This compares to [code]==[/code] in a number of ways:\n" "- For [code]null[/code], [code]int[/code], [code]float[/code], [code]String[/" "code], [code]Object[/code] and [code]RID[/code] both [code]deep_equal[/code] " @@ -3510,6 +3510,12 @@ msgstr "" #: doc/classes/@GlobalScope.xml msgid "" +"Hints that an integer property is a bitmask using the optionally named 3D " +"navigation layers." +msgstr "" + +#: doc/classes/@GlobalScope.xml +msgid "" "Hints that a string property is a path to a file. Editing it will show a " "file dialog for picking the path. The hint string can be a set of filters " "with wildcards like [code]\"*.png,*.jpg\"[/code]." @@ -30240,8 +30246,8 @@ msgstr "" #: doc/classes/InputEventJoypadButton.xml msgid "" -"Represents the pressure the user puts on the button with his finger, if the " -"controller supports it. Ranges from [code]0[/code] to [code]1[/code]." +"Represents the pressure the user puts on the button with their finger, if " +"the controller supports it. Ranges from [code]0[/code] to [code]1[/code]." msgstr "" #: doc/classes/InputEventJoypadMotion.xml @@ -36596,7 +36602,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding enters this regions navmesh from another regions navmesh " +"When pathfinding enters this region's navmesh from another regions navmesh " "the [code]enter_cost[/code] value is added to the path distance for " "determining the shortest path." msgstr "" @@ -36616,7 +36622,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding moves inside this regions navmesh the traveled distances " +"When pathfinding moves inside this region's navmesh the traveled distances " "are multiplied with [code]travel_cost[/code] for determining the shortest " "path." msgstr "" @@ -47404,6 +47410,18 @@ msgstr "" #: doc/classes/ProjectSettings.xml msgid "" +"Default naming style for scene files to infer from their root nodes. " +"Possible options are:\n" +"- [code]0[/code] (Auto): Uses the scene root name as is without changing its " +"casing.\n" +"- [code]1[/code] (PascalCase): Converts the scene root name to PascalCase " +"casing.\n" +"- [code]2[/code] (snake_case): Converts the scene root name to snake_case " +"casing." +msgstr "" + +#: doc/classes/ProjectSettings.xml +msgid "" "Search path for project-specific script templates. Godot will search for " "script templates both in the editor-specific path and in this project-" "specific path." @@ -66681,11 +66699,12 @@ msgid "This enabler will stop [Particles2D] nodes." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _process function." +msgid "This enabler will stop the parent's [method Node._process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _physics_process function." +msgid "" +"This enabler will stop the parent's [method Node._physics_process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml @@ -74702,8 +74721,8 @@ msgstr "" #: doc/classes/World.xml msgid "" -"The World's fallback_environment will be used if the World's [Environment] " -"fails or is missing." +"The World's fallback environment will be used if [member environment] fails " +"or is missing." msgstr "" #: doc/classes/World.xml diff --git a/doc/translations/classes.pot b/doc/translations/classes.pot index 3e7eb08673..72d9388f80 100644 --- a/doc/translations/classes.pot +++ b/doc/translations/classes.pot @@ -340,7 +340,7 @@ msgstr "" #: modules/gdscript/doc_classes/@GDScript.xml msgid "" "Compares two values by checking their actual contents, recursing into any " -"`Array` or `Dictionary` up to its deepest level.\n" +"[Array] or [Dictionary] up to its deepest level.\n" "This compares to [code]==[/code] in a number of ways:\n" "- For [code]null[/code], [code]int[/code], [code]float[/code], [code]String[/" "code], [code]Object[/code] and [code]RID[/code] both [code]deep_equal[/code] " @@ -3390,6 +3390,12 @@ msgstr "" #: doc/classes/@GlobalScope.xml msgid "" +"Hints that an integer property is a bitmask using the optionally named 3D " +"navigation layers." +msgstr "" + +#: doc/classes/@GlobalScope.xml +msgid "" "Hints that a string property is a path to a file. Editing it will show a " "file dialog for picking the path. The hint string can be a set of filters " "with wildcards like [code]\"*.png,*.jpg\"[/code]." @@ -30117,8 +30123,8 @@ msgstr "" #: doc/classes/InputEventJoypadButton.xml msgid "" -"Represents the pressure the user puts on the button with his finger, if the " -"controller supports it. Ranges from [code]0[/code] to [code]1[/code]." +"Represents the pressure the user puts on the button with their finger, if " +"the controller supports it. Ranges from [code]0[/code] to [code]1[/code]." msgstr "" #: doc/classes/InputEventJoypadMotion.xml @@ -36473,7 +36479,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding enters this regions navmesh from another regions navmesh " +"When pathfinding enters this region's navmesh from another regions navmesh " "the [code]enter_cost[/code] value is added to the path distance for " "determining the shortest path." msgstr "" @@ -36493,7 +36499,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding moves inside this regions navmesh the traveled distances " +"When pathfinding moves inside this region's navmesh the traveled distances " "are multiplied with [code]travel_cost[/code] for determining the shortest " "path." msgstr "" @@ -47281,6 +47287,18 @@ msgstr "" #: doc/classes/ProjectSettings.xml msgid "" +"Default naming style for scene files to infer from their root nodes. " +"Possible options are:\n" +"- [code]0[/code] (Auto): Uses the scene root name as is without changing its " +"casing.\n" +"- [code]1[/code] (PascalCase): Converts the scene root name to PascalCase " +"casing.\n" +"- [code]2[/code] (snake_case): Converts the scene root name to snake_case " +"casing." +msgstr "" + +#: doc/classes/ProjectSettings.xml +msgid "" "Search path for project-specific script templates. Godot will search for " "script templates both in the editor-specific path and in this project-" "specific path." @@ -66558,11 +66576,12 @@ msgid "This enabler will stop [Particles2D] nodes." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _process function." +msgid "This enabler will stop the parent's [method Node._process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _physics_process function." +msgid "" +"This enabler will stop the parent's [method Node._physics_process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml @@ -74579,8 +74598,8 @@ msgstr "" #: doc/classes/World.xml msgid "" -"The World's fallback_environment will be used if the World's [Environment] " -"fails or is missing." +"The World's fallback environment will be used if [member environment] fails " +"or is missing." msgstr "" #: doc/classes/World.xml diff --git a/doc/translations/cs.po b/doc/translations/cs.po index 388d3d7d4d..4b60e4d7c4 100644 --- a/doc/translations/cs.po +++ b/doc/translations/cs.po @@ -489,7 +489,7 @@ msgstr "" #: modules/gdscript/doc_classes/@GDScript.xml msgid "" "Compares two values by checking their actual contents, recursing into any " -"`Array` or `Dictionary` up to its deepest level.\n" +"[Array] or [Dictionary] up to its deepest level.\n" "This compares to [code]==[/code] in a number of ways:\n" "- For [code]null[/code], [code]int[/code], [code]float[/code], [code]String[/" "code], [code]Object[/code] and [code]RID[/code] both [code]deep_equal[/code] " @@ -3895,6 +3895,12 @@ msgstr "" #: doc/classes/@GlobalScope.xml msgid "" +"Hints that an integer property is a bitmask using the optionally named 3D " +"navigation layers." +msgstr "" + +#: doc/classes/@GlobalScope.xml +msgid "" "Hints that a string property is a path to a file. Editing it will show a " "file dialog for picking the path. The hint string can be a set of filters " "with wildcards like [code]\"*.png,*.jpg\"[/code]." @@ -30713,8 +30719,8 @@ msgstr "" #: doc/classes/InputEventJoypadButton.xml msgid "" -"Represents the pressure the user puts on the button with his finger, if the " -"controller supports it. Ranges from [code]0[/code] to [code]1[/code]." +"Represents the pressure the user puts on the button with their finger, if " +"the controller supports it. Ranges from [code]0[/code] to [code]1[/code]." msgstr "" #: doc/classes/InputEventJoypadMotion.xml @@ -37117,7 +37123,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding enters this regions navmesh from another regions navmesh " +"When pathfinding enters this region's navmesh from another regions navmesh " "the [code]enter_cost[/code] value is added to the path distance for " "determining the shortest path." msgstr "" @@ -37137,7 +37143,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding moves inside this regions navmesh the traveled distances " +"When pathfinding moves inside this region's navmesh the traveled distances " "are multiplied with [code]travel_cost[/code] for determining the shortest " "path." msgstr "" @@ -47977,6 +47983,18 @@ msgstr "" #: doc/classes/ProjectSettings.xml msgid "" +"Default naming style for scene files to infer from their root nodes. " +"Possible options are:\n" +"- [code]0[/code] (Auto): Uses the scene root name as is without changing its " +"casing.\n" +"- [code]1[/code] (PascalCase): Converts the scene root name to PascalCase " +"casing.\n" +"- [code]2[/code] (snake_case): Converts the scene root name to snake_case " +"casing." +msgstr "" + +#: doc/classes/ProjectSettings.xml +msgid "" "Search path for project-specific script templates. Godot will search for " "script templates both in the editor-specific path and in this project-" "specific path." @@ -67339,11 +67357,12 @@ msgid "This enabler will stop [Particles2D] nodes." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _process function." +msgid "This enabler will stop the parent's [method Node._process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _physics_process function." +msgid "" +"This enabler will stop the parent's [method Node._physics_process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml @@ -75388,8 +75407,8 @@ msgstr "" #: doc/classes/World.xml msgid "" -"The World's fallback_environment will be used if the World's [Environment] " -"fails or is missing." +"The World's fallback environment will be used if [member environment] fails " +"or is missing." msgstr "" #: doc/classes/World.xml diff --git a/doc/translations/de.po b/doc/translations/de.po index 6907c97794..640725bd9a 100644 --- a/doc/translations/de.po +++ b/doc/translations/de.po @@ -533,9 +533,10 @@ msgstr "" "[/codeblock]" #: modules/gdscript/doc_classes/@GDScript.xml +#, fuzzy msgid "" "Compares two values by checking their actual contents, recursing into any " -"`Array` or `Dictionary` up to its deepest level.\n" +"[Array] or [Dictionary] up to its deepest level.\n" "This compares to [code]==[/code] in a number of ways:\n" "- For [code]null[/code], [code]int[/code], [code]float[/code], [code]String[/" "code], [code]Object[/code] and [code]RID[/code] both [code]deep_equal[/code] " @@ -4403,6 +4404,15 @@ msgstr "" "die optional benannten 3D-Physikebenen verwendet." #: doc/classes/@GlobalScope.xml +#, fuzzy +msgid "" +"Hints that an integer property is a bitmask using the optionally named 3D " +"navigation layers." +msgstr "" +"Weist darauf hin, dass eine Integer-Eigenschaft eine Bitmaske ist, welche " +"die optional benannten 2D-Renderebenen verwendet." + +#: doc/classes/@GlobalScope.xml msgid "" "Hints that a string property is a path to a file. Editing it will show a " "file dialog for picking the path. The hint string can be a set of filters " @@ -32499,8 +32509,8 @@ msgstr "" #: doc/classes/InputEventJoypadButton.xml msgid "" -"Represents the pressure the user puts on the button with his finger, if the " -"controller supports it. Ranges from [code]0[/code] to [code]1[/code]." +"Represents the pressure the user puts on the button with their finger, if " +"the controller supports it. Ranges from [code]0[/code] to [code]1[/code]." msgstr "" #: doc/classes/InputEventJoypadMotion.xml @@ -38957,7 +38967,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding enters this regions navmesh from another regions navmesh " +"When pathfinding enters this region's navmesh from another regions navmesh " "the [code]enter_cost[/code] value is added to the path distance for " "determining the shortest path." msgstr "" @@ -38978,7 +38988,7 @@ msgstr "Das [NavigationMeshGenerator] Singleton." #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding moves inside this regions navmesh the traveled distances " +"When pathfinding moves inside this region's navmesh the traveled distances " "are multiplied with [code]travel_cost[/code] for determining the shortest " "path." msgstr "" @@ -49925,6 +49935,18 @@ msgstr "" #: doc/classes/ProjectSettings.xml msgid "" +"Default naming style for scene files to infer from their root nodes. " +"Possible options are:\n" +"- [code]0[/code] (Auto): Uses the scene root name as is without changing its " +"casing.\n" +"- [code]1[/code] (PascalCase): Converts the scene root name to PascalCase " +"casing.\n" +"- [code]2[/code] (snake_case): Converts the scene root name to snake_case " +"casing." +msgstr "" + +#: doc/classes/ProjectSettings.xml +msgid "" "Search path for project-specific script templates. Godot will search for " "script templates both in the editor-specific path and in this project-" "specific path." @@ -69616,12 +69638,16 @@ msgid "This enabler will stop [Particles2D] nodes." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _process function." +msgid "This enabler will stop the parent's [method Node._process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _physics_process function." +#, fuzzy +msgid "" +"This enabler will stop the parent's [method Node._physics_process] function." msgstr "" +"Die Animationen werden während des Physikframes (d. h. [method Node." +"_physics_process]) fortgesetzt." #: doc/classes/VisibilityEnabler2D.xml msgid "This enabler will stop [AnimatedSprite] nodes animations." @@ -77758,9 +77784,10 @@ msgid "The World's [Environment]." msgstr "Das [Environment] der Welt." #: doc/classes/World.xml +#, fuzzy msgid "" -"The World's fallback_environment will be used if the World's [Environment] " -"fails or is missing." +"The World's fallback environment will be used if [member environment] fails " +"or is missing." msgstr "" "Das fallback_environment der Welt wird genutzt, sollte das [Environment] der " "Welt nicht existieren oder nicht geladen werden können." diff --git a/doc/translations/el.po b/doc/translations/el.po index 1ec00b61aa..e19557ebb4 100644 --- a/doc/translations/el.po +++ b/doc/translations/el.po @@ -355,7 +355,7 @@ msgstr "" #: modules/gdscript/doc_classes/@GDScript.xml msgid "" "Compares two values by checking their actual contents, recursing into any " -"`Array` or `Dictionary` up to its deepest level.\n" +"[Array] or [Dictionary] up to its deepest level.\n" "This compares to [code]==[/code] in a number of ways:\n" "- For [code]null[/code], [code]int[/code], [code]float[/code], [code]String[/" "code], [code]Object[/code] and [code]RID[/code] both [code]deep_equal[/code] " @@ -3405,6 +3405,12 @@ msgstr "" #: doc/classes/@GlobalScope.xml msgid "" +"Hints that an integer property is a bitmask using the optionally named 3D " +"navigation layers." +msgstr "" + +#: doc/classes/@GlobalScope.xml +msgid "" "Hints that a string property is a path to a file. Editing it will show a " "file dialog for picking the path. The hint string can be a set of filters " "with wildcards like [code]\"*.png,*.jpg\"[/code]." @@ -30168,8 +30174,8 @@ msgstr "" #: doc/classes/InputEventJoypadButton.xml msgid "" -"Represents the pressure the user puts on the button with his finger, if the " -"controller supports it. Ranges from [code]0[/code] to [code]1[/code]." +"Represents the pressure the user puts on the button with their finger, if " +"the controller supports it. Ranges from [code]0[/code] to [code]1[/code]." msgstr "" #: doc/classes/InputEventJoypadMotion.xml @@ -36554,7 +36560,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding enters this regions navmesh from another regions navmesh " +"When pathfinding enters this region's navmesh from another regions navmesh " "the [code]enter_cost[/code] value is added to the path distance for " "determining the shortest path." msgstr "" @@ -36574,7 +36580,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding moves inside this regions navmesh the traveled distances " +"When pathfinding moves inside this region's navmesh the traveled distances " "are multiplied with [code]travel_cost[/code] for determining the shortest " "path." msgstr "" @@ -47385,6 +47391,18 @@ msgstr "" #: doc/classes/ProjectSettings.xml msgid "" +"Default naming style for scene files to infer from their root nodes. " +"Possible options are:\n" +"- [code]0[/code] (Auto): Uses the scene root name as is without changing its " +"casing.\n" +"- [code]1[/code] (PascalCase): Converts the scene root name to PascalCase " +"casing.\n" +"- [code]2[/code] (snake_case): Converts the scene root name to snake_case " +"casing." +msgstr "" + +#: doc/classes/ProjectSettings.xml +msgid "" "Search path for project-specific script templates. Godot will search for " "script templates both in the editor-specific path and in this project-" "specific path." @@ -66688,11 +66706,12 @@ msgid "This enabler will stop [Particles2D] nodes." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _process function." +msgid "This enabler will stop the parent's [method Node._process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _physics_process function." +msgid "" +"This enabler will stop the parent's [method Node._physics_process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml @@ -74729,8 +74748,8 @@ msgstr "" #: doc/classes/World.xml msgid "" -"The World's fallback_environment will be used if the World's [Environment] " -"fails or is missing." +"The World's fallback environment will be used if [member environment] fails " +"or is missing." msgstr "" #: doc/classes/World.xml diff --git a/doc/translations/es.po b/doc/translations/es.po index e5276e7f7c..4c4982ad59 100644 --- a/doc/translations/es.po +++ b/doc/translations/es.po @@ -526,7 +526,7 @@ msgstr "" #, fuzzy msgid "" "Compares two values by checking their actual contents, recursing into any " -"`Array` or `Dictionary` up to its deepest level.\n" +"[Array] or [Dictionary] up to its deepest level.\n" "This compares to [code]==[/code] in a number of ways:\n" "- For [code]null[/code], [code]int[/code], [code]float[/code], [code]String[/" "code], [code]Object[/code] and [code]RID[/code] both [code]deep_equal[/code] " @@ -4459,6 +4459,15 @@ msgstr "" "opcionalmente nombrada, capas fisicas 3D." #: doc/classes/@GlobalScope.xml +#, fuzzy +msgid "" +"Hints that an integer property is a bitmask using the optionally named 3D " +"navigation layers." +msgstr "" +"Sugiere que una propiedad entera es una máscara de bits usando las, " +"opcionalmente nombradas, capas de representación 2D." + +#: doc/classes/@GlobalScope.xml msgid "" "Hints that a string property is a path to a file. Editing it will show a " "file dialog for picking the path. The hint string can be a set of filters " @@ -39964,9 +39973,10 @@ msgstr "" "code], se libera el estado del botón." #: doc/classes/InputEventJoypadButton.xml +#, fuzzy msgid "" -"Represents the pressure the user puts on the button with his finger, if the " -"controller supports it. Ranges from [code]0[/code] to [code]1[/code]." +"Represents the pressure the user puts on the button with their finger, if " +"the controller supports it. Ranges from [code]0[/code] to [code]1[/code]." msgstr "" "Representa la presión que el usuario ejerce sobre el botón con su dedo, si " "el controlador lo soporta. Va de [code]0[/code] a [code]1[/code]." @@ -48108,7 +48118,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding enters this regions navmesh from another regions navmesh " +"When pathfinding enters this region's navmesh from another regions navmesh " "the [code]enter_cost[/code] value is added to the path distance for " "determining the shortest path." msgstr "" @@ -48129,7 +48139,7 @@ msgstr "El recurso [Mesh] para la instancia." #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding moves inside this regions navmesh the traveled distances " +"When pathfinding moves inside this region's navmesh the traveled distances " "are multiplied with [code]travel_cost[/code] for determining the shortest " "path." msgstr "" @@ -62813,6 +62823,18 @@ msgid "" msgstr "" #: doc/classes/ProjectSettings.xml +msgid "" +"Default naming style for scene files to infer from their root nodes. " +"Possible options are:\n" +"- [code]0[/code] (Auto): Uses the scene root name as is without changing its " +"casing.\n" +"- [code]1[/code] (PascalCase): Converts the scene root name to PascalCase " +"casing.\n" +"- [code]2[/code] (snake_case): Converts the scene root name to snake_case " +"casing." +msgstr "" + +#: doc/classes/ProjectSettings.xml #, fuzzy msgid "" "Search path for project-specific script templates. Godot will search for " @@ -87439,11 +87461,14 @@ msgid "This enabler will stop [Particles2D] nodes." msgstr "Este habilitador detendrá los nodos [GPUParticles2D]." #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _process function." +#, fuzzy +msgid "This enabler will stop the parent's [method Node._process] function." msgstr "Este habilitador detendrá la función _process del padre." #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _physics_process function." +#, fuzzy +msgid "" +"This enabler will stop the parent's [method Node._physics_process] function." msgstr "Este habilitador detendrá la función del _physics_process del padre." #: doc/classes/VisibilityEnabler2D.xml @@ -97788,8 +97813,8 @@ msgstr "El [Environment] del World." #: doc/classes/World.xml #, fuzzy msgid "" -"The World's fallback_environment will be used if the World's [Environment] " -"fails or is missing." +"The World's fallback environment will be used if [member environment] fails " +"or is missing." msgstr "" "El fallback_environment del World3D se usará si el [Environment] de World3D " "falla o falta." diff --git a/doc/translations/fa.po b/doc/translations/fa.po index 46b4d9600e..ee4b608fbd 100644 --- a/doc/translations/fa.po +++ b/doc/translations/fa.po @@ -492,7 +492,7 @@ msgstr "" #: modules/gdscript/doc_classes/@GDScript.xml msgid "" "Compares two values by checking their actual contents, recursing into any " -"`Array` or `Dictionary` up to its deepest level.\n" +"[Array] or [Dictionary] up to its deepest level.\n" "This compares to [code]==[/code] in a number of ways:\n" "- For [code]null[/code], [code]int[/code], [code]float[/code], [code]String[/" "code], [code]Object[/code] and [code]RID[/code] both [code]deep_equal[/code] " @@ -3829,6 +3829,12 @@ msgstr "" #: doc/classes/@GlobalScope.xml msgid "" +"Hints that an integer property is a bitmask using the optionally named 3D " +"navigation layers." +msgstr "" + +#: doc/classes/@GlobalScope.xml +msgid "" "Hints that a string property is a path to a file. Editing it will show a " "file dialog for picking the path. The hint string can be a set of filters " "with wildcards like [code]\"*.png,*.jpg\"[/code]." @@ -30559,8 +30565,8 @@ msgstr "" #: doc/classes/InputEventJoypadButton.xml msgid "" -"Represents the pressure the user puts on the button with his finger, if the " -"controller supports it. Ranges from [code]0[/code] to [code]1[/code]." +"Represents the pressure the user puts on the button with their finger, if " +"the controller supports it. Ranges from [code]0[/code] to [code]1[/code]." msgstr "" #: doc/classes/InputEventJoypadMotion.xml @@ -36921,7 +36927,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding enters this regions navmesh from another regions navmesh " +"When pathfinding enters this region's navmesh from another regions navmesh " "the [code]enter_cost[/code] value is added to the path distance for " "determining the shortest path." msgstr "" @@ -36941,7 +36947,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding moves inside this regions navmesh the traveled distances " +"When pathfinding moves inside this region's navmesh the traveled distances " "are multiplied with [code]travel_cost[/code] for determining the shortest " "path." msgstr "" @@ -47741,6 +47747,18 @@ msgstr "" #: doc/classes/ProjectSettings.xml msgid "" +"Default naming style for scene files to infer from their root nodes. " +"Possible options are:\n" +"- [code]0[/code] (Auto): Uses the scene root name as is without changing its " +"casing.\n" +"- [code]1[/code] (PascalCase): Converts the scene root name to PascalCase " +"casing.\n" +"- [code]2[/code] (snake_case): Converts the scene root name to snake_case " +"casing." +msgstr "" + +#: doc/classes/ProjectSettings.xml +msgid "" "Search path for project-specific script templates. Godot will search for " "script templates both in the editor-specific path and in this project-" "specific path." @@ -67022,11 +67040,12 @@ msgid "This enabler will stop [Particles2D] nodes." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _process function." +msgid "This enabler will stop the parent's [method Node._process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _physics_process function." +msgid "" +"This enabler will stop the parent's [method Node._physics_process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml @@ -75043,8 +75062,8 @@ msgstr "" #: doc/classes/World.xml msgid "" -"The World's fallback_environment will be used if the World's [Environment] " -"fails or is missing." +"The World's fallback environment will be used if [member environment] fails " +"or is missing." msgstr "" #: doc/classes/World.xml diff --git a/doc/translations/fi.po b/doc/translations/fi.po index 5be805e91a..108f9f7780 100644 --- a/doc/translations/fi.po +++ b/doc/translations/fi.po @@ -422,7 +422,7 @@ msgstr "" #: modules/gdscript/doc_classes/@GDScript.xml msgid "" "Compares two values by checking their actual contents, recursing into any " -"`Array` or `Dictionary` up to its deepest level.\n" +"[Array] or [Dictionary] up to its deepest level.\n" "This compares to [code]==[/code] in a number of ways:\n" "- For [code]null[/code], [code]int[/code], [code]float[/code], [code]String[/" "code], [code]Object[/code] and [code]RID[/code] both [code]deep_equal[/code] " @@ -3472,6 +3472,12 @@ msgstr "" #: doc/classes/@GlobalScope.xml msgid "" +"Hints that an integer property is a bitmask using the optionally named 3D " +"navigation layers." +msgstr "" + +#: doc/classes/@GlobalScope.xml +msgid "" "Hints that a string property is a path to a file. Editing it will show a " "file dialog for picking the path. The hint string can be a set of filters " "with wildcards like [code]\"*.png,*.jpg\"[/code]." @@ -30251,8 +30257,8 @@ msgstr "" #: doc/classes/InputEventJoypadButton.xml msgid "" -"Represents the pressure the user puts on the button with his finger, if the " -"controller supports it. Ranges from [code]0[/code] to [code]1[/code]." +"Represents the pressure the user puts on the button with their finger, if " +"the controller supports it. Ranges from [code]0[/code] to [code]1[/code]." msgstr "" #: doc/classes/InputEventJoypadMotion.xml @@ -36639,7 +36645,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding enters this regions navmesh from another regions navmesh " +"When pathfinding enters this region's navmesh from another regions navmesh " "the [code]enter_cost[/code] value is added to the path distance for " "determining the shortest path." msgstr "" @@ -36659,7 +36665,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding moves inside this regions navmesh the traveled distances " +"When pathfinding moves inside this region's navmesh the traveled distances " "are multiplied with [code]travel_cost[/code] for determining the shortest " "path." msgstr "" @@ -47470,6 +47476,18 @@ msgstr "" #: doc/classes/ProjectSettings.xml msgid "" +"Default naming style for scene files to infer from their root nodes. " +"Possible options are:\n" +"- [code]0[/code] (Auto): Uses the scene root name as is without changing its " +"casing.\n" +"- [code]1[/code] (PascalCase): Converts the scene root name to PascalCase " +"casing.\n" +"- [code]2[/code] (snake_case): Converts the scene root name to snake_case " +"casing." +msgstr "" + +#: doc/classes/ProjectSettings.xml +msgid "" "Search path for project-specific script templates. Godot will search for " "script templates both in the editor-specific path and in this project-" "specific path." @@ -66781,11 +66799,12 @@ msgid "This enabler will stop [Particles2D] nodes." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _process function." +msgid "This enabler will stop the parent's [method Node._process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _physics_process function." +msgid "" +"This enabler will stop the parent's [method Node._physics_process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml @@ -74826,8 +74845,8 @@ msgstr "" #: doc/classes/World.xml msgid "" -"The World's fallback_environment will be used if the World's [Environment] " -"fails or is missing." +"The World's fallback environment will be used if [member environment] fails " +"or is missing." msgstr "" #: doc/classes/World.xml diff --git a/doc/translations/fil.po b/doc/translations/fil.po index 6e76d65426..d34766797c 100644 --- a/doc/translations/fil.po +++ b/doc/translations/fil.po @@ -356,7 +356,7 @@ msgstr "" #: modules/gdscript/doc_classes/@GDScript.xml msgid "" "Compares two values by checking their actual contents, recursing into any " -"`Array` or `Dictionary` up to its deepest level.\n" +"[Array] or [Dictionary] up to its deepest level.\n" "This compares to [code]==[/code] in a number of ways:\n" "- For [code]null[/code], [code]int[/code], [code]float[/code], [code]String[/" "code], [code]Object[/code] and [code]RID[/code] both [code]deep_equal[/code] " @@ -3406,6 +3406,12 @@ msgstr "" #: doc/classes/@GlobalScope.xml msgid "" +"Hints that an integer property is a bitmask using the optionally named 3D " +"navigation layers." +msgstr "" + +#: doc/classes/@GlobalScope.xml +msgid "" "Hints that a string property is a path to a file. Editing it will show a " "file dialog for picking the path. The hint string can be a set of filters " "with wildcards like [code]\"*.png,*.jpg\"[/code]." @@ -30136,8 +30142,8 @@ msgstr "" #: doc/classes/InputEventJoypadButton.xml msgid "" -"Represents the pressure the user puts on the button with his finger, if the " -"controller supports it. Ranges from [code]0[/code] to [code]1[/code]." +"Represents the pressure the user puts on the button with their finger, if " +"the controller supports it. Ranges from [code]0[/code] to [code]1[/code]." msgstr "" #: doc/classes/InputEventJoypadMotion.xml @@ -36492,7 +36498,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding enters this regions navmesh from another regions navmesh " +"When pathfinding enters this region's navmesh from another regions navmesh " "the [code]enter_cost[/code] value is added to the path distance for " "determining the shortest path." msgstr "" @@ -36512,7 +36518,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding moves inside this regions navmesh the traveled distances " +"When pathfinding moves inside this region's navmesh the traveled distances " "are multiplied with [code]travel_cost[/code] for determining the shortest " "path." msgstr "" @@ -47300,6 +47306,18 @@ msgstr "" #: doc/classes/ProjectSettings.xml msgid "" +"Default naming style for scene files to infer from their root nodes. " +"Possible options are:\n" +"- [code]0[/code] (Auto): Uses the scene root name as is without changing its " +"casing.\n" +"- [code]1[/code] (PascalCase): Converts the scene root name to PascalCase " +"casing.\n" +"- [code]2[/code] (snake_case): Converts the scene root name to snake_case " +"casing." +msgstr "" + +#: doc/classes/ProjectSettings.xml +msgid "" "Search path for project-specific script templates. Godot will search for " "script templates both in the editor-specific path and in this project-" "specific path." @@ -66577,11 +66595,12 @@ msgid "This enabler will stop [Particles2D] nodes." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _process function." +msgid "This enabler will stop the parent's [method Node._process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _physics_process function." +msgid "" +"This enabler will stop the parent's [method Node._physics_process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml @@ -74598,8 +74617,8 @@ msgstr "" #: doc/classes/World.xml msgid "" -"The World's fallback_environment will be used if the World's [Environment] " -"fails or is missing." +"The World's fallback environment will be used if [member environment] fails " +"or is missing." msgstr "" #: doc/classes/World.xml diff --git a/doc/translations/fr.po b/doc/translations/fr.po index 60d840e7ab..98f4921109 100644 --- a/doc/translations/fr.po +++ b/doc/translations/fr.po @@ -61,7 +61,7 @@ msgstr "" "Project-Id-Version: Godot Engine class reference\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-06-16 18:57+0000\n" +"PO-Revision-Date: 2022-06-19 11:54+0000\n" "Last-Translator: Maxime Leroy <lisacintosh@gmail.com>\n" "Language-Team: French <https://hosted.weblate.org/projects/godot-engine/" "godot-class-reference/fr/>\n" @@ -70,7 +70,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.13-dev\n" +"X-Generator: Weblate 4.13.1-dev\n" #: doc/tools/make_rst.py msgid "Description" @@ -548,9 +548,10 @@ msgstr "" "[/codeblock]" #: modules/gdscript/doc_classes/@GDScript.xml +#, fuzzy msgid "" "Compares two values by checking their actual contents, recursing into any " -"`Array` or `Dictionary` up to its deepest level.\n" +"[Array] or [Dictionary] up to its deepest level.\n" "This compares to [code]==[/code] in a number of ways:\n" "- For [code]null[/code], [code]int[/code], [code]float[/code], [code]String[/" "code], [code]Object[/code] and [code]RID[/code] both [code]deep_equal[/code] " @@ -4496,6 +4497,15 @@ msgstr "" "couches de physique 3D optionnellement nommées." #: doc/classes/@GlobalScope.xml +#, fuzzy +msgid "" +"Hints that an integer property is a bitmask using the optionally named 3D " +"navigation layers." +msgstr "" +"Indique qu'une propriété nombre entier est un masque de bits utilisant les " +"couches de rendu 2D optionnellement nommées." + +#: doc/classes/@GlobalScope.xml msgid "" "Hints that a string property is a path to a file. Editing it will show a " "file dialog for picking the path. The hint string can be a set of filters " @@ -4984,6 +4994,8 @@ msgid "" "Returns the center of the [AABB], which is equal to [member position] + " "([member size] / 2)." msgstr "" +"Retourne le centre du [AABB], qui est égal à [member position] + ([member " +"size] / 2)." #: doc/classes/AABB.xml msgid "Gets the position of the 8 endpoints of the [AABB] in space." @@ -5165,6 +5177,10 @@ msgid "" "may cause a crash. If you wish to hide it or any of its children, use their " "[member CanvasItem.visible] property." msgstr "" +"Retourne le label utilisé pour le texte intégré.\n" +"[b]Avertissement :[/b] Il s'agit d'un nÅ“ud interne nécessaire, le retirer et " +"le libérer peut causer un plantage. Si vous voulez le cacher lui ou l'un de " +"ses enfants, utilisez plutôt [membre CanvasItem.visible]." #: doc/classes/AcceptDialog.xml msgid "" @@ -5173,6 +5189,10 @@ msgid "" "may cause a crash. If you wish to hide it or any of its children, use their " "[member CanvasItem.visible] property." msgstr "" +"Retourne l'instance du [Button] \"OK\".\n" +"[b]Avertissement :[/b] Il s'agit d'un nÅ“ud interne nécessaire, le retirer et " +"le libérer peut causer un plantage. Si vous voulez le cacher lui ou l'un de " +"ses enfants, utilisez plutôt [membre CanvasItem.visible]." #: doc/classes/AcceptDialog.xml msgid "" @@ -7636,6 +7656,14 @@ msgid "" "animation_finished]. If you want to skip animation and emit the signal, use " "[method advance]." msgstr "" +"Avance la lecture de l'animation à la position [code]secondes[/code] dans le " +"temps (en secondes). Si [code]update[/code] est [code]true[/code], " +"l'animation se mettra à jour, sinon elle le sera au moment du traitement. " +"Les événements entre la trame actuel et la position [code]secondes[/code] " +"sont ignorés.\n" +"[b]Note :[/b] Aller à la fin de l'animation n'émet pas le signal [signal " +"animation_finished]. Si vous voulez sauter l'animation et émettre le signal, " +"utilisez plutôt [method advance]." #: doc/classes/AnimationPlayer.xml msgid "" @@ -15821,6 +15849,33 @@ msgid "" "parameters must have angles specified as [i]radians[/i]. To convert degrees " "to radians, use [method @GDScript.deg2rad]." msgstr "" +"La classe de base de tout ce qui est en 2D. Les objets du canevas sont placé " +"dans une arborescence; les enfants héritent et étendent la transformation du " +"parent. [CanvasItem] est hérité par [Control] pour tout ce qui concerne " +"l'interface utilisateur, et par [Node2D] pour tout ce qui concerne le moteur " +"2D.\n" +"Tout [CanvasItem] peut servir à dessiner. Pour cela, [méthode update] doit " +"être appelée, puis [constant NOTIFICATION_DRAW] sera reçu lors du temps " +"inoccupé pour la requête de dessin. En raison de cela, les éléments des " +"canevas n'ont pas besoin d'être redessinés à chaque trame, ce qui améliore " +"considérablement les performances. Plusieurs fonctions pour dessiner dans un " +"[CanvasItem] sont fournies (voir [code]draw_*[/code]). Cependant, elles ne " +"peuvent être utilisés qu'à l'intérieur des fonctions virtuelles [method " +"Object._notification], des signaux ou de [method _draw].\n" +"Les objets des canevas sont dessinés dans l'ordre de l'arborescence. Par " +"défaut, les enfants sont au-dessus de leurs parents afin que le [CanvasItem] " +"racine soit dessiné en arrière fond. Ce comportement peut être modifié pour " +"chaque élément.\n" +"Un [CanvasItem] peut aussi être caché, ce qui cachera aussi ses enfants. Il " +"existe de nombreuses façons de modifier des paramètres tels que la " +"modulation (pour lui-même et ses enfants) et la modulation de ce seul " +"élément, ainsi que son mode de mélange.\n" +"Enfin, une notification de transformation peut être demandée, ce qui " +"signalera au nÅ“ud que sa position globale a changé au cas où l'arborescence " +"parente a changé.\n" +"[b]Note :[/b] Sauf exception, toutes les paramètres d'angle doivent être des " +"spécifiés en [i]radians[/i]. Pour convertir des degrés en radians, utilisez " +"[méthod @GDScript.deg2rad]" #: doc/classes/CanvasItem.xml doc/classes/CanvasLayer.xml #: doc/classes/InputEvent.xml doc/classes/Viewport.xml @@ -15852,12 +15907,28 @@ msgid "" "mipmaps to perform antialiasing. 2D batching is also still supported with " "those antialiased lines." msgstr "" +"Dessine un arc non rempli entre les deux angles donnés. Plus la valeur " +"[code]point_count[/code] est grande, plus la courbe est lisse. Voir aussi " +"[method draw_circle].\n" +"[b]Note :[/b] Le dessin de ligne n'est pas accéléré par lots si " +"[code]antialiased[/code] est [code]true[/code].\n" +"[b]Note :[/b] En raison de son fonctionnement, l'anticrénelage calculé en " +"interne n'est pas correct pour les lignes semi-transparents voire peut ne " +"pas fonctionner sur certaines plateformes. Vous pouvez corriger ce problème " +"en installant le greffon [url=https://github.com/godot-extended-libraries/" +"godot-antialiased-line2d]Antialiased Line2D[/url] puis créez un nÅ“ud " +"\"AntialiasedPolygon2D\". Ce nÅ“ud utilise des texture avec des mipmaps " +"personnalisés pour afficher l'anticrénelage. L'accélération par lot est " +"toujours supporté même avec les lignes avec anticrénelage." #: doc/classes/CanvasItem.xml msgid "" "Draws a string character using a custom font. Returns the advance, depending " "on the character width and kerning with an optional next character." msgstr "" +"Dessine un caractère d'une chaîne en utilisant une police personnalisée. " +"Retourne l'avancement, en fonction de la largeur de caractère et du kerning " +"avec un caractère optionnel suivant." #: doc/classes/CanvasItem.xml msgid "" @@ -15869,6 +15940,14 @@ msgid "" "create an AntialiasedRegularPolygon2D node. That node relies on a texture " "with custom mipmaps to perform antialiasing." msgstr "" +"Dessine un cercle coloré rempli. Voir aussi [method draw_arc], [method " +"draw_polyline] et [method draw_polygon].\n" +"[b]Note :[/b] L'anticrénelage intégré n'est pas prévu pour [méthod " +"draw_circle]. Vous pouvez corriger ce problème en installant le greffon " +"[url=https://github.com/godot-extended-libraries/godot-antialiased-" +"line2d]Antialiased Line2D[/url] puis créez un nÅ“ud " +"AntialiasedRegularPolygon2D. Ce nÅ“ud utilise des texture avec des mipmaps " +"personnalisés pour afficher l'anticrénelage." #: doc/classes/CanvasItem.xml msgid "" @@ -15882,6 +15961,16 @@ msgid "" "AntialiasedPolygon2D node. That node relies on a texture with custom mipmaps " "to perform antialiasing." msgstr "" +"Dessine un polygone coloré avec un nombre donné de points, qu'il soit " +"convexe ou concave. Contrairement à [method draw_polygon], une seule couleur " +"doit être spécifiée pour tout le polygone.\n" +"[b]Note :[/b] En raison de son fonctionnement, l'anticrénelage calculé en " +"interne n'est pas correct pour les polygones semi-transparents voire peut ne " +"pas fonctionner sur certaines plateformes. Vous pouvez corriger ce problème " +"en installant le greffon [url=https://github.com/godot-extended-libraries/" +"godot-antialiased-line2d]Antialiased Line2D[/url] puis créez un nÅ“ud " +"\"AntialiasedPolygon2D\". Ce nÅ“ud utilise des texture avec des mipmaps " +"personnalisés pour afficher l'anticrénelage." #: doc/classes/CanvasItem.xml msgid "" @@ -15898,6 +15987,19 @@ msgid "" "perform antialiasing. 2D batching is also still supported with those " "antialiased lines." msgstr "" +"Dessine une ligne d'un point 2D à un autre, avec une couleur et une " +"épaisseur données. L'anticrénelage peut être activé en option. Voir aussi " +"[method draw_multiline] et [method draw_polyline].\n" +"[b]Note :[/b] Le dessin de ligne n'est pas accéléré par lots si " +"[code]antialiased[/code] est [code]true[/code].\n" +"[b]Note :[/b] En raison de son fonctionnement, l'anticrénelage calculé en " +"interne n'est pas correct pour les lignes semi-transparents voire peut ne " +"pas fonctionner sur certaines plateformes. Vous pouvez corriger ce problème " +"en installant le greffon [url=https://github.com/godot-extended-libraries/" +"godot-antialiased-line2d]Antialiased Line2D[/url] puis créez un nÅ“ud " +"\"AntialiasedPolygon2D\". Ce nÅ“ud utilise des texture avec des mipmaps " +"personnalisés pour afficher l'anticrénelage. L'accélération par lot est " +"toujours supporté même avec les lignes avec anticrénelage." #: doc/classes/CanvasItem.xml msgid "" @@ -16480,6 +16582,9 @@ msgid "" "[b]Note:[/b] This property is only used and visible in the editor if [member " "particles_animation] is [code]true[/code]." msgstr "" +"Si [code]true[/code], l'animation des particules boucle.\n" +"[b]Note :[/b] Cette propriété est uniquement utilisée et visible dans " +"l'éditeur si [member particles_animation] est [code]true[/code]." #: doc/classes/CanvasItemMaterial.xml msgid "" @@ -16488,6 +16593,10 @@ msgid "" "[b]Note:[/b] This property is only used and visible in the editor if [member " "particles_animation] is [code]true[/code]." msgstr "" +"Le nombre de lignes dans la feuille de textures assigné comme [Texture] pour " +"un [Particles2D] ou un [CPUParticles2D].\n" +"[b]Note :[/b] Cette propriété est uniquement utilisée et visible dans " +"l'éditeur si [member particles_animation] est [code]true[/code]." #: doc/classes/CanvasItemMaterial.xml msgid "" @@ -16498,6 +16607,13 @@ msgid "" "This property (and other [code]particles_anim_*[/code] properties that " "depend on it) has no effect on other types of nodes." msgstr "" +"Si [code]true[/code], cela active les fonctionnalités d'animation basées sur " +"des feuilles de textures lorsqu'elles sont affectées aux nÅ“uds [Particles2D] " +"et [CPUParticles2D]. Le [member ParticlesMaterial.anim_speed] ou [member " +"CPUParticles2D.anim_speed] doit être une valeur positive pour l'animation à " +"jouer.\n" +"Cette propriété (et les autres propriétés [code]particles_anim_*[/code] qui " +"en dépendent) n'a aucun effet sur d'autres types de nÅ“uds." #: doc/classes/CanvasItemMaterial.xml msgid "" @@ -16526,6 +16642,13 @@ msgid "" "index 1 will be drawn above. This is very useful for HUDs (in layer 1+ or " "above), or backgrounds (in layer -1 or below)." msgstr "" +"Le calque de dessin du canevas. Les nÅ“uds [CanvasItem] qui sont des enfants " +"directs ou indirects d'un [CanvasLayer] seront dessinés dans ce calque. Le " +"calque est un index numérique qui définit l'ordre d'affichage. La scène 2D " +"par défaut fait le rendu avec l'index 0, donc un [CanvasLayer] avec index -1 " +"sera dessiné en-dessous, et un avec l'index 1 sera dessiné par dessus. Ceci " +"est très utile pour les interfaces (dans la calque +1 ou au-dessus,) ou les " +"arrière-plans (dans un calque -1 ou en dessous)." #: doc/classes/CanvasLayer.xml msgid "Canvas layers" @@ -16915,6 +17038,8 @@ msgid "" "The [StyleBox] to display as a background when the [CheckBox] is hovered and " "pressed." msgstr "" +"La [StyleBox] à afficher en arrière-plan lorsque la [CheckBox] est survolée " +"et appuyée." #: doc/classes/CheckBox.xml doc/classes/CheckButton.xml msgid "The [StyleBox] to display as a background." @@ -16941,6 +17066,14 @@ msgid "" "See also [BaseButton] which contains common properties and methods " "associated with this node." msgstr "" +"CheckButton est un bouton à bascule affiché avec une coche. Il est semblable " +"à [CheckBox] dans ses fonctionnalités, mais son apparence est différente. " +"Pour suivre les modèles UX établis, il est recommandé d'utiliser CheckButton " +"pour les effet [b]immédiat[/b] d'une action. Par exemple, il devrait être " +"utilisé si le basculement active/désactive un réglage sans nécessiter que " +"l'utilisateur appuie sur un bouton de confirmation.\n" +"Voir aussi [BaseButton] qui contient des propriétés et des méthodes communes " +"associées à ce nÅ“ud." #: doc/classes/CheckButton.xml msgid "The [CheckButton] text's font color." @@ -21346,6 +21479,10 @@ msgid "" "expand size flags. Use with [member size_flags_horizontal] and [member " "size_flags_vertical]." msgstr "" +"Précise au [Container] parent de centrer le nÅ“ud en son milieu. Il centre le " +"contrôle basé sur sont rectangle englobant, donc ça ne fonctionne pas avec " +"les drapeaux de remplissage ou d'extension. Utilisez avec [membre " +"size_flags_horizontal] et [membre size_flags_vertical]." #: doc/classes/Control.xml msgid "" @@ -21354,6 +21491,10 @@ msgid "" "flags. Use with [member size_flags_horizontal] and [member " "size_flags_vertical]." msgstr "" +"Précise au [Container] parent d'aligner le nÅ“ud sur la fin, soit en bas, " +"soit sur bord droit. Il ne fonctionne pas avec les drapeaux de remplissage " +"ou d'extension. Utilisez avec [membre size_flags_horizontal] et [membre " +"size_flags_vertical]." #: doc/classes/Control.xml msgid "" @@ -21363,6 +21504,12 @@ msgid "" "automatically marked as handled, and they will not propagate further to " "other controls. This also results in blocking signals in other controls." msgstr "" +"Le contrôle recevra les événements d'entrée de la souris via [method " +"gui_input] si vous cliquez dessus. Et le contrôle recevra les signaux " +"[signal mouse_entered] et [signal mouse_exited]. Ces événements sont " +"automatiquement marqués comme traités, et ils ne se propagent pas vers les " +"autres contrôles. Cela permet également de bloquer la propagation de ces " +"signaux à partir d'autres contrôles." #: doc/classes/Control.xml msgid "" @@ -21375,6 +21522,14 @@ msgid "" "all, the event will still be handled automatically, so unhandled input will " "not be fired." msgstr "" +"La contrôle recevra les événements d'entrée de la souris via [method " +"gui_input] si vous cliquez dessus. Et le contrôle recevra les signaux " +"[signal mouse_entered] et [signal mouse_exited]. Si ce contrôle ne traite " +"pas l'événement, cet événement sera envoyé au contrôle parent (s'il existe), " +"et ainsi de suite jusqu'à ce qu'il n'y ait plus de contrôle parent pour le " +"traiter. Cela permet également aux signaux d'être émis dans d'autres " +"contrôles. Même si aucun contrôle ne l'a traité, l'événement sera toujours " +"traité automatiquement, alors les entrées non traitées ne seront pas émises." #: doc/classes/Control.xml msgid "" @@ -21384,24 +21539,35 @@ msgid "" "receiving these events or firing the signals. Ignored events will not be " "handled automatically." msgstr "" +"Le contrôle ne recevra pas d'événements d'entrée de la souris via [méthode " +"gui_input]. Le contrôle ne recevra pas non plus les signaux [signal " +"mouse_entered] et [signal mouse_exited]. Cela ne bloquera pas d'autres " +"contrôles de recevoir ces événements et n'émettra pas les signaux. Les " +"événements ignorés ne seront pas traités automatiquement." #: doc/classes/Control.xml msgid "" "The control will grow to the left or top to make up if its minimum size is " "changed to be greater than its current size on the respective axis." msgstr "" +"Le contrôle va croître à gauche ou en haut pour compenser si sa taille " +"minimale est plus grande que sa taille actuelle selon l'axe correspondant." #: doc/classes/Control.xml msgid "" "The control will grow to the right or bottom to make up if its minimum size " "is changed to be greater than its current size on the respective axis." msgstr "" +"Le contrôle va croître à droite ou en bas pour compenser si sa taille " +"minimale est plus grande que sa taille actuelle selon l'axe correspondant." #: doc/classes/Control.xml msgid "" "The control will grow in both directions equally to make up if its minimum " "size is changed to be greater than its current size." msgstr "" +"Le contrôle va croître dans les deux directions de façon égale pour " +"compenser si sa taille minimale est plus grande que sa taille actuelle." #: doc/classes/Control.xml msgid "" @@ -25250,42 +25416,59 @@ msgid "" "The 3D editor. If this feature is disabled, the 3D editor won't display but " "3D nodes will still display in the Create New Node dialog." msgstr "" +"L'éditeur 3D. Si cette fonctionnalité est désactivée, l'éditeur 3D ne sera " +"pas affiché mais les nÅ“uds 3D seront toujours affichés dans le dialogue " +"\"Créer un nouveau nÅ“ud\"." #: doc/classes/EditorFeatureProfile.xml msgid "" "The Script tab, which contains the script editor and class reference " "browser. If this feature is disabled, the Script tab won't display." msgstr "" +"L'onglet \"Script\", qui contient l'éditeur de script et le navigateur de " +"documentation des classes. Si cette fonctionnalité est désactivée, " +"l'affichage de l'onglet \"Script\" ne sera pas affiché." #: doc/classes/EditorFeatureProfile.xml msgid "" "The AssetLib tab. If this feature is disabled, the AssetLib tab won't " "display." msgstr "" +"L'onglet AssetLib. Si cette caractéristique est désactivée, l'onglet " +"AssetLib ne sera pas affiché." #: doc/classes/EditorFeatureProfile.xml msgid "" "Scene tree editing. If this feature is disabled, the Scene tree dock will " "still be visible but will be read-only." msgstr "" +"L'éditeur de l'arborescence de la scène. Si cette caractéristique est " +"désactivée, le dock de l'arborescence de la scène sera toujours visible, " +"mais ne pourra pas être modifié." #: doc/classes/EditorFeatureProfile.xml msgid "" "The Node dock. If this feature is disabled, signals and groups won't be " "visible and modifiable from the editor." msgstr "" +"Le dock des NÅ“uds. Si cette caractéristique est désactivée, les signaux et " +"les groupes ne seront pas affichés ni modifiables dans l'éditeur." #: doc/classes/EditorFeatureProfile.xml msgid "" "The FileSystem dock. If this feature is disabled, the FileSystem dock won't " "be visible." msgstr "" +"Le dock de système de fichiers. Si cette caractéristique est désactivée, le " +"dock de système de fichiers ne sera pas visible." #: doc/classes/EditorFeatureProfile.xml msgid "" "The Import dock. If this feature is disabled, the Import dock won't be " "visible." msgstr "" +"Le dock d'importation. Si cette caractéristique est désactivée, le dock " +"d'importation ne sera pas visible." #: doc/classes/EditorFeatureProfile.xml doc/classes/SpatialMaterial.xml msgid "Represents the size of the [enum Feature] enum." @@ -27196,6 +27379,17 @@ msgid "" "[code]receiver_func[/code] will still be called, but the preview will be " "null." msgstr "" +"Met la [code]resource[/code] modifiée en attente pour être prévisualisée. " +"Une fois la prévisualisation prête, la méthode [code]receiver_func[/code] du " +"[code]receiver[/code] sera appelée. Le [code]receiver_func[/code] doit " +"prendre les quatre arguments suivants : le chemin (\"path\") [String], la " +"[Texture] de l'aperçu (\"preview\"), la [Texture] de la vignette " +"(\"thumbnail_preview\") et les données personnées (\"userdata\") sous forme " +"de [Variant]. [code]userdata[/code] peut continir n'importe quel type de " +"données, et sera retourné quand [code]receiver_func[/code] sera appelé.\n" +"[b]Note :[/b] S'il n'était pas possible de créer la prévisualisation, " +"[code]receiver_func[/code] sera toujours appelé, mais la prévisualisation " +"sera \"null\"." #: doc/classes/EditorResourcePreview.xml msgid "" @@ -27209,6 +27403,18 @@ msgid "" "[code]receiver_func[/code] will still be called, but the preview will be " "null." msgstr "" +"Met le fichier de ressource situé à [code]path[/code] en attente pour être " +"prévisualisé. Une fois la prévisualisation prête, la méthode " +"[code]receiver_func[/code] du [code]receiver[/code] sera appelée. Le " +"[code]receiver_func[/code] doit prendre les quatre arguments suivants : le " +"chemin (\"path\") [String], la [Texture] de l'aperçu (\"preview\"), la " +"[Texture] de la vignette (\"thumbnail_preview\") et les données personnées " +"(\"userdata\") sous forme de [Variant]. [code]userdata[/code] peut continir " +"n'importe quel type de données, et sera retourné quand [code]receiver_func[/" +"code] sera appelé.\n" +"[b]Note :[/b] S'il n'était pas possible de créer la prévisualisation, " +"[code]receiver_func[/code] sera toujours appelé, mais la prévisualisation " +"sera \"null\"." #: doc/classes/EditorResourcePreview.xml msgid "Removes a custom preview generator." @@ -27484,10 +27690,19 @@ msgid "" "[b]Note:[/b] You must set the [member script_owner] for the custom context " "menu items to work." msgstr "" +"Similaire à [EditorResourcePicker], ce nÅ“ud [Control] est utilisé dans le " +"dock d'inspecteur de l'éditeur, mais seulement pour modifier la propriété " +"[code]script[/code] d'un [Node]. Les options par défaut pour créer de " +"nouvelles ressources de tous les sous-types possibles sont remplacées par " +"des boutons dédiés qui ouvrent le dialogue \"Attaché un Script\". Peut être " +"utilisé avec [EditorInspectorPlugin] pour recréer le même comportement.\n" +"[b]Note :[/b] Vous devez définir le [member script_owner] pour les éléments " +"de menu contextuel personnalisés fonctionnent." #: doc/classes/EditorScriptPicker.xml msgid "The owner [Node] of the script property that holds the edited resource." msgstr "" +"Le [Node] propriétaire de la propriété Script qui a la ressource modifiée." #: doc/classes/EditorSelection.xml msgid "Manages the SceneTree selection in the editor." @@ -27558,6 +27773,28 @@ msgid "" "[b]Note:[/b] This class shouldn't be instantiated directly. Instead, access " "the singleton using [method EditorInterface.get_editor_settings]." msgstr "" +"L'objet qui détient les paramètres de l'éditeur indépendant du projet. Ces " +"paramètres sont généralement visibles dans le menu [b]Éditeur > Paramètres " +"de l'éditeur[/b].\n" +"Les noms de propriété utilisent des délimiteurs avec des barres obliques (\"/" +"\") pour distinguer les sections. Les valeurs de réglage peuvent être de " +"tout type [Variant]. Il est recommandé d'utiliser la casse [code]snake_case[/" +"code] pour que les paramètres de l'éditeur soient compatibles avec l'éditeur " +"Godot lui-même.\n" +"L'accès aux paramètres peut être fait en utilisant les méthodes suivantes :\n" +"[codeblock]\n" +"# `settings.set(\"une/propriete\", value)` fonctionne aussi puisque cette " +"classe surcharge `_set()` en interne.\n" +"settings.set_setting(\"une/propriete\",value)\n" +"\n" +"# `settings.get(\"une/propriete\", value)` fonctionne aussi puisque cette " +"classe surcharge `_get()` en interne.\n" +"settings.get_setting(\"une/propriete\")\n" +"\n" +"var list_of_settings = settings.get_property_list()\n" +"[/codeblock]\n" +"[b]Note :[/b] Cette classe ne devrait être pas instanciée. Accédez plutôt au " +"singleton [method EditorInterface.get_editor_settings]" #: doc/classes/EditorSettings.xml msgid "" @@ -27580,10 +27817,29 @@ msgid "" "editor_settings.add_property_info(property_info)\n" "[/codeblock]" msgstr "" +"Ajoute une info de propriété personnalisée à une propriété. Le dictionnaire " +"doit contenir :\n" +"- [code]name[/code]: [String] (le nom de la propriété)\n" +"- [code]type[/code]: [int] (voir [enum Variant.Type])\n" +"- en option [code]hint[/code]: [int] (voir [enum PropertyHint]) et " +"[code]hint_string[/code]: [String]\n" +"[b]Exemple :[/b]\n" +"[codeblock]\n" +"editor_settings.set(\"category/property_name\", 0)\n" +"\n" +"var property_info = {\n" +" \"name\": \"category/property_name\",\n" +" \"type\": TYPE_INT,\n" +" \"hint\": PROPERTY_HINT_ENUM,\n" +" \"hint_string\": \"un,deux,trois\"\n" +"}\n" +"\n" +"editor_settings.add_property_info(property_info)\n" +"[/codeblock]" #: doc/classes/EditorSettings.xml msgid "Erases the setting whose name is specified by [code]property[/code]." -msgstr "" +msgstr "Efface le réglage nommé [code]property[/code]." #: doc/classes/EditorSettings.xml msgid "Returns the list of favorite files and directories for this project." @@ -27602,12 +27858,17 @@ msgid "" "subdirectory inside the settings path where project-specific settings are " "saved." msgstr "" +"Retourne le chemin des paramètres spécifiques à ce projet. Les projets ont " +"tous un sous-dossier unique où les paramètres spécifiques au projet sont " +"sauvegardés." #: doc/classes/EditorSettings.xml msgid "" "Returns the list of recently visited folders in the file dialog for this " "project." msgstr "" +"Retourne la liste des dossiers récemment visités dans le dialogue des " +"fichiers de ce projet." #: doc/classes/EditorSettings.xml msgid "" @@ -27622,6 +27883,11 @@ msgid "" "[code]settings/tmp[/code] - Used for temporary storage of files\n" "[code]settings/templates[/code] - Where export templates are located" msgstr "" +"Retourne le chemin des réglages généraux du moteur. Dans ce chemin, vous " +"pouvez trouver des chemins standards tels que :\n" +"[code]settings/tmp[/code] - L'emplacement où sont stockés les fichiers " +"temporaires\n" +"[code]settings/templates[/code] - L'emplacement où sont stockés les modèles" #: doc/classes/EditorSettings.xml msgid "" @@ -27991,6 +28257,14 @@ msgid "" "plug-n-play experience. A custom VCS plugin is supposed to inherit from " "[EditorVCSInterface] and override these virtual functions." msgstr "" +"Définit l'API que l'éditeur utilise pour extraire des informations du VCS " +"utilisé. La mise en Å“uvre de cette API est incluse dans les greffons VCS, " +"qui sont des scripts qui héritent de [EditorVCSInterface] et sont liés (à la " +"demande) à au singleton de [EditorVCSInterface]. Plutôt qu'accomplir la " +"tâche elle-même, toutes les fonctions virtuelles énumérées ci-dessous " +"appellent les fonctions surchargées internes dans les greffons VCS pour " +"fournir un fonctionnement automatique. Un greffon VCS personnalisé devrait " +"hériter de [EditorVCSInterface] et surcharger ces fonctions virtuelles." #: doc/classes/EditorVCSInterface.xml #, fuzzy @@ -28165,6 +28439,16 @@ msgid "" "created. [code]offset_minutes[/code] is the timezone offset in minutes, " "recorded from the system timezone where the commit was created." msgstr "" +"Une fonction d'aide pour créer un [Dictionnaire] des données d'un commit. " +"[code]msg[/code] est le message de commit. [code]author[/code] est une " +"simple chaîne intelligible contenant tous les détails de l'auteur, par " +"exemple son e-mail et le nom comme configurés dans le VCS. [code]id[/code] " +"est le code de hachage du commit, dans lequel votre VCS peut fournir un " +"identifiant unique pour chaque commit. [code]unix_timestamp[/code] est " +"l'horodatage Unix basé sur UTC de la date de création de la commit. " +"[code]offset_minutes[/code] is le décalage horaire par rapport à UTC, in " +"minutes, enregistré depuis la zone horaire du système lors de la création du " +"commit." #: doc/classes/EditorVCSInterface.xml msgid "" @@ -28279,6 +28563,15 @@ msgid "" "[code]project_managers[/code] - Array of Strings, project manager names\n" "[code]developers[/code] - Array of Strings, developer names" msgstr "" +"Retourne les informations des auteurs du moteur dans un dictionnaire.\n" +"[code]lead_developers[/code] - Un tableau de String, avec le nom de " +"développeurs principaux\n" +"[code]fondateurs[/code] - Un tableau de String, le nom des " +"fondateurs\n" +"[code]project_managers[/code] - Un tableau de String, le nom des chefs de " +"projet\n" +"[code]developers[/code] - Un tableau de String, le nom de " +"développeurs" #: doc/classes/Engine.xml msgid "" @@ -28288,6 +28581,11 @@ msgid "" "[code]copyright[/code], [code]license[/code]} describing subsections of the " "component" msgstr "" +"Retourne un Array d'information sur le copyright dans un dictionnaire.\n" +"[code]name[/code] - String, le nom du composant\n" +"[code]parts[/code] - Un table de Dictionary {[code]files[/code], " +"[code]copyright[/code], [code]license[/code]} décrivant chaque paragraphe de " +"la licence du composant" #: doc/classes/Engine.xml msgid "" @@ -28297,6 +28595,11 @@ msgid "" "[code]mini_sponsors[/code], [code]gold_donors[/code], [code]silver_donors[/" "code], [code]bronze_donors[/code]}" msgstr "" +"Retourne un Dictionnaire des Arrays de noms des donateurs.\n" +"{[code]platinum_sponsors[/code], [code]gold_sponsors[/code], " +"[code]silver_sponsors[/code], [code]bronze_sponsors[/code], " +"[code]mini_sponsors[/code], [code]gold_donors[/code], [code]silver_donors[/" +"code], [code]bronze_donors[/code]}" #: doc/classes/Engine.xml msgid "" @@ -36508,8 +36811,8 @@ msgstr "" #: doc/classes/InputEventJoypadButton.xml msgid "" -"Represents the pressure the user puts on the button with his finger, if the " -"controller supports it. Ranges from [code]0[/code] to [code]1[/code]." +"Represents the pressure the user puts on the button with their finger, if " +"the controller supports it. Ranges from [code]0[/code] to [code]1[/code]." msgstr "" #: doc/classes/InputEventJoypadMotion.xml @@ -43582,7 +43885,7 @@ msgstr "Détermine si le [NavigationMeshInstance] est actif ou non." #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding enters this regions navmesh from another regions navmesh " +"When pathfinding enters this region's navmesh from another regions navmesh " "the [code]enter_cost[/code] value is added to the path distance for " "determining the shortest path." msgstr "" @@ -43602,7 +43905,7 @@ msgstr "La ressource [NavigationMesh] à utiliser." #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding moves inside this regions navmesh the traveled distances " +"When pathfinding moves inside this region's navmesh the traveled distances " "are multiplied with [code]travel_cost[/code] for determining the shortest " "path." msgstr "" @@ -55594,6 +55897,18 @@ msgstr "" #: doc/classes/ProjectSettings.xml msgid "" +"Default naming style for scene files to infer from their root nodes. " +"Possible options are:\n" +"- [code]0[/code] (Auto): Uses the scene root name as is without changing its " +"casing.\n" +"- [code]1[/code] (PascalCase): Converts the scene root name to PascalCase " +"casing.\n" +"- [code]2[/code] (snake_case): Converts the scene root name to snake_case " +"casing." +msgstr "" + +#: doc/classes/ProjectSettings.xml +msgid "" "Search path for project-specific script templates. Godot will search for " "script templates both in the editor-specific path and in this project-" "specific path." @@ -76819,11 +77134,14 @@ msgid "This enabler will stop [Particles2D] nodes." msgstr "Cet activateur arrêtera les nÅ“uds [Particles2D]." #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _process function." +#, fuzzy +msgid "This enabler will stop the parent's [method Node._process] function." msgstr "Cet activateur arrêtera la fonction _process du parent." #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _physics_process function." +#, fuzzy +msgid "" +"This enabler will stop the parent's [method Node._physics_process] function." msgstr "Cet activateur arrêtera la fonction _physics_process du parent." #: doc/classes/VisibilityEnabler2D.xml @@ -85713,8 +86031,8 @@ msgstr "L'[Environment] du World." #: doc/classes/World.xml msgid "" -"The World's fallback_environment will be used if the World's [Environment] " -"fails or is missing." +"The World's fallback environment will be used if [member environment] fails " +"or is missing." msgstr "" #: doc/classes/World.xml diff --git a/doc/translations/gl.po b/doc/translations/gl.po index f11e8ba6d7..92ad8f3f22 100644 --- a/doc/translations/gl.po +++ b/doc/translations/gl.po @@ -348,7 +348,7 @@ msgstr "" #: modules/gdscript/doc_classes/@GDScript.xml msgid "" "Compares two values by checking their actual contents, recursing into any " -"`Array` or `Dictionary` up to its deepest level.\n" +"[Array] or [Dictionary] up to its deepest level.\n" "This compares to [code]==[/code] in a number of ways:\n" "- For [code]null[/code], [code]int[/code], [code]float[/code], [code]String[/" "code], [code]Object[/code] and [code]RID[/code] both [code]deep_equal[/code] " @@ -3398,6 +3398,12 @@ msgstr "" #: doc/classes/@GlobalScope.xml msgid "" +"Hints that an integer property is a bitmask using the optionally named 3D " +"navigation layers." +msgstr "" + +#: doc/classes/@GlobalScope.xml +msgid "" "Hints that a string property is a path to a file. Editing it will show a " "file dialog for picking the path. The hint string can be a set of filters " "with wildcards like [code]\"*.png,*.jpg\"[/code]." @@ -30125,8 +30131,8 @@ msgstr "" #: doc/classes/InputEventJoypadButton.xml msgid "" -"Represents the pressure the user puts on the button with his finger, if the " -"controller supports it. Ranges from [code]0[/code] to [code]1[/code]." +"Represents the pressure the user puts on the button with their finger, if " +"the controller supports it. Ranges from [code]0[/code] to [code]1[/code]." msgstr "" #: doc/classes/InputEventJoypadMotion.xml @@ -36481,7 +36487,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding enters this regions navmesh from another regions navmesh " +"When pathfinding enters this region's navmesh from another regions navmesh " "the [code]enter_cost[/code] value is added to the path distance for " "determining the shortest path." msgstr "" @@ -36501,7 +36507,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding moves inside this regions navmesh the traveled distances " +"When pathfinding moves inside this region's navmesh the traveled distances " "are multiplied with [code]travel_cost[/code] for determining the shortest " "path." msgstr "" @@ -47289,6 +47295,18 @@ msgstr "" #: doc/classes/ProjectSettings.xml msgid "" +"Default naming style for scene files to infer from their root nodes. " +"Possible options are:\n" +"- [code]0[/code] (Auto): Uses the scene root name as is without changing its " +"casing.\n" +"- [code]1[/code] (PascalCase): Converts the scene root name to PascalCase " +"casing.\n" +"- [code]2[/code] (snake_case): Converts the scene root name to snake_case " +"casing." +msgstr "" + +#: doc/classes/ProjectSettings.xml +msgid "" "Search path for project-specific script templates. Godot will search for " "script templates both in the editor-specific path and in this project-" "specific path." @@ -66566,11 +66584,12 @@ msgid "This enabler will stop [Particles2D] nodes." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _process function." +msgid "This enabler will stop the parent's [method Node._process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _physics_process function." +msgid "" +"This enabler will stop the parent's [method Node._physics_process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml @@ -74587,8 +74606,8 @@ msgstr "" #: doc/classes/World.xml msgid "" -"The World's fallback_environment will be used if the World's [Environment] " -"fails or is missing." +"The World's fallback environment will be used if [member environment] fails " +"or is missing." msgstr "" #: doc/classes/World.xml diff --git a/doc/translations/hi.po b/doc/translations/hi.po index d160c87d04..147b3b4099 100644 --- a/doc/translations/hi.po +++ b/doc/translations/hi.po @@ -347,7 +347,7 @@ msgstr "" #: modules/gdscript/doc_classes/@GDScript.xml msgid "" "Compares two values by checking their actual contents, recursing into any " -"`Array` or `Dictionary` up to its deepest level.\n" +"[Array] or [Dictionary] up to its deepest level.\n" "This compares to [code]==[/code] in a number of ways:\n" "- For [code]null[/code], [code]int[/code], [code]float[/code], [code]String[/" "code], [code]Object[/code] and [code]RID[/code] both [code]deep_equal[/code] " @@ -3397,6 +3397,12 @@ msgstr "" #: doc/classes/@GlobalScope.xml msgid "" +"Hints that an integer property is a bitmask using the optionally named 3D " +"navigation layers." +msgstr "" + +#: doc/classes/@GlobalScope.xml +msgid "" "Hints that a string property is a path to a file. Editing it will show a " "file dialog for picking the path. The hint string can be a set of filters " "with wildcards like [code]\"*.png,*.jpg\"[/code]." @@ -30124,8 +30130,8 @@ msgstr "" #: doc/classes/InputEventJoypadButton.xml msgid "" -"Represents the pressure the user puts on the button with his finger, if the " -"controller supports it. Ranges from [code]0[/code] to [code]1[/code]." +"Represents the pressure the user puts on the button with their finger, if " +"the controller supports it. Ranges from [code]0[/code] to [code]1[/code]." msgstr "" #: doc/classes/InputEventJoypadMotion.xml @@ -36480,7 +36486,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding enters this regions navmesh from another regions navmesh " +"When pathfinding enters this region's navmesh from another regions navmesh " "the [code]enter_cost[/code] value is added to the path distance for " "determining the shortest path." msgstr "" @@ -36500,7 +36506,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding moves inside this regions navmesh the traveled distances " +"When pathfinding moves inside this region's navmesh the traveled distances " "are multiplied with [code]travel_cost[/code] for determining the shortest " "path." msgstr "" @@ -47288,6 +47294,18 @@ msgstr "" #: doc/classes/ProjectSettings.xml msgid "" +"Default naming style for scene files to infer from their root nodes. " +"Possible options are:\n" +"- [code]0[/code] (Auto): Uses the scene root name as is without changing its " +"casing.\n" +"- [code]1[/code] (PascalCase): Converts the scene root name to PascalCase " +"casing.\n" +"- [code]2[/code] (snake_case): Converts the scene root name to snake_case " +"casing." +msgstr "" + +#: doc/classes/ProjectSettings.xml +msgid "" "Search path for project-specific script templates. Godot will search for " "script templates both in the editor-specific path and in this project-" "specific path." @@ -66565,11 +66583,12 @@ msgid "This enabler will stop [Particles2D] nodes." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _process function." +msgid "This enabler will stop the parent's [method Node._process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _physics_process function." +msgid "" +"This enabler will stop the parent's [method Node._physics_process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml @@ -74586,8 +74605,8 @@ msgstr "" #: doc/classes/World.xml msgid "" -"The World's fallback_environment will be used if the World's [Environment] " -"fails or is missing." +"The World's fallback environment will be used if [member environment] fails " +"or is missing." msgstr "" #: doc/classes/World.xml diff --git a/doc/translations/hu.po b/doc/translations/hu.po index 7388321bf7..cda670b22d 100644 --- a/doc/translations/hu.po +++ b/doc/translations/hu.po @@ -10,12 +10,13 @@ # balintmaci <balintmaci@gmail.com>, 2021. # Balázs Püspök-Kiss <pkblazsak@gmail.com>, 2021. # Szevin <kevingeiger25@gmail.com>, 2022. +# 6Leoo6 <leo.takacs@yahoo.com>, 2022. msgid "" msgstr "" "Project-Id-Version: Godot Engine class reference\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" -"PO-Revision-Date: 2022-01-26 23:53+0000\n" -"Last-Translator: Szevin <kevingeiger25@gmail.com>\n" +"PO-Revision-Date: 2022-06-19 11:54+0000\n" +"Last-Translator: 6Leoo6 <leo.takacs@yahoo.com>\n" "Language-Team: Hungarian <https://hosted.weblate.org/projects/godot-engine/" "godot-class-reference/hu/>\n" "Language: hu\n" @@ -23,7 +24,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 4.11-dev\n" +"X-Generator: Weblate 4.13.1-dev\n" #: doc/tools/make_rst.py msgid "Description" @@ -47,7 +48,7 @@ msgstr "Téma Tulajdonságai" #: doc/tools/make_rst.py msgid "Signals" -msgstr "Jelzések" +msgstr "jelek" #: doc/tools/make_rst.py msgid "Enumerations" @@ -365,7 +366,7 @@ msgstr "" #: modules/gdscript/doc_classes/@GDScript.xml msgid "" "Compares two values by checking their actual contents, recursing into any " -"`Array` or `Dictionary` up to its deepest level.\n" +"[Array] or [Dictionary] up to its deepest level.\n" "This compares to [code]==[/code] in a number of ways:\n" "- For [code]null[/code], [code]int[/code], [code]float[/code], [code]String[/" "code], [code]Object[/code] and [code]RID[/code] both [code]deep_equal[/code] " @@ -3415,6 +3416,12 @@ msgstr "" #: doc/classes/@GlobalScope.xml msgid "" +"Hints that an integer property is a bitmask using the optionally named 3D " +"navigation layers." +msgstr "" + +#: doc/classes/@GlobalScope.xml +msgid "" "Hints that a string property is a path to a file. Editing it will show a " "file dialog for picking the path. The hint string can be a set of filters " "with wildcards like [code]\"*.png,*.jpg\"[/code]." @@ -30142,8 +30149,8 @@ msgstr "" #: doc/classes/InputEventJoypadButton.xml msgid "" -"Represents the pressure the user puts on the button with his finger, if the " -"controller supports it. Ranges from [code]0[/code] to [code]1[/code]." +"Represents the pressure the user puts on the button with their finger, if " +"the controller supports it. Ranges from [code]0[/code] to [code]1[/code]." msgstr "" #: doc/classes/InputEventJoypadMotion.xml @@ -36498,7 +36505,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding enters this regions navmesh from another regions navmesh " +"When pathfinding enters this region's navmesh from another regions navmesh " "the [code]enter_cost[/code] value is added to the path distance for " "determining the shortest path." msgstr "" @@ -36518,7 +36525,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding moves inside this regions navmesh the traveled distances " +"When pathfinding moves inside this region's navmesh the traveled distances " "are multiplied with [code]travel_cost[/code] for determining the shortest " "path." msgstr "" @@ -47306,6 +47313,18 @@ msgstr "" #: doc/classes/ProjectSettings.xml msgid "" +"Default naming style for scene files to infer from their root nodes. " +"Possible options are:\n" +"- [code]0[/code] (Auto): Uses the scene root name as is without changing its " +"casing.\n" +"- [code]1[/code] (PascalCase): Converts the scene root name to PascalCase " +"casing.\n" +"- [code]2[/code] (snake_case): Converts the scene root name to snake_case " +"casing." +msgstr "" + +#: doc/classes/ProjectSettings.xml +msgid "" "Search path for project-specific script templates. Godot will search for " "script templates both in the editor-specific path and in this project-" "specific path." @@ -66583,11 +66602,12 @@ msgid "This enabler will stop [Particles2D] nodes." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _process function." +msgid "This enabler will stop the parent's [method Node._process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _physics_process function." +msgid "" +"This enabler will stop the parent's [method Node._physics_process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml @@ -74604,8 +74624,8 @@ msgstr "" #: doc/classes/World.xml msgid "" -"The World's fallback_environment will be used if the World's [Environment] " -"fails or is missing." +"The World's fallback environment will be used if [member environment] fails " +"or is missing." msgstr "" #: doc/classes/World.xml diff --git a/doc/translations/id.po b/doc/translations/id.po index c51e610f3d..da727b40e7 100644 --- a/doc/translations/id.po +++ b/doc/translations/id.po @@ -502,7 +502,7 @@ msgstr "" #: modules/gdscript/doc_classes/@GDScript.xml msgid "" "Compares two values by checking their actual contents, recursing into any " -"`Array` or `Dictionary` up to its deepest level.\n" +"[Array] or [Dictionary] up to its deepest level.\n" "This compares to [code]==[/code] in a number of ways:\n" "- For [code]null[/code], [code]int[/code], [code]float[/code], [code]String[/" "code], [code]Object[/code] and [code]RID[/code] both [code]deep_equal[/code] " @@ -3808,6 +3808,12 @@ msgstr "" #: doc/classes/@GlobalScope.xml msgid "" +"Hints that an integer property is a bitmask using the optionally named 3D " +"navigation layers." +msgstr "" + +#: doc/classes/@GlobalScope.xml +msgid "" "Hints that a string property is a path to a file. Editing it will show a " "file dialog for picking the path. The hint string can be a set of filters " "with wildcards like [code]\"*.png,*.jpg\"[/code]." @@ -30549,8 +30555,8 @@ msgstr "" #: doc/classes/InputEventJoypadButton.xml msgid "" -"Represents the pressure the user puts on the button with his finger, if the " -"controller supports it. Ranges from [code]0[/code] to [code]1[/code]." +"Represents the pressure the user puts on the button with their finger, if " +"the controller supports it. Ranges from [code]0[/code] to [code]1[/code]." msgstr "" #: doc/classes/InputEventJoypadMotion.xml @@ -36925,7 +36931,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding enters this regions navmesh from another regions navmesh " +"When pathfinding enters this region's navmesh from another regions navmesh " "the [code]enter_cost[/code] value is added to the path distance for " "determining the shortest path." msgstr "" @@ -36945,7 +36951,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding moves inside this regions navmesh the traveled distances " +"When pathfinding moves inside this region's navmesh the traveled distances " "are multiplied with [code]travel_cost[/code] for determining the shortest " "path." msgstr "" @@ -47755,6 +47761,18 @@ msgstr "" #: doc/classes/ProjectSettings.xml msgid "" +"Default naming style for scene files to infer from their root nodes. " +"Possible options are:\n" +"- [code]0[/code] (Auto): Uses the scene root name as is without changing its " +"casing.\n" +"- [code]1[/code] (PascalCase): Converts the scene root name to PascalCase " +"casing.\n" +"- [code]2[/code] (snake_case): Converts the scene root name to snake_case " +"casing." +msgstr "" + +#: doc/classes/ProjectSettings.xml +msgid "" "Search path for project-specific script templates. Godot will search for " "script templates both in the editor-specific path and in this project-" "specific path." @@ -67040,11 +67058,12 @@ msgid "This enabler will stop [Particles2D] nodes." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _process function." +msgid "This enabler will stop the parent's [method Node._process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _physics_process function." +msgid "" +"This enabler will stop the parent's [method Node._physics_process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml @@ -75067,8 +75086,8 @@ msgstr "" #: doc/classes/World.xml msgid "" -"The World's fallback_environment will be used if the World's [Environment] " -"fails or is missing." +"The World's fallback environment will be used if [member environment] fails " +"or is missing." msgstr "" #: doc/classes/World.xml diff --git a/doc/translations/is.po b/doc/translations/is.po index 4ef90cac62..ec65de5cfb 100644 --- a/doc/translations/is.po +++ b/doc/translations/is.po @@ -347,7 +347,7 @@ msgstr "" #: modules/gdscript/doc_classes/@GDScript.xml msgid "" "Compares two values by checking their actual contents, recursing into any " -"`Array` or `Dictionary` up to its deepest level.\n" +"[Array] or [Dictionary] up to its deepest level.\n" "This compares to [code]==[/code] in a number of ways:\n" "- For [code]null[/code], [code]int[/code], [code]float[/code], [code]String[/" "code], [code]Object[/code] and [code]RID[/code] both [code]deep_equal[/code] " @@ -3397,6 +3397,12 @@ msgstr "" #: doc/classes/@GlobalScope.xml msgid "" +"Hints that an integer property is a bitmask using the optionally named 3D " +"navigation layers." +msgstr "" + +#: doc/classes/@GlobalScope.xml +msgid "" "Hints that a string property is a path to a file. Editing it will show a " "file dialog for picking the path. The hint string can be a set of filters " "with wildcards like [code]\"*.png,*.jpg\"[/code]." @@ -30124,8 +30130,8 @@ msgstr "" #: doc/classes/InputEventJoypadButton.xml msgid "" -"Represents the pressure the user puts on the button with his finger, if the " -"controller supports it. Ranges from [code]0[/code] to [code]1[/code]." +"Represents the pressure the user puts on the button with their finger, if " +"the controller supports it. Ranges from [code]0[/code] to [code]1[/code]." msgstr "" #: doc/classes/InputEventJoypadMotion.xml @@ -36480,7 +36486,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding enters this regions navmesh from another regions navmesh " +"When pathfinding enters this region's navmesh from another regions navmesh " "the [code]enter_cost[/code] value is added to the path distance for " "determining the shortest path." msgstr "" @@ -36500,7 +36506,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding moves inside this regions navmesh the traveled distances " +"When pathfinding moves inside this region's navmesh the traveled distances " "are multiplied with [code]travel_cost[/code] for determining the shortest " "path." msgstr "" @@ -47288,6 +47294,18 @@ msgstr "" #: doc/classes/ProjectSettings.xml msgid "" +"Default naming style for scene files to infer from their root nodes. " +"Possible options are:\n" +"- [code]0[/code] (Auto): Uses the scene root name as is without changing its " +"casing.\n" +"- [code]1[/code] (PascalCase): Converts the scene root name to PascalCase " +"casing.\n" +"- [code]2[/code] (snake_case): Converts the scene root name to snake_case " +"casing." +msgstr "" + +#: doc/classes/ProjectSettings.xml +msgid "" "Search path for project-specific script templates. Godot will search for " "script templates both in the editor-specific path and in this project-" "specific path." @@ -66565,11 +66583,12 @@ msgid "This enabler will stop [Particles2D] nodes." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _process function." +msgid "This enabler will stop the parent's [method Node._process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _physics_process function." +msgid "" +"This enabler will stop the parent's [method Node._physics_process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml @@ -74586,8 +74605,8 @@ msgstr "" #: doc/classes/World.xml msgid "" -"The World's fallback_environment will be used if the World's [Environment] " -"fails or is missing." +"The World's fallback environment will be used if [member environment] fails " +"or is missing." msgstr "" #: doc/classes/World.xml diff --git a/doc/translations/it.po b/doc/translations/it.po index 6b71c5afb5..f1a35b0de3 100644 --- a/doc/translations/it.po +++ b/doc/translations/it.po @@ -515,9 +515,10 @@ msgstr "" "[/codeblock]" #: modules/gdscript/doc_classes/@GDScript.xml +#, fuzzy msgid "" "Compares two values by checking their actual contents, recursing into any " -"`Array` or `Dictionary` up to its deepest level.\n" +"[Array] or [Dictionary] up to its deepest level.\n" "This compares to [code]==[/code] in a number of ways:\n" "- For [code]null[/code], [code]int[/code], [code]float[/code], [code]String[/" "code], [code]Object[/code] and [code]RID[/code] both [code]deep_equal[/code] " @@ -4390,6 +4391,12 @@ msgstr "" #: doc/classes/@GlobalScope.xml msgid "" +"Hints that an integer property is a bitmask using the optionally named 3D " +"navigation layers." +msgstr "" + +#: doc/classes/@GlobalScope.xml +msgid "" "Hints that a string property is a path to a file. Editing it will show a " "file dialog for picking the path. The hint string can be a set of filters " "with wildcards like [code]\"*.png,*.jpg\"[/code]." @@ -31313,8 +31320,8 @@ msgstr "" #: doc/classes/InputEventJoypadButton.xml msgid "" -"Represents the pressure the user puts on the button with his finger, if the " -"controller supports it. Ranges from [code]0[/code] to [code]1[/code]." +"Represents the pressure the user puts on the button with their finger, if " +"the controller supports it. Ranges from [code]0[/code] to [code]1[/code]." msgstr "" #: doc/classes/InputEventJoypadMotion.xml @@ -37738,7 +37745,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding enters this regions navmesh from another regions navmesh " +"When pathfinding enters this region's navmesh from another regions navmesh " "the [code]enter_cost[/code] value is added to the path distance for " "determining the shortest path." msgstr "" @@ -37759,7 +37766,7 @@ msgstr "Il singleton [EditorNavigationMeshGenerator]." #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding moves inside this regions navmesh the traveled distances " +"When pathfinding moves inside this region's navmesh the traveled distances " "are multiplied with [code]travel_cost[/code] for determining the shortest " "path." msgstr "" @@ -48613,6 +48620,18 @@ msgstr "" #: doc/classes/ProjectSettings.xml msgid "" +"Default naming style for scene files to infer from their root nodes. " +"Possible options are:\n" +"- [code]0[/code] (Auto): Uses the scene root name as is without changing its " +"casing.\n" +"- [code]1[/code] (PascalCase): Converts the scene root name to PascalCase " +"casing.\n" +"- [code]2[/code] (snake_case): Converts the scene root name to snake_case " +"casing." +msgstr "" + +#: doc/classes/ProjectSettings.xml +msgid "" "Search path for project-specific script templates. Godot will search for " "script templates both in the editor-specific path and in this project-" "specific path." @@ -68007,11 +68026,12 @@ msgid "This enabler will stop [Particles2D] nodes." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _process function." +msgid "This enabler will stop the parent's [method Node._process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _physics_process function." +msgid "" +"This enabler will stop the parent's [method Node._physics_process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml @@ -76077,8 +76097,8 @@ msgstr "" #: doc/classes/World.xml msgid "" -"The World's fallback_environment will be used if the World's [Environment] " -"fails or is missing." +"The World's fallback environment will be used if [member environment] fails " +"or is missing." msgstr "" #: doc/classes/World.xml diff --git a/doc/translations/ja.po b/doc/translations/ja.po index 66474a0f66..8bb3d16322 100644 --- a/doc/translations/ja.po +++ b/doc/translations/ja.po @@ -486,9 +486,10 @@ msgstr "" "[/codeblock]" #: modules/gdscript/doc_classes/@GDScript.xml +#, fuzzy msgid "" "Compares two values by checking their actual contents, recursing into any " -"`Array` or `Dictionary` up to its deepest level.\n" +"[Array] or [Dictionary] up to its deepest level.\n" "This compares to [code]==[/code] in a number of ways:\n" "- For [code]null[/code], [code]int[/code], [code]float[/code], [code]String[/" "code], [code]Object[/code] and [code]RID[/code] both [code]deep_equal[/code] " @@ -4349,6 +4350,15 @@ msgstr "" "クã§ã‚ã‚‹ã“ã¨ã®ãƒ’ント。" #: doc/classes/@GlobalScope.xml +#, fuzzy +msgid "" +"Hints that an integer property is a bitmask using the optionally named 3D " +"navigation layers." +msgstr "" +"整数プãƒãƒ‘ティãŒã€ã‚ªãƒ—ã‚·ãƒ§ãƒ³ã§æŒ‡å®šã•れ㟠2D レンダー レイヤーを使用ã—ãŸãƒ“ット" +"マスクã§ã‚ã‚‹ã“ã¨ã®ãƒ’ント。" + +#: doc/classes/@GlobalScope.xml msgid "" "Hints that a string property is a path to a file. Editing it will show a " "file dialog for picking the path. The hint string can be a set of filters " @@ -33372,8 +33382,8 @@ msgstr "" #: doc/classes/InputEventJoypadButton.xml msgid "" -"Represents the pressure the user puts on the button with his finger, if the " -"controller supports it. Ranges from [code]0[/code] to [code]1[/code]." +"Represents the pressure the user puts on the button with their finger, if " +"the controller supports it. Ranges from [code]0[/code] to [code]1[/code]." msgstr "" #: doc/classes/InputEventJoypadMotion.xml @@ -39880,7 +39890,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding enters this regions navmesh from another regions navmesh " +"When pathfinding enters this region's navmesh from another regions navmesh " "the [code]enter_cost[/code] value is added to the path distance for " "determining the shortest path." msgstr "" @@ -39901,7 +39911,7 @@ msgstr "[NavigationMeshGenerator] シングルトン。" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding moves inside this regions navmesh the traveled distances " +"When pathfinding moves inside this region's navmesh the traveled distances " "are multiplied with [code]travel_cost[/code] for determining the shortest " "path." msgstr "" @@ -50820,6 +50830,18 @@ msgstr "" #: doc/classes/ProjectSettings.xml msgid "" +"Default naming style for scene files to infer from their root nodes. " +"Possible options are:\n" +"- [code]0[/code] (Auto): Uses the scene root name as is without changing its " +"casing.\n" +"- [code]1[/code] (PascalCase): Converts the scene root name to PascalCase " +"casing.\n" +"- [code]2[/code] (snake_case): Converts the scene root name to snake_case " +"casing." +msgstr "" + +#: doc/classes/ProjectSettings.xml +msgid "" "Search path for project-specific script templates. Godot will search for " "script templates both in the editor-specific path and in this project-" "specific path." @@ -70609,12 +70631,16 @@ msgid "This enabler will stop [Particles2D] nodes." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _process function." +msgid "This enabler will stop the parent's [method Node._process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _physics_process function." +#, fuzzy +msgid "" +"This enabler will stop the parent's [method Node._physics_process] function." msgstr "" +"アニメーションã¯ç‰©ç†ãƒ•レームä¸ã«é€²è¡Œã—ã¾ã™ (ã™ãªã‚ã¡ [method Node." +"_physics_process])。" #: doc/classes/VisibilityEnabler2D.xml msgid "This enabler will stop [AnimatedSprite] nodes animations." @@ -78744,8 +78770,8 @@ msgstr "" #: doc/classes/World.xml msgid "" -"The World's fallback_environment will be used if the World's [Environment] " -"fails or is missing." +"The World's fallback environment will be used if [member environment] fails " +"or is missing." msgstr "" #: doc/classes/World.xml diff --git a/doc/translations/ko.po b/doc/translations/ko.po index 99843f88e0..e3dd797c36 100644 --- a/doc/translations/ko.po +++ b/doc/translations/ko.po @@ -488,7 +488,7 @@ msgstr "" #: modules/gdscript/doc_classes/@GDScript.xml msgid "" "Compares two values by checking their actual contents, recursing into any " -"`Array` or `Dictionary` up to its deepest level.\n" +"[Array] or [Dictionary] up to its deepest level.\n" "This compares to [code]==[/code] in a number of ways:\n" "- For [code]null[/code], [code]int[/code], [code]float[/code], [code]String[/" "code], [code]Object[/code] and [code]RID[/code] both [code]deep_equal[/code] " @@ -3568,6 +3568,12 @@ msgstr "" #: doc/classes/@GlobalScope.xml msgid "" +"Hints that an integer property is a bitmask using the optionally named 3D " +"navigation layers." +msgstr "" + +#: doc/classes/@GlobalScope.xml +msgid "" "Hints that a string property is a path to a file. Editing it will show a " "file dialog for picking the path. The hint string can be a set of filters " "with wildcards like [code]\"*.png,*.jpg\"[/code]." @@ -30434,8 +30440,8 @@ msgstr "" #: doc/classes/InputEventJoypadButton.xml msgid "" -"Represents the pressure the user puts on the button with his finger, if the " -"controller supports it. Ranges from [code]0[/code] to [code]1[/code]." +"Represents the pressure the user puts on the button with their finger, if " +"the controller supports it. Ranges from [code]0[/code] to [code]1[/code]." msgstr "" #: doc/classes/InputEventJoypadMotion.xml @@ -36827,7 +36833,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding enters this regions navmesh from another regions navmesh " +"When pathfinding enters this region's navmesh from another regions navmesh " "the [code]enter_cost[/code] value is added to the path distance for " "determining the shortest path." msgstr "" @@ -36847,7 +36853,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding moves inside this regions navmesh the traveled distances " +"When pathfinding moves inside this region's navmesh the traveled distances " "are multiplied with [code]travel_cost[/code] for determining the shortest " "path." msgstr "" @@ -47796,6 +47802,18 @@ msgstr "" #: doc/classes/ProjectSettings.xml msgid "" +"Default naming style for scene files to infer from their root nodes. " +"Possible options are:\n" +"- [code]0[/code] (Auto): Uses the scene root name as is without changing its " +"casing.\n" +"- [code]1[/code] (PascalCase): Converts the scene root name to PascalCase " +"casing.\n" +"- [code]2[/code] (snake_case): Converts the scene root name to snake_case " +"casing." +msgstr "" + +#: doc/classes/ProjectSettings.xml +msgid "" "Search path for project-specific script templates. Godot will search for " "script templates both in the editor-specific path and in this project-" "specific path." @@ -67111,11 +67129,12 @@ msgid "This enabler will stop [Particles2D] nodes." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _process function." +msgid "This enabler will stop the parent's [method Node._process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _physics_process function." +msgid "" +"This enabler will stop the parent's [method Node._physics_process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml @@ -75153,8 +75172,8 @@ msgstr "" #: doc/classes/World.xml msgid "" -"The World's fallback_environment will be used if the World's [Environment] " -"fails or is missing." +"The World's fallback environment will be used if [member environment] fails " +"or is missing." msgstr "" #: doc/classes/World.xml diff --git a/doc/translations/lt.po b/doc/translations/lt.po index ca881ec842..fc686e4bb2 100644 --- a/doc/translations/lt.po +++ b/doc/translations/lt.po @@ -357,7 +357,7 @@ msgstr "" #: modules/gdscript/doc_classes/@GDScript.xml msgid "" "Compares two values by checking their actual contents, recursing into any " -"`Array` or `Dictionary` up to its deepest level.\n" +"[Array] or [Dictionary] up to its deepest level.\n" "This compares to [code]==[/code] in a number of ways:\n" "- For [code]null[/code], [code]int[/code], [code]float[/code], [code]String[/" "code], [code]Object[/code] and [code]RID[/code] both [code]deep_equal[/code] " @@ -3407,6 +3407,12 @@ msgstr "" #: doc/classes/@GlobalScope.xml msgid "" +"Hints that an integer property is a bitmask using the optionally named 3D " +"navigation layers." +msgstr "" + +#: doc/classes/@GlobalScope.xml +msgid "" "Hints that a string property is a path to a file. Editing it will show a " "file dialog for picking the path. The hint string can be a set of filters " "with wildcards like [code]\"*.png,*.jpg\"[/code]." @@ -30134,8 +30140,8 @@ msgstr "" #: doc/classes/InputEventJoypadButton.xml msgid "" -"Represents the pressure the user puts on the button with his finger, if the " -"controller supports it. Ranges from [code]0[/code] to [code]1[/code]." +"Represents the pressure the user puts on the button with their finger, if " +"the controller supports it. Ranges from [code]0[/code] to [code]1[/code]." msgstr "" #: doc/classes/InputEventJoypadMotion.xml @@ -36490,7 +36496,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding enters this regions navmesh from another regions navmesh " +"When pathfinding enters this region's navmesh from another regions navmesh " "the [code]enter_cost[/code] value is added to the path distance for " "determining the shortest path." msgstr "" @@ -36510,7 +36516,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding moves inside this regions navmesh the traveled distances " +"When pathfinding moves inside this region's navmesh the traveled distances " "are multiplied with [code]travel_cost[/code] for determining the shortest " "path." msgstr "" @@ -47298,6 +47304,18 @@ msgstr "" #: doc/classes/ProjectSettings.xml msgid "" +"Default naming style for scene files to infer from their root nodes. " +"Possible options are:\n" +"- [code]0[/code] (Auto): Uses the scene root name as is without changing its " +"casing.\n" +"- [code]1[/code] (PascalCase): Converts the scene root name to PascalCase " +"casing.\n" +"- [code]2[/code] (snake_case): Converts the scene root name to snake_case " +"casing." +msgstr "" + +#: doc/classes/ProjectSettings.xml +msgid "" "Search path for project-specific script templates. Godot will search for " "script templates both in the editor-specific path and in this project-" "specific path." @@ -66575,11 +66593,12 @@ msgid "This enabler will stop [Particles2D] nodes." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _process function." +msgid "This enabler will stop the parent's [method Node._process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _physics_process function." +msgid "" +"This enabler will stop the parent's [method Node._physics_process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml @@ -74596,8 +74615,8 @@ msgstr "" #: doc/classes/World.xml msgid "" -"The World's fallback_environment will be used if the World's [Environment] " -"fails or is missing." +"The World's fallback environment will be used if [member environment] fails " +"or is missing." msgstr "" #: doc/classes/World.xml diff --git a/doc/translations/lv.po b/doc/translations/lv.po index 7b6380006f..27ebbed1af 100644 --- a/doc/translations/lv.po +++ b/doc/translations/lv.po @@ -362,7 +362,7 @@ msgstr "" #: modules/gdscript/doc_classes/@GDScript.xml msgid "" "Compares two values by checking their actual contents, recursing into any " -"`Array` or `Dictionary` up to its deepest level.\n" +"[Array] or [Dictionary] up to its deepest level.\n" "This compares to [code]==[/code] in a number of ways:\n" "- For [code]null[/code], [code]int[/code], [code]float[/code], [code]String[/" "code], [code]Object[/code] and [code]RID[/code] both [code]deep_equal[/code] " @@ -3412,6 +3412,12 @@ msgstr "" #: doc/classes/@GlobalScope.xml msgid "" +"Hints that an integer property is a bitmask using the optionally named 3D " +"navigation layers." +msgstr "" + +#: doc/classes/@GlobalScope.xml +msgid "" "Hints that a string property is a path to a file. Editing it will show a " "file dialog for picking the path. The hint string can be a set of filters " "with wildcards like [code]\"*.png,*.jpg\"[/code]." @@ -30142,8 +30148,8 @@ msgstr "" #: doc/classes/InputEventJoypadButton.xml msgid "" -"Represents the pressure the user puts on the button with his finger, if the " -"controller supports it. Ranges from [code]0[/code] to [code]1[/code]." +"Represents the pressure the user puts on the button with their finger, if " +"the controller supports it. Ranges from [code]0[/code] to [code]1[/code]." msgstr "" #: doc/classes/InputEventJoypadMotion.xml @@ -36498,7 +36504,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding enters this regions navmesh from another regions navmesh " +"When pathfinding enters this region's navmesh from another regions navmesh " "the [code]enter_cost[/code] value is added to the path distance for " "determining the shortest path." msgstr "" @@ -36518,7 +36524,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding moves inside this regions navmesh the traveled distances " +"When pathfinding moves inside this region's navmesh the traveled distances " "are multiplied with [code]travel_cost[/code] for determining the shortest " "path." msgstr "" @@ -47306,6 +47312,18 @@ msgstr "" #: doc/classes/ProjectSettings.xml msgid "" +"Default naming style for scene files to infer from their root nodes. " +"Possible options are:\n" +"- [code]0[/code] (Auto): Uses the scene root name as is without changing its " +"casing.\n" +"- [code]1[/code] (PascalCase): Converts the scene root name to PascalCase " +"casing.\n" +"- [code]2[/code] (snake_case): Converts the scene root name to snake_case " +"casing." +msgstr "" + +#: doc/classes/ProjectSettings.xml +msgid "" "Search path for project-specific script templates. Godot will search for " "script templates both in the editor-specific path and in this project-" "specific path." @@ -66583,11 +66601,12 @@ msgid "This enabler will stop [Particles2D] nodes." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _process function." +msgid "This enabler will stop the parent's [method Node._process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _physics_process function." +msgid "" +"This enabler will stop the parent's [method Node._physics_process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml @@ -74604,8 +74623,8 @@ msgstr "" #: doc/classes/World.xml msgid "" -"The World's fallback_environment will be used if the World's [Environment] " -"fails or is missing." +"The World's fallback environment will be used if [member environment] fails " +"or is missing." msgstr "" #: doc/classes/World.xml diff --git a/doc/translations/mr.po b/doc/translations/mr.po index c13c395265..caaec0b107 100644 --- a/doc/translations/mr.po +++ b/doc/translations/mr.po @@ -345,7 +345,7 @@ msgstr "" #: modules/gdscript/doc_classes/@GDScript.xml msgid "" "Compares two values by checking their actual contents, recursing into any " -"`Array` or `Dictionary` up to its deepest level.\n" +"[Array] or [Dictionary] up to its deepest level.\n" "This compares to [code]==[/code] in a number of ways:\n" "- For [code]null[/code], [code]int[/code], [code]float[/code], [code]String[/" "code], [code]Object[/code] and [code]RID[/code] both [code]deep_equal[/code] " @@ -3395,6 +3395,12 @@ msgstr "" #: doc/classes/@GlobalScope.xml msgid "" +"Hints that an integer property is a bitmask using the optionally named 3D " +"navigation layers." +msgstr "" + +#: doc/classes/@GlobalScope.xml +msgid "" "Hints that a string property is a path to a file. Editing it will show a " "file dialog for picking the path. The hint string can be a set of filters " "with wildcards like [code]\"*.png,*.jpg\"[/code]." @@ -30122,8 +30128,8 @@ msgstr "" #: doc/classes/InputEventJoypadButton.xml msgid "" -"Represents the pressure the user puts on the button with his finger, if the " -"controller supports it. Ranges from [code]0[/code] to [code]1[/code]." +"Represents the pressure the user puts on the button with their finger, if " +"the controller supports it. Ranges from [code]0[/code] to [code]1[/code]." msgstr "" #: doc/classes/InputEventJoypadMotion.xml @@ -36478,7 +36484,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding enters this regions navmesh from another regions navmesh " +"When pathfinding enters this region's navmesh from another regions navmesh " "the [code]enter_cost[/code] value is added to the path distance for " "determining the shortest path." msgstr "" @@ -36498,7 +36504,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding moves inside this regions navmesh the traveled distances " +"When pathfinding moves inside this region's navmesh the traveled distances " "are multiplied with [code]travel_cost[/code] for determining the shortest " "path." msgstr "" @@ -47286,6 +47292,18 @@ msgstr "" #: doc/classes/ProjectSettings.xml msgid "" +"Default naming style for scene files to infer from their root nodes. " +"Possible options are:\n" +"- [code]0[/code] (Auto): Uses the scene root name as is without changing its " +"casing.\n" +"- [code]1[/code] (PascalCase): Converts the scene root name to PascalCase " +"casing.\n" +"- [code]2[/code] (snake_case): Converts the scene root name to snake_case " +"casing." +msgstr "" + +#: doc/classes/ProjectSettings.xml +msgid "" "Search path for project-specific script templates. Godot will search for " "script templates both in the editor-specific path and in this project-" "specific path." @@ -66563,11 +66581,12 @@ msgid "This enabler will stop [Particles2D] nodes." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _process function." +msgid "This enabler will stop the parent's [method Node._process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _physics_process function." +msgid "" +"This enabler will stop the parent's [method Node._physics_process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml @@ -74584,8 +74603,8 @@ msgstr "" #: doc/classes/World.xml msgid "" -"The World's fallback_environment will be used if the World's [Environment] " -"fails or is missing." +"The World's fallback environment will be used if [member environment] fails " +"or is missing." msgstr "" #: doc/classes/World.xml diff --git a/doc/translations/nb.po b/doc/translations/nb.po index 6f8e94abc8..6bdd8e4b1e 100644 --- a/doc/translations/nb.po +++ b/doc/translations/nb.po @@ -357,7 +357,7 @@ msgstr "" #: modules/gdscript/doc_classes/@GDScript.xml msgid "" "Compares two values by checking their actual contents, recursing into any " -"`Array` or `Dictionary` up to its deepest level.\n" +"[Array] or [Dictionary] up to its deepest level.\n" "This compares to [code]==[/code] in a number of ways:\n" "- For [code]null[/code], [code]int[/code], [code]float[/code], [code]String[/" "code], [code]Object[/code] and [code]RID[/code] both [code]deep_equal[/code] " @@ -3407,6 +3407,12 @@ msgstr "" #: doc/classes/@GlobalScope.xml msgid "" +"Hints that an integer property is a bitmask using the optionally named 3D " +"navigation layers." +msgstr "" + +#: doc/classes/@GlobalScope.xml +msgid "" "Hints that a string property is a path to a file. Editing it will show a " "file dialog for picking the path. The hint string can be a set of filters " "with wildcards like [code]\"*.png,*.jpg\"[/code]." @@ -30134,8 +30140,8 @@ msgstr "" #: doc/classes/InputEventJoypadButton.xml msgid "" -"Represents the pressure the user puts on the button with his finger, if the " -"controller supports it. Ranges from [code]0[/code] to [code]1[/code]." +"Represents the pressure the user puts on the button with their finger, if " +"the controller supports it. Ranges from [code]0[/code] to [code]1[/code]." msgstr "" #: doc/classes/InputEventJoypadMotion.xml @@ -36490,7 +36496,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding enters this regions navmesh from another regions navmesh " +"When pathfinding enters this region's navmesh from another regions navmesh " "the [code]enter_cost[/code] value is added to the path distance for " "determining the shortest path." msgstr "" @@ -36510,7 +36516,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding moves inside this regions navmesh the traveled distances " +"When pathfinding moves inside this region's navmesh the traveled distances " "are multiplied with [code]travel_cost[/code] for determining the shortest " "path." msgstr "" @@ -47298,6 +47304,18 @@ msgstr "" #: doc/classes/ProjectSettings.xml msgid "" +"Default naming style for scene files to infer from their root nodes. " +"Possible options are:\n" +"- [code]0[/code] (Auto): Uses the scene root name as is without changing its " +"casing.\n" +"- [code]1[/code] (PascalCase): Converts the scene root name to PascalCase " +"casing.\n" +"- [code]2[/code] (snake_case): Converts the scene root name to snake_case " +"casing." +msgstr "" + +#: doc/classes/ProjectSettings.xml +msgid "" "Search path for project-specific script templates. Godot will search for " "script templates both in the editor-specific path and in this project-" "specific path." @@ -66575,11 +66593,12 @@ msgid "This enabler will stop [Particles2D] nodes." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _process function." +msgid "This enabler will stop the parent's [method Node._process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _physics_process function." +msgid "" +"This enabler will stop the parent's [method Node._physics_process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml @@ -74596,8 +74615,8 @@ msgstr "" #: doc/classes/World.xml msgid "" -"The World's fallback_environment will be used if the World's [Environment] " -"fails or is missing." +"The World's fallback environment will be used if [member environment] fails " +"or is missing." msgstr "" #: doc/classes/World.xml diff --git a/doc/translations/ne.po b/doc/translations/ne.po index a07c777543..d7f2a9f0cb 100644 --- a/doc/translations/ne.po +++ b/doc/translations/ne.po @@ -345,7 +345,7 @@ msgstr "" #: modules/gdscript/doc_classes/@GDScript.xml msgid "" "Compares two values by checking their actual contents, recursing into any " -"`Array` or `Dictionary` up to its deepest level.\n" +"[Array] or [Dictionary] up to its deepest level.\n" "This compares to [code]==[/code] in a number of ways:\n" "- For [code]null[/code], [code]int[/code], [code]float[/code], [code]String[/" "code], [code]Object[/code] and [code]RID[/code] both [code]deep_equal[/code] " @@ -3395,6 +3395,12 @@ msgstr "" #: doc/classes/@GlobalScope.xml msgid "" +"Hints that an integer property is a bitmask using the optionally named 3D " +"navigation layers." +msgstr "" + +#: doc/classes/@GlobalScope.xml +msgid "" "Hints that a string property is a path to a file. Editing it will show a " "file dialog for picking the path. The hint string can be a set of filters " "with wildcards like [code]\"*.png,*.jpg\"[/code]." @@ -30122,8 +30128,8 @@ msgstr "" #: doc/classes/InputEventJoypadButton.xml msgid "" -"Represents the pressure the user puts on the button with his finger, if the " -"controller supports it. Ranges from [code]0[/code] to [code]1[/code]." +"Represents the pressure the user puts on the button with their finger, if " +"the controller supports it. Ranges from [code]0[/code] to [code]1[/code]." msgstr "" #: doc/classes/InputEventJoypadMotion.xml @@ -36478,7 +36484,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding enters this regions navmesh from another regions navmesh " +"When pathfinding enters this region's navmesh from another regions navmesh " "the [code]enter_cost[/code] value is added to the path distance for " "determining the shortest path." msgstr "" @@ -36498,7 +36504,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding moves inside this regions navmesh the traveled distances " +"When pathfinding moves inside this region's navmesh the traveled distances " "are multiplied with [code]travel_cost[/code] for determining the shortest " "path." msgstr "" @@ -47286,6 +47292,18 @@ msgstr "" #: doc/classes/ProjectSettings.xml msgid "" +"Default naming style for scene files to infer from their root nodes. " +"Possible options are:\n" +"- [code]0[/code] (Auto): Uses the scene root name as is without changing its " +"casing.\n" +"- [code]1[/code] (PascalCase): Converts the scene root name to PascalCase " +"casing.\n" +"- [code]2[/code] (snake_case): Converts the scene root name to snake_case " +"casing." +msgstr "" + +#: doc/classes/ProjectSettings.xml +msgid "" "Search path for project-specific script templates. Godot will search for " "script templates both in the editor-specific path and in this project-" "specific path." @@ -66563,11 +66581,12 @@ msgid "This enabler will stop [Particles2D] nodes." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _process function." +msgid "This enabler will stop the parent's [method Node._process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _physics_process function." +msgid "" +"This enabler will stop the parent's [method Node._physics_process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml @@ -74584,8 +74603,8 @@ msgstr "" #: doc/classes/World.xml msgid "" -"The World's fallback_environment will be used if the World's [Environment] " -"fails or is missing." +"The World's fallback environment will be used if [member environment] fails " +"or is missing." msgstr "" #: doc/classes/World.xml diff --git a/doc/translations/nl.po b/doc/translations/nl.po index 54f5a9fd07..71605513cd 100644 --- a/doc/translations/nl.po +++ b/doc/translations/nl.po @@ -406,7 +406,7 @@ msgstr "" #: modules/gdscript/doc_classes/@GDScript.xml msgid "" "Compares two values by checking their actual contents, recursing into any " -"`Array` or `Dictionary` up to its deepest level.\n" +"[Array] or [Dictionary] up to its deepest level.\n" "This compares to [code]==[/code] in a number of ways:\n" "- For [code]null[/code], [code]int[/code], [code]float[/code], [code]String[/" "code], [code]Object[/code] and [code]RID[/code] both [code]deep_equal[/code] " @@ -3464,6 +3464,12 @@ msgstr "" #: doc/classes/@GlobalScope.xml msgid "" +"Hints that an integer property is a bitmask using the optionally named 3D " +"navigation layers." +msgstr "" + +#: doc/classes/@GlobalScope.xml +msgid "" "Hints that a string property is a path to a file. Editing it will show a " "file dialog for picking the path. The hint string can be a set of filters " "with wildcards like [code]\"*.png,*.jpg\"[/code]." @@ -30194,8 +30200,8 @@ msgstr "" #: doc/classes/InputEventJoypadButton.xml msgid "" -"Represents the pressure the user puts on the button with his finger, if the " -"controller supports it. Ranges from [code]0[/code] to [code]1[/code]." +"Represents the pressure the user puts on the button with their finger, if " +"the controller supports it. Ranges from [code]0[/code] to [code]1[/code]." msgstr "" #: doc/classes/InputEventJoypadMotion.xml @@ -36550,7 +36556,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding enters this regions navmesh from another regions navmesh " +"When pathfinding enters this region's navmesh from another regions navmesh " "the [code]enter_cost[/code] value is added to the path distance for " "determining the shortest path." msgstr "" @@ -36570,7 +36576,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding moves inside this regions navmesh the traveled distances " +"When pathfinding moves inside this region's navmesh the traveled distances " "are multiplied with [code]travel_cost[/code] for determining the shortest " "path." msgstr "" @@ -47358,6 +47364,18 @@ msgstr "" #: doc/classes/ProjectSettings.xml msgid "" +"Default naming style for scene files to infer from their root nodes. " +"Possible options are:\n" +"- [code]0[/code] (Auto): Uses the scene root name as is without changing its " +"casing.\n" +"- [code]1[/code] (PascalCase): Converts the scene root name to PascalCase " +"casing.\n" +"- [code]2[/code] (snake_case): Converts the scene root name to snake_case " +"casing." +msgstr "" + +#: doc/classes/ProjectSettings.xml +msgid "" "Search path for project-specific script templates. Godot will search for " "script templates both in the editor-specific path and in this project-" "specific path." @@ -66636,11 +66654,12 @@ msgid "This enabler will stop [Particles2D] nodes." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _process function." +msgid "This enabler will stop the parent's [method Node._process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _physics_process function." +msgid "" +"This enabler will stop the parent's [method Node._physics_process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml @@ -74657,8 +74676,8 @@ msgstr "" #: doc/classes/World.xml msgid "" -"The World's fallback_environment will be used if the World's [Environment] " -"fails or is missing." +"The World's fallback environment will be used if [member environment] fails " +"or is missing." msgstr "" #: doc/classes/World.xml diff --git a/doc/translations/pl.po b/doc/translations/pl.po index ca0992bc0e..6e5324af99 100644 --- a/doc/translations/pl.po +++ b/doc/translations/pl.po @@ -500,9 +500,10 @@ msgstr "" "[/codeblock]" #: modules/gdscript/doc_classes/@GDScript.xml +#, fuzzy msgid "" "Compares two values by checking their actual contents, recursing into any " -"`Array` or `Dictionary` up to its deepest level.\n" +"[Array] or [Dictionary] up to its deepest level.\n" "This compares to [code]==[/code] in a number of ways:\n" "- For [code]null[/code], [code]int[/code], [code]float[/code], [code]String[/" "code], [code]Object[/code] and [code]RID[/code] both [code]deep_equal[/code] " @@ -3891,6 +3892,12 @@ msgstr "" #: doc/classes/@GlobalScope.xml msgid "" +"Hints that an integer property is a bitmask using the optionally named 3D " +"navigation layers." +msgstr "" + +#: doc/classes/@GlobalScope.xml +msgid "" "Hints that a string property is a path to a file. Editing it will show a " "file dialog for picking the path. The hint string can be a set of filters " "with wildcards like [code]\"*.png,*.jpg\"[/code]." @@ -30702,8 +30709,8 @@ msgstr "" #: doc/classes/InputEventJoypadButton.xml msgid "" -"Represents the pressure the user puts on the button with his finger, if the " -"controller supports it. Ranges from [code]0[/code] to [code]1[/code]." +"Represents the pressure the user puts on the button with their finger, if " +"the controller supports it. Ranges from [code]0[/code] to [code]1[/code]." msgstr "" #: doc/classes/InputEventJoypadMotion.xml @@ -37136,7 +37143,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding enters this regions navmesh from another regions navmesh " +"When pathfinding enters this region's navmesh from another regions navmesh " "the [code]enter_cost[/code] value is added to the path distance for " "determining the shortest path." msgstr "" @@ -37157,7 +37164,7 @@ msgstr "Singleton [NavigationMeshGenerator]." #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding moves inside this regions navmesh the traveled distances " +"When pathfinding moves inside this region's navmesh the traveled distances " "are multiplied with [code]travel_cost[/code] for determining the shortest " "path." msgstr "" @@ -48003,6 +48010,18 @@ msgstr "" #: doc/classes/ProjectSettings.xml msgid "" +"Default naming style for scene files to infer from their root nodes. " +"Possible options are:\n" +"- [code]0[/code] (Auto): Uses the scene root name as is without changing its " +"casing.\n" +"- [code]1[/code] (PascalCase): Converts the scene root name to PascalCase " +"casing.\n" +"- [code]2[/code] (snake_case): Converts the scene root name to snake_case " +"casing." +msgstr "" + +#: doc/classes/ProjectSettings.xml +msgid "" "Search path for project-specific script templates. Godot will search for " "script templates both in the editor-specific path and in this project-" "specific path." @@ -67346,11 +67365,12 @@ msgid "This enabler will stop [Particles2D] nodes." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _process function." +msgid "This enabler will stop the parent's [method Node._process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _physics_process function." +msgid "" +"This enabler will stop the parent's [method Node._physics_process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml @@ -75403,8 +75423,8 @@ msgstr "" #: doc/classes/World.xml msgid "" -"The World's fallback_environment will be used if the World's [Environment] " -"fails or is missing." +"The World's fallback environment will be used if [member environment] fails " +"or is missing." msgstr "" #: doc/classes/World.xml diff --git a/doc/translations/pt.po b/doc/translations/pt.po index 159f5eab13..6b214ae81a 100644 --- a/doc/translations/pt.po +++ b/doc/translations/pt.po @@ -495,7 +495,7 @@ msgstr "" #: modules/gdscript/doc_classes/@GDScript.xml msgid "" "Compares two values by checking their actual contents, recursing into any " -"`Array` or `Dictionary` up to its deepest level.\n" +"[Array] or [Dictionary] up to its deepest level.\n" "This compares to [code]==[/code] in a number of ways:\n" "- For [code]null[/code], [code]int[/code], [code]float[/code], [code]String[/" "code], [code]Object[/code] and [code]RID[/code] both [code]deep_equal[/code] " @@ -4188,6 +4188,12 @@ msgstr "" #: doc/classes/@GlobalScope.xml msgid "" +"Hints that an integer property is a bitmask using the optionally named 3D " +"navigation layers." +msgstr "" + +#: doc/classes/@GlobalScope.xml +msgid "" "Hints that a string property is a path to a file. Editing it will show a " "file dialog for picking the path. The hint string can be a set of filters " "with wildcards like [code]\"*.png,*.jpg\"[/code]." @@ -31008,8 +31014,8 @@ msgstr "" #: doc/classes/InputEventJoypadButton.xml msgid "" -"Represents the pressure the user puts on the button with his finger, if the " -"controller supports it. Ranges from [code]0[/code] to [code]1[/code]." +"Represents the pressure the user puts on the button with their finger, if " +"the controller supports it. Ranges from [code]0[/code] to [code]1[/code]." msgstr "" #: doc/classes/InputEventJoypadMotion.xml @@ -37409,7 +37415,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding enters this regions navmesh from another regions navmesh " +"When pathfinding enters this region's navmesh from another regions navmesh " "the [code]enter_cost[/code] value is added to the path distance for " "determining the shortest path." msgstr "" @@ -37429,7 +37435,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding moves inside this regions navmesh the traveled distances " +"When pathfinding moves inside this region's navmesh the traveled distances " "are multiplied with [code]travel_cost[/code] for determining the shortest " "path." msgstr "" @@ -48233,6 +48239,18 @@ msgstr "" #: doc/classes/ProjectSettings.xml msgid "" +"Default naming style for scene files to infer from their root nodes. " +"Possible options are:\n" +"- [code]0[/code] (Auto): Uses the scene root name as is without changing its " +"casing.\n" +"- [code]1[/code] (PascalCase): Converts the scene root name to PascalCase " +"casing.\n" +"- [code]2[/code] (snake_case): Converts the scene root name to snake_case " +"casing." +msgstr "" + +#: doc/classes/ProjectSettings.xml +msgid "" "Search path for project-specific script templates. Godot will search for " "script templates both in the editor-specific path and in this project-" "specific path." @@ -67560,11 +67578,12 @@ msgid "This enabler will stop [Particles2D] nodes." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _process function." +msgid "This enabler will stop the parent's [method Node._process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _physics_process function." +msgid "" +"This enabler will stop the parent's [method Node._physics_process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml @@ -75589,8 +75608,8 @@ msgstr "" #: doc/classes/World.xml msgid "" -"The World's fallback_environment will be used if the World's [Environment] " -"fails or is missing." +"The World's fallback environment will be used if [member environment] fails " +"or is missing." msgstr "" #: doc/classes/World.xml diff --git a/doc/translations/pt_BR.po b/doc/translations/pt_BR.po index 012737c532..16779b76ff 100644 --- a/doc/translations/pt_BR.po +++ b/doc/translations/pt_BR.po @@ -525,9 +525,10 @@ msgstr "" "[/codeblock]" #: modules/gdscript/doc_classes/@GDScript.xml +#, fuzzy msgid "" "Compares two values by checking their actual contents, recursing into any " -"`Array` or `Dictionary` up to its deepest level.\n" +"[Array] or [Dictionary] up to its deepest level.\n" "This compares to [code]==[/code] in a number of ways:\n" "- For [code]null[/code], [code]int[/code], [code]float[/code], [code]String[/" "code], [code]Object[/code] and [code]RID[/code] both [code]deep_equal[/code] " @@ -4381,6 +4382,15 @@ msgstr "" "3D opcionalmente nomeadas." #: doc/classes/@GlobalScope.xml +#, fuzzy +msgid "" +"Hints that an integer property is a bitmask using the optionally named 3D " +"navigation layers." +msgstr "" +"Indica que uma propriedade integer é uma bitmask usando as camadas de " +"renderização 2D nomeadas opcionalmente." + +#: doc/classes/@GlobalScope.xml msgid "" "Hints that a string property is a path to a file. Editing it will show a " "file dialog for picking the path. The hint string can be a set of filters " @@ -31342,8 +31352,8 @@ msgstr "" #: doc/classes/InputEventJoypadButton.xml msgid "" -"Represents the pressure the user puts on the button with his finger, if the " -"controller supports it. Ranges from [code]0[/code] to [code]1[/code]." +"Represents the pressure the user puts on the button with their finger, if " +"the controller supports it. Ranges from [code]0[/code] to [code]1[/code]." msgstr "" #: doc/classes/InputEventJoypadMotion.xml @@ -37776,7 +37786,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding enters this regions navmesh from another regions navmesh " +"When pathfinding enters this region's navmesh from another regions navmesh " "the [code]enter_cost[/code] value is added to the path distance for " "determining the shortest path." msgstr "" @@ -37797,7 +37807,7 @@ msgstr "O singleton [NavigationMeshGenerator]." #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding moves inside this regions navmesh the traveled distances " +"When pathfinding moves inside this region's navmesh the traveled distances " "are multiplied with [code]travel_cost[/code] for determining the shortest " "path." msgstr "" @@ -48650,6 +48660,18 @@ msgstr "" #: doc/classes/ProjectSettings.xml msgid "" +"Default naming style for scene files to infer from their root nodes. " +"Possible options are:\n" +"- [code]0[/code] (Auto): Uses the scene root name as is without changing its " +"casing.\n" +"- [code]1[/code] (PascalCase): Converts the scene root name to PascalCase " +"casing.\n" +"- [code]2[/code] (snake_case): Converts the scene root name to snake_case " +"casing." +msgstr "" + +#: doc/classes/ProjectSettings.xml +msgid "" "Search path for project-specific script templates. Godot will search for " "script templates both in the editor-specific path and in this project-" "specific path." @@ -68034,11 +68056,12 @@ msgid "This enabler will stop [Particles2D] nodes." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _process function." +msgid "This enabler will stop the parent's [method Node._process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _physics_process function." +msgid "" +"This enabler will stop the parent's [method Node._physics_process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml @@ -76096,8 +76119,8 @@ msgstr "" #: doc/classes/World.xml msgid "" -"The World's fallback_environment will be used if the World's [Environment] " -"fails or is missing." +"The World's fallback environment will be used if [member environment] fails " +"or is missing." msgstr "" #: doc/classes/World.xml diff --git a/doc/translations/ro.po b/doc/translations/ro.po index 7e2f0e03dc..dbc5017a08 100644 --- a/doc/translations/ro.po +++ b/doc/translations/ro.po @@ -373,7 +373,7 @@ msgstr "" #: modules/gdscript/doc_classes/@GDScript.xml msgid "" "Compares two values by checking their actual contents, recursing into any " -"`Array` or `Dictionary` up to its deepest level.\n" +"[Array] or [Dictionary] up to its deepest level.\n" "This compares to [code]==[/code] in a number of ways:\n" "- For [code]null[/code], [code]int[/code], [code]float[/code], [code]String[/" "code], [code]Object[/code] and [code]RID[/code] both [code]deep_equal[/code] " @@ -3427,6 +3427,12 @@ msgstr "" #: doc/classes/@GlobalScope.xml msgid "" +"Hints that an integer property is a bitmask using the optionally named 3D " +"navigation layers." +msgstr "" + +#: doc/classes/@GlobalScope.xml +msgid "" "Hints that a string property is a path to a file. Editing it will show a " "file dialog for picking the path. The hint string can be a set of filters " "with wildcards like [code]\"*.png,*.jpg\"[/code]." @@ -30157,8 +30163,8 @@ msgstr "" #: doc/classes/InputEventJoypadButton.xml msgid "" -"Represents the pressure the user puts on the button with his finger, if the " -"controller supports it. Ranges from [code]0[/code] to [code]1[/code]." +"Represents the pressure the user puts on the button with their finger, if " +"the controller supports it. Ranges from [code]0[/code] to [code]1[/code]." msgstr "" #: doc/classes/InputEventJoypadMotion.xml @@ -36513,7 +36519,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding enters this regions navmesh from another regions navmesh " +"When pathfinding enters this region's navmesh from another regions navmesh " "the [code]enter_cost[/code] value is added to the path distance for " "determining the shortest path." msgstr "" @@ -36533,7 +36539,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding moves inside this regions navmesh the traveled distances " +"When pathfinding moves inside this region's navmesh the traveled distances " "are multiplied with [code]travel_cost[/code] for determining the shortest " "path." msgstr "" @@ -47322,6 +47328,18 @@ msgstr "" #: doc/classes/ProjectSettings.xml msgid "" +"Default naming style for scene files to infer from their root nodes. " +"Possible options are:\n" +"- [code]0[/code] (Auto): Uses the scene root name as is without changing its " +"casing.\n" +"- [code]1[/code] (PascalCase): Converts the scene root name to PascalCase " +"casing.\n" +"- [code]2[/code] (snake_case): Converts the scene root name to snake_case " +"casing." +msgstr "" + +#: doc/classes/ProjectSettings.xml +msgid "" "Search path for project-specific script templates. Godot will search for " "script templates both in the editor-specific path and in this project-" "specific path." @@ -66599,11 +66617,12 @@ msgid "This enabler will stop [Particles2D] nodes." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _process function." +msgid "This enabler will stop the parent's [method Node._process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _physics_process function." +msgid "" +"This enabler will stop the parent's [method Node._physics_process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml @@ -74620,8 +74639,8 @@ msgstr "" #: doc/classes/World.xml msgid "" -"The World's fallback_environment will be used if the World's [Environment] " -"fails or is missing." +"The World's fallback environment will be used if [member environment] fails " +"or is missing." msgstr "" #: doc/classes/World.xml diff --git a/doc/translations/ru.po b/doc/translations/ru.po index b398803cf7..ec2940636f 100644 --- a/doc/translations/ru.po +++ b/doc/translations/ru.po @@ -533,9 +533,10 @@ msgstr "" "[/codeblock]" #: modules/gdscript/doc_classes/@GDScript.xml +#, fuzzy msgid "" "Compares two values by checking their actual contents, recursing into any " -"`Array` or `Dictionary` up to its deepest level.\n" +"[Array] or [Dictionary] up to its deepest level.\n" "This compares to [code]==[/code] in a number of ways:\n" "- For [code]null[/code], [code]int[/code], [code]float[/code], [code]String[/" "code], [code]Object[/code] and [code]RID[/code] both [code]deep_equal[/code] " @@ -4486,6 +4487,15 @@ msgstr "" "иÑпользованием (опционально) именованных 3D-Ñлоев физики." #: doc/classes/@GlobalScope.xml +#, fuzzy +msgid "" +"Hints that an integer property is a bitmask using the optionally named 3D " +"navigation layers." +msgstr "" +"Указывает, что целочиÑленное ÑвойÑтво ÑвлÑетÑÑ Ð±Ð¸Ñ‚Ð¾Ð²Ð¾Ð¹ маÑкой Ñ " +"иÑпользованием (опционально) именованных 2D-Ñлоев рендеринга." + +#: doc/classes/@GlobalScope.xml msgid "" "Hints that a string property is a path to a file. Editing it will show a " "file dialog for picking the path. The hint string can be a set of filters " @@ -31984,8 +31994,8 @@ msgstr "" #: doc/classes/InputEventJoypadButton.xml msgid "" -"Represents the pressure the user puts on the button with his finger, if the " -"controller supports it. Ranges from [code]0[/code] to [code]1[/code]." +"Represents the pressure the user puts on the button with their finger, if " +"the controller supports it. Ranges from [code]0[/code] to [code]1[/code]." msgstr "" #: doc/classes/InputEventJoypadMotion.xml @@ -38437,7 +38447,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding enters this regions navmesh from another regions navmesh " +"When pathfinding enters this region's navmesh from another regions navmesh " "the [code]enter_cost[/code] value is added to the path distance for " "determining the shortest path." msgstr "" @@ -38458,7 +38468,7 @@ msgstr "Синглтон [NavigationMeshGenerator]." #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding moves inside this regions navmesh the traveled distances " +"When pathfinding moves inside this region's navmesh the traveled distances " "are multiplied with [code]travel_cost[/code] for determining the shortest " "path." msgstr "" @@ -49443,6 +49453,18 @@ msgstr "" #: doc/classes/ProjectSettings.xml msgid "" +"Default naming style for scene files to infer from their root nodes. " +"Possible options are:\n" +"- [code]0[/code] (Auto): Uses the scene root name as is without changing its " +"casing.\n" +"- [code]1[/code] (PascalCase): Converts the scene root name to PascalCase " +"casing.\n" +"- [code]2[/code] (snake_case): Converts the scene root name to snake_case " +"casing." +msgstr "" + +#: doc/classes/ProjectSettings.xml +msgid "" "Search path for project-specific script templates. Godot will search for " "script templates both in the editor-specific path and in this project-" "specific path." @@ -69042,11 +69064,12 @@ msgid "This enabler will stop [Particles2D] nodes." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _process function." +msgid "This enabler will stop the parent's [method Node._process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _physics_process function." +msgid "" +"This enabler will stop the parent's [method Node._physics_process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml @@ -77122,8 +77145,8 @@ msgstr "[Environment] мира." #: doc/classes/World.xml msgid "" -"The World's fallback_environment will be used if the World's [Environment] " -"fails or is missing." +"The World's fallback environment will be used if [member environment] fails " +"or is missing." msgstr "" #: doc/classes/World.xml diff --git a/doc/translations/sk.po b/doc/translations/sk.po index 9eae2237dd..20caeea6c2 100644 --- a/doc/translations/sk.po +++ b/doc/translations/sk.po @@ -348,7 +348,7 @@ msgstr "" #: modules/gdscript/doc_classes/@GDScript.xml msgid "" "Compares two values by checking their actual contents, recursing into any " -"`Array` or `Dictionary` up to its deepest level.\n" +"[Array] or [Dictionary] up to its deepest level.\n" "This compares to [code]==[/code] in a number of ways:\n" "- For [code]null[/code], [code]int[/code], [code]float[/code], [code]String[/" "code], [code]Object[/code] and [code]RID[/code] both [code]deep_equal[/code] " @@ -3398,6 +3398,12 @@ msgstr "" #: doc/classes/@GlobalScope.xml msgid "" +"Hints that an integer property is a bitmask using the optionally named 3D " +"navigation layers." +msgstr "" + +#: doc/classes/@GlobalScope.xml +msgid "" "Hints that a string property is a path to a file. Editing it will show a " "file dialog for picking the path. The hint string can be a set of filters " "with wildcards like [code]\"*.png,*.jpg\"[/code]." @@ -30128,8 +30134,8 @@ msgstr "" #: doc/classes/InputEventJoypadButton.xml msgid "" -"Represents the pressure the user puts on the button with his finger, if the " -"controller supports it. Ranges from [code]0[/code] to [code]1[/code]." +"Represents the pressure the user puts on the button with their finger, if " +"the controller supports it. Ranges from [code]0[/code] to [code]1[/code]." msgstr "" #: doc/classes/InputEventJoypadMotion.xml @@ -36484,7 +36490,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding enters this regions navmesh from another regions navmesh " +"When pathfinding enters this region's navmesh from another regions navmesh " "the [code]enter_cost[/code] value is added to the path distance for " "determining the shortest path." msgstr "" @@ -36504,7 +36510,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding moves inside this regions navmesh the traveled distances " +"When pathfinding moves inside this region's navmesh the traveled distances " "are multiplied with [code]travel_cost[/code] for determining the shortest " "path." msgstr "" @@ -47292,6 +47298,18 @@ msgstr "" #: doc/classes/ProjectSettings.xml msgid "" +"Default naming style for scene files to infer from their root nodes. " +"Possible options are:\n" +"- [code]0[/code] (Auto): Uses the scene root name as is without changing its " +"casing.\n" +"- [code]1[/code] (PascalCase): Converts the scene root name to PascalCase " +"casing.\n" +"- [code]2[/code] (snake_case): Converts the scene root name to snake_case " +"casing." +msgstr "" + +#: doc/classes/ProjectSettings.xml +msgid "" "Search path for project-specific script templates. Godot will search for " "script templates both in the editor-specific path and in this project-" "specific path." @@ -66569,11 +66587,12 @@ msgid "This enabler will stop [Particles2D] nodes." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _process function." +msgid "This enabler will stop the parent's [method Node._process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _physics_process function." +msgid "" +"This enabler will stop the parent's [method Node._physics_process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml @@ -74590,8 +74609,8 @@ msgstr "" #: doc/classes/World.xml msgid "" -"The World's fallback_environment will be used if the World's [Environment] " -"fails or is missing." +"The World's fallback environment will be used if [member environment] fails " +"or is missing." msgstr "" #: doc/classes/World.xml diff --git a/doc/translations/sr_Cyrl.po b/doc/translations/sr_Cyrl.po index cd2fdbb4f6..4d48a80e07 100644 --- a/doc/translations/sr_Cyrl.po +++ b/doc/translations/sr_Cyrl.po @@ -359,7 +359,7 @@ msgstr "" #: modules/gdscript/doc_classes/@GDScript.xml msgid "" "Compares two values by checking their actual contents, recursing into any " -"`Array` or `Dictionary` up to its deepest level.\n" +"[Array] or [Dictionary] up to its deepest level.\n" "This compares to [code]==[/code] in a number of ways:\n" "- For [code]null[/code], [code]int[/code], [code]float[/code], [code]String[/" "code], [code]Object[/code] and [code]RID[/code] both [code]deep_equal[/code] " @@ -3409,6 +3409,12 @@ msgstr "" #: doc/classes/@GlobalScope.xml msgid "" +"Hints that an integer property is a bitmask using the optionally named 3D " +"navigation layers." +msgstr "" + +#: doc/classes/@GlobalScope.xml +msgid "" "Hints that a string property is a path to a file. Editing it will show a " "file dialog for picking the path. The hint string can be a set of filters " "with wildcards like [code]\"*.png,*.jpg\"[/code]." @@ -30139,8 +30145,8 @@ msgstr "" #: doc/classes/InputEventJoypadButton.xml msgid "" -"Represents the pressure the user puts on the button with his finger, if the " -"controller supports it. Ranges from [code]0[/code] to [code]1[/code]." +"Represents the pressure the user puts on the button with their finger, if " +"the controller supports it. Ranges from [code]0[/code] to [code]1[/code]." msgstr "" #: doc/classes/InputEventJoypadMotion.xml @@ -36495,7 +36501,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding enters this regions navmesh from another regions navmesh " +"When pathfinding enters this region's navmesh from another regions navmesh " "the [code]enter_cost[/code] value is added to the path distance for " "determining the shortest path." msgstr "" @@ -36515,7 +36521,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding moves inside this regions navmesh the traveled distances " +"When pathfinding moves inside this region's navmesh the traveled distances " "are multiplied with [code]travel_cost[/code] for determining the shortest " "path." msgstr "" @@ -47303,6 +47309,18 @@ msgstr "" #: doc/classes/ProjectSettings.xml msgid "" +"Default naming style for scene files to infer from their root nodes. " +"Possible options are:\n" +"- [code]0[/code] (Auto): Uses the scene root name as is without changing its " +"casing.\n" +"- [code]1[/code] (PascalCase): Converts the scene root name to PascalCase " +"casing.\n" +"- [code]2[/code] (snake_case): Converts the scene root name to snake_case " +"casing." +msgstr "" + +#: doc/classes/ProjectSettings.xml +msgid "" "Search path for project-specific script templates. Godot will search for " "script templates both in the editor-specific path and in this project-" "specific path." @@ -66580,11 +66598,12 @@ msgid "This enabler will stop [Particles2D] nodes." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _process function." +msgid "This enabler will stop the parent's [method Node._process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _physics_process function." +msgid "" +"This enabler will stop the parent's [method Node._physics_process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml @@ -74601,8 +74620,8 @@ msgstr "" #: doc/classes/World.xml msgid "" -"The World's fallback_environment will be used if the World's [Environment] " -"fails or is missing." +"The World's fallback environment will be used if [member environment] fails " +"or is missing." msgstr "" #: doc/classes/World.xml diff --git a/doc/translations/sv.po b/doc/translations/sv.po index 9f98544e8c..4836ca862f 100644 --- a/doc/translations/sv.po +++ b/doc/translations/sv.po @@ -348,7 +348,7 @@ msgstr "" #: modules/gdscript/doc_classes/@GDScript.xml msgid "" "Compares two values by checking their actual contents, recursing into any " -"`Array` or `Dictionary` up to its deepest level.\n" +"[Array] or [Dictionary] up to its deepest level.\n" "This compares to [code]==[/code] in a number of ways:\n" "- For [code]null[/code], [code]int[/code], [code]float[/code], [code]String[/" "code], [code]Object[/code] and [code]RID[/code] both [code]deep_equal[/code] " @@ -3398,6 +3398,12 @@ msgstr "" #: doc/classes/@GlobalScope.xml msgid "" +"Hints that an integer property is a bitmask using the optionally named 3D " +"navigation layers." +msgstr "" + +#: doc/classes/@GlobalScope.xml +msgid "" "Hints that a string property is a path to a file. Editing it will show a " "file dialog for picking the path. The hint string can be a set of filters " "with wildcards like [code]\"*.png,*.jpg\"[/code]." @@ -30125,8 +30131,8 @@ msgstr "" #: doc/classes/InputEventJoypadButton.xml msgid "" -"Represents the pressure the user puts on the button with his finger, if the " -"controller supports it. Ranges from [code]0[/code] to [code]1[/code]." +"Represents the pressure the user puts on the button with their finger, if " +"the controller supports it. Ranges from [code]0[/code] to [code]1[/code]." msgstr "" #: doc/classes/InputEventJoypadMotion.xml @@ -36481,7 +36487,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding enters this regions navmesh from another regions navmesh " +"When pathfinding enters this region's navmesh from another regions navmesh " "the [code]enter_cost[/code] value is added to the path distance for " "determining the shortest path." msgstr "" @@ -36501,7 +36507,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding moves inside this regions navmesh the traveled distances " +"When pathfinding moves inside this region's navmesh the traveled distances " "are multiplied with [code]travel_cost[/code] for determining the shortest " "path." msgstr "" @@ -47289,6 +47295,18 @@ msgstr "" #: doc/classes/ProjectSettings.xml msgid "" +"Default naming style for scene files to infer from their root nodes. " +"Possible options are:\n" +"- [code]0[/code] (Auto): Uses the scene root name as is without changing its " +"casing.\n" +"- [code]1[/code] (PascalCase): Converts the scene root name to PascalCase " +"casing.\n" +"- [code]2[/code] (snake_case): Converts the scene root name to snake_case " +"casing." +msgstr "" + +#: doc/classes/ProjectSettings.xml +msgid "" "Search path for project-specific script templates. Godot will search for " "script templates both in the editor-specific path and in this project-" "specific path." @@ -66566,11 +66584,12 @@ msgid "This enabler will stop [Particles2D] nodes." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _process function." +msgid "This enabler will stop the parent's [method Node._process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _physics_process function." +msgid "" +"This enabler will stop the parent's [method Node._physics_process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml @@ -74587,8 +74606,8 @@ msgstr "" #: doc/classes/World.xml msgid "" -"The World's fallback_environment will be used if the World's [Environment] " -"fails or is missing." +"The World's fallback environment will be used if [member environment] fails " +"or is missing." msgstr "" #: doc/classes/World.xml diff --git a/doc/translations/th.po b/doc/translations/th.po index c70b6a3425..0bdffafffa 100644 --- a/doc/translations/th.po +++ b/doc/translations/th.po @@ -426,7 +426,7 @@ msgstr "" #: modules/gdscript/doc_classes/@GDScript.xml msgid "" "Compares two values by checking their actual contents, recursing into any " -"`Array` or `Dictionary` up to its deepest level.\n" +"[Array] or [Dictionary] up to its deepest level.\n" "This compares to [code]==[/code] in a number of ways:\n" "- For [code]null[/code], [code]int[/code], [code]float[/code], [code]String[/" "code], [code]Object[/code] and [code]RID[/code] both [code]deep_equal[/code] " @@ -3492,6 +3492,12 @@ msgstr "" #: doc/classes/@GlobalScope.xml msgid "" +"Hints that an integer property is a bitmask using the optionally named 3D " +"navigation layers." +msgstr "" + +#: doc/classes/@GlobalScope.xml +msgid "" "Hints that a string property is a path to a file. Editing it will show a " "file dialog for picking the path. The hint string can be a set of filters " "with wildcards like [code]\"*.png,*.jpg\"[/code]." @@ -30282,8 +30288,8 @@ msgstr "" #: doc/classes/InputEventJoypadButton.xml msgid "" -"Represents the pressure the user puts on the button with his finger, if the " -"controller supports it. Ranges from [code]0[/code] to [code]1[/code]." +"Represents the pressure the user puts on the button with their finger, if " +"the controller supports it. Ranges from [code]0[/code] to [code]1[/code]." msgstr "" #: doc/classes/InputEventJoypadMotion.xml @@ -36669,7 +36675,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding enters this regions navmesh from another regions navmesh " +"When pathfinding enters this region's navmesh from another regions navmesh " "the [code]enter_cost[/code] value is added to the path distance for " "determining the shortest path." msgstr "" @@ -36689,7 +36695,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding moves inside this regions navmesh the traveled distances " +"When pathfinding moves inside this region's navmesh the traveled distances " "are multiplied with [code]travel_cost[/code] for determining the shortest " "path." msgstr "" @@ -47541,6 +47547,18 @@ msgstr "" #: doc/classes/ProjectSettings.xml msgid "" +"Default naming style for scene files to infer from their root nodes. " +"Possible options are:\n" +"- [code]0[/code] (Auto): Uses the scene root name as is without changing its " +"casing.\n" +"- [code]1[/code] (PascalCase): Converts the scene root name to PascalCase " +"casing.\n" +"- [code]2[/code] (snake_case): Converts the scene root name to snake_case " +"casing." +msgstr "" + +#: doc/classes/ProjectSettings.xml +msgid "" "Search path for project-specific script templates. Godot will search for " "script templates both in the editor-specific path and in this project-" "specific path." @@ -66846,11 +66864,12 @@ msgid "This enabler will stop [Particles2D] nodes." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _process function." +msgid "This enabler will stop the parent's [method Node._process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _physics_process function." +msgid "" +"This enabler will stop the parent's [method Node._physics_process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml @@ -74874,8 +74893,8 @@ msgstr "" #: doc/classes/World.xml msgid "" -"The World's fallback_environment will be used if the World's [Environment] " -"fails or is missing." +"The World's fallback environment will be used if [member environment] fails " +"or is missing." msgstr "" #: doc/classes/World.xml diff --git a/doc/translations/tl.po b/doc/translations/tl.po index c07118cb6b..5ced19938d 100644 --- a/doc/translations/tl.po +++ b/doc/translations/tl.po @@ -387,7 +387,7 @@ msgstr "" #: modules/gdscript/doc_classes/@GDScript.xml msgid "" "Compares two values by checking their actual contents, recursing into any " -"`Array` or `Dictionary` up to its deepest level.\n" +"[Array] or [Dictionary] up to its deepest level.\n" "This compares to [code]==[/code] in a number of ways:\n" "- For [code]null[/code], [code]int[/code], [code]float[/code], [code]String[/" "code], [code]Object[/code] and [code]RID[/code] both [code]deep_equal[/code] " @@ -3474,6 +3474,12 @@ msgstr "" #: doc/classes/@GlobalScope.xml msgid "" +"Hints that an integer property is a bitmask using the optionally named 3D " +"navigation layers." +msgstr "" + +#: doc/classes/@GlobalScope.xml +msgid "" "Hints that a string property is a path to a file. Editing it will show a " "file dialog for picking the path. The hint string can be a set of filters " "with wildcards like [code]\"*.png,*.jpg\"[/code]." @@ -30214,8 +30220,8 @@ msgstr "" #: doc/classes/InputEventJoypadButton.xml msgid "" -"Represents the pressure the user puts on the button with his finger, if the " -"controller supports it. Ranges from [code]0[/code] to [code]1[/code]." +"Represents the pressure the user puts on the button with their finger, if " +"the controller supports it. Ranges from [code]0[/code] to [code]1[/code]." msgstr "" #: doc/classes/InputEventJoypadMotion.xml @@ -36594,7 +36600,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding enters this regions navmesh from another regions navmesh " +"When pathfinding enters this region's navmesh from another regions navmesh " "the [code]enter_cost[/code] value is added to the path distance for " "determining the shortest path." msgstr "" @@ -36614,7 +36620,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding moves inside this regions navmesh the traveled distances " +"When pathfinding moves inside this region's navmesh the traveled distances " "are multiplied with [code]travel_cost[/code] for determining the shortest " "path." msgstr "" @@ -47405,6 +47411,18 @@ msgstr "" #: doc/classes/ProjectSettings.xml msgid "" +"Default naming style for scene files to infer from their root nodes. " +"Possible options are:\n" +"- [code]0[/code] (Auto): Uses the scene root name as is without changing its " +"casing.\n" +"- [code]1[/code] (PascalCase): Converts the scene root name to PascalCase " +"casing.\n" +"- [code]2[/code] (snake_case): Converts the scene root name to snake_case " +"casing." +msgstr "" + +#: doc/classes/ProjectSettings.xml +msgid "" "Search path for project-specific script templates. Godot will search for " "script templates both in the editor-specific path and in this project-" "specific path." @@ -66691,11 +66709,12 @@ msgid "This enabler will stop [Particles2D] nodes." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _process function." +msgid "This enabler will stop the parent's [method Node._process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _physics_process function." +msgid "" +"This enabler will stop the parent's [method Node._physics_process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml @@ -74712,8 +74731,8 @@ msgstr "" #: doc/classes/World.xml msgid "" -"The World's fallback_environment will be used if the World's [Environment] " -"fails or is missing." +"The World's fallback environment will be used if [member environment] fails " +"or is missing." msgstr "" #: doc/classes/World.xml diff --git a/doc/translations/tr.po b/doc/translations/tr.po index 51a01cdf40..d7cc5bd8df 100644 --- a/doc/translations/tr.po +++ b/doc/translations/tr.po @@ -498,7 +498,7 @@ msgstr "" #: modules/gdscript/doc_classes/@GDScript.xml msgid "" "Compares two values by checking their actual contents, recursing into any " -"`Array` or `Dictionary` up to its deepest level.\n" +"[Array] or [Dictionary] up to its deepest level.\n" "This compares to [code]==[/code] in a number of ways:\n" "- For [code]null[/code], [code]int[/code], [code]float[/code], [code]String[/" "code], [code]Object[/code] and [code]RID[/code] both [code]deep_equal[/code] " @@ -4176,6 +4176,12 @@ msgstr "" #: doc/classes/@GlobalScope.xml msgid "" +"Hints that an integer property is a bitmask using the optionally named 3D " +"navigation layers." +msgstr "" + +#: doc/classes/@GlobalScope.xml +msgid "" "Hints that a string property is a path to a file. Editing it will show a " "file dialog for picking the path. The hint string can be a set of filters " "with wildcards like [code]\"*.png,*.jpg\"[/code]." @@ -30962,8 +30968,8 @@ msgstr "" #: doc/classes/InputEventJoypadButton.xml msgid "" -"Represents the pressure the user puts on the button with his finger, if the " -"controller supports it. Ranges from [code]0[/code] to [code]1[/code]." +"Represents the pressure the user puts on the button with their finger, if " +"the controller supports it. Ranges from [code]0[/code] to [code]1[/code]." msgstr "" #: doc/classes/InputEventJoypadMotion.xml @@ -37370,7 +37376,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding enters this regions navmesh from another regions navmesh " +"When pathfinding enters this region's navmesh from another regions navmesh " "the [code]enter_cost[/code] value is added to the path distance for " "determining the shortest path." msgstr "" @@ -37391,7 +37397,7 @@ msgstr "[NavigationMeshGenerator] tekil nesnesi." #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding moves inside this regions navmesh the traveled distances " +"When pathfinding moves inside this region's navmesh the traveled distances " "are multiplied with [code]travel_cost[/code] for determining the shortest " "path." msgstr "" @@ -48226,6 +48232,18 @@ msgstr "" #: doc/classes/ProjectSettings.xml msgid "" +"Default naming style for scene files to infer from their root nodes. " +"Possible options are:\n" +"- [code]0[/code] (Auto): Uses the scene root name as is without changing its " +"casing.\n" +"- [code]1[/code] (PascalCase): Converts the scene root name to PascalCase " +"casing.\n" +"- [code]2[/code] (snake_case): Converts the scene root name to snake_case " +"casing." +msgstr "" + +#: doc/classes/ProjectSettings.xml +msgid "" "Search path for project-specific script templates. Godot will search for " "script templates both in the editor-specific path and in this project-" "specific path." @@ -67546,11 +67564,12 @@ msgid "This enabler will stop [Particles2D] nodes." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _process function." +msgid "This enabler will stop the parent's [method Node._process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _physics_process function." +msgid "" +"This enabler will stop the parent's [method Node._physics_process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml @@ -75595,8 +75614,8 @@ msgstr "" #: doc/classes/World.xml msgid "" -"The World's fallback_environment will be used if the World's [Environment] " -"fails or is missing." +"The World's fallback environment will be used if [member environment] fails " +"or is missing." msgstr "" #: doc/classes/World.xml diff --git a/doc/translations/uk.po b/doc/translations/uk.po index c370c6b192..22271dc2ea 100644 --- a/doc/translations/uk.po +++ b/doc/translations/uk.po @@ -477,7 +477,7 @@ msgstr "" #: modules/gdscript/doc_classes/@GDScript.xml msgid "" "Compares two values by checking their actual contents, recursing into any " -"`Array` or `Dictionary` up to its deepest level.\n" +"[Array] or [Dictionary] up to its deepest level.\n" "This compares to [code]==[/code] in a number of ways:\n" "- For [code]null[/code], [code]int[/code], [code]float[/code], [code]String[/" "code], [code]Object[/code] and [code]RID[/code] both [code]deep_equal[/code] " @@ -3548,6 +3548,12 @@ msgstr "" #: doc/classes/@GlobalScope.xml msgid "" +"Hints that an integer property is a bitmask using the optionally named 3D " +"navigation layers." +msgstr "" + +#: doc/classes/@GlobalScope.xml +msgid "" "Hints that a string property is a path to a file. Editing it will show a " "file dialog for picking the path. The hint string can be a set of filters " "with wildcards like [code]\"*.png,*.jpg\"[/code]." @@ -30324,8 +30330,8 @@ msgstr "" #: doc/classes/InputEventJoypadButton.xml msgid "" -"Represents the pressure the user puts on the button with his finger, if the " -"controller supports it. Ranges from [code]0[/code] to [code]1[/code]." +"Represents the pressure the user puts on the button with their finger, if " +"the controller supports it. Ranges from [code]0[/code] to [code]1[/code]." msgstr "" #: doc/classes/InputEventJoypadMotion.xml @@ -36719,7 +36725,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding enters this regions navmesh from another regions navmesh " +"When pathfinding enters this region's navmesh from another regions navmesh " "the [code]enter_cost[/code] value is added to the path distance for " "determining the shortest path." msgstr "" @@ -36739,7 +36745,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding moves inside this regions navmesh the traveled distances " +"When pathfinding moves inside this region's navmesh the traveled distances " "are multiplied with [code]travel_cost[/code] for determining the shortest " "path." msgstr "" @@ -47564,6 +47570,18 @@ msgstr "" #: doc/classes/ProjectSettings.xml msgid "" +"Default naming style for scene files to infer from their root nodes. " +"Possible options are:\n" +"- [code]0[/code] (Auto): Uses the scene root name as is without changing its " +"casing.\n" +"- [code]1[/code] (PascalCase): Converts the scene root name to PascalCase " +"casing.\n" +"- [code]2[/code] (snake_case): Converts the scene root name to snake_case " +"casing." +msgstr "" + +#: doc/classes/ProjectSettings.xml +msgid "" "Search path for project-specific script templates. Godot will search for " "script templates both in the editor-specific path and in this project-" "specific path." @@ -66873,11 +66891,12 @@ msgid "This enabler will stop [Particles2D] nodes." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _process function." +msgid "This enabler will stop the parent's [method Node._process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _physics_process function." +msgid "" +"This enabler will stop the parent's [method Node._physics_process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml @@ -74920,8 +74939,8 @@ msgstr "" #: doc/classes/World.xml msgid "" -"The World's fallback_environment will be used if the World's [Environment] " -"fails or is missing." +"The World's fallback environment will be used if [member environment] fails " +"or is missing." msgstr "" #: doc/classes/World.xml diff --git a/doc/translations/vi.po b/doc/translations/vi.po index 74ac1a139c..b813d4a4a5 100644 --- a/doc/translations/vi.po +++ b/doc/translations/vi.po @@ -477,7 +477,7 @@ msgstr "" #: modules/gdscript/doc_classes/@GDScript.xml msgid "" "Compares two values by checking their actual contents, recursing into any " -"`Array` or `Dictionary` up to its deepest level.\n" +"[Array] or [Dictionary] up to its deepest level.\n" "This compares to [code]==[/code] in a number of ways:\n" "- For [code]null[/code], [code]int[/code], [code]float[/code], [code]String[/" "code], [code]Object[/code] and [code]RID[/code] both [code]deep_equal[/code] " @@ -3825,6 +3825,12 @@ msgstr "" #: doc/classes/@GlobalScope.xml msgid "" +"Hints that an integer property is a bitmask using the optionally named 3D " +"navigation layers." +msgstr "" + +#: doc/classes/@GlobalScope.xml +msgid "" "Hints that a string property is a path to a file. Editing it will show a " "file dialog for picking the path. The hint string can be a set of filters " "with wildcards like [code]\"*.png,*.jpg\"[/code]." @@ -30622,8 +30628,8 @@ msgstr "" #: doc/classes/InputEventJoypadButton.xml msgid "" -"Represents the pressure the user puts on the button with his finger, if the " -"controller supports it. Ranges from [code]0[/code] to [code]1[/code]." +"Represents the pressure the user puts on the button with their finger, if " +"the controller supports it. Ranges from [code]0[/code] to [code]1[/code]." msgstr "" #: doc/classes/InputEventJoypadMotion.xml @@ -37021,7 +37027,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding enters this regions navmesh from another regions navmesh " +"When pathfinding enters this region's navmesh from another regions navmesh " "the [code]enter_cost[/code] value is added to the path distance for " "determining the shortest path." msgstr "" @@ -37042,7 +37048,7 @@ msgstr "ÄÆ¡n Nhất [NavigationMeshGenerator]." #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding moves inside this regions navmesh the traveled distances " +"When pathfinding moves inside this region's navmesh the traveled distances " "are multiplied with [code]travel_cost[/code] for determining the shortest " "path." msgstr "" @@ -47880,6 +47886,18 @@ msgstr "" #: doc/classes/ProjectSettings.xml msgid "" +"Default naming style for scene files to infer from their root nodes. " +"Possible options are:\n" +"- [code]0[/code] (Auto): Uses the scene root name as is without changing its " +"casing.\n" +"- [code]1[/code] (PascalCase): Converts the scene root name to PascalCase " +"casing.\n" +"- [code]2[/code] (snake_case): Converts the scene root name to snake_case " +"casing." +msgstr "" + +#: doc/classes/ProjectSettings.xml +msgid "" "Search path for project-specific script templates. Godot will search for " "script templates both in the editor-specific path and in this project-" "specific path." @@ -67206,11 +67224,12 @@ msgid "This enabler will stop [Particles2D] nodes." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _process function." +msgid "This enabler will stop the parent's [method Node._process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _physics_process function." +msgid "" +"This enabler will stop the parent's [method Node._physics_process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml @@ -75261,8 +75280,8 @@ msgstr "" #: doc/classes/World.xml msgid "" -"The World's fallback_environment will be used if the World's [Environment] " -"fails or is missing." +"The World's fallback environment will be used if [member environment] fails " +"or is missing." msgstr "" #: doc/classes/World.xml diff --git a/doc/translations/zh_CN.po b/doc/translations/zh_CN.po index 48df370c61..aed2ffbe21 100644 --- a/doc/translations/zh_CN.po +++ b/doc/translations/zh_CN.po @@ -62,8 +62,8 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine class reference\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" -"PO-Revision-Date: 2022-06-13 03:39+0000\n" -"Last-Translator: Magian <magian1127@gmail.com>\n" +"PO-Revision-Date: 2022-06-19 11:54+0000\n" +"Last-Translator: Haoyu Qiu <timothyqiu32@gmail.com>\n" "Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/" "godot-engine/godot-class-reference/zh_Hans/>\n" "Language: zh_CN\n" @@ -71,7 +71,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 4.13-dev\n" +"X-Generator: Weblate 4.13.1-dev\n" #: doc/tools/make_rst.py msgid "Description" @@ -516,9 +516,10 @@ msgstr "" "[/codeblock]" #: modules/gdscript/doc_classes/@GDScript.xml +#, fuzzy msgid "" "Compares two values by checking their actual contents, recursing into any " -"`Array` or `Dictionary` up to its deepest level.\n" +"[Array] or [Dictionary] up to its deepest level.\n" "This compares to [code]==[/code] in a number of ways:\n" "- For [code]null[/code], [code]int[/code], [code]float[/code], [code]String[/" "code], [code]Object[/code] and [code]RID[/code] both [code]deep_equal[/code] " @@ -4246,11 +4247,10 @@ msgid "" msgstr "æç¤ºä¸€ä¸ªæ•´æ•°å±žæ€§æ˜¯ä¸€ä¸ªæŽ©ç ,使用ç€å…·å¤‡æˆ–ä¸å…·å¤‡å‘½åçš„2D物ç†å±‚。" #: doc/classes/@GlobalScope.xml -#, fuzzy msgid "" "Hints that an integer property is a bitmask using the optionally named 2D " "navigation layers." -msgstr "æç¤ºä¸€ä¸ªæ•´æ•°å±žæ€§æ˜¯ä¸€ä¸ªæŽ©ç ,使用ç€å…·å¤‡æˆ–ä¸å…·å¤‡å‘½åçš„2D渲染层。" +msgstr "æç¤ºä¸€ä¸ªæ•´æ•°å±žæ€§æ˜¯ä¸€ä¸ªæŽ©ç ,使用ç€å…·å或ä¸å…·åçš„ 2D 导航层。" #: doc/classes/@GlobalScope.xml msgid "" @@ -4265,6 +4265,13 @@ msgid "" msgstr "æç¤ºä¸€ä¸ªæ•´æ•°å±žæ€§æ˜¯ä¸€ä¸ªæŽ©ç ,使用ç€å…·å¤‡æˆ–ä¸å…·å¤‡å‘½åçš„3D物ç†å±‚。" #: doc/classes/@GlobalScope.xml +#, fuzzy +msgid "" +"Hints that an integer property is a bitmask using the optionally named 3D " +"navigation layers." +msgstr "æç¤ºä¸€ä¸ªæ•´æ•°å±žæ€§æ˜¯ä¸€ä¸ªæŽ©ç ,使用ç€å…·å或ä¸å…·åçš„ 2D 导航层。" + +#: doc/classes/@GlobalScope.xml msgid "" "Hints that a string property is a path to a file. Editing it will show a " "file dialog for picking the path. The hint string can be a set of filters " @@ -10670,13 +10677,12 @@ msgstr "" "如果已ç»å˜åœ¨ä¸€ä¸ªç»™å®š [code]id[/code] 的点,它的ä½ç½®å’Œæƒé‡å°†è¢«æ›´æ–°ä¸ºç»™å®šå€¼ã€‚" #: doc/classes/AStar2D.xml -#, fuzzy msgid "" "Returns whether there is a connection/segment between the given points. If " "[code]bidirectional[/code] is [code]false[/code], returns whether movement " "from [code]id[/code] to [code]to_id[/code] is possible through this segment." msgstr "" -"返回两个给定点是å¦é€šè¿‡çº¿æ®µç›´æŽ¥è¿žæŽ¥ã€‚如果 [code]bidirectional[/code] 为 " +"返回两个给定点之间是å¦å˜åœ¨è¿žæŽ¥/线段。如果 [code]bidirectional[/code] 为 " "[code]false[/code],则返回是å¦å¯ä»¥é€šè¿‡æ¤æ®µä»Ž [code]id[/code] 到 [code]to_id[/" "code] 进行移动。" @@ -10948,7 +10954,6 @@ msgid "Captures audio from an audio bus in real-time." msgstr "ä»ŽéŸ³é¢‘æ€»çº¿ä¸Šå®žæ—¶æ•æ‰éŸ³é¢‘。" #: doc/classes/AudioEffectCapture.xml -#, fuzzy msgid "" "AudioEffectCapture is an AudioEffect which copies all audio frames from the " "attached audio effect bus into its internal ring buffer.\n" @@ -10959,10 +10964,11 @@ msgid "" "microphone, the format of the samples will be stereo 32-bit floating point " "PCM." msgstr "" -"音频效果æ•获是一ç§éŸ³é¢‘效果,å¯å°†æ‰€é™„音频效果总线的所有音频帧å¤åˆ¶åˆ°å…¶å†…部环缓" -"冲器ä¸ã€‚\n" -"应用程åºä»£ç 应使用 [method get_buffer]ä»Žè¯¥çŽ¯ç¼“å†²å™¨ä¸æ¶ˆè€—è¿™äº›éŸ³é¢‘å¸§ï¼Œå¹¶æ ¹æ®éœ€" -"è¦è¿›è¡Œå¤„ç†ï¼Œä¾‹å¦‚从麦克风æ•获数æ®ã€å®žçŽ°åº”ç”¨ç¨‹åºå®šä¹‰çš„æ•ˆæžœæˆ–é€šè¿‡ç½‘ç»œä¼ è¾“éŸ³é¢‘ã€‚" +"AudioEffectCapture æ˜¯ä¸€ç§ AudioEffect,å¯å°†æ‰€é™„音频效果总线的所有音频帧å¤åˆ¶åˆ°" +"其内部的环形缓冲器ä¸ã€‚\n" +"应用程åºä»£ç 应使用 [method get_buffer] ä»Žè¯¥çŽ¯å½¢ç¼“å†²å™¨ä¸æ¶ˆè€—è¿™äº›éŸ³é¢‘å¸§ï¼Œå¹¶æ ¹æ®" +"需è¦è¿›è¡Œå¤„ç†ï¼Œä¾‹å¦‚从麦克风æ•获数æ®ã€å®žçŽ°åº”ç”¨ç¨‹åºå®šä¹‰çš„æ•ˆæžœæˆ–é€šè¿‡ç½‘ç»œä¼ è¾“éŸ³" +"频。从麦克风æ•èŽ·éŸ³é¢‘æ•°æ®æ—¶ï¼Œæ ·æœ¬çš„æ ¼å¼ä¸ºç«‹ä½“声 32 使µ®ç‚¹æ•° PCM。" #: doc/classes/AudioEffectCapture.xml msgid "" @@ -23728,9 +23734,8 @@ msgid "" msgstr "渲染æä¾›ç»™å®ƒçš„[Curve]。简化了绘制曲线和/或ä¿å˜ä¸ºå›¾åƒæ–‡ä»¶çš„任务。" #: doc/classes/CurveTexture.xml -#, fuzzy msgid "The [Curve] that is rendered onto the texture." -msgstr "渲染到纹ç†ä¸Šçš„[code]curve[/code]。" +msgstr "渲染到纹ç†ä¸Šçš„ [Curve]。" #: doc/classes/CurveTexture.xml msgid "" @@ -23738,6 +23743,8 @@ msgid "" "represent high-frequency data better (such as sudden direction changes), at " "the cost of increased generation time and memory usage." msgstr "" +"纹ç†å®½åº¦ï¼ˆå•ä½ä¸ºåƒç´ )。较大的值能够更好地表示高频数æ®ï¼ˆä¾‹å¦‚æ–¹å‘çš„çªå˜ï¼‰ï¼Œä½†" +"ä¼šå¢žåŠ ç”Ÿæˆæ—¶é—´å’Œå†…å˜å 用。" #: doc/classes/CylinderMesh.xml msgid "Class representing a cylindrical [PrimitiveMesh]." @@ -24161,6 +24168,8 @@ msgid "" "duplicate keys will not be copied over, unless [code]overwrite[/code] is " "[code]true[/code]." msgstr "" +"å°† [code]dictionary[/code] ä¸çš„å…ƒç´ æ·»åŠ åˆ°è¿™ä¸ª [Dictionary] ä¸ã€‚默认情况下,ä¸" +"会å¤åˆ¶é‡å¤çš„é”®ï¼Œé™¤éž [code]overwrite[/code] 为 [code]true[/code]。" #: doc/classes/Dictionary.xml msgid "Returns the number of keys in the dictionary." @@ -26779,6 +26788,20 @@ msgid "" " return state\n" "[/codeblock]" msgstr "" +"覆盖这个方法å¯ç”¨äºŽæä¾›æƒ³è¦ä¿å˜çš„çŠ¶æ€æ•°æ®ï¼Œç±»ä¼¼è§†å›¾ä½ç½®ã€ç½‘æ ¼è®¾ç½®ã€æŠ˜å æƒ…况" +"ç‰ã€‚会在ä¿å˜åœºæ™¯ï¼ˆå†æ¬¡æ‰“开时ä¿ç•™çжæ€ï¼‰å’Œåˆ‡æ¢æ ‡ç¾é¡µï¼ˆåˆ‡å›žæ ‡ç¾é¡µæ—¶æ¢å¤çжæ€ï¼‰æ—¶" +"用到。这些数æ®ä¼šè‡ªåЍä¿å˜åˆ°ç¼–è¾‘å™¨å…ƒæ•°æ®æ–‡ä»¶å¤¹ä¸å„个场景的 [code]editstate[/" +"code] 文件ä¸ã€‚å¦‚æžœä½ æƒ³è¦ä¸ºæ’ä»¶ä¿å˜å…¨å±€ï¼ˆä¸Žåœºæ™¯æ— 关)的编辑器数æ®ï¼Œä½ å¯ä»¥æ¢æˆ " +"[method get_window_layout]。\n" +"请使用 [method set_state] æ¢å¤ä¿å˜çš„状æ€ã€‚\n" +"[b]注æ„:[/b]é‡è¦çš„设置应该和项目一起进行æŒä¹…化,ä¸åº”该用这个方法æ¥ä¿å˜ã€‚\n" +"[b]注æ„:[/b]ä½ åªæœ‰å…ˆå®žçް [method get_plugin_name]ï¼ŒçŠ¶æ€æ‰èƒ½å¤Ÿè¿›è¡Œæ£ç¡®çš„ä¿å˜" +"å’Œæ¢å¤ã€‚\n" +"[codeblock]\n" +"func get_state():\n" +" var state = {\"zoom\": zoom, \"preferred_color\": my_color}\n" +" return state\n" +"[/codeblock]" #: doc/classes/EditorPlugin.xml msgid "" @@ -26803,6 +26826,17 @@ msgid "" " configuration.set_value(\"MyPlugin\", \"icon_color\", $Icon.modulate)\n" "[/codeblock]" msgstr "" +"覆盖这个方法å¯ç”¨äºŽæä¾›è¯¥æ’ä»¶çš„ GUI å¸ƒå±€æˆ–è€…ä»»ä½•å…¶ä»–ä½ æƒ³è¦ä¿å˜çš„æ•°æ®ã€‚会在调" +"用 [method queue_save_layout] ä¿å˜é¡¹ç›®çš„编辑器布局或者编辑器布局å‘生改å˜ï¼ˆä¾‹" +"如修改åœé 颿¿çš„ä½ç½®ï¼‰æ—¶ç”¨åˆ°ã€‚æ•°æ®ä¼šä¿å˜åˆ°ç¼–辑器元数æ®ç›®å½•çš„ " +"[code]editor_layout.cfg[/code] 文件ä¸ã€‚\n" +"请使用 [method set_window_layout] æ¢å¤ä¿å˜çš„布局。\n" +"[codeblock]\n" +"func get_window_layout(configuration):\n" +" configuration.set_value(\"MyPlugin\", \"window_position\", $Window." +"position)\n" +" configuration.set_value(\"MyPlugin\", \"icon_color\", $Icon.modulate)\n" +"[/codeblock]" #: doc/classes/EditorPlugin.xml msgid "" @@ -26941,6 +26975,15 @@ msgid "" " preferred_color = data.get(\"my_color\", Color.white)\n" "[/codeblock]" msgstr "" +"æ¢å¤ç”¨ [method get_state] ä¿å˜çš„状æ€ã€‚这个方法会在编辑器的当å‰åœºæ™¯æ ‡ç¾é¡µå‘生" +"æ”¹å˜æ—¶è°ƒç”¨ã€‚\n" +"[b]注æ„:[/b]ä½ çš„æ’件必须实现 [method get_plugin_name],å¦åˆ™æ— 法被识别,这个" +"方法也ä¸ä¼šè¢«è°ƒç”¨ã€‚\n" +"[codeblock]\n" +"func set_state(data):\n" +" zoom = data.get(\"zoom\", 1.0)\n" +" preferred_color = data.get(\"my_color\", Color.white)\n" +"[/codeblock]" #: doc/classes/EditorPlugin.xml msgid "" @@ -26955,6 +26998,16 @@ msgid "" "Color.white)\n" "[/codeblock]" msgstr "" +"æ¢å¤ç”¨ [method get_window_layout] ä¿å˜çš„æ’ä»¶ GUI 布局和数æ®ã€‚编辑器å¯åŠ¨æ—¶ä¼šè°ƒ" +"用æ¯ä¸€ä¸ªæ’件的这个方法。请使用æä¾›çš„ [code]configuration[/code] 文件读å–ä½ ä¿" +"å˜çš„æ•°æ®ã€‚\n" +"[codeblock]\n" +"func set_window_layout(configuration):\n" +" $Window.position = configuration.get_value(\"MyPlugin\", " +"\"window_position\", Vector2())\n" +" $Icon.modulate = configuration.get_value(\"MyPlugin\", \"icon_color\", " +"Color.white)\n" +"[/codeblock]" #: doc/classes/EditorPlugin.xml msgid "" @@ -32816,7 +32869,6 @@ msgid "Gradient-filled texture." msgstr "æ¸å˜å¡«å……纹ç†ã€‚" #: doc/classes/GradientTexture.xml -#, fuzzy msgid "" "GradientTexture uses a [Gradient] to fill the texture data. The gradient " "will be filled from left to right using colors obtained from the gradient. " @@ -32825,9 +32877,10 @@ msgid "" "at fixed steps (see [member width]). See also [GradientTexture2D] and " "[CurveTexture]." msgstr "" -"GradientTexture使用[Gradient]æ¥å¡«å……çº¹ç†æ•°æ®ã€‚æ¸å˜å°†ä½¿ç”¨ä»Žä¸èŽ·å¾—çš„é¢œè‰²ä»Žå·¦åˆ°å³" -"填充。这æ„味ç€çº¹ç†ä¸ä¸€å®šä»£è¡¨æ¸å˜çš„精确副本,而是以固定的æ¥é•¿ä»Žæ¸å˜ä¸èŽ·å¾—çš„æ ·" -"本的æ’值,è§[member width]。" +"GradientTexture 使用 [Gradient] æ¥å¡«å……çº¹ç†æ•°æ®ã€‚æ¸å˜å°†ä½¿ç”¨ä»Žä¸èŽ·å¾—çš„é¢œè‰²ä»Žå·¦" +"到å³å¡«å……。这æ„味ç€çº¹ç†ä¸ä¸€å®šä»£è¡¨æ¸å˜çš„精确副本,而是以固定的æ¥é•¿ä»Žæ¸å˜ä¸èŽ·å¾—" +"çš„æ ·æœ¬çš„æ’å€¼ï¼ˆè§ [member width])。å¦è¯·å‚阅 [GradientTexture2D] å’Œ " +"[CurveTexture]。" #: doc/classes/GradientTexture.xml msgid "The [Gradient] that will be used to fill the texture." @@ -32842,7 +32895,6 @@ msgid "Gradient-filled 2D texture." msgstr "使用æ¸å˜å¡«å……çš„ 2D 纹ç†ã€‚" #: doc/classes/GradientTexture2D.xml -#, fuzzy msgid "" "The texture uses a [Gradient] to fill the texture data in 2D space. The " "gradient is filled according to the specified [member fill] and [member " @@ -32854,8 +32906,8 @@ msgid "" msgstr "" "该纹ç†ä½¿ç”¨ [Gradient] æ¸å˜æ¥å¡«å…… 2D ç©ºé—´çº¹ç†æ•°æ®ã€‚æ¸å˜ä¼šæ ¹æ® [member fill] " "å’Œ [member repeat] 类型,使用从æ¸å˜ä¸èŽ·å–çš„é¢œè‰²è¿›è¡Œå¡«å……ã€‚è¯¥çº¹ç†æœªå¿…精确表示该" -"æ¸å˜ï¼Œå¯ä»¥æ˜¯ä»Žè¯¥æ¸å˜ä¸ŠæŒ‰ç…§å›ºå®šæ¥é•¿è¿›è¡Œé‡‡æ ·åŽå†è¿›è¡Œæ’值(请å‚阅 [member " -"width] å’Œ [member height])。" +"æ¸å˜ï¼Œå¯ä»¥æ˜¯ä»Žè¯¥æ¸å˜ä¸ŠæŒ‰ç…§å›ºå®šæ¥é•¿è¿›è¡Œé‡‡æ ·åŽå†è¿›è¡Œæ’å€¼ï¼ˆè§ [member width] å’Œ " +"[member height])。å¦è¯·å‚阅 [GradientTexture] å’Œ [CurveTexture]。" #: doc/classes/GradientTexture2D.xml msgid "" @@ -33789,11 +33841,12 @@ msgstr "" "[code]pos[/code] 应该使用 GridMap çš„æœ¬åœ°åæ ‡ç©ºé—´ã€‚" #: modules/gridmap/doc_classes/GridMap.xml -#, fuzzy msgid "" "If [code]true[/code], this GridMap uses cell navmesh resources to create " "navigation regions." -msgstr "如果[code]true[/code]ï¼Œæ ¹æ®æµç¨‹ç›¸å…³é€šçŸ¥æ›´æ–°åŠ¨ç”»ã€‚" +msgstr "" +"为 [code]true[/code] 时,这个 GridMap 会使用å•å…ƒæ ¼çš„å¯¼èˆªç½‘æ ¼èµ„æºæ¥åˆ›å»ºå¯¼èˆªåœ°" +"区。" #: modules/gridmap/doc_classes/GridMap.xml msgid "If [code]true[/code], grid items are centered on the X axis." @@ -33858,7 +33911,7 @@ msgstr "指定的 [MeshLibrary]。" #: modules/gridmap/doc_classes/GridMap.xml msgid "The navigation layers the GridMap generates its navigation regions in." -msgstr "" +msgstr "GridMap 生æˆå¯¼èˆªåœ°åŒºçš„导航层。" #: modules/gridmap/doc_classes/GridMap.xml msgid "" @@ -36982,7 +37035,6 @@ msgid "" msgstr "åœ¨æ˜ å°„æ•°æ®åº“䏿·»åŠ æ–°çš„æ˜ å°„æ¡ç›®ï¼ˆSDL2 æ ¼å¼ï¼‰ã€‚å¯é€‰æ›´æ–°å·²è¿žæŽ¥çš„设备。" #: doc/classes/Input.xml -#, fuzzy msgid "" "Sends all input events which are in the current buffer to the game loop. " "These events may have been buffered as a result of accumulated input " @@ -36993,9 +37045,8 @@ msgid "" "want precise control over the timing of event handling." msgstr "" "将当å‰ç¼“冲区内的所有输入事件å‘é€ç»™æ¸¸æˆå¾ªçŽ¯ã€‚è¿™äº›äº‹ä»¶å¯èƒ½æ˜¯ç”±äºŽç´¯ç§¯è¾“å…¥" -"([method set_use_accumulated_input]ï¼‰æˆ–æ•æ·è¾“入刷新([member " -"ProjectSettings.input_devices/buffering/agile_event_flushing])而被缓冲的结" -"果。\n" +"([member use_accumulated_input]ï¼‰æˆ–æ•æ·è¾“入刷新([member ProjectSettings." +"input_devices/buffering/agile_event_flushing])而被缓冲的结果。\n" "引擎已ç»ä¼šåœ¨å…³é”®çš„æ‰§è¡Œç‚¹æ‰§è¡Œæ¤æ“作,至少æ¯å¸§ä¸€æ¬¡ã€‚ç„¶è€Œï¼Œåœ¨ä½ æƒ³è¦ç²¾ç¡®æŽ§åˆ¶äº‹ä»¶" "å¤„ç†æ—¶é—´çš„高级情况下,这å¯èƒ½æ˜¯æœ‰ç”¨çš„。" @@ -37513,12 +37564,10 @@ msgstr "" "MOUSE_MODE_CONFINED] 时则是é™åˆ¶åœ¨æ¸¸æˆçª—å£å†…。" #: doc/classes/Input.xml -#, fuzzy msgid "Controls the mouse mode. See [enum MouseMode] for more information." -msgstr "è®¾ç½®é¼ æ ‡æ¨¡å¼ã€‚有关更多信æ¯ï¼Œè¯·å‚阅常é‡ã€‚" +msgstr "æŽ§åˆ¶é¼ æ ‡æ¨¡å¼ã€‚详情请å‚阅 [enum MouseMode]。" #: doc/classes/Input.xml -#, fuzzy msgid "" "If [code]true[/code], similar input events sent by the operating system are " "accumulated. When input accumulation is enabled, all input events generated " @@ -37531,9 +37580,9 @@ msgid "" "while the user is drawing the line to get results that closely follow the " "actual input." msgstr "" -"å¯ç”¨æˆ–ç¦ç”¨æ“作系统å‘é€çš„类似输入事件的累积。当å¯ç”¨è¾“入累积时,在一帧ä¸äº§ç”Ÿçš„" -"所有输入事件将被åˆå¹¶ï¼Œå¹¶åœ¨è¯¥å¸§å®Œæˆæ¸²æŸ“æ—¶å‘å‡ºã€‚å› æ¤ï¼Œè¿™é™åˆ¶äº†æ¯ç§’的输入方法调" -"用次数,使之与渲染FPS相一致。\n" +"如果为 [code]true[/code],会对æ“作系统å‘é€çš„类似输入事件进行累积。当å¯ç”¨è¾“å…¥" +"累积时,在一帧ä¸äº§ç”Ÿçš„æ‰€æœ‰è¾“入事件将被åˆå¹¶ï¼Œå¹¶åœ¨è¯¥å¸§å®Œæˆæ¸²æŸ“æ—¶å‘å‡ºã€‚å› æ¤ï¼Œè¿™" +"é™åˆ¶äº†æ¯ç§’的输入方法调用次数,使之与渲染FPS相一致。\n" "è¾“å…¥ç´¯åŠ åœ¨é»˜è®¤æƒ…å†µä¸‹æ˜¯å¯ç”¨çš„。它å¯ä»¥è¢«ç¦ç”¨ï¼Œå°†ä»¥å¢žåŠ CPU使用率为代价,获得ç¨å¾®" "æ›´ç²¾ç¡®åŠæ›´çµæ•的输入。在需è¦è‡ªç”±ç»˜åˆ¶çº¿æ¡çš„应用ä¸ï¼Œä¸€èˆ¬åº”ç”¨åœ¨ç”¨æˆ·ç»˜åˆ¶çº¿æ¡æ—¶ç¦" "ç”¨è¾“å…¥ç´¯åŠ ï¼Œä»¥èŽ·å¾—ç´§è·Ÿå®žé™…è¾“å…¥çš„ç»“æžœã€‚" @@ -37925,9 +37974,10 @@ msgstr "" "被释放。" #: doc/classes/InputEventJoypadButton.xml +#, fuzzy msgid "" -"Represents the pressure the user puts on the button with his finger, if the " -"controller supports it. Ranges from [code]0[/code] to [code]1[/code]." +"Represents the pressure the user puts on the button with their finger, if " +"the controller supports it. Ranges from [code]0[/code] to [code]1[/code]." msgstr "" "如果控制器支æŒï¼Œåˆ™è¡¨ç¤ºç”¨æˆ·ç”¨æ‰‹æŒ‡åœ¨æŒ‰é’®ä¸Šæ–½åŠ çš„åŽ‹åŠ›ã€‚èŒƒå›´ä»Ž [code]0[/code] 到 " "[code]1[/code]。" @@ -38261,7 +38311,6 @@ msgid "Input event type for mouse motion events." msgstr "é¼ æ ‡ç§»åŠ¨äº‹ä»¶çš„è¾“å…¥äº‹ä»¶ç±»åž‹ã€‚" #: doc/classes/InputEventMouseMotion.xml -#, fuzzy msgid "" "Contains mouse and pen motion information. Supports relative, absolute " "positions and speed. See [method Node._input].\n" @@ -38276,11 +38325,11 @@ msgstr "" "包å«é¼ æ ‡å’Œç¬”çš„è¿åŠ¨ä¿¡æ¯ã€‚支æŒç›¸å¯¹ã€ç»å¯¹ä½ç½®å’Œé€Ÿåº¦ã€‚请å‚阅 [method Node." "_input]。\n" "[b]注æ„:[/b]默认情况下,这个事件最多åªèƒ½åœ¨æ¯ä¸€å¸§æ¸²æŸ“ä¸å‘å‡ºä¸€æ¬¡ã€‚å¦‚æžœä½ éœ€è¦æ›´" -"精确的输入报告,请用 [code]false[/code] 调用 [method Input." -"set_use_accumulated_input] æ¥ä½¿äº‹ä»¶å°½å¯èƒ½é¢‘ç¹åœ°å‘å°„ã€‚å¦‚æžœä½ ä½¿ç”¨ " -"InputEventMouseMotion æ¥ç”»çº¿ï¼Œè¯·è€ƒè™‘åŒæ—¶å®žçް [url=https://en.wikipedia.org/" -"wiki/Bresenham%27s_line_algorithm]Bresenham 的线æ¡ç®—法[/url],以é¿å…在用户快" -"é€Ÿç§»åŠ¨é¼ æ ‡æ—¶å‡ºçŽ°å¯è§çš„线æ¡ç©ºéš™ã€‚" +"精确的输入报告,请将 [member Input.use_accumulated_input] 设为 [code]false[/" +"code],让事件尽å¯èƒ½é¢‘ç¹åœ°å‘å°„ã€‚å¦‚æžœä½ ä½¿ç”¨ InputEventMouseMotion æ¥ç”»çº¿ï¼Œè¯·è€ƒ" +"è™‘åŒæ—¶å®žçް [url=https://en.wikipedia.org/wiki/" +"Bresenham%27s_line_algorithm]Bresenham 的线æ¡ç®—法[/url],以é¿å…在用户快速移动" +"é¼ æ ‡æ—¶å‡ºçŽ°å¯è§çš„线æ¡ç©ºéš™ã€‚" #: doc/classes/InputEventMouseMotion.xml msgid "Mouse and input coordinates" @@ -43555,16 +43604,15 @@ msgid "Node used for displaying a [Mesh] in 2D." msgstr "用于在2D䏿˜¾ç¤º[Mesh]的节点。" #: doc/classes/MeshInstance2D.xml -#, fuzzy msgid "" "Node used for displaying a [Mesh] in 2D. A [MeshInstance2D] can be " "automatically created from an existing [Sprite] via a tool in the editor " "toolbar. Select the [Sprite] node, then choose [b]Sprite > Convert to " "MeshInstance2D[/b] at the top of the 2D editor viewport." msgstr "" -"用于在2D䏿˜¾ç¤º[Mesh]的节点。å¯ä»¥é€šè¿‡ç¼–辑器工具æ 上的工具从现有的[Sprite]æž„" -"建。选择 \"Sprite\",然åŽé€‰æ‹© \"转æ¢ä¸ºMesh2D\",在弹出的窗å£ä¸é€‰æ‹©è®¾ç½®å¹¶æŒ‰ä¸‹ " -"\"创建Mesh2D\"。" +"用于在 2D 䏿˜¾ç¤º [Mesh] 的节点。å¯ä»¥é€šè¿‡ç¼–辑器工具æ 上的工具从现有的 " +"[Sprite] æž„å»ºã€‚é€‰ä¸ [Sprite] 节点,然åŽåœ¨ 2D 编辑器视区顶部选择[b]ç²¾çµ > 转æ¢" +"为 MeshInstance2D[/b]。" #: doc/classes/MeshInstance2D.xml msgid "The [Mesh] that will be drawn by the [MeshInstance2D]." @@ -44562,9 +44610,8 @@ msgstr "" "å¯¼èˆªç½‘æ ¼ä¹‹é—´çš„äº¤ç‚¹ã€‚å¦‚æžœæ‰¾åˆ°å¤šä¸ªäº¤ç‚¹ï¼Œåˆ™è¿”å›žæœ€æŽ¥è¿‘çº¿æ®µèµ·ç‚¹çš„äº¤ç‚¹ã€‚" #: doc/classes/Navigation.xml -#, fuzzy msgid "Returns the [RID] of the navigation map on the [NavigationServer]." -msgstr "返回这个代ç†åœ¨ [NavigationServer] 上的 [RID]。" +msgstr "返回这个导航地图在 [NavigationServer] 上的 [RID]。" #: doc/classes/Navigation.xml msgid "" @@ -44595,6 +44642,8 @@ msgid "" "A bitfield determining all navigation map layers the navigation can use on a " "[method Navigation.get_simple_path] path query." msgstr "" +"ä½åŸŸï¼Œç”¨äºŽå†³å®šåœ¨ä½¿ç”¨ [method Navigation.get_simple_path] 进行路径请求时,导航" +"所能用到的导航地图层。" #: doc/classes/Navigation.xml msgid "" @@ -44608,7 +44657,7 @@ msgstr "" #: doc/classes/NavigationServer.xml msgid "" "Emitted when a navigation map is updated, when a region moves or is modified." -msgstr "" +msgstr "当导航地图更新时ã€åœ°åŒºç§»åŠ¨æˆ–è¢«ä¿®æ”¹æ—¶å‘出。" #: doc/classes/Navigation2D.xml msgid "2D navigation and pathfinding node." @@ -44656,13 +44705,14 @@ msgid "" "A bitfield determining all navigation map layers the navigation can use on a " "[method Navigation2D.get_simple_path] path query." msgstr "" +"ä½åŸŸï¼Œç”¨äºŽå†³å®šåœ¨ä½¿ç”¨ [method Navigation2D.get_simple_path] 进行路径请求时,导" +"航所能用到的导航地图层。" #: doc/classes/Navigation2DServer.xml msgid "Server interface for low-level 2D navigation access." msgstr "访问底层 2D 导航的æœåŠ¡å™¨æŽ¥å£ã€‚" #: doc/classes/Navigation2DServer.xml -#, fuzzy msgid "" "Navigation2DServer is the server responsible for all 2D navigation. It " "handles several objects, namely maps, regions and agents.\n" @@ -44699,8 +44749,11 @@ msgstr "" "å³ç”Ÿæ•ˆçš„。SceneTree ä¸å¯¼èˆªç›¸å…³çš„节点对地图ã€åœ°åŒºã€ä»£ç†ä½œå‡ºçš„修改也是如æ¤ï¼Œé€š" "过脚本作出的修改亦然。\n" "两个地区必须共有一æ¡ç›¸ä¼¼çš„边界(edge)æ‰èƒ½ç›¸è¿žã€‚如果一æ¡è¾¹ç•Œçš„两个顶点" -"(vertex)与å¦ä¸€æ¡è¾¹ç•Œçš„对应顶点的è·ç¦»å°äºŽ [member Navigation." -"edge_connection_margin],则认为这两æ¡è¾¹ç•Œç›¸è¿žã€‚\n" +"(vertex)与å¦ä¸€æ¡è¾¹ç•Œçš„对应顶点的è·ç¦»å°äºŽ [code]edge_connection_margin[/" +"code],则认为这两æ¡è¾¹ç•Œç›¸è¿žã€‚\n" +"ä½ å¯ä»¥é€šè¿‡ [method Navigation2DServer.region_set_navigation_layers] 为地区设" +"置导航层,使用 [method Navigation2DServer.map_get_path] 请求路径时会对导航层" +"è¿›è¡Œæ£€æŸ¥ã€‚è¿™æ ·å°±èƒ½å¤Ÿå¯¹ 2D 对象å¯ç”¨æˆ–ç¦ç”¨æŸäº›åŒºåŸŸã€‚\n" "è¦ä½¿ç”¨é˜²æ’žç³»ç»Ÿï¼Œå¯ä»¥ä½¿ç”¨ä»£ç†ã€‚ä½ å¯ä»¥è®¾ç½®ä»£ç†çš„ç›®æ ‡é€Ÿåº¦ï¼ŒæœåŠ¡å™¨å°±ä¼šä½¿ç”¨ä¿®æ£åŽ" "的速度触å‘回调。\n" "[b]注æ„:[/b]防撞系统会忽略地区。直接使用修æ£åŽçš„速度å¯èƒ½ä¼šå°†ä»£ç†æŽ¨åˆ°å¯å¯¼èˆªåŒº" @@ -44735,6 +44788,12 @@ msgid "" "agent_set_callback] again with a [code]null[/code] object as the " "[code]receiver[/code]." msgstr "" +"在 RVO å¤„ç†æœ«å°¾è°ƒç”¨çš„回调。如果手动创建了回调,并且代ç†ä½äºŽå¯¼èˆªåœ°å›¾ä¸Šï¼Œå°±ä¼šä¸º" +"该代ç†è®¡ç®—é¿éšœï¼Œå¹¶å°†è®¡ç®—出的安全速度 [code]safe_velocity[/code] 通过信å·å‘é€" +"ç»™ [code]receiver[/code] 对象上å为 [code]method[/code] 的方法。\n" +"[b]注æ„:[/b]åªè¦ä»£ç†è¿˜åœ¨å¯¼èˆªåœ°å›¾ä¸Šä¸”未被释放,创建的回调就始终会进行处ç†ï¼Œæ— " +"论 SceneTree 的状æ€å¦‚何。è¦ç¦ç”¨æŸä¸ªä»£ç†çš„回调分å‘ï¼Œè¯·å†æ¬¡ä½¿ç”¨ [method " +"agent_set_callback],为 [code]receiver[/code] 设置为 [code]null[/code]。" #: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml msgid "Puts the agent in the map." @@ -44805,9 +44864,8 @@ msgid "" msgstr "返回所有与请求的导航地图 [code]map[/code] å…³è”的导航代ç†çš„ [RID]。" #: doc/classes/Navigation2DServer.xml -#, fuzzy msgid "Returns the map cell height. [b]Note:[/b] Currently not implemented." -msgstr "获å–è¢«è§£æžæ–‡ä»¶ä¸çš„当å‰è¡Œï¼ˆç›®å‰æœªå®žçŽ°ï¼‰ã€‚" +msgstr "返回地图å•å…ƒæ ¼é«˜åº¦ã€‚[b]注æ„:[/b]尚未实现。" #: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml msgid "Returns the map cell size." @@ -44837,6 +44895,8 @@ msgid "" "[code]navigation_layers[/code] is a bitmask of all region layers that are " "allowed to be in the path." msgstr "" +"返回从起点到达终点的导航路径。[code]navigation_layers[/code] 是å…许在路径ä¸å‡º" +"çŽ°çš„æ‰€æœ‰åœ°åŒºå±‚çš„ä½æŽ©ç 。" #: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml msgid "" @@ -44853,11 +44913,10 @@ msgid "Sets the map active." msgstr "设置地图的激活æ€ã€‚" #: doc/classes/Navigation2DServer.xml -#, fuzzy msgid "" "Set the map cell height used to weld the navigation mesh polygons. [b]Note:[/" "b] Currently not implemented." -msgstr "è®¾ç½®ç”¨äºŽç„ŠæŽ¥å¯¼èˆªç½‘æ ¼å¤šè¾¹å½¢çš„åœ°å›¾å•å…ƒæ ¼é«˜åº¦ã€‚" +msgstr "è®¾ç½®ç”¨äºŽç„ŠæŽ¥å¯¼èˆªç½‘æ ¼å¤šè¾¹å½¢çš„åœ°å›¾å•å…ƒæ ¼é«˜åº¦ã€‚[b]注æ„:[/b]尚未实现。" #: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml msgid "Set the map cell size used to weld the navigation mesh polygons." @@ -44878,6 +44937,8 @@ msgid "" "index between 0 and the return value of [method " "region_get_connections_count]." msgstr "" +"返回连接门的终点。[code]connection[/code] 是 0 å’Œ [method " +"region_get_connections_count] 返回值之间的索引å·ã€‚" #: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml msgid "" @@ -44885,18 +44946,18 @@ msgid "" "an index between 0 and the return value of [method " "region_get_connections_count]." msgstr "" +"返回连接门的起点。[code]connection[/code] 是 0 å’Œ [method " +"region_get_connections_count] 返回值之间的索引å·ã€‚" #: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml -#, fuzzy msgid "" "Returns how many connections this [code]region[/code] has with other regions " "in the map." -msgstr "返回 [code]点[/code]在平é¢ä¸Šçš„æ£äº¤æŠ•å½±ã€‚" +msgstr "返回 [code]region[/code] 地区与其他地区在地图上有多少连接。" #: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml -#, fuzzy msgid "Returns the [code]enter_cost[/code] of this [code]region[/code]." -msgstr "å¦‚æžœç»™å®šçš„ä¿¡å· [code]signal[/code] å˜åœ¨ï¼Œåˆ™è¿”回 [code]true[/code]。" +msgstr "返回 [code]region[/code] 地区的进入消耗 [code]enter_cost[/code]。" #: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml msgid "" @@ -44905,19 +44966,16 @@ msgid "" msgstr "返回请求的导航地区 [code]region[/code] 所关è”的导航地图的 [RID]。" #: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml -#, fuzzy msgid "Returns the region's navigation layers." -msgstr "è¿”å›žè¯¥é¡¹çš„å¯¼èˆªç½‘æ ¼ã€‚" +msgstr "返回该地区的导航层。" #: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml -#, fuzzy msgid "Returns the [code]travel_cost[/code] of this [code]region[/code]." -msgstr "å¦‚æžœç»™å®šçš„ä¿¡å· [code]signal[/code] å˜åœ¨ï¼Œåˆ™è¿”回 [code]true[/code]。" +msgstr "返回 [code]region[/code] 地区的移动消耗 [code]travel_cost[/code]。" #: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml -#, fuzzy msgid "Sets the [code]enter_cost[/code] for this [code]region[/code]." -msgstr "为具有给定[code]id[/code]的点设置[code]position[/code]。" +msgstr "设置 [code]region[/code] 地区的进入消耗 [code]enter_cost[/code]。" #: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml msgid "Sets the map for the region." @@ -44928,6 +44986,8 @@ msgid "" "Set the region's navigation layers. This allows selecting regions from a " "path request (when using [method Navigation2DServer.map_get_path])." msgstr "" +"设置该地区的导航层。å¯ç”¨äºŽï¼ˆä½¿ç”¨ [method Navigation2DServer.map_get_path])请" +"求路径时对地区进行选择。" #: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml msgid "Sets the navigation mesh for the region." @@ -44938,9 +44998,8 @@ msgid "Sets the global transformation for the region." msgstr "è®¾ç½®è¯¥åœ°åŒºçš„å…¨å±€å˜æ¢ã€‚" #: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml -#, fuzzy msgid "Sets the [code]travel_cost[/code] for this [code]region[/code]." -msgstr "为具有给定[code]id[/code]的点设置[code]position[/code]。" +msgstr "设置 [code]region[/code] 地区的移动消耗 [code]travel_cost[/code]。" #: doc/classes/NavigationAgent.xml msgid "3D agent used in navigation for collision avoidance." @@ -44962,6 +45021,15 @@ msgid "" "position from this function should be used as the next movement position for " "the agent's parent Node." msgstr "" +"导航ä¸ä½¿ç”¨çš„ 3D 代ç†ï¼Œå¯ä»¥åœ¨å‰å¾€æŸä¸ªä½ç½®æ—¶èº²é¿é™æ€å’ŒåЍæ€éšœç¢ç‰©ã€‚躲é¿åЍæ€éšœç¢" +"物使用的是 RVO(Reciprocal Velocity Obstacles,相对速度障ç¢ç‰©ï¼‰é˜²æ’žç®—法。代ç†" +"需è¦å¯¼èˆªæ•°æ®æ‰èƒ½æ£ç¡®å·¥ä½œã€‚默认情况下,这个节点会在默认的 [World] 导航地图ä¸è¿›" +"行注册。如果这个节点是 [Navigation] 节点的å项,那么就会在这个导航节点的导航" +"地图ä¸è¿›è¡Œæ³¨å†Œï¼Œä¹Ÿå¯ä»¥ä½¿ç”¨ [method set_navigation] 函数直接设置导航节点。" +"[NavigationAgent] 是物ç†å®‰å…¨çš„。\n" +"[b]注æ„:[/b]使用 [method set_target_location] 之åŽï¼Œå¿…须在æ¯ä¸ªç‰©ç†å¸§ä½¿ç”¨ä¸€" +"次 [method get_next_location] å‡½æ•°æ¥æ›´æ–° NavigationAgent 的内部路径逻辑。这个" +"函数返回的å‘é‡ä½ç½®åº”该用作该代ç†çš„父节点的下一次移动ä½ç½®ã€‚" #: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml msgid "" @@ -44992,6 +45060,11 @@ msgid "" "for the agents movement as this function also updates the internal path " "logic." msgstr "" +"返回这个代ç†ä»Žèµ·ç‚¹åˆ°ç»ˆç‚¹çš„当å‰è·¯å¾„ï¼Œä½¿ç”¨å…¨å±€åæ ‡ã€‚该路径åªä¼šåœ¨ç›®æ ‡ä½ç½®å‘生å˜" +"化,或者代ç†è¦æ±‚釿–°è®¡ç®—路径时更新。路径数组ä¸åº”ç›´æŽ¥ç”¨ä½œç§»åŠ¨è·¯å¾„ï¼Œä»£ç†æœ‰å…¶å†…" +"部的路径逻辑,手动修改路径数组å¯èƒ½ä¼šé€ æˆç ´å。请在æ¯ä¸€ä¸ªç‰©ç†å¸§ä¸è°ƒç”¨ä¸€æ¬¡ " +"[method get_next_location] 获å–该代ç†çš„下一个路径点,这个函数会更新其内部的路" +"径逻辑。" #: doc/classes/NavigationAgent.xml msgid "" @@ -45015,9 +45088,13 @@ msgid "" "the navigation map for the NavigationAgent and also update the agent on the " "NavigationServer." msgstr "" +"返回这个 NavigationAgent 节点的导航地图的 [RID]。这个函数返回的始终是在 " +"NavigationAgent ä¸Šè®¾ç½®çš„åœ°å›¾ï¼Œä¸æ˜¯ NavigationServer ä¸Šçš„æŠ½è±¡ä»£ç†æ‰€ä½¿ç”¨çš„地" +"图。如果通过 NavigationServer API 修改了代ç†çš„地图,该 NavigationAgent 节点是" +"ä¸ä¼šæ„ŸçŸ¥åˆ°åœ°å›¾çš„å˜åŒ–的。请使用 [method set_navigation_map] 修改该 " +"NavigationAgent çš„å¯¼èˆªåœ°å›¾ï¼Œèƒ½å¤ŸåŒæ—¶åœ¨ NavigationServer 上的代ç†ã€‚" #: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml -#, fuzzy msgid "" "Returns the next location in global coordinates that can be moved to, making " "sure that there are no static objects in the way. If the agent does not have " @@ -45025,8 +45102,9 @@ msgid "" "use of this function once every physics frame is required to update the " "internal path logic of the NavigationAgent." msgstr "" -"返回å¯ä»¥ç§»åŠ¨è‡³çš„ [Vector2] å…¨å±€åæ ‡ï¼Œç¡®ä¿ä¸é€”æ²¡æœ‰é™æ€ç‰©ä½“é˜»æŒ¡ã€‚å¦‚æžœä»£ç†æ²¡æœ‰å¯¼" -"航路径,则会返回代ç†çˆ¶èŠ‚ç‚¹çš„åŽŸç‚¹ã€‚" +"返回å¯ä»¥ç§»åŠ¨è‡³çš„ä¸‹ä¸€ä¸ªä½ç½®ï¼Œä½¿ç”¨å…¨å±€åæ ‡ï¼Œç¡®ä¿ä¸é€”æ²¡æœ‰é™æ€ç‰©ä½“阻挡。如果代ç†" +"没有导航路径,则会返回代ç†çˆ¶èŠ‚ç‚¹çš„ä½ç½®ã€‚必须在æ¯ä¸ªç‰©ç†å¸§éƒ½è°ƒç”¨ä¸€æ¬¡è¿™ä¸ªå‡½æ•°ï¼Œ" +"æ›´æ–° NavigationAgent 内部的路径逻辑。" #: doc/classes/NavigationAgent.xml msgid "Returns the [RID] of this agent on the [NavigationServer]." @@ -45076,6 +45154,8 @@ msgid "" "Sets the [RID] of the navigation map this NavigationAgent node should use " "and also updates the [code]agent[/code] on the NavigationServer." msgstr "" +"设置这个 NavigationAgent 节点所应使用的导航地图的 [RID]ï¼ŒåŒæ—¶è¿˜ä¼šæ›´æ–° " +"NavigationServer ä¸Šçš„ä»£ç† [code]agent[/code]。" #: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml msgid "" @@ -45101,6 +45181,10 @@ msgid "" "that the developer baked with appropriate agent radius or height values are " "required to support different-sized agents." msgstr "" +"这个 NavigationAgent 的任何å‘é‡ä½ç½®çš„ Y åæ ‡å€¼éƒ½ä¼šå‡åŽ» NavigationAgent 的高度" +"åç§»é‡ã€‚NavigationAgent 的高度åç§»é‡ä¸ä¼šå‘生改å˜ï¼Œä¹Ÿä¸ä¼šå½±å“å¯¼èˆªç½‘æ ¼å’Œå¯»è·¯ç»“" +"æžœã€‚å¦‚æžœå…¶ä»–å¯¼èˆªåœ°å›¾ä½¿ç”¨äº†å¸¦æœ‰å¯¼èˆªç½‘æ ¼çš„åœ°åŒºï¼Œå¼€å‘者使用åˆé€‚的代ç†åŠå¾„或高度" +"对其进行了烘焙,那么就必须支æŒä¸åŒå¤§å°çš„代ç†ã€‚" #: doc/classes/NavigationAgent.xml msgid "" @@ -45137,6 +45221,8 @@ msgid "" "belongs to. On path requests the agent will ignore navmeshes without at " "least one matching layer." msgstr "" +"ä½åŸŸï¼Œç”¨äºŽå†³å®šè¯¥ [NavigationAgent] 所属的导航地图层。请求路径时,代ç†ä¼šå¿½ç•¥æ²¡" +"有任何匹é…å±‚çš„å¯¼èˆªç½‘æ ¼ã€‚" #: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml msgid "The distance to search for other agents." @@ -45219,6 +45305,15 @@ msgid "" "position from this function should be used as the next movement position for " "the agent's parent Node." msgstr "" +"导航ä¸ä½¿ç”¨çš„ 2D 代ç†ï¼Œå¯ä»¥åœ¨å‰å¾€æŸä¸ªä½ç½®æ—¶èº²é¿é™æ€å’ŒåЍæ€éšœç¢ç‰©ã€‚躲é¿åЍæ€éšœç¢" +"物使用的是 RVO(Reciprocal Velocity Obstacles,相对速度障ç¢ç‰©ï¼‰é˜²æ’žç®—法。代ç†" +"需è¦å¯¼èˆªæ•°æ®æ‰èƒ½æ£ç¡®å·¥ä½œã€‚默认情况下,这个节点会在默认的 [World2D] 导航地图ä¸" +"进行注册。如果这个节点是 [Navigation2D] 节点的å项,那么就会在这个导航节点的" +"导航地图ä¸è¿›è¡Œæ³¨å†Œï¼Œä¹Ÿå¯ä»¥ä½¿ç”¨ [method set_navigation] 函数直接设置导航节点。" +"[NavigationAgent2D] 是物ç†å®‰å…¨çš„。\n" +"[b]注æ„:[/b]使用 [method set_target_location] 之åŽï¼Œå¿…须在æ¯ä¸ªç‰©ç†å¸§ä½¿ç”¨ä¸€" +"次 [method get_next_location] å‡½æ•°æ¥æ›´æ–° NavigationAgent 的内部路径逻辑。这个" +"函数返回的å‘é‡ä½ç½®åº”该用作该代ç†çš„父节点的下一次移动ä½ç½®ã€‚" #: doc/classes/NavigationAgent2D.xml msgid "" @@ -45265,6 +45360,8 @@ msgid "" "belongs to. On path requests the agent will ignore navmeshes without at " "least one matching layer." msgstr "" +"ä½åŸŸï¼Œç”¨äºŽå†³å®šè¯¥ [NavigationAgent2D] 所属的导航地图层。请求路径时,代ç†ä¼šå¿½ç•¥" +"没有任何匹é…å±‚çš„å¯¼èˆªç½‘æ ¼ã€‚" #: doc/classes/NavigationMesh.xml msgid "A mesh to approximate the walkable areas and obstacles." @@ -45297,11 +45394,11 @@ msgid "" msgstr "é€šè¿‡æ ¹æ® [Mesh] 设置顶点和索引æ¥åˆå§‹åŒ–å¯¼èˆªç½‘æ ¼ã€‚" #: doc/classes/NavigationMesh.xml -#, fuzzy msgid "" "Returns whether the specified [code]bit[/code] of the [member " "geometry_collision_mask] is set." -msgstr "返回[member geometry/collision_mask]的指定[code]bit[/code]是å¦è¢«è®¾ç½®ã€‚" +msgstr "" +"返回 [member geometry_collision_mask] 上指定的 [code]bit[/code] 是å¦å·²è®¾ç½®ã€‚" #: doc/classes/NavigationMesh.xml doc/classes/NavigationPolygon.xml msgid "" @@ -45320,17 +45417,16 @@ msgid "" msgstr "返回包å«ç”¨äºŽåˆ›å»ºå¤šè¾¹å½¢çš„æ‰€æœ‰é¡¶ç‚¹çš„[PoolVector3Array]。" #: doc/classes/NavigationMesh.xml -#, fuzzy msgid "" "If [code]value[/code] is [code]true[/code], sets the specified [code]bit[/" "code] in the [member geometry_collision_mask].\n" "If [code]value[/code] is [code]false[/code], clears the specified [code]bit[/" "code] in the [member geometry_collision_mask]." msgstr "" -"如果 [code]value[/code] 为 [code]true[/code],则在 [member geometry/" -"collision_mask] ä¸è®¾ç½®æŒ‡å®šçš„ [code]bit[/code]。\n" -"如果 [code]value[/code] 为 [code]false[/code],则在 [member geometry/" -"collision_mask] 䏿¸…除指定的 [code]bit[/code]。" +"如果 [code]value[/code] 为 [code]true[/code],则在 [member " +"geometry_collision_mask] ä¸è®¾ç½®æŒ‡å®šçš„ [code]bit[/code]。\n" +"如果 [code]value[/code] 为 [code]false[/code],则在 [member " +"geometry_collision_mask] 䏿¸…除指定的 [code]bit[/code]。" #: doc/classes/NavigationMesh.xml doc/classes/NavigationPolygon.xml msgid "" @@ -45339,7 +45435,6 @@ msgid "" msgstr "设置顶点,然åŽä½¿ç”¨ [method add_polygon] 方法创建多边形。" #: doc/classes/NavigationMesh.xml -#, fuzzy msgid "" "The minimum floor to ceiling height that will still allow the floor area to " "be considered walkable.\n" @@ -45347,24 +45442,22 @@ msgid "" "multiple of [member cell_height]." msgstr "" "地æ¿åˆ°å¤©èбæ¿çš„æœ€å°é«˜åº¦ï¼Œä»ç„¶å…许被认为是å¯è¡Œèµ°çš„地æ¿ã€‚\n" -"[b]注æ„:[/b]烘焙时,这个值会å‘ä¸Šå–æ•´åˆ°æœ€æŽ¥è¿‘çš„ [member cell/height] çš„å€æ•°ã€‚" +"[b]注æ„:[/b]烘焙时,这个值会å‘ä¸Šå–æ•´åˆ°æœ€æŽ¥è¿‘çš„ [member cell_height] çš„å€æ•°ã€‚" #: doc/classes/NavigationMesh.xml -#, fuzzy msgid "" "The minimum ledge height that is considered to still be traversable.\n" "[b]Note:[/b] While baking, this value will be rounded down to the nearest " "multiple of [member cell_height]." msgstr "" "被认为ä»å¯ç©¿è¶Šçš„æœ€å°å¢™å£é«˜åº¦ã€‚\n" -"[b]注æ„:[/b]烘焙时,该值将å‘下èˆå…¥åˆ°æœ€æŽ¥è¿‘çš„ [member cell/height] çš„å€æ•°ã€‚" +"[b]注æ„:[/b]烘焙时,该值将å‘下èˆå…¥åˆ°æœ€æŽ¥è¿‘çš„ [member cell_height] çš„å€æ•°ã€‚" #: doc/classes/NavigationMesh.xml msgid "The maximum slope that is considered walkable, in degrees." msgstr "认为å¯è¡Œèµ°çš„æœ€å¤§å¡åº¦ï¼Œå•使˜¯åº¦ã€‚" #: doc/classes/NavigationMesh.xml -#, fuzzy msgid "" "The distance to erode/shrink the walkable area of the heightfield away from " "obstructions.\n" @@ -45372,7 +45465,7 @@ msgid "" "multiple of [member cell_size]." msgstr "" "侵蚀/缩å°è¿œç¦»éšœç¢ç‰©çš„高度场的å¯è¡Œèµ°åŒºåŸŸè·ç¦»ã€‚\n" -"[b]注æ„:[/b]烘焙时,这个值会å‘ä¸Šå–æ•´åˆ°æœ€æŽ¥è¿‘çš„ [member cell/size] çš„å€æ•°ã€‚" +"[b]注æ„:[/b]烘焙时,这个值会å‘ä¸Šå–æ•´åˆ°æœ€æŽ¥è¿‘çš„ [member cell_size] çš„å€æ•°ã€‚" #: doc/classes/NavigationMesh.xml msgid "The Y axis cell size to use for fields." @@ -45396,46 +45489,42 @@ msgid "" msgstr "简化轮廓的边界边缘应å离原始原始轮廓的最大è·ç¦»ã€‚" #: doc/classes/NavigationMesh.xml -#, fuzzy msgid "" "The maximum allowed length for contour edges along the border of the mesh.\n" "[b]Note:[/b] While baking, this value will be rounded up to the nearest " "multiple of [member cell_size]." msgstr "" "æ²¿ç½‘æ ¼è¾¹ç•Œçš„è½®å»“çš„æœ€å¤§å…许长度。\n" -"[b]注æ„:[/b]烘焙时,这个值会å‘ä¸Šå–æ•´åˆ°æœ€æŽ¥è¿‘çš„[member cell/size]çš„å€æ•°ã€‚" +"[b]注æ„:[/b]烘焙时,这个值会å‘ä¸Šå–æ•´åˆ°æœ€æŽ¥è¿‘çš„[member cell_size]çš„å€æ•°ã€‚" #: doc/classes/NavigationMesh.xml msgid "If [code]true[/code], marks spans that are ledges as non-walkable." msgstr "如果为 [code]true[/code]ï¼Œåˆ™æ ‡è®°è¾¹ç¼˜é—´çš„è·¨åº¦ä¸ºä¸å¯è¡Œèµ°ã€‚" #: doc/classes/NavigationMesh.xml -#, fuzzy msgid "" "If [code]true[/code], marks non-walkable spans as walkable if their maximum " "is within [member agent_max_climb] of a walkable neighbor." msgstr "" -"如果为 [code]true[/code],如果它们的最大值在å¯è¡Œèµ°é‚»åŸŸçš„ [member agent/" -"max_climb] 内,则将ä¸å¯è¡Œèµ°èŒƒå›´æ ‡è®°ä¸ºå¯è¡Œèµ°ã€‚" +"如果为 [code]true[/code],如果它们的最大值在å¯è¡Œèµ°é‚»åŸŸçš„ [member " +"agent_max_climb] 内,则将ä¸å¯è¡Œèµ°èŒƒå›´æ ‡è®°ä¸ºå¯è¡Œèµ°ã€‚" #: doc/classes/NavigationMesh.xml -#, fuzzy msgid "" "If [code]true[/code], marks walkable spans as not walkable if the clearance " "above the span is less than [member agent_height]." msgstr "" -"如果为 [code]true[/code],如果跨度上方的间隙å°äºŽ [member agent/height],则将" +"如果为 [code]true[/code],如果跨度上方的间隙å°äºŽ [member agent_height],则将" "å¯è¡Œèµ°èŒƒå›´æ ‡è®°ä¸ºä¸å¯è¡Œèµ°ã€‚" #: doc/classes/NavigationMesh.xml -#, fuzzy msgid "" "The physics layers to scan for static colliders.\n" "Only used when [member geometry_parsed_geometry_type] is [constant " "PARSED_GEOMETRY_STATIC_COLLIDERS] or [constant PARSED_GEOMETRY_BOTH]." msgstr "" "用于扫æé™æ€ç¢°æ’žçš„物ç†å±‚。\n" -"仅在 [member geometry/parsed_geometry_type]是[constant " +"仅在 [member geometry_parsed_geometry_type] 是 [constant " "PARSED_GEOMETRY_STATIC_COLLIDERS] 或 [constant PARSED_GEOMETRY_BOTH] æ—¶æ‰ä½¿" "用。" @@ -45452,7 +45541,6 @@ msgid "" msgstr "çƒ˜ç„™æ—¶ä½¿ç”¨çš„å‡ ä½•ä½“çš„æºã€‚å‚阅 [enum SourceGeometryMode]。" #: doc/classes/NavigationMesh.xml -#, fuzzy msgid "" "The name of the group to scan for geometry.\n" "Only used when [member geometry_source_geometry_mode] is [constant " @@ -45460,7 +45548,7 @@ msgid "" "SOURCE_GEOMETRY_GROUPS_EXPLICIT]." msgstr "" "è¦æ‰«æçš„å‡ ä½•ä½“ç»„çš„å称。\n" -"åªæœ‰å½“ [member geometry/source_geometry_mode]是[constant " +"åªæœ‰å½“ [member geometry_source_geometry_mode] 是 [constant " "SOURCE_GEOMETRY_GROUPS_WITH_CHILDREN] 或 [constant " "SOURCE_GEOMETRY_GROUPS_EXPLICIT] æ—¶æ‰ä½¿ç”¨ã€‚" @@ -45529,13 +45617,12 @@ msgstr "" "å°†ç½‘æ ¼å®žä¾‹è§£æžä¸ºå‡ 何体。这包括 [MeshInstance]ã€[CSGShape] å’Œ [GridMap] 节点。" #: doc/classes/NavigationMesh.xml -#, fuzzy msgid "" "Parses [StaticBody] colliders as geometry. The collider should be in any of " "the layers specified by [member geometry_collision_mask]." msgstr "" -"å°† [StaticBody] 碰撞器解æžä¸ºå‡ 何体。碰撞器应ä½äºŽ [member geometry/" -"collision_mask] 指定的任何层ä¸ã€‚" +"å°† [StaticBody] 碰撞器解æžä¸ºå‡ 何体。碰撞器应ä½äºŽ [member " +"geometry_collision_mask] 指定的任何层ä¸ã€‚" #: doc/classes/NavigationMesh.xml msgid "" @@ -45555,21 +45642,19 @@ msgid "" msgstr "递归扫æ [NavigationMeshInstance] çš„å节点以获å–å‡ ä½•ä½“ã€‚" #: doc/classes/NavigationMesh.xml -#, fuzzy msgid "" "Scans nodes in a group and their child nodes recursively for geometry. The " "group is specified by [member geometry_source_group_name]." msgstr "" -"ä»¥é€’å½’æ–¹å¼æ‰«æç»„ä¸çš„节点åŠå…¶å节点以获å–å‡ ä½•å›¾å½¢ã€‚è¯¥ç»„ç”± [member geometry/" -"source_group_name] 指定。" +"ä»¥é€’å½’æ–¹å¼æ‰«æç»„ä¸çš„节点åŠå…¶å节点以获å–å‡ ä½•å›¾å½¢ã€‚è¯¥ç»„ç”± [member " +"geometry_source_group_name] 指定。" #: doc/classes/NavigationMesh.xml -#, fuzzy msgid "" "Uses nodes in a group for geometry. The group is specified by [member " "geometry_source_group_name]." msgstr "" -"使用一个组ä¸çš„èŠ‚ç‚¹è¿›è¡Œå‡ ä½•è¿ç®—。该组由 [member geometry/source_group_name] 指" +"使用一个组ä¸çš„èŠ‚ç‚¹è¿›è¡Œå‡ ä½•è¿ç®—。该组由 [member geometry_source_group_name] 指" "定。" #: doc/classes/NavigationMesh.xml @@ -45635,7 +45720,6 @@ msgstr "" "[NavigationMeshInstance] 使用。" #: doc/classes/NavigationMeshGenerator.xml -#, fuzzy msgid "" "Bakes navigation data to the provided [code]nav_mesh[/code] by parsing child " "nodes under the provided [code]root_node[/code] or a specific group of nodes " @@ -45646,8 +45730,8 @@ msgid "" msgstr "" "将导航数æ®çƒ˜ç„™è‡³æä¾›çš„ [code]nav_mesh[/code] ä¸ã€‚è§£æžçš„æ˜¯æä¾›çš„æ ¹èŠ‚ç‚¹ " "[code]root_node[/code] çš„å节点,或å¯èƒ½åŒ…å«åŽŸå§‹å‡ ä½•ä½“çš„åˆ†ç»„ã€‚è§£æžè¡Œä¸ºå¯ä»¥é€š" -"过 [NavigationMesh] çš„ [member NavigationMesh.geometry/parsed_geometry_type] " -"å’Œ [member NavigationMesh.geometry/source_geometry_mode] 属性控制。" +"过 [NavigationMesh] çš„ [member NavigationMesh.geometry_parsed_geometry_type] " +"å’Œ [member NavigationMesh.geometry_source_geometry_mode] 属性控制。" #: doc/classes/NavigationMeshGenerator.xml msgid "" @@ -45678,6 +45762,18 @@ msgid "" "The cost of traveling distances inside this region can be controlled with " "the [member travel_cost] multiplier." msgstr "" +"[NavigationMesh] 的实例。[Navigation] èŠ‚ç‚¹æ ¹æ®å®ƒçš„ [NavigationMesh] èµ„æºæ¥ç¡®" +"定哪些å¯ä»¥è¿›è¡Œå¯¼èˆªã€å“ªäº›ä¸èƒ½ã€‚\n" +"默认情况下,这个节点会在默认的 [World] 导航地图ä¸è¿›è¡Œæ³¨å†Œã€‚如果这个节点是 " +"[Navigation] 节点的å项,就会在该导航节点的导航地图ä¸è¿›è¡Œæ³¨å†Œã€‚\n" +"如果两个地图共享类似的边界,就å¯ä»¥ç›¸äº’è¿žæŽ¥ã€‚ä½ å¯ä»¥é€šè¿‡ [method " +"NavigationServer.map_set_edge_connection_margin] 设置两个顶点连接两æ¡è¾¹ç•Œæ‰€éœ€" +"的最å°è·ç¦»ã€‚\n" +"[b]注æ„:[/b]å°†ä¸¤ä¸ªåœ°åŒºçš„å¯¼èˆªç½‘æ ¼ç›¸äº’é‡å å¹¶ä¸è¶³ä»¥å°†å…¶ç›¸è¿žã€‚它们必须共享类似的" +"边界。\n" +"从å¦ä¸€ä¸ªåœ°åŒºè¿›å…¥è¿™ä¸ªåœ°å›¾çš„æ¶ˆè€—å¯ä»¥é€šè¿‡ [member enter_cost] 进行控制。\n" +"[b]注æ„:[/b]如果起点已ç»ä½äºŽè¿™ä¸ªåœ°åŒºä¹‹ä¸ï¼Œè¿™ä¸ªå€¼ä¸ä¼šåŠ å…¥åˆ°è·¯å¾„æ¶ˆè€—ä¹‹ä¸ã€‚\n" +"在这个地区ä¸ç§»åŠ¨æ‰€éœ€çš„æ¶ˆè€—å¯ä»¥é€šè¿‡ [member travel_cost] 系数进行控制。" #: doc/classes/NavigationMeshInstance.xml msgid "" @@ -45715,11 +45811,14 @@ msgstr "决定该 [NavigationMeshInstance] å·²å¯ç”¨è¿˜æ˜¯å·²ç¦ç”¨ã€‚" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml +#, fuzzy msgid "" -"When pathfinding enters this regions navmesh from another regions navmesh " +"When pathfinding enters this region's navmesh from another regions navmesh " "the [code]enter_cost[/code] value is added to the path distance for " "determining the shortest path." msgstr "" +"当从å¦ä¸€ä¸ªå¯¼èˆªåœ°åŒºçš„ç½‘æ ¼è¿›å…¥è¿™ä¸ªåœ°åŒºçš„å¯¼èˆªç½‘æ ¼è¿›è¡Œå¯»è·¯æ—¶ï¼Œä¼šå°†è¿›å…¥æ¶ˆè€— " +"[code]enter_cost[/code] åŠ å…¥è·¯å¾„é•¿åº¦ï¼Œä»Žè€Œç¡®å®šæœ€çŸè·¯å¾„。" #: doc/classes/NavigationMeshInstance.xml msgid "" @@ -45728,6 +45827,9 @@ msgid "" "navmeshes without matching layers will be ignored and the navigation map " "will only proximity merge different navmeshes with matching layers." msgstr "" +"ä½åŸŸï¼Œç”¨äºŽå†³å®šè¯¥ [NavigationMesh] 所属的导航地图层。使用 [method " +"NavigationServer.map_get_path] 请求路径时会忽略没有任何匹é…å±‚çš„å¯¼èˆªç½‘æ ¼ï¼Œå¯¼èˆª" +"地图åªä¼šå°†æ‹¥æœ‰åŒ¹é…å±‚çš„å¯¼èˆªç½‘æ ¼è¿›è¡Œè¿‘ä¼¼åˆå¹¶ã€‚" #: doc/classes/NavigationMeshInstance.xml msgid "The [NavigationMesh] resource to use." @@ -45735,11 +45837,14 @@ msgstr "使用的 [NavigationMesh] 资æºã€‚" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml +#, fuzzy msgid "" -"When pathfinding moves inside this regions navmesh the traveled distances " +"When pathfinding moves inside this region's navmesh the traveled distances " "are multiplied with [code]travel_cost[/code] for determining the shortest " "path." msgstr "" +"å½“åœ¨è¿™ä¸ªåœ°åŒºçš„å¯¼èˆªç½‘æ ¼ä¸è¿›è¡Œå¯»è·¯æ—¶ï¼Œä¼šå°†å·²ç§»åŠ¨çš„è·ç¦»ä¹˜ä¸Šç§»åŠ¨æ¶ˆè€— " +"[code]travel_cost[/code],从而确定最çŸè·¯å¾„。" #: doc/classes/NavigationMeshInstance.xml msgid "Notifies when the navigation mesh bake operation is completed." @@ -45754,7 +45859,6 @@ msgid "3D obstacle used in navigation for collision avoidance." msgstr "在导航ä¸ç”¨äºŽé˜²æ’žçš„ 3D éšœç¢ç‰©ã€‚" #: doc/classes/NavigationObstacle.xml -#, fuzzy msgid "" "3D obstacle used in navigation for collision avoidance. The obstacle needs " "navigation data to work correctly. This can be done by having the obstacle " @@ -45765,7 +45869,9 @@ msgid "" msgstr "" "导航ä¸ç”¨äºŽé˜²æ’žçš„ 3D éšœç¢ç‰©ã€‚éšœç¢ç‰©éœ€è¦å¯¼èˆªæ•°æ®æ‰èƒ½æ£ç¡®å·¥ä½œã€‚å¯ä»¥é€šè¿‡è®©éšœç¢ç‰©" "æˆä¸º [Navigation] 节点的å项实现,也å¯ä»¥ä½¿ç”¨ [method set_navigation]。" -"[NavigationObstacle] 是物ç†å®‰å…¨çš„。" +"[NavigationObstacle] 是物ç†å®‰å…¨çš„。\n" +"[b]注æ„:[/b]éšœç¢ç‰©åº”ä½œä¸ºå¤„ç†æŒç»ç§»åŠ¨çš„ç‰©ä½“çš„æœ€åŽæ‰‹æ®µï¼Œæ— æ³•è¿›è¡Œé«˜æ•ˆçš„ï¼ˆé‡æ–°ï¼‰" +"烘焙。" #: doc/classes/NavigationObstacle.xml msgid "" @@ -45803,7 +45909,6 @@ msgid "2D obstacle used in navigation for collision avoidance." msgstr "在导航ä¸ç”¨äºŽé˜²æ’žçš„ 2D éšœç¢ç‰©ã€‚" #: doc/classes/NavigationObstacle2D.xml -#, fuzzy msgid "" "2D obstacle used in navigation for collision avoidance. The obstacle needs " "navigation data to work correctly. This can be done by having the obstacle " @@ -45814,7 +45919,9 @@ msgid "" msgstr "" "导航ä¸ç”¨äºŽé˜²æ’žçš„ 2D éšœç¢ç‰©ã€‚éšœç¢ç‰©éœ€è¦å¯¼èˆªæ•°æ®æ‰èƒ½æ£ç¡®å·¥ä½œã€‚å¯ä»¥é€šè¿‡è®©éšœç¢ç‰©" "æˆä¸º [Navigation2D] 节点的å项实现,也å¯ä»¥ä½¿ç”¨ [method set_navigation]。" -"[NavigationObstacle2D] 是物ç†å®‰å…¨çš„。" +"[NavigationObstacle2D] 是物ç†å®‰å…¨çš„。\n" +"[b]注æ„:[/b]éšœç¢ç‰©åº”ä½œä¸ºå¤„ç†æŒç»ç§»åŠ¨çš„ç‰©ä½“çš„æœ€åŽæ‰‹æ®µï¼Œè¿™äº›ç‰©ä½“æ— æ³•è¿›è¡Œé«˜æ•ˆçš„" +"ï¼ˆé‡æ–°ï¼‰çƒ˜ç„™ã€‚" #: doc/classes/NavigationObstacle2D.xml msgid "" @@ -45926,6 +46033,9 @@ msgid "" "NavigationServer.region_set_navmesh] API directly (as 2D uses the 3D server " "behind the scene)." msgstr "" +"返回这个导航多边形的 [NavigationMesh]ã€‚è¿™ä¸ªå¯¼èˆªç½‘æ ¼å¯ç”¨äºŽä½¿ç”¨ [method " +"NavigationServer.region_set_navmesh] API 直接更新æŸä¸ªåœ°åŒºçš„å¯¼èˆªç½‘æ ¼ï¼ˆ2D 在底" +"层使用的是 3D æœåŠ¡å™¨ï¼‰ã€‚" #: doc/classes/NavigationPolygon.xml msgid "" @@ -45969,9 +46079,8 @@ msgstr "" "make_polygons_from_outlines] æ¥æ›´æ–°å¤šè¾¹å½¢ã€‚" #: doc/classes/NavigationPolygonInstance.xml -#, fuzzy msgid "A region of the 2D navigation map." -msgstr "çƒ˜ç„™å¯¼èˆªç½‘æ ¼ã€‚" +msgstr "2D 导航地图上的一个地区。" #: doc/classes/NavigationPolygonInstance.xml msgid "" @@ -45992,6 +46101,18 @@ msgid "" "The pathfinding cost of traveling distances inside this region can be " "controlled with the [member travel_cost] multiplier." msgstr "" +"导航地图上的地区。[Navigation2DServer] æ ¹æ®å®ƒçš„ [NavigationPolygon] èµ„æºæ¥ç¡®" +"定哪些å¯ä»¥è¿›è¡Œå¯¼èˆªã€å“ªäº›ä¸èƒ½ã€‚\n" +"默认情况下,这个节点会在默认的 [World2D] 导航地图ä¸è¿›è¡Œæ³¨å†Œã€‚如果这个节点是 " +"[Navigation2D] 节点的å项,就会在该导航节点的导航地图ä¸è¿›è¡Œæ³¨å†Œã€‚\n" +"如果两个地图共享类似的边界,就å¯ä»¥ç›¸äº’è¿žæŽ¥ã€‚ä½ å¯ä»¥é€šè¿‡ [method " +"Navigation2DServer.map_set_edge_connection_margin] 设置两个顶点连接两æ¡è¾¹ç•Œæ‰€" +"需的最å°è·ç¦»ã€‚\n" +"[b]注æ„:[/b]å°†ä¸¤ä¸ªåœ°åŒºçš„å¯¼èˆªç½‘æ ¼ç›¸äº’é‡å å¹¶ä¸è¶³ä»¥å°†å…¶ç›¸è¿žã€‚它们必须共享类似的" +"边界。\n" +"从å¦ä¸€ä¸ªåœ°åŒºè¿›å…¥è¿™ä¸ªåœ°å›¾çš„寻路消耗å¯ä»¥é€šè¿‡ [member enter_cost] 进行控制。\n" +"[b]注æ„:[/b]如果起点已ç»ä½äºŽè¿™ä¸ªåœ°åŒºä¹‹ä¸ï¼Œè¿™ä¸ªå€¼ä¸ä¼šåŠ å…¥åˆ°è·¯å¾„æ¶ˆè€—ä¹‹ä¸ã€‚\n" +"在这个地区ä¸ç§»åŠ¨æ‰€éœ€çš„å¯»è·¯æ¶ˆè€—å¯ä»¥é€šè¿‡ [member travel_cost] 系数进行控制。" #: doc/classes/NavigationPolygonInstance.xml msgid "" @@ -46005,9 +46126,8 @@ msgstr "" "ä¸ä¸ŽæŸä¸ªç‚¹æœ€æŽ¥è¿‘çš„ [NavigationPolygonInstance]。" #: doc/classes/NavigationPolygonInstance.xml -#, fuzzy msgid "Determines if the [NavigationPolygonInstance] is enabled or disabled." -msgstr "决定该 [NavigationMeshInstance] å·²å¯ç”¨è¿˜æ˜¯å·²ç¦ç”¨ã€‚" +msgstr "决定该 [NavigationPolygonInstance] å·²å¯ç”¨è¿˜æ˜¯å·²ç¦ç”¨ã€‚" #: doc/classes/NavigationPolygonInstance.xml msgid "" @@ -46016,11 +46136,13 @@ msgid "" "navmeshes without matching layers will be ignored and the navigation map " "will only proximity merge different navmeshes with matching layers." msgstr "" +"ä½åŸŸï¼Œç”¨äºŽå†³å®šè¯¥ [NavigationPolygon] 所属的导航地图层。使用 [method " +"Navigation2DServer.map_get_path] 请求路径时会忽略没有任何匹é…å±‚çš„å¯¼èˆªç½‘æ ¼ï¼Œå¯¼" +"航地图åªä¼šå°†æ‹¥æœ‰åŒ¹é…å±‚çš„å¯¼èˆªç½‘æ ¼è¿›è¡Œè¿‘ä¼¼åˆå¹¶ã€‚" #: doc/classes/NavigationPolygonInstance.xml -#, fuzzy msgid "The [NavigationPolygon] resource to use." -msgstr "使用的 [NavigationMesh] 资æºã€‚" +msgstr "使用的 [NavigationPolygon] 资æºã€‚" #: doc/classes/NavigationServer.xml msgid "Server interface for low-level 3D navigation access." @@ -46121,6 +46243,8 @@ msgid "" "Set the region's navigation layers. This allows selecting regions from a " "path request (when using [method NavigationServer.map_get_path])." msgstr "" +"设置该地区的导航层。å¯ä»¥åœ¨ï¼ˆä½¿ç”¨ [method NavigationServer.map_get_path])进行" +"路径请求时选择地区。" #: doc/classes/NavigationServer.xml msgid "Control activation of this server." @@ -48511,6 +48635,10 @@ msgid "" "changed to negative scales on the Y axis and a rotation of 180 degrees when " "decomposed." msgstr "" +"该节点的缩放。未缩放值:[code](1, 1)[/code]。\n" +"[b]注æ„:[/b]2D ä¸ï¼Œå˜æ¢çŸ©é˜µæ˜¯æ— 法分解出负数的 X 缩放的。由于 Godot ä¸ä½¿ç”¨å˜" +"æ¢çŸ©é˜µæ¥è¡¨ç¤ºç¼©æ”¾ï¼ŒX 轴上的负数缩放在分解åŽä¼šå˜ä¸º Y 轴的负数缩放和一次 180 度" +"的旋转。" #: doc/classes/Node2D.xml msgid "Local [Transform2D]." @@ -51381,6 +51509,15 @@ msgid "" "OS.move_to_trash(ProjectSettings.globalize_path(file_to_remove))\n" "[/codeblock]" msgstr "" +"将文件或目录移动到系统的回收站。å¦è¯·å‚阅 [method Directory.remove].\n" +"该方法仅支æŒå…¨å±€è·¯å¾„ï¼Œæ‰€ä»¥ä½ å¯èƒ½éœ€è¦ä½¿ç”¨ [method ProjectSettings." +"globalize_path]。请勿将其用于 [code]res://[/code] ä¸çš„æ–‡ä»¶ï¼Œå› 为在导出åŽçš„项" +"ç›®ä¸æ˜¯æ— 法æ£å¸¸å·¥ä½œçš„。\n" +"[b]注æ„:[/b]如果用户在系统ä¸ç¦ç”¨äº†å›žæ”¶ç«™ï¼Œé‚£ä¹ˆè¯¥æ–‡ä»¶ä¼šè¢«æ°¸ä¹…åˆ é™¤ã€‚\n" +"[codeblock]\n" +"var file_to_remove = \"user://slot1.sav\"\n" +"OS.move_to_trash(ProjectSettings.globalize_path(file_to_remove))\n" +"[/codeblock]" #: doc/classes/OS.xml msgid "" @@ -59222,12 +59359,16 @@ msgid "" "default, this message is only used in exported projects due to the editor-" "only override applied to this setting." msgstr "" +"å¼•æ“Žå´©æºƒæ—¶ï¼Œåœ¨è°ƒç”¨ç«™å›žæº¯å‰æ˜¾ç¤ºçš„æ¶ˆæ¯ã€‚默认情况下,这个消æ¯åªä¼šåœ¨å¯¼å‡ºåŽçš„项目" +"ä¸ä½¿ç”¨ï¼Œå› 为编辑器会对这个设置进行覆盖。" #: doc/classes/ProjectSettings.xml msgid "" "Editor-only override for [member debug/settings/crash_handler/message]. Does " "not affect exported projects in debug or release mode." msgstr "" +"仅用于编辑器的 [member debug/settings/crash_handler/message] 覆盖项。ä¸ä¼šå½±å“" +"用调试或å‘布模å¼å¯¼å‡ºçš„项目。" #: doc/classes/ProjectSettings.xml msgid "" @@ -59540,6 +59681,18 @@ msgstr "" #: doc/classes/ProjectSettings.xml msgid "" +"Default naming style for scene files to infer from their root nodes. " +"Possible options are:\n" +"- [code]0[/code] (Auto): Uses the scene root name as is without changing its " +"casing.\n" +"- [code]1[/code] (PascalCase): Converts the scene root name to PascalCase " +"casing.\n" +"- [code]2[/code] (snake_case): Converts the scene root name to snake_case " +"casing." +msgstr "" + +#: doc/classes/ProjectSettings.xml +msgid "" "Search path for project-specific script templates. Godot will search for " "script templates both in the editor-specific path and in this project-" "specific path." @@ -59838,193 +59991,193 @@ msgstr "触摸事件的默认延迟(å•ä½ä¸ºç§’ï¼‰ã€‚ä»…å½±å“ iOS 设备。" msgid "" "Optional name for the 2D navigation layer 1. If left empty, the layer will " "display as \"Layer 1\"." -msgstr "" +msgstr "2D 导航层 1 çš„å¯é€‰å称。留空则会显示为“层 1â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 2D navigation layer 10. If left empty, the layer will " "display as \"Layer 10\"." -msgstr "" +msgstr "2D 导航层 10 çš„å¯é€‰å称。留空则会显示为“层 10â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 2D navigation layer 11. If left empty, the layer will " "display as \"Layer 11\"." -msgstr "" +msgstr "2D 导航层 11 çš„å¯é€‰å称。留空则会显示为“层 11â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 2D navigation layer 12. If left empty, the layer will " "display as \"Layer 12\"." -msgstr "" +msgstr "2D 导航层 12 çš„å¯é€‰å称。留空则会显示为“层 12â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 2D navigation layer 13. If left empty, the layer will " "display as \"Layer 13\"." -msgstr "" +msgstr "2D 导航层 13 çš„å¯é€‰å称。留空则会显示为“层 13â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 2D navigation layer 14. If left empty, the layer will " "display as \"Layer 14\"." -msgstr "" +msgstr "2D 导航层 14 çš„å¯é€‰å称。留空则会显示为“层 14â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 2D navigation layer 15. If left empty, the layer will " "display as \"Layer 15\"." -msgstr "" +msgstr "2D 导航层 15 çš„å¯é€‰å称。留空则会显示为“层 15â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 2D navigation layer 16. If left empty, the layer will " "display as \"Layer 16\"." -msgstr "" +msgstr "2D 导航层 16 çš„å¯é€‰å称。留空则会显示为“层 16â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 2D navigation layer 17. If left empty, the layer will " "display as \"Layer 17\"." -msgstr "" +msgstr "2D 导航层 17 çš„å¯é€‰å称。留空则会显示为“层 17â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 2D navigation layer 18. If left empty, the layer will " "display as \"Layer 18\"." -msgstr "" +msgstr "2D 导航层 18 çš„å¯é€‰å称。留空则会显示为“层 18â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 2D navigation layer 19. If left empty, the layer will " "display as \"Layer 19\"." -msgstr "" +msgstr "2D 导航层 19 çš„å¯é€‰å称。留空则会显示为“层 19â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 2D navigation layer 2. If left empty, the layer will " "display as \"Layer 2\"." -msgstr "" +msgstr "2D 导航层 2 çš„å¯é€‰å称。留空则会显示为“层 2â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 2D navigation layer 20. If left empty, the layer will " "display as \"Layer 20\"." -msgstr "" +msgstr "2D 导航层 20 çš„å¯é€‰å称。留空则会显示为“层 20â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 2D navigation layer 21. If left empty, the layer will " "display as \"Layer 21\"." -msgstr "" +msgstr "2D 导航层 21 çš„å¯é€‰å称。留空则会显示为“层 21â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 2D navigation layer 22. If left empty, the layer will " "display as \"Layer 22\"." -msgstr "" +msgstr "2D 导航层 22 çš„å¯é€‰å称。留空则会显示为“层 22â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 2D navigation layer 23. If left empty, the layer will " "display as \"Layer 23\"." -msgstr "" +msgstr "2D 导航层 23 çš„å¯é€‰å称。留空则会显示为“层 23â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 2D navigation layer 24. If left empty, the layer will " "display as \"Layer 24\"." -msgstr "" +msgstr "2D 导航层 24 çš„å¯é€‰å称。留空则会显示为“层 24â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 2D navigation layer 25. If left empty, the layer will " "display as \"Layer 25\"." -msgstr "" +msgstr "2D 导航层 25 çš„å¯é€‰å称。留空则会显示为“层 25â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 2D navigation layer 26. If left empty, the layer will " "display as \"Layer 26\"." -msgstr "" +msgstr "2D 导航层 26 çš„å¯é€‰å称。留空则会显示为“层 26â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 2D navigation layer 27. If left empty, the layer will " "display as \"Layer 27\"." -msgstr "" +msgstr "2D 导航层 27 çš„å¯é€‰å称。留空则会显示为“层 27â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 2D navigation layer 28. If left empty, the layer will " "display as \"Layer 28\"." -msgstr "" +msgstr "2D 导航层 28 çš„å¯é€‰å称。留空则会显示为“层 28â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 2D navigation layer 29. If left empty, the layer will " "display as \"Layer 29\"." -msgstr "" +msgstr "2D 导航层 29 çš„å¯é€‰å称。留空则会显示为“层 29â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 2D navigation layer 3. If left empty, the layer will " "display as \"Layer 3\"." -msgstr "" +msgstr "2D 导航层 3 çš„å¯é€‰å称。留空则会显示为“层 3â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 2D navigation layer 30. If left empty, the layer will " "display as \"Layer 30\"." -msgstr "" +msgstr "2D 导航层 30 çš„å¯é€‰å称。留空则会显示为“层 30â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 2D navigation layer 31. If left empty, the layer will " "display as \"Layer 31\"." -msgstr "" +msgstr "2D 导航层 31 çš„å¯é€‰å称。留空则会显示为“层 31â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 2D navigation layer 32. If left empty, the layer will " "display as \"Layer 32\"." -msgstr "" +msgstr "2D 导航层 32 çš„å¯é€‰å称。留空则会显示为“层 32â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 2D navigation layer 4. If left empty, the layer will " "display as \"Layer 4\"." -msgstr "" +msgstr "2D 导航层 4 çš„å¯é€‰å称。留空则会显示为“层 4â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 2D navigation layer 5. If left empty, the layer will " "display as \"Layer 5\"." -msgstr "" +msgstr "2D 导航层 5 çš„å¯é€‰å称。留空则会显示为“层 5â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 2D navigation layer 6. If left empty, the layer will " "display as \"Layer 6\"." -msgstr "" +msgstr "2D 导航层 6 çš„å¯é€‰å称。留空则会显示为“层 6â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 2D navigation layer 7. If left empty, the layer will " "display as \"Layer 7\"." -msgstr "" +msgstr "2D 导航层 7 çš„å¯é€‰å称。留空则会显示为“层 7â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 2D navigation layer 8. If left empty, the layer will " "display as \"Layer 8\"." -msgstr "" +msgstr "2D 导航层 8 çš„å¯é€‰å称。留空则会显示为“层 8â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 2D navigation layer 9. If left empty, the layer will " "display as \"Layer 9\"." -msgstr "" +msgstr "2D 导航层 9 çš„å¯é€‰å称。留空则会显示为“层 9â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "Optional name for the 2D physics layer 1." @@ -60238,193 +60391,193 @@ msgstr "2D 渲染层 9 çš„å¯é€‰å称。" msgid "" "Optional name for the 3D navigation layer 1. If left empty, the layer will " "display as \"Layer 1\"." -msgstr "" +msgstr "3D 导航层 1 çš„å¯é€‰å称。留空则会显示为“层 1â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 3D navigation layer 10. If left empty, the layer will " "display as \"Layer 10\"." -msgstr "" +msgstr "3D 导航层 10 çš„å¯é€‰å称。留空则会显示为“层 10â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 3D navigation layer 11. If left empty, the layer will " "display as \"Layer 11\"." -msgstr "" +msgstr "3D 导航层 11 çš„å¯é€‰å称。留空则会显示为“层 11â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 3D navigation layer 12. If left empty, the layer will " "display as \"Layer 12\"." -msgstr "" +msgstr "3D 导航层 12 çš„å¯é€‰å称。留空则会显示为“层 12â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 3D navigation layer 13. If left empty, the layer will " "display as \"Layer 13\"." -msgstr "" +msgstr "3D 导航层 13 çš„å¯é€‰å称。留空则会显示为“层 13â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 3D navigation layer 14. If left empty, the layer will " "display as \"Layer 14\"." -msgstr "" +msgstr "3D 导航层 14 çš„å¯é€‰å称。留空则会显示为“层 14â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 3D navigation layer 15. If left empty, the layer will " "display as \"Layer 15\"." -msgstr "" +msgstr "3D 导航层 15 çš„å¯é€‰å称。留空则会显示为“层 15â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 3D navigation layer 16. If left empty, the layer will " "display as \"Layer 16\"." -msgstr "" +msgstr "3D 导航层 16 çš„å¯é€‰å称。留空则会显示为“层 16â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 3D navigation layer 17. If left empty, the layer will " "display as \"Layer 17\"." -msgstr "" +msgstr "3D 导航层 17 çš„å¯é€‰å称。留空则会显示为“层 17â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 3D navigation layer 18. If left empty, the layer will " "display as \"Layer 18\"." -msgstr "" +msgstr "3D 导航层 18 çš„å¯é€‰å称。留空则会显示为“层 18â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 3D navigation layer 19. If left empty, the layer will " "display as \"Layer 19\"." -msgstr "" +msgstr "3D 导航层 19 çš„å¯é€‰å称。留空则会显示为“层 19â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 3D navigation layer 2. If left empty, the layer will " "display as \"Layer 2\"." -msgstr "" +msgstr "3D 导航层 2 çš„å¯é€‰å称。留空则会显示为“层 2â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 3D navigation layer 20. If left empty, the layer will " "display as \"Layer 20\"." -msgstr "" +msgstr "3D 导航层 20 çš„å¯é€‰å称。留空则会显示为“层 20â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 3D navigation layer 21. If left empty, the layer will " "display as \"Layer 21\"." -msgstr "" +msgstr "3D 导航层 21 çš„å¯é€‰å称。留空则会显示为“层 21â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 3D navigation layer 22. If left empty, the layer will " "display as \"Layer 22\"." -msgstr "" +msgstr "3D 导航层 22 çš„å¯é€‰å称。留空则会显示为“层 22â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 3D navigation layer 23. If left empty, the layer will " "display as \"Layer 23\"." -msgstr "" +msgstr "3D 导航层 23 çš„å¯é€‰å称。留空则会显示为“层 23â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 3D navigation layer 24. If left empty, the layer will " "display as \"Layer 24\"." -msgstr "" +msgstr "3D 导航层 24 çš„å¯é€‰å称。留空则会显示为“层 24â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 3D navigation layer 25. If left empty, the layer will " "display as \"Layer 25\"." -msgstr "" +msgstr "3D 导航层 25 çš„å¯é€‰å称。留空则会显示为“层 25â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 3D navigation layer 26. If left empty, the layer will " "display as \"Layer 26\"." -msgstr "" +msgstr "3D 导航层 26 çš„å¯é€‰å称。留空则会显示为“层 26â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 3D navigation layer 27. If left empty, the layer will " "display as \"Layer 27\"." -msgstr "" +msgstr "3D 导航层 27 çš„å¯é€‰å称。留空则会显示为“层 27â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 3D navigation layer 28. If left empty, the layer will " "display as \"Layer 28\"." -msgstr "" +msgstr "3D 导航层 28 çš„å¯é€‰å称。留空则会显示为“层 28â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 3D navigation layer 29. If left empty, the layer will " "display as \"Layer 29\"." -msgstr "" +msgstr "3D 导航层 29 çš„å¯é€‰å称。留空则会显示为“层 29â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 3D navigation layer 3. If left empty, the layer will " "display as \"Layer 3\"." -msgstr "" +msgstr "3D 导航层 3 çš„å¯é€‰å称。留空则会显示为“层 3â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 3D navigation layer 30. If left empty, the layer will " "display as \"Layer 30\"." -msgstr "" +msgstr "3D 导航层 30 çš„å¯é€‰å称。留空则会显示为“层 30â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 3D navigation layer 31. If left empty, the layer will " "display as \"Layer 31\"." -msgstr "" +msgstr "3D 导航层 31 çš„å¯é€‰å称。留空则会显示为“层 31â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 3D navigation layer 32. If left empty, the layer will " "display as \"Layer 32\"." -msgstr "" +msgstr "3D 导航层 32 çš„å¯é€‰å称。留空则会显示为“层 32â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 3D navigation layer 4. If left empty, the layer will " "display as \"Layer 4\"." -msgstr "" +msgstr "3D 导航层 4 çš„å¯é€‰å称。留空则会显示为“层 4â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 3D navigation layer 5. If left empty, the layer will " "display as \"Layer 5\"." -msgstr "" +msgstr "3D 导航层 5 çš„å¯é€‰å称。留空则会显示为“层 5â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 3D navigation layer 6. If left empty, the layer will " "display as \"Layer 6\"." -msgstr "" +msgstr "3D 导航层 6 çš„å¯é€‰å称。留空则会显示为“层 6â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 3D navigation layer 7. If left empty, the layer will " "display as \"Layer 7\"." -msgstr "" +msgstr "3D 导航层 7 çš„å¯é€‰å称。留空则会显示为“层 7â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 3D navigation layer 8. If left empty, the layer will " "display as \"Layer 8\"." -msgstr "" +msgstr "3D 导航层 8 çš„å¯é€‰å称。留空则会显示为“层 8â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "" "Optional name for the 3D navigation layer 9. If left empty, the layer will " "display as \"Layer 9\"." -msgstr "" +msgstr "3D 导航层 9 çš„å¯é€‰å称。留空则会显示为“层 9â€ã€‚" #: doc/classes/ProjectSettings.xml msgid "Optional name for the 3D physics layer 1." @@ -60712,42 +60865,54 @@ msgid "" "map_set_cell_height].\n" "[b]Note:[/b] Currently not implemented." msgstr "" +"2D 导航地图的默认å•å…ƒæ ¼é«˜åº¦ã€‚è§ [method Navigation2DServer." +"map_set_cell_height]。\n" +"[b]注æ„:[/b]尚未实现。" #: doc/classes/ProjectSettings.xml msgid "" "Default cell size for 2D navigation maps. See [method Navigation2DServer." "map_set_cell_size]." msgstr "" +"2D 导航地图的默认å•å…ƒæ ¼å¤§å°ã€‚è§ [method Navigation2DServer." +"map_set_cell_size]。" #: doc/classes/ProjectSettings.xml msgid "" "Default edge connection margin for 2D navigation maps. See [method " "Navigation2DServer.map_set_edge_connection_margin]." msgstr "" +"2D 导航地图的默认边界连接边è·ã€‚è§ [method Navigation2DServer." +"map_set_edge_connection_margin]。" #: doc/classes/ProjectSettings.xml msgid "" "Default cell height for 3D navigation maps. See [method NavigationServer." "map_set_cell_height]." msgstr "" +"3D 导航地图的默认å•å…ƒæ ¼é«˜åº¦ã€‚è§ [method NavigationServer." +"map_set_cell_height]。" #: doc/classes/ProjectSettings.xml msgid "" "Default cell size for 3D navigation maps. See [method NavigationServer." "map_set_cell_size]." msgstr "" +"3D 导航地图的默认å•å…ƒæ ¼å¤§å°ã€‚è§ [method NavigationServer.map_set_cell_size]。" #: doc/classes/ProjectSettings.xml msgid "" "Default edge connection margin for 3D navigation maps. See [method " "NavigationServer.map_set_edge_connection_margin]." msgstr "" +"3D 导航地图的默认边界连接边è·ã€‚è§ [method NavigationServer." +"map_set_edge_connection_margin]。" #: doc/classes/ProjectSettings.xml msgid "" "Default map up vector for 3D navigation maps. See [method NavigationServer." "map_set_up]." -msgstr "" +msgstr "3D 导航地图的默认地图上å‘é‡ã€‚è§ [method NavigationServer.map_set_up]。" #: doc/classes/ProjectSettings.xml msgid "" @@ -62742,7 +62907,6 @@ msgid "General-purpose 3D proximity detection node." msgstr "通用的 3D 邻近检测节点。" #: doc/classes/ProximityGroup.xml -#, fuzzy msgid "" "General-purpose proximity detection node. [ProximityGroup] can be used for " "[i]approximate[/i] distance checks, which are faster than exact distance " @@ -65618,24 +65782,20 @@ msgid "Makes text fill width." msgstr "使文本填充宽度。" #: doc/classes/RichTextLabel.xml -#, fuzzy msgid "Aligns top of the inline image to the top of the text." -msgstr "ç›’å的高度,从盒åçš„ä¸å¿ƒå¼€å§‹æµ‹é‡ã€‚" +msgstr "将内è”图åƒçš„顶部与文本的顶部对é½ã€‚" #: doc/classes/RichTextLabel.xml -#, fuzzy msgid "Aligns center of the inline image to the center of the text." -msgstr "å°†å项与容器的ä¸å¿ƒå¯¹é½ã€‚" +msgstr "将内è”图åƒçš„ä¸å¿ƒä¸Žæ–‡æœ¬çš„ä¸å¿ƒå¯¹é½ã€‚" #: doc/classes/RichTextLabel.xml -#, fuzzy msgid "Aligns bottom of the inline image to the baseline of the text." -msgstr "ç›’å的高度,从盒åçš„ä¸å¿ƒå¼€å§‹æµ‹é‡ã€‚" +msgstr "将内è”图åƒçš„底部与文本的基线对é½ã€‚" #: doc/classes/RichTextLabel.xml -#, fuzzy msgid "Aligns bottom of the inline image to the bottom of the text." -msgstr "å°†åæŽ§ä»¶ä¸Žå®¹å™¨çš„æœ«ç«¯å¯¹é½ï¼Œå³ä¾§æˆ–底部。" +msgstr "将内è”图åƒçš„底部与文本的底部对é½ã€‚" #: doc/classes/RichTextLabel.xml msgid "Each list item has a number marker." @@ -67928,7 +68088,6 @@ msgid "One-shot timer." msgstr "一次性定时器。" #: doc/classes/SceneTreeTimer.xml -#, fuzzy msgid "" "A one-shot timer managed by the scene tree, which emits [signal timeout] on " "completion. See also [method SceneTree.create_timer].\n" @@ -67953,8 +68112,8 @@ msgstr "" " yield(get_tree().create_timer(1.0), \"timeout\")\n" " print(\"计时器结æŸã€‚\")\n" "[/codeblock]\n" -"时间结æŸåŽï¼Œè¯¥è®¡æ—¶å™¨å°†è¢«è‡ªåŠ¨é‡Šæ”¾ï¼Œæ‰€ä»¥è¯·æ³¨æ„ï¼Œä½ æ‰€ä¿ç•™çš„任何对它的引用届时都" -"会失效。" +"时间结æŸåŽï¼Œå¯¹è¯¥è®¡æ—¶å™¨çš„引用将被自动释放。è¦ä¿ç•™è¯¥è®¡æ—¶å™¨ï¼Œä½ å¯ä»¥ä¿æŒå¯¹å®ƒçš„引" +"ç”¨ã€‚è§ [Reference]。" #: doc/classes/SceneTreeTimer.xml msgid "The time remaining (in seconds)." @@ -70204,6 +70363,9 @@ msgid "" "transformation matrices in Godot, the scale values will either be all " "positive or all negative." msgstr "" +"æœ¬åœ°å˜æ¢ä¸çš„缩放。\n" +"[b]注æ„:[/b]3D ä¸ï¼Œå˜æ¢çŸ©é˜µæ˜¯æ— 法分解出æ£è´Ÿæ··åˆçš„缩放的。由于 Godot ä¸ä½¿ç”¨å˜" +"æ¢çŸ©é˜µæ¥è¡¨ç¤ºç¼©æ”¾ï¼Œå¾—到的缩放值è¦ä¹ˆå…¨æ£ã€è¦ä¹ˆå…¨è´Ÿã€‚" #: doc/classes/Spatial.xml msgid "Local space [Transform] of this node, with respect to the parent node." @@ -77705,9 +77867,8 @@ msgstr "" "[/codeblock]" #: doc/classes/TileMap.xml -#, fuzzy msgid "If [code]true[/code], this TileMap bakes a navigation region." -msgstr "为 [code]true[/code] æ—¶å˜åœ¨æŒ‡å®šå称的动画。" +msgstr "如果为 [code]true[/code],这个 TileMap 会烘焙导航地区。" #: doc/classes/TileMap.xml msgid "If [code]true[/code], the cell's UVs will be clipped." @@ -77843,7 +78004,7 @@ msgstr "图å—åœ°å›¾çš„æ–¹å‘æ¨¡å¼ã€‚有关å¯èƒ½çš„值,å‚阅[enum Mode]。" #: doc/classes/TileMap.xml msgid "The navigation layers the TileMap generates its navigation regions in." -msgstr "" +msgstr "TileMap 生æˆå…¶å¯¼èˆªåœ°åŒºçš„导航层。" #: doc/classes/TileMap.xml msgid "" @@ -79205,6 +79366,10 @@ msgid "" "changed to negative scales on the Y axis and a rotation of 180 degrees when " "decomposed." msgstr "" +"è¿”å›žè¯¥å˜æ¢åœ¨ä½¿ç”¨ç»™å®šçš„ [code]scale[/code] 缩放系统进行矩阵乘法åŽçš„副本。\n" +"[b]注æ„:[/b]2D ä¸ï¼Œå˜æ¢çŸ©é˜µæ˜¯æ— 法分解出负数的 X 缩放的。由于 Godot ä¸ä½¿ç”¨å˜" +"æ¢çŸ©é˜µæ¥è¡¨ç¤ºç¼©æ”¾ï¼ŒX 轴上的负数缩放在分解åŽä¼šå˜ä¸º Y 轴的负数缩放和一次 180 度" +"的旋转。" #: doc/classes/Transform2D.xml msgid "" @@ -83740,23 +83905,26 @@ msgstr "如果[code]true[/code],父级的[method Node._process]å°†è¢«åœæ¢ã€‚ #: doc/classes/VisibilityEnabler2D.xml msgid "This enabler will freeze [RigidBody2D] nodes." -msgstr "这个å¯ç”¨ç¨‹åºå°†å†»ç»“[RigidBody2D]节点。" +msgstr "这个å¯ç”¨ç¨‹åºå°†å†»ç»“ [RigidBody2D] 节点。" #: doc/classes/VisibilityEnabler2D.xml msgid "This enabler will stop [Particles2D] nodes." -msgstr "这个å¯ç”¨ç¨‹åºå°†åœæ¢[Particles2D]节点。" +msgstr "这个å¯ç”¨ç¨‹åºå°†åœæ¢ [Particles2D] 节点。" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _process function." -msgstr "这个å¯ç”¨ç¨‹åºå°†åœæ¢çˆ¶ç±»çš„_process函数。" +#, fuzzy +msgid "This enabler will stop the parent's [method Node._process] function." +msgstr "这个å¯ç”¨ç¨‹åºå°†åœæ¢çˆ¶ç±»çš„ _process 函数。" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _physics_process function." -msgstr "这个å¯ç”¨ç¨‹åºå°†åœæ¢çˆ¶ç±»çš„_physics_process函数。" +#, fuzzy +msgid "" +"This enabler will stop the parent's [method Node._physics_process] function." +msgstr "这个å¯ç”¨ç¨‹åºå°†åœæ¢çˆ¶ç±»çš„ _physics_process 函数。" #: doc/classes/VisibilityEnabler2D.xml msgid "This enabler will stop [AnimatedSprite] nodes animations." -msgstr "这个å¯ç”¨ç¨‹åºå°†åœæ¢[AnimatedSprite]节点的动画。" +msgstr "这个å¯ç”¨ç¨‹åºå°†åœæ¢ [AnimatedSprite] 节点的动画。" #: doc/classes/VisibilityNotifier.xml doc/classes/VisibilityNotifier2D.xml msgid "Detects approximately when the node is visible on screen." @@ -83809,6 +83977,10 @@ msgid "" "nodes that are far away.\n" "[b]Note:[/b] This feature will be disabled if set to 0.0." msgstr "" +"除了检查节点是å¦åœ¨å±å¹•内或在 [Camera] 的视野内,VisibilityNotifier 还å¯ä»¥åœ¨ä½¿" +"用é€è§†æŠ•影的 [Camera] 时对节点是å¦åœ¨æŒ‡å®šçš„æœ€å¤§è·ç¦»å†…进行检测。å¯ç”¨äºŽé™åˆ¶è¿œè·" +"离节点的性能需求。\n" +"[b]注æ„:[/b]如果设为 0.0 则会ç¦ç”¨è¿™ä¸ªç‰¹æ€§ã€‚" #: doc/classes/VisibilityNotifier.xml msgid "Emitted when the VisibilityNotifier enters a [Camera]'s view." @@ -89285,6 +89457,11 @@ msgid "" "compilations when this value is zero for at least two frames in a row.\n" "Unimplemented in the GLES2 rendering backend, always returns 0." msgstr "" +"在该帧ä¸ï¼Œå¤„于编译状æ€çš„ç€è‰²å™¨æ•°é‡å³°å€¼ã€‚\n" +"å¯ç”¨äºŽæ£€æŸ¥å±å¹•上当å‰ç€è‰²å™¨çš„异æ¥ç¼–译是å¦å®Œæˆã€‚\n" +"[b]注æ„:[/b]è¦çœŸæ£ç¡®å®šå®Œæˆï¼Œè¯·åœ¨è¿™ä¸ªå€¼è‡³å°‘连ç»ä¸¤å¸§éƒ½ä¸ºé›¶æ—¶æ‰è®¤ä¸ºæ²¡æœ‰å…¶ä»–东西" +"需è¦ç¼–译。\n" +"GLES2 渲染åŽç«¯ä¸å°šæœªå®žçŽ°ï¼Œå§‹ç»ˆè¿”å›ž 0。" #: doc/classes/VisualServer.xml msgid "The amount of surface changes in the frame." @@ -93271,14 +93448,13 @@ msgid "Class that has everything pertaining to a world." msgstr "拥有与世界相关的一切的类。" #: doc/classes/World.xml -#, fuzzy msgid "" "Class that has everything pertaining to a world. A physics space, a visual " "scenario, a navigation map and a sound space. Spatial nodes register their " "resources into the current world." msgstr "" -"拥有与世界相关的一切的类。物ç†ç©ºé—´ã€è§†è§‰åœºæ™¯å’Œå£°éŸ³ç©ºé—´ã€‚ç©ºé—´èŠ‚ç‚¹å°†å…¶èµ„æºæ³¨å†Œ" -"到当å‰ä¸–界ä¸ã€‚" +"拥有与世界相关的一切的类。物ç†ç©ºé—´ã€è§†è§‰åœºæ™¯ã€å¯¼èˆªåœ°å›¾å’Œå£°éŸ³ç©ºé—´ã€‚空间节点将" +"å…¶èµ„æºæ³¨å†Œåˆ°å½“å‰ä¸–界ä¸ã€‚" #: doc/classes/World.xml msgid "" @@ -93291,18 +93467,18 @@ msgid "The World's [Environment]." msgstr "Worldçš„[Environment]环境。" #: doc/classes/World.xml +#, fuzzy msgid "" -"The World's fallback_environment will be used if the World's [Environment] " -"fails or is missing." +"The World's fallback environment will be used if [member environment] fails " +"or is missing." msgstr "" "如果 World çš„ [Environment] 失败或丢失,将使用 World çš„ " "fallback_environment。" #: doc/classes/World.xml -#, fuzzy msgid "" "The [RID] of this world's navigation map. Used by the [NavigationServer]." -msgstr "返回这个代ç†åœ¨ [NavigationServer] 上的 [RID]。" +msgstr "这个世界的导航地图的 [RID]。会被 [NavigationServer] 使用。" #: doc/classes/World.xml msgid "The World's visual scenario." @@ -93317,14 +93493,13 @@ msgid "Class that has everything pertaining to a 2D world." msgstr "拥有与 2D 世界有关的所有内容的类。" #: doc/classes/World2D.xml -#, fuzzy msgid "" "Class that has everything pertaining to a 2D world. A physics space, a " "visual scenario, a navigation map and a sound space. 2D nodes register their " "resources into the current 2D world." msgstr "" -"拥有与 2D 世界有关一切的类。一个物ç†ç©ºé—´ã€ä¸€ä¸ªå¯è§†åŒ–场景和一个声音空间。2D 节" -"ç‚¹å°†å…¶èµ„æºæ³¨å†Œåˆ°å½“å‰çš„ 2D 世界ä¸ã€‚" +"拥有与 2D 世界有关一切的类。物ç†ç©ºé—´ã€è§†è§‰åœºæ™¯ã€å¯¼èˆªåœ°å›¾å’Œå£°éŸ³ç©ºé—´ã€‚2D 节点将" +"å…¶èµ„æºæ³¨å†Œåˆ°å½“å‰çš„ 2D 世界ä¸ã€‚" #: doc/classes/World2D.xml msgid "" @@ -93342,10 +93517,9 @@ msgstr "" "问仅é™äºŽä¸»çº¿ç¨‹ä¸çš„ [code]_physics_process(delta)[/code]。" #: doc/classes/World2D.xml -#, fuzzy msgid "" "The [RID] of this world's navigation map. Used by the [Navigation2DServer]." -msgstr "返回这个代ç†åœ¨ [Navigation2DServer] 上的 [RID]。" +msgstr "这个世界的导航地图的 [RID]。会被 [Navigation2DServer] 使用。" #: doc/classes/World2D.xml msgid "" diff --git a/doc/translations/zh_TW.po b/doc/translations/zh_TW.po index 9422f78dba..ba40f5ee74 100644 --- a/doc/translations/zh_TW.po +++ b/doc/translations/zh_TW.po @@ -428,7 +428,7 @@ msgstr "" #: modules/gdscript/doc_classes/@GDScript.xml msgid "" "Compares two values by checking their actual contents, recursing into any " -"`Array` or `Dictionary` up to its deepest level.\n" +"[Array] or [Dictionary] up to its deepest level.\n" "This compares to [code]==[/code] in a number of ways:\n" "- For [code]null[/code], [code]int[/code], [code]float[/code], [code]String[/" "code], [code]Object[/code] and [code]RID[/code] both [code]deep_equal[/code] " @@ -3506,6 +3506,12 @@ msgstr "" #: doc/classes/@GlobalScope.xml msgid "" +"Hints that an integer property is a bitmask using the optionally named 3D " +"navigation layers." +msgstr "" + +#: doc/classes/@GlobalScope.xml +msgid "" "Hints that a string property is a path to a file. Editing it will show a " "file dialog for picking the path. The hint string can be a set of filters " "with wildcards like [code]\"*.png,*.jpg\"[/code]." @@ -30282,8 +30288,8 @@ msgstr "" #: doc/classes/InputEventJoypadButton.xml msgid "" -"Represents the pressure the user puts on the button with his finger, if the " -"controller supports it. Ranges from [code]0[/code] to [code]1[/code]." +"Represents the pressure the user puts on the button with their finger, if " +"the controller supports it. Ranges from [code]0[/code] to [code]1[/code]." msgstr "" #: doc/classes/InputEventJoypadMotion.xml @@ -36676,7 +36682,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding enters this regions navmesh from another regions navmesh " +"When pathfinding enters this region's navmesh from another regions navmesh " "the [code]enter_cost[/code] value is added to the path distance for " "determining the shortest path." msgstr "" @@ -36696,7 +36702,7 @@ msgstr "" #: doc/classes/NavigationMeshInstance.xml #: doc/classes/NavigationPolygonInstance.xml msgid "" -"When pathfinding moves inside this regions navmesh the traveled distances " +"When pathfinding moves inside this region's navmesh the traveled distances " "are multiplied with [code]travel_cost[/code] for determining the shortest " "path." msgstr "" @@ -47519,6 +47525,18 @@ msgstr "" #: doc/classes/ProjectSettings.xml msgid "" +"Default naming style for scene files to infer from their root nodes. " +"Possible options are:\n" +"- [code]0[/code] (Auto): Uses the scene root name as is without changing its " +"casing.\n" +"- [code]1[/code] (PascalCase): Converts the scene root name to PascalCase " +"casing.\n" +"- [code]2[/code] (snake_case): Converts the scene root name to snake_case " +"casing." +msgstr "" + +#: doc/classes/ProjectSettings.xml +msgid "" "Search path for project-specific script templates. Godot will search for " "script templates both in the editor-specific path and in this project-" "specific path." @@ -66830,11 +66848,12 @@ msgid "This enabler will stop [Particles2D] nodes." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _process function." +msgid "This enabler will stop the parent's [method Node._process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml -msgid "This enabler will stop the parent's _physics_process function." +msgid "" +"This enabler will stop the parent's [method Node._physics_process] function." msgstr "" #: doc/classes/VisibilityEnabler2D.xml @@ -74871,8 +74890,8 @@ msgstr "" #: doc/classes/World.xml msgid "" -"The World's fallback_environment will be used if the World's [Environment] " -"fails or is missing." +"The World's fallback environment will be used if [member environment] fails " +"or is missing." msgstr "" #: doc/classes/World.xml diff --git a/drivers/gles3/rasterizer_scene_gles3.cpp b/drivers/gles3/rasterizer_scene_gles3.cpp index 94ae8ecc8a..33c7b9bf32 100644 --- a/drivers/gles3/rasterizer_scene_gles3.cpp +++ b/drivers/gles3/rasterizer_scene_gles3.cpp @@ -1923,11 +1923,11 @@ void RasterizerSceneGLES3::render_scene(RID p_render_buffers, const CameraData * render_data.cam_transform = p_camera_data->main_transform; render_data.inv_cam_transform = render_data.cam_transform.affine_inverse(); render_data.cam_projection = p_camera_data->main_projection; - render_data.view_projection[0] = p_camera_data->main_projection; render_data.cam_orthogonal = p_camera_data->is_orthogonal; render_data.view_count = p_camera_data->view_count; for (uint32_t v = 0; v < p_camera_data->view_count; v++) { + render_data.view_eye_offset[v] = p_camera_data->view_offset[v].origin; render_data.view_projection[v] = p_camera_data->view_projection[v]; } diff --git a/drivers/gles3/rasterizer_scene_gles3.h b/drivers/gles3/rasterizer_scene_gles3.h index 308ef36fa1..4757a3f161 100644 --- a/drivers/gles3/rasterizer_scene_gles3.h +++ b/drivers/gles3/rasterizer_scene_gles3.h @@ -100,6 +100,7 @@ struct RenderDataGLES3 { // For stereo rendering uint32_t view_count = 1; + Vector3 view_eye_offset[RendererSceneRender::MAX_RENDER_VIEWS]; CameraMatrix view_projection[RendererSceneRender::MAX_RENDER_VIEWS]; float z_near = 0.0; diff --git a/editor/import/resource_importer_texture.cpp b/editor/import/resource_importer_texture.cpp index deb3047864..a055dca8ad 100644 --- a/editor/import/resource_importer_texture.cpp +++ b/editor/import/resource_importer_texture.cpp @@ -65,6 +65,15 @@ void ResourceImporterTexture::_texture_reimport_3d(const Ref<CompressedTexture2D } singleton->make_flags[path].flags |= MAKE_3D_FLAG; + + // For small textures, don't use VRAM compression as it decreases quality too much compared to the memory saved. + // The minimum size for VRAM compression is defined on each axis. + // It is then squared to handle non-square input texture sizes in a more human-readable manner. + const float minimum_size = float(GLOBAL_GET("rendering/textures/vram_compression/minimum_size")); + if (p_tex->get_width() * p_tex->get_height() >= int(Math::pow(minimum_size, 2.0f) - CMP_EPSILON)) { + // Texture is larger than `minimum_size × minimum_size` pixels (if square). + singleton->make_flags[path].flags |= MAKE_VRAM_COMPRESS_FLAG; + } } void ResourceImporterTexture::_texture_reimport_normal(const Ref<CompressedTexture2D> &p_tex) { @@ -103,7 +112,33 @@ void ResourceImporterTexture::update_imports() { bool changed = false; - if (E.value.flags & MAKE_NORMAL_FLAG && int(cf->get_value("params", "compress/normal_map")) == 0) { + if (E.value.flags & MAKE_3D_FLAG && bool(cf->get_value("params", "detect_3d/compress_to"))) { + if (E.value.flags & MAKE_VRAM_COMPRESS_FLAG) { + // Texture is large enough to benefit from VRAM compression. + const int compress_to = cf->get_value("params", "detect_3d/compress_to"); + String compress_string; + if (compress_to == 1) { + cf->set_value("params", "compress/mode", COMPRESS_VRAM_COMPRESSED); + compress_string = "VRAM Compressed (S3TC/ETC/BPTC)"; + } else if (compress_to == 2) { + cf->set_value("params", "compress/mode", COMPRESS_BASIS_UNIVERSAL); + compress_string = "Basis Universal"; + } + print_line(vformat(TTR("%s: Texture detected as used in 3D. Enabling mipmap generation and setting the texture compression mode to %s."), String(E.key), compress_string)); + } else { + print_line(vformat(TTR("%s: Small texture detected as used in 3D. Enabling mipmap generation but not VRAM compression."), String(E.key))); + } + + cf->set_value("params", "mipmaps/generate", true); + cf->set_value("params", "detect_3d/compress_to", 0); + + changed = true; + } + + if (E.value.flags & MAKE_NORMAL_FLAG && int(cf->get_value("params", "compress/normal_map")) == 0 && int(cf->get_value("params", "compress/mode")) != COMPRESS_LOSSLESS) { + // Normal map compression is not available for textures with Lossless compression. + // This is ignored in the importer, but printing a message about normal map compression + // being enabled in this case is misleading. print_line(vformat(TTR("%s: Texture detected as used as a normal map in 3D. Enabling red-green texture compression to reduce memory usage (blue channel is discarded)."), String(E.key))); cf->set_value("params", "compress/normal_map", 1); changed = true; @@ -116,22 +151,6 @@ void ResourceImporterTexture::update_imports() { changed = true; } - if (E.value.flags & MAKE_3D_FLAG && bool(cf->get_value("params", "detect_3d/compress_to"))) { - const int compress_to = cf->get_value("params", "detect_3d/compress_to"); - String compress_string; - cf->set_value("params", "detect_3d/compress_to", 0); - if (compress_to == 1) { - cf->set_value("params", "compress/mode", COMPRESS_VRAM_COMPRESSED); - compress_string = "VRAM Compressed (S3TC/ETC/BPTC)"; - } else if (compress_to == 2) { - cf->set_value("params", "compress/mode", COMPRESS_BASIS_UNIVERSAL); - compress_string = "Basis Universal"; - } - print_line(vformat(TTR("%s: Texture detected as used in 3D. Enabling mipmap generation and setting the texture compression mode to %s."), String(E.key), compress_string)); - cf->set_value("params", "mipmaps/generate", true); - changed = true; - } - if (changed) { cf->save(src_path); to_reimport.push_back(E.key); diff --git a/editor/import/resource_importer_texture.h b/editor/import/resource_importer_texture.h index 7def2d4f77..e65c15ae78 100644 --- a/editor/import/resource_importer_texture.h +++ b/editor/import/resource_importer_texture.h @@ -54,8 +54,9 @@ public: protected: enum { MAKE_3D_FLAG = 1, - MAKE_ROUGHNESS_FLAG = 2, - MAKE_NORMAL_FLAG = 4 + MAKE_VRAM_COMPRESS_FLAG = 2, + MAKE_ROUGHNESS_FLAG = 4, + MAKE_NORMAL_FLAG = 8, }; Mutex mutex; diff --git a/editor/plugins/animation_library_editor.cpp b/editor/plugins/animation_library_editor.cpp index ed908e413c..cae33edecb 100644 --- a/editor/plugins/animation_library_editor.cpp +++ b/editor/plugins/animation_library_editor.cpp @@ -419,12 +419,12 @@ void AnimationLibraryEditor::_item_renamed() { } } -void AnimationLibraryEditor::_button_pressed(TreeItem *p_item, int p_column, int p_button) { +void AnimationLibraryEditor::_button_pressed(TreeItem *p_item, int p_column, int p_id, MouseButton p_button) { if (p_item->get_parent() == tree->get_root()) { // Library StringName lib_name = p_item->get_metadata(0); Ref<AnimationLibrary> al = player->call("get_animation_library", lib_name); - switch (p_button) { + switch (p_id) { case LIB_BUTTON_ADD: { add_library_dialog->set_title(TTR("Animation Name:")); add_library_name->set_text(""); @@ -519,7 +519,7 @@ void AnimationLibraryEditor::_button_pressed(TreeItem *p_item, int p_column, int Ref<AnimationLibrary> al = player->call("get_animation_library", lib_name); Ref<Animation> anim = al->get_animation(anim_name); ERR_FAIL_COND(!anim.is_valid()); - switch (p_button) { + switch (p_id) { case ANIM_BUTTON_COPY: { if (anim->get_name() == "") { anim->set_name(anim_name); // Keep the name around diff --git a/editor/plugins/animation_library_editor.h b/editor/plugins/animation_library_editor.h index 5bd4e8d9e2..bf89508321 100644 --- a/editor/plugins/animation_library_editor.h +++ b/editor/plugins/animation_library_editor.h @@ -99,7 +99,7 @@ class AnimationLibraryEditor : public AcceptDialog { void _load_file(String p_path); void _item_renamed(); - void _button_pressed(TreeItem *p_item, int p_column, int p_button); + void _button_pressed(TreeItem *p_item, int p_column, int p_id, MouseButton p_button); void _file_popup_selected(int p_id); diff --git a/editor/plugins/node_3d_editor_plugin.cpp b/editor/plugins/node_3d_editor_plugin.cpp index 9f4842a5a1..815d0a2425 100644 --- a/editor/plugins/node_3d_editor_plugin.cpp +++ b/editor/plugins/node_3d_editor_plugin.cpp @@ -2412,6 +2412,18 @@ void Node3DEditorViewport::_project_settings_changed() { const float mesh_lod_threshold = GLOBAL_GET("rendering/mesh_lod/lod_change/threshold_pixels"); viewport->set_mesh_lod_threshold(mesh_lod_threshold); + + const Viewport::Scaling3DMode scaling_3d_mode = Viewport::Scaling3DMode(int(GLOBAL_GET("rendering/scaling_3d/mode"))); + viewport->set_scaling_3d_mode(scaling_3d_mode); + + const float scaling_3d_scale = GLOBAL_GET("rendering/scaling_3d/scale"); + viewport->set_scaling_3d_scale(scaling_3d_scale); + + const float fsr_sharpness = GLOBAL_GET("rendering/scaling_3d/fsr_sharpness"); + viewport->set_fsr_sharpness(fsr_sharpness); + + const float fsr_mipmap_bias = GLOBAL_GET("rendering/scaling_3d/fsr_mipmap_bias"); + viewport->set_fsr_mipmap_bias(fsr_mipmap_bias); } void Node3DEditorViewport::_notification(int p_what) { diff --git a/editor/translations/af.po b/editor/translations/af.po index 748147b564..ae83779422 100644 --- a/editor/translations/af.po +++ b/editor/translations/af.po @@ -669,26 +669,24 @@ msgid "Main Run Args" msgstr "" #: core/project_settings.cpp -msgid "Search In File Extensions" +msgid "Scene Naming" msgstr "" #: core/project_settings.cpp -msgid "Script Templates Search Path" +msgid "Search In File Extensions" msgstr "" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" +#: core/project_settings.cpp +msgid "Script Templates Search Path" msgstr "" #: core/project_settings.cpp -msgid "Autoload On Startup" +msgid "Version Control Autoload On Startup" msgstr "" #: core/project_settings.cpp -#, fuzzy -msgid "Plugin Name" -msgstr "Nodus Naam:" +msgid "Version Control Plugin Name" +msgstr "" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -2853,7 +2851,7 @@ msgstr "" #: editor/editor_export.cpp #, fuzzy -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "Pakket Suksesvol Geïnstalleer!" #: editor/editor_export.cpp @@ -4346,14 +4344,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "" - -#: editor/editor_node.cpp -msgid "Scene Naming" -msgstr "" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp msgid "Interface" @@ -4478,6 +4468,10 @@ msgid "Default Color Picker Mode" msgstr "" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Username" msgstr "Nodus Naam:" @@ -4506,6 +4500,10 @@ msgstr "" msgid "Add a new scene." msgstr "" +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "" diff --git a/editor/translations/ar.po b/editor/translations/ar.po index ac2efb5cec..a3fcece225 100644 --- a/editor/translations/ar.po +++ b/editor/translations/ar.po @@ -63,12 +63,13 @@ # Mr.k <mineshtine28546271@gmail.com>, 2022. # ywmaa <ywmaa.personal@gmail.com>, 2022. # Awab Najim <dev.djvan@gmail.com>, 2022. +# Abderrahim <abdoudido117@gmail.com>, 2022. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-06-16 18:57+0000\n" +"PO-Revision-Date: 2022-06-19 11:52+0000\n" "Last-Translator: Awab Najim <dev.djvan@gmail.com>\n" "Language-Team: Arabic <https://hosted.weblate.org/projects/godot-engine/" "godot/ar/>\n" @@ -78,7 +79,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\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 4.13-dev\n" +"X-Generator: Weblate 4.13.1-dev\n" #: core/bind/core_bind.cpp main/main.cpp msgid "Tablet Driver" @@ -266,9 +267,8 @@ msgstr "بيانات" #: modules/gdscript/language_server/gdscript_language_server.cpp #: modules/webrtc/webrtc_data_channel.h modules/websocket/websocket_macros.h #: scene/gui/file_dialog.cpp -#, fuzzy msgid "Network" -msgstr "مل٠تعري٠الشبكة Network Profiler" +msgstr "الشبكة" #: core/io/file_access_network.cpp msgid "Remote FS" @@ -287,23 +287,20 @@ msgid "Blocking Mode Enabled" msgstr "تمكين وضع Ø§Ù„ØØ¸Ø±" #: core/io/http_client.cpp -#, fuzzy msgid "Connection" -msgstr "وصل" +msgstr "إتصال" #: core/io/http_client.cpp msgid "Read Chunk Size" msgstr "ØØ¬Ù… قطعة القراءة" #: core/io/marshalls.cpp -#, fuzzy msgid "Object ID" -msgstr "كائنات مرسومة:" +msgstr "معر٠الكائن" #: core/io/multiplayer_api.cpp core/io/packet_peer.cpp -#, fuzzy msgid "Allow Object Decoding" -msgstr "ØªÙØ¹ÙŠÙ„ تقشير البصل" +msgstr "Ø§Ù„Ø³Ù…Ø§Ø Ø¨ÙÙƒ ترميز الكائن" #: core/io/multiplayer_api.cpp scene/main/scene_tree.cpp msgid "Refuse New Network Connections" @@ -315,19 +312,16 @@ msgid "Network Peer" msgstr "مل٠تعري٠الشبكة Network Profiler" #: core/io/multiplayer_api.cpp scene/animation/animation_player.cpp -#, fuzzy msgid "Root Node" -msgstr "اسم العÙقدة الرئيسة (الجذر)" +msgstr "العÙقدة الرئيسة (الجذر)" #: core/io/networked_multiplayer_peer.cpp -#, fuzzy msgid "Refuse New Connections" -msgstr "وصل" +msgstr "Ø±ÙØ¶ الإتصالات الجديدة" #: core/io/networked_multiplayer_peer.cpp -#, fuzzy msgid "Transfer Mode" -msgstr "نوع التØÙˆÙ‘Ù„" +msgstr "وضع التØÙˆÙŠÙ„" #: core/io/packet_peer.cpp msgid "Encode Buffer Max Size" @@ -358,9 +352,8 @@ msgid "Blocking Handshake" msgstr "ØØ¸Ø± Ø§Ù„Ù…ØµØ§ÙØØ©" #: core/io/udp_server.cpp -#, fuzzy msgid "Max Pending Connections" -msgstr "تعديل الإتصال:" +msgstr "Ø§Ù„ØØ¯ الأقصى للاتصالات المعلقة" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -423,14 +416,12 @@ msgid "Max Size (KB)" msgstr "Ø§Ù„ØØ¬Ù… الأقصى (كيلو بايت)" #: core/os/input.cpp -#, fuzzy msgid "Mouse Mode" -msgstr "وضع Ø§Ù„ØªØØ±ÙŠÙƒ" +msgstr "وضع Ø§Ù„ÙØ£Ø±Ø©" #: core/os/input.cpp -#, fuzzy msgid "Use Accumulated Input" -msgstr "Ù…Ø³Ø Ø§Ù„Ù…Ø¯Ø®Ù„Ù‡" +msgstr "استخدم المدخلات المتراكمة" #: core/os/input_event.cpp editor/project_settings_editor.cpp #: servers/audio_server.cpp @@ -695,6 +686,11 @@ msgid "Main Run Args" msgstr "معاملات المشهد الرئيس" #: core/project_settings.cpp +#, fuzzy +msgid "Scene Naming" +msgstr "المسار للمشهد:" + +#: core/project_settings.cpp msgid "Search In File Extensions" msgstr "Ø§Ù„Ø¨ØØ« ÙÙŠ امتدادات الملÙ" @@ -702,18 +698,15 @@ msgstr "Ø§Ù„Ø¨ØØ« ÙÙŠ امتدادات الملÙ" msgid "Script Templates Search Path" msgstr "مسار Ø§Ù„Ø¨ØØ« ÙÙŠ قوالب النص البرمجي" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" -msgstr "إدارة الإصدارات (Version Control)" - #: core/project_settings.cpp -msgid "Autoload On Startup" +#, fuzzy +msgid "Version Control Autoload On Startup" msgstr "التØÙ…يل التلقائي عند بدء التشغيل" #: core/project_settings.cpp -msgid "Plugin Name" -msgstr "اسم Ø§Ù„Ø¥Ø¶Ø§ÙØ©" +#, fuzzy +msgid "Version Control Plugin Name" +msgstr "إدارة الإصدارات (Version Control)" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -807,9 +800,8 @@ msgstr "إنشاء متصادم تراميش قريب" #: modules/lightmapper_cpu/register_types.cpp scene/main/scene_tree.cpp #: scene/main/viewport.cpp servers/visual/visual_server_scene.cpp #: servers/visual_server.cpp -#, fuzzy msgid "Rendering" -msgstr "Ù…ÙØØ±Ùƒ الإخراج البصري:" +msgstr "استدعاء" #: core/project_settings.cpp drivers/gles2/rasterizer_storage_gles2.cpp #: drivers/gles3/rasterizer_scene_gles3.cpp @@ -819,18 +811,17 @@ msgstr "Ù…ÙØØ±Ùƒ الإخراج البصري:" #: scene/resources/multimesh.cpp servers/visual/visual_server_scene.cpp #: servers/visual_server.cpp msgid "Quality" -msgstr "" +msgstr "جودة" #: core/project_settings.cpp scene/gui/file_dialog.cpp #: scene/main/scene_tree.cpp scene/resources/navigation_mesh.cpp #: servers/visual_server.cpp -#, fuzzy msgid "Filters" -msgstr "Ù…Ø±Ø´ØØ§Øª:" +msgstr "Ù…Ø±Ø´ØØ§Øª" #: core/project_settings.cpp scene/main/viewport.cpp msgid "Sharpen Intensity" -msgstr "" +msgstr "Ø´ØØ° Ø§Ù„ÙƒØ«Ø§ÙØ©" #: core/project_settings.cpp editor/editor_export.cpp editor/editor_node.cpp #: editor/editor_settings.cpp editor/plugins/script_editor_plugin.cpp @@ -846,9 +837,8 @@ msgstr "تصØÙŠØ الأخطاء" #: core/project_settings.cpp main/main.cpp modules/gdscript/gdscript.cpp #: modules/visual_script/visual_script.cpp scene/resources/dynamic_font.cpp -#, fuzzy msgid "Settings" -msgstr "الإعدادات:" +msgstr "الإعدادات" #: core/project_settings.cpp editor/script_editor_debugger.cpp main/main.cpp #: modules/mono/mono_gd/gd_mono.cpp @@ -856,14 +846,12 @@ msgid "Profiler" msgstr "Ù…Ùنشئ Ø§Ù„Ù…Ù„ÙØ§Øª التعريÙية Profiler" #: core/project_settings.cpp -#, fuzzy msgid "Max Functions" -msgstr "عمل دالة" +msgstr "أقصى عمل" #: core/project_settings.cpp scene/3d/vehicle_body.cpp -#, fuzzy msgid "Compression" -msgstr "ØªØØ¯ÙŠØ¯ التعبير" +msgstr "ضغط" #: core/project_settings.cpp #, fuzzy @@ -876,15 +864,15 @@ msgstr "" #: core/project_settings.cpp msgid "Long Distance Matching" -msgstr "" +msgstr "مطابقة Ø§Ù„Ù…Ø³Ø§ÙØ§Øª الطويلة" #: core/project_settings.cpp msgid "Compression Level" -msgstr "" +msgstr "ضغط المستوى" #: core/project_settings.cpp msgid "Window Log Size" -msgstr "" +msgstr "ØØ¬Ù… Ù†Ø§ÙØ°Ø© سجل" #: core/project_settings.cpp msgid "Zlib" @@ -896,20 +884,19 @@ msgstr "" #: core/project_settings.cpp platform/android/export/export.cpp msgid "Android" -msgstr "" +msgstr "أندرويد" #: core/project_settings.cpp msgid "Modules" -msgstr "" +msgstr "ÙˆØØ¯Ø§Øª" #: core/register_core_types.cpp msgid "TCP" msgstr "" #: core/register_core_types.cpp -#, fuzzy msgid "Connect Timeout Seconds" -msgstr "الاتصالات لدالة:" +msgstr "Ù†ÙØ° وقت الإتصال" #: core/register_core_types.cpp msgid "Packet Peer Stream" @@ -924,9 +911,8 @@ msgid "SSL" msgstr "" #: core/register_core_types.cpp main/main.cpp -#, fuzzy msgid "Certificates" -msgstr "القمم:" +msgstr "الشهادات" #: core/resource.cpp editor/dependency_editor.cpp #: editor/editor_resource_picker.cpp @@ -935,9 +921,8 @@ msgid "Resource" msgstr "مورد" #: core/resource.cpp -#, fuzzy msgid "Local To Scene" -msgstr "اغلاق المشهد" +msgstr "مشهد Ù…ØÙ„ÙŠ" #: core/resource.cpp editor/dependency_editor.cpp #: editor/editor_autoload_settings.cpp editor/plugins/path_editor_plugin.cpp @@ -947,22 +932,20 @@ msgid "Path" msgstr "المسار" #: core/script_language.cpp -#, fuzzy msgid "Source Code" -msgstr "مصدر" +msgstr "مصدر الرمز" #: core/translation.cpp editor/project_settings_editor.cpp msgid "Locale" msgstr "Ù…ØÙ„ÙŠ" #: core/translation.cpp -#, fuzzy msgid "Test" -msgstr "أختبار" +msgstr "إختبار" #: core/translation.cpp scene/resources/font.cpp msgid "Fallback" -msgstr "" +msgstr "تقهقر" #: core/ustring.cpp scene/resources/segment_shape_2d.cpp msgid "B" @@ -2829,8 +2812,8 @@ msgstr "نسخ مسار العÙقدة" #: editor/editor_export.cpp #, fuzzy -msgid "Completed sucessfully." -msgstr "تم تتبيث Ø§Ù„ØØ²Ù…Ø© بنجاØ!" +msgid "Completed successfully." +msgstr "اكتمل بنجاØ." #: editor/editor_export.cpp #, fuzzy @@ -4341,15 +4324,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "مشهد" - -#: editor/editor_node.cpp -#, fuzzy -msgid "Scene Naming" -msgstr "المسار للمشهد:" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp #, fuzzy @@ -4478,6 +4452,10 @@ msgid "Default Color Picker Mode" msgstr "" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "إدارة الإصدارات (Version Control)" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Username" msgstr "إعادة التسمية" @@ -4506,6 +4484,10 @@ msgstr "تمكين/إيقا٠الوضع الخالي من الإلهاء." msgid "Add a new scene." msgstr "Ø¥Ø¶Ø§ÙØ© مشهد جديد." +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "مشهد" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "اذهب الي المشهد Ø§Ù„Ù…ÙØªÙˆØ مسبقا." @@ -11265,7 +11247,7 @@ msgstr "القمم:" #: editor/plugins/spatial_editor_plugin.cpp msgid "FPS: %d (%s ms)" -msgstr "FPS: %d (%s جزء من الثانية)" +msgstr "عدد الإطارات ÙÙŠ الثانية: %d (%s ميلي ثانية)" #: editor/plugins/spatial_editor_plugin.cpp msgid "Top View." @@ -19216,15 +19198,13 @@ msgid "Code Signing" msgstr "الإشاراة" #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "" "'apksigner' could not be found. Please check that the command is available " "in the Android SDK build-tools directory. The resulting %s is unsigned." msgstr "" -"تعذر العثور على 'apksigner'.\n" -"تأكد من ÙØ¶Ù„Ùƒ إن كان الأمر موجوداً ÙÙŠ دليل Ù…Ù„ÙØ§Øª أدوات-بناء الأندرويد Android " -"SDK build-tools.\n" -"لم يتم توقيع الناتج %s." +"تعذر العثور على 'apksigner'. تأكد من ÙØ¶Ù„Ùƒ إن كان الأمر موجوداً ÙÙŠ دليل Ù…Ù„ÙØ§Øª " +"أدوات-بناء ØØ²Ù…Ø© تطوير الأندرويد Android SDK build-tools. لم يتم توقيع الناتج " +"%s." #: platform/android/export/export_plugin.cpp msgid "Signing debug %s..." @@ -19239,9 +19219,8 @@ msgid "Could not find keystore, unable to export." msgstr "لا يمكن العثور على Ù…ÙØªØ§Ø المتجر، لا يمكن التصدير." #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Could not start apksigner executable." -msgstr "لا يمكن بدء عملية جانبية!" +msgstr "تعذر بدء تشغيل apksigner ." #: platform/android/export/export_plugin.cpp msgid "'apksigner' returned with error #%d" @@ -19274,9 +19253,8 @@ msgid "Invalid filename! Android APK requires the *.apk extension." msgstr "أسم المل٠غير صالØ! يتطلب مل٠اندرويد APK أمتداد *.apk لتعمل." #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Unsupported export format!" -msgstr "صيغة تصدير غير مدعومة!\n" +msgstr "تنسيق تصدير غير مدعوم!" #: platform/android/export/export_plugin.cpp msgid "" @@ -19287,15 +19265,12 @@ msgstr "" "أعد التØÙ…يل من قائمة \"المشروع\"." #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "" "Android build version mismatch: Template installed: %s, Godot version: %s. " "Please reinstall Android build template from 'Project' menu." msgstr "" -"نسخ بناء Android غير متواÙقة:\n" -"\tقوالب Ù…Ùنصبة: %s\n" -"\tإصدار غودوت: %s\n" -"من ÙØ¶Ù„Ùƒ أعد تنصيب قالب بناء الأندرويد Android من قائمة \"المشروع\"." +"نسخ بناء Android غير متواÙقة: قوالب Ù…Ùنصبة: %s إصدار غودوت: %s. من ÙØ¶Ù„Ùƒ أعد " +"تنصيب قالب بناء الأندرويد من قائمة 'المشروع'." #: platform/android/export/export_plugin.cpp #, fuzzy @@ -19305,9 +19280,8 @@ msgstr "" "تعذرت كتابة overwrite Ù…Ù„ÙØ§Øª res://android/build/res/*.xml مع اسم المشروع" #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Could not export project files to gradle project." -msgstr "لم يتمكن من تصدير Ù…Ù„ÙØ§Øª المشروع إلى مشروع gradle\n" +msgstr "لم يتمكن من تصدير Ù…Ù„ÙØ§Øª المشروع إلى مشروع gradle." #: platform/android/export/export_plugin.cpp msgid "Could not write expansion package file!" @@ -19318,13 +19292,12 @@ msgid "Building Android Project (gradle)" msgstr "بناء مشروع الأندرويد (gradle)" #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "" "Building of Android project failed, check output for the error. " "Alternatively visit docs.godotengine.org for Android build documentation." msgstr "" -"أخÙÙ‚ بناء مشروع الأندرويد، تÙقد Ø§Ù„Ù…ÙØ®Ø±Ø¬Ø§Øª للإطلاع على الخطأ.\n" -"بصورة بديلة يمكنك زيارة docs.godotengine.org لأجل مستندات البناء للأندرويد." +"أخÙÙ‚ بناء مشروع الأندرويد، تÙقد Ø§Ù„Ù…ÙØ®Ø±Ø¬Ø§Øª للإطلاع على الخطأ. بصورة بديلة " +"يمكنك زيارة docs.godotengine.org لأجل مستندات البناء للأندرويد." #: platform/android/export/export_plugin.cpp msgid "Moving output" @@ -19347,22 +19320,18 @@ msgid "Creating APK..." msgstr "إنشاء المØÙŠØ·..." #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Could not find template APK to export: \"%s\"." -msgstr "" -"لم يتم إيجاد قالب APK للتصدير:\n" -"%s" +msgstr "لم يتم إيجاد قالب APK للتصدير: \"%s\"." #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "" "Missing libraries in the export template for the selected architectures: %s. " "Please build a template with all required libraries, or uncheck the missing " "architectures in the export preset." msgstr "" -"هنالك مكاتب قوالب تصدير ناقصة بالنسبة للمعمارية المختارة: %s.\n" -"ابن قالب التصدير متضمناً جميع المكتبات الضرورية، أو أزال اختيار المعماريات " -"الناقصة من خيارات التصدير المعدّة مسبقاً." +"هنالك مكاتب قوالب تصدير ناقصة بالنسبة للمعمارية المختارة: %s.ابن قالب " +"التصدير متضمناً جميع المكتبات الضرورية، أو أزال اختيار المعماريات الناقصة من " +"خيارات التصدير المعدّة مسبقاً." #: platform/android/export/export_plugin.cpp #, fuzzy @@ -20067,9 +20036,8 @@ msgid "Could not open icon file \"%s\"." msgstr "لم نتمكن من تصدير Ù…Ù„ÙØ§Øª المشروع" #: platform/osx/export/export.cpp -#, fuzzy msgid "Could not start xcrun executable." -msgstr "لا يمكن بدء عملية جانبية!" +msgstr "تعذر بدء تشغيل xcrun." #: platform/osx/export/export.cpp #, fuzzy @@ -20141,9 +20109,8 @@ msgid "DMG Creation" msgstr "الاتجاهات" #: platform/osx/export/export.cpp -#, fuzzy msgid "Could not start hdiutil executable." -msgstr "لا يمكن بدء عملية جانبية!" +msgstr "تعذر بدء المل٠التنÙيذي hdiutil." #: platform/osx/export/export.cpp msgid "`hdiutil create` failed - file exists." @@ -20222,9 +20189,8 @@ msgid "ZIP Creation" msgstr "مشروع" #: platform/osx/export/export.cpp -#, fuzzy msgid "Could not open file to read from path \"%s\"." -msgstr "لم يتمكن من تصدير Ù…Ù„ÙØ§Øª المشروع إلى مشروع gradle\n" +msgstr "تعذر ÙØªØ المل٠للقراءة من المسار \"%s\"." #: platform/osx/export/export.cpp #, fuzzy diff --git a/editor/translations/az.po b/editor/translations/az.po index 59e1c30354..6e8dfbf1f3 100644 --- a/editor/translations/az.po +++ b/editor/translations/az.po @@ -650,24 +650,23 @@ msgid "Main Run Args" msgstr "" #: core/project_settings.cpp -msgid "Search In File Extensions" +msgid "Scene Naming" msgstr "" #: core/project_settings.cpp -msgid "Script Templates Search Path" +msgid "Search In File Extensions" msgstr "" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" +#: core/project_settings.cpp +msgid "Script Templates Search Path" msgstr "" #: core/project_settings.cpp -msgid "Autoload On Startup" +msgid "Version Control Autoload On Startup" msgstr "" #: core/project_settings.cpp -msgid "Plugin Name" +msgid "Version Control Plugin Name" msgstr "" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp @@ -2805,7 +2804,7 @@ msgid "Completed with errors." msgstr "" #: editor/editor_export.cpp -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "" #: editor/editor_export.cpp @@ -4222,14 +4221,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "" - -#: editor/editor_node.cpp -msgid "Scene Naming" -msgstr "" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp msgid "Interface" @@ -4346,6 +4337,10 @@ msgid "Default Color Picker Mode" msgstr "" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Username" msgstr "" @@ -4373,6 +4368,10 @@ msgstr "" msgid "Add a new scene." msgstr "" +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "" diff --git a/editor/translations/bg.po b/editor/translations/bg.po index ee4ccb7044..9370a48a79 100644 --- a/editor/translations/bg.po +++ b/editor/translations/bg.po @@ -689,6 +689,11 @@ msgid "Main Run Args" msgstr "" #: core/project_settings.cpp +#, fuzzy +msgid "Scene Naming" +msgstr "Път на Ñцената:" + +#: core/project_settings.cpp msgid "Search In File Extensions" msgstr "" @@ -696,19 +701,15 @@ msgstr "" msgid "Script Templates Search Path" msgstr "" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" -msgstr "Контрол на верÑиите" - #: core/project_settings.cpp -msgid "Autoload On Startup" -msgstr "" +#, fuzzy +msgid "Version Control Autoload On Startup" +msgstr "Контрол на верÑиите" #: core/project_settings.cpp #, fuzzy -msgid "Plugin Name" -msgstr "Име на приÑтавката:" +msgid "Version Control Plugin Name" +msgstr "Контрол на верÑиите" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -2807,7 +2808,7 @@ msgid "Completed with errors." msgstr "" #: editor/editor_export.cpp -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "" #: editor/editor_export.cpp @@ -4261,15 +4262,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "Сцена" - -#: editor/editor_node.cpp -#, fuzzy -msgid "Scene Naming" -msgstr "Път на Ñцената:" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp msgid "Interface" @@ -4396,6 +4388,10 @@ msgid "Default Color Picker Mode" msgstr "" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "Контрол на верÑиите" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Username" msgstr "ПотребителÑко име" @@ -4423,6 +4419,10 @@ msgstr "" msgid "Add a new scene." msgstr "ДобавÑне на нови нова Ñцена." +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "Сцена" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "" diff --git a/editor/translations/bn.po b/editor/translations/bn.po index e656723205..265a7fb58a 100644 --- a/editor/translations/bn.po +++ b/editor/translations/bn.po @@ -688,6 +688,11 @@ msgid "Main Run Args" msgstr "পà§à¦°à¦§à¦¾à¦¨ দৃশà§à¦¯à§‡à¦° মান/আরà§à¦—à§à¦®à§‡à¦¨à§à¦Ÿ-সমূহ:" #: core/project_settings.cpp +#, fuzzy +msgid "Scene Naming" +msgstr "দৃশà§à¦¯à§‡à¦° পথ:" + +#: core/project_settings.cpp msgid "Search In File Extensions" msgstr "" @@ -695,20 +700,15 @@ msgstr "" msgid "Script Templates Search Path" msgstr "" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp +#: core/project_settings.cpp #, fuzzy -msgid "Version Control" +msgid "Version Control Autoload On Startup" msgstr "সংসà§à¦•রণ:" #: core/project_settings.cpp -msgid "Autoload On Startup" -msgstr "" - -#: core/project_settings.cpp #, fuzzy -msgid "Plugin Name" -msgstr "পà§à¦²à¦¾à¦—ইন-সমূহ" +msgid "Version Control Plugin Name" +msgstr "সংসà§à¦•রণ:" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -2899,7 +2899,7 @@ msgstr "পথ পà§à¦°à¦¤à¦¿à¦²à¦¿à¦ªà¦¿/কপি করà§à¦¨" #: editor/editor_export.cpp #, fuzzy -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "পà§à¦¯à¦¾à¦•েজ ইনà§à¦¸à¦Ÿà¦² সমà§à¦ªà¦¨à§à¦¨ হয়েছে!" #: editor/editor_export.cpp @@ -4496,15 +4496,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "দৃশà§à¦¯" - -#: editor/editor_node.cpp -#, fuzzy -msgid "Scene Naming" -msgstr "দৃশà§à¦¯à§‡à¦° পথ:" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp #, fuzzy @@ -4635,6 +4626,11 @@ msgstr "" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp #, fuzzy +msgid "Version Control" +msgstr "সংসà§à¦•রণ:" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +#, fuzzy msgid "Username" msgstr "পà§à¦¨à¦ƒà¦¨à¦¾à¦®à¦•রণ করà§à¦¨" @@ -4664,6 +4660,10 @@ msgstr "বিকà§à¦·à§‡à¦ª-হীন মোড" msgid "Add a new scene." msgstr "নতà§à¦¨ টà§à¦°à§à¦¯à¦¾à¦•/পথ-সমূহ যোগ করà§à¦¨à¥¤" +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "দৃশà§à¦¯" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "পূরà§à¦¬à§‡ খোলা দৃশà§à¦¯à§‡ যান।" diff --git a/editor/translations/br.po b/editor/translations/br.po index f528b0af67..3d1ca48f3f 100644 --- a/editor/translations/br.po +++ b/editor/translations/br.po @@ -638,24 +638,23 @@ msgid "Main Run Args" msgstr "" #: core/project_settings.cpp -msgid "Search In File Extensions" +msgid "Scene Naming" msgstr "" #: core/project_settings.cpp -msgid "Script Templates Search Path" +msgid "Search In File Extensions" msgstr "" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" +#: core/project_settings.cpp +msgid "Script Templates Search Path" msgstr "" #: core/project_settings.cpp -msgid "Autoload On Startup" +msgid "Version Control Autoload On Startup" msgstr "" #: core/project_settings.cpp -msgid "Plugin Name" +msgid "Version Control Plugin Name" msgstr "" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp @@ -2727,7 +2726,7 @@ msgid "Completed with errors." msgstr "" #: editor/editor_export.cpp -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "" #: editor/editor_export.cpp @@ -4139,14 +4138,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "" - -#: editor/editor_node.cpp -msgid "Scene Naming" -msgstr "" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp msgid "Interface" @@ -4262,6 +4253,10 @@ msgid "Default Color Picker Mode" msgstr "" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Username" msgstr "" @@ -4289,6 +4284,10 @@ msgstr "" msgid "Add a new scene." msgstr "" +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "" diff --git a/editor/translations/ca.po b/editor/translations/ca.po index 1cba26c8ac..380a247ac7 100644 --- a/editor/translations/ca.po +++ b/editor/translations/ca.po @@ -16,13 +16,14 @@ # Roberto Pérez <djleizar@gmail.com>, 2021. # Joel Garcia Cascalló <jocsencat@gmail.com>, 2021. # DFC <damiafluixacanals28@gmail.com>, 2021. +# Roger VC <rogervilarasau@gmail.com>, 2022. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-04-03 13:13+0000\n" -"Last-Translator: roger <616steam@gmail.com>\n" +"PO-Revision-Date: 2022-06-19 11:52+0000\n" +"Last-Translator: Roger VC <rogervilarasau@gmail.com>\n" "Language-Team: Catalan <https://hosted.weblate.org/projects/godot-engine/" "godot/ca/>\n" "Language: ca\n" @@ -30,11 +31,11 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.12-dev\n" +"X-Generator: Weblate 4.13.1-dev\n" #: core/bind/core_bind.cpp main/main.cpp msgid "Tablet Driver" -msgstr "" +msgstr "Controlador de tauleta" #: core/bind/core_bind.cpp msgid "Clipboard" @@ -46,20 +47,19 @@ msgstr "Escena Actual" #: core/bind/core_bind.cpp msgid "Exit Code" -msgstr "" +msgstr "Codi de sortida" #: core/bind/core_bind.cpp -#, fuzzy msgid "V-Sync Enabled" -msgstr "V-Sync Activat" +msgstr "Sincronització Vertical habilitada" #: core/bind/core_bind.cpp main/main.cpp msgid "V-Sync Via Compositor" -msgstr "" +msgstr "V-Sync mitjançant Compositor" #: core/bind/core_bind.cpp main/main.cpp msgid "Delta Smoothing" -msgstr "" +msgstr "Suavitzat delta" #: core/bind/core_bind.cpp msgid "Low Processor Usage Mode" @@ -91,13 +91,12 @@ msgid "Window" msgstr "Finestra" #: core/bind/core_bind.cpp core/project_settings.cpp -#, fuzzy msgid "Borderless" msgstr "Sense Vores" #: core/bind/core_bind.cpp msgid "Per Pixel Transparency Enabled" -msgstr "" +msgstr "Transparència per pÃxel activada" #: core/bind/core_bind.cpp core/project_settings.cpp msgid "Fullscreen" @@ -105,7 +104,7 @@ msgstr "Pantalla Completa" #: core/bind/core_bind.cpp msgid "Maximized" -msgstr "" +msgstr "Maximitzat" #: core/bind/core_bind.cpp msgid "Minimized" @@ -114,7 +113,7 @@ msgstr "Minimitzat" #: core/bind/core_bind.cpp core/project_settings.cpp scene/gui/dialogs.cpp #: scene/gui/graph_node.cpp msgid "Resizable" -msgstr "" +msgstr "Redimensionable" #: core/bind/core_bind.cpp core/os/input_event.cpp scene/2d/node_2d.cpp #: scene/2d/physics_body_2d.cpp scene/2d/remote_transform_2d.cpp @@ -146,7 +145,7 @@ msgstr "Suggeriment de l'Editor" #: core/bind/core_bind.cpp msgid "Print Error Messages" -msgstr "" +msgstr "Imprimeix missatges d'error" #: core/bind/core_bind.cpp msgid "Iterations Per Second" @@ -184,7 +183,7 @@ msgstr "Resultat" #: core/command_queue_mt.cpp core/message_queue.cpp main/main.cpp msgid "Memory" -msgstr "" +msgstr "Memòria" #: core/command_queue_mt.cpp core/message_queue.cpp #: core/register_core_types.cpp drivers/gles2/rasterizer_canvas_base_gles2.cpp @@ -195,7 +194,7 @@ msgstr "" #: modules/webrtc/webrtc_data_channel.h modules/websocket/websocket_macros.h #: servers/visual_server.cpp msgid "Limits" -msgstr "" +msgstr "LÃmits" #: core/command_queue_mt.cpp msgid "Command Queue" @@ -203,7 +202,7 @@ msgstr "Cua de Comandes" #: core/command_queue_mt.cpp msgid "Multithreading Queue Size (KB)" -msgstr "" +msgstr "Mida de la cua de multiprocés (KB)" #: core/func_ref.cpp modules/visual_script/visual_script_builtin_funcs.cpp #: modules/visual_script/visual_script_func_nodes.cpp @@ -215,7 +214,7 @@ msgstr "Funció" #: core/image.cpp core/packed_data_container.cpp scene/2d/polygon_2d.cpp #: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp msgid "Data" -msgstr "" +msgstr "Dades" #: core/io/file_access_network.cpp core/register_core_types.cpp #: editor/editor_file_dialog.cpp editor/editor_settings.cpp main/main.cpp @@ -226,9 +225,8 @@ msgid "Network" msgstr "Xarxa" #: core/io/file_access_network.cpp -#, fuzzy msgid "Remote FS" -msgstr "Remot " +msgstr "FS remot" #: core/io/file_access_network.cpp msgid "Page Size" @@ -240,7 +238,7 @@ msgstr "" #: core/io/http_client.cpp msgid "Blocking Mode Enabled" -msgstr "" +msgstr "Mode de bloqueig activat" #: core/io/http_client.cpp msgid "Connection" @@ -261,7 +259,7 @@ msgstr "Activa l'Efecte Paper Ceba" #: core/io/multiplayer_api.cpp scene/main/scene_tree.cpp msgid "Refuse New Network Connections" -msgstr "" +msgstr "Rebutja les noves connexions de xarxa" #: core/io/multiplayer_api.cpp scene/main/scene_tree.cpp #, fuzzy @@ -287,11 +285,11 @@ msgstr "" #: core/io/packet_peer.cpp msgid "Input Buffer Max Size" -msgstr "" +msgstr "Mida mà xima del buffer d'entrada" #: core/io/packet_peer.cpp msgid "Output Buffer Max Size" -msgstr "" +msgstr "Mida mà xima del buffer de sortida" #: core/io/packet_peer.cpp msgid "Stream Peer" @@ -303,16 +301,15 @@ msgstr "" #: core/io/stream_peer.cpp msgid "Data Array" -msgstr "" +msgstr "Matriu de dades" #: core/io/stream_peer_ssl.cpp msgid "Blocking Handshake" msgstr "" #: core/io/udp_server.cpp -#, fuzzy msgid "Max Pending Connections" -msgstr "Editar Connexió:" +msgstr "Mà xim de connexions pendents" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -361,7 +358,7 @@ msgstr "En la crida a '%s':" #: core/math/random_number_generator.cpp #: modules/opensimplex/open_simplex_noise.cpp msgid "Seed" -msgstr "" +msgstr "Llavor" #: core/math/random_number_generator.cpp msgid "State" @@ -369,11 +366,11 @@ msgstr "Estat" #: core/message_queue.cpp msgid "Message Queue" -msgstr "" +msgstr "Cua de missatges" #: core/message_queue.cpp msgid "Max Size (KB)" -msgstr "" +msgstr "Mida mà xima (KB)" #: core/os/input.cpp #, fuzzy @@ -397,7 +394,7 @@ msgstr "Tot" #: core/os/input_event.cpp msgid "Shift" -msgstr "" +msgstr "Shift" #: core/os/input_event.cpp msgid "Control" @@ -405,7 +402,7 @@ msgstr "Control" #: core/os/input_event.cpp msgid "Meta" -msgstr "" +msgstr "Meta" #: core/os/input_event.cpp #, fuzzy @@ -425,11 +422,11 @@ msgstr "Explora" #: core/os/input_event.cpp msgid "Physical Scancode" -msgstr "" +msgstr "Codi d'escaneig fÃsic" #: core/os/input_event.cpp msgid "Unicode" -msgstr "" +msgstr "Unicode" #: core/os/input_event.cpp msgid "Echo" @@ -449,13 +446,12 @@ msgid "Factor" msgstr "Factor" #: core/os/input_event.cpp -#, fuzzy msgid "Button Index" -msgstr "Ãndex del Botó del ratolÃ:" +msgstr "Ãndex de botons" #: core/os/input_event.cpp msgid "Doubleclick" -msgstr "" +msgstr "Doble clic" #: core/os/input_event.cpp msgid "Tilt" @@ -531,9 +527,8 @@ msgid "Instrument" msgstr "" #: core/os/input_event.cpp -#, fuzzy msgid "Controller Number" -msgstr "Nombre de controlador" +msgstr "Número de controlador" #: core/os/input_event.cpp msgid "Controller Value" @@ -550,9 +545,8 @@ msgid "Config" msgstr "Configuració" #: core/project_settings.cpp -#, fuzzy msgid "Project Settings Override" -msgstr "Configuració del Projecte..." +msgstr "Anul·lació de la configuració del projecte" #: core/project_settings.cpp core/resource.cpp #: editor/animation_track_editor.cpp editor/editor_autoload_settings.cpp @@ -662,9 +656,12 @@ msgid "Editor" msgstr "Editor" #: core/project_settings.cpp -#, fuzzy msgid "Main Run Args" -msgstr "Arguments de l'Escena Principal:" +msgstr "Arguments d'execució principal" + +#: core/project_settings.cpp +msgid "Scene Naming" +msgstr "Nomenclatura de l'escena" #: core/project_settings.cpp msgid "Search In File Extensions" @@ -674,18 +671,15 @@ msgstr "" msgid "Script Templates Search Path" msgstr "" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" -msgstr "Control de Versions" - #: core/project_settings.cpp -msgid "Autoload On Startup" -msgstr "" +#, fuzzy +msgid "Version Control Autoload On Startup" +msgstr "Sistema de control de versions" #: core/project_settings.cpp -msgid "Plugin Name" -msgstr "Nom del Connector" +#, fuzzy +msgid "Version Control Plugin Name" +msgstr "Control de Versions" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -884,9 +878,8 @@ msgid "TCP" msgstr "" #: core/register_core_types.cpp -#, fuzzy msgid "Connect Timeout Seconds" -msgstr "Connexions al mètode:" +msgstr "Segons de temps d'espera de connexió" #: core/register_core_types.cpp msgid "Packet Peer Stream" @@ -1171,9 +1164,8 @@ msgstr "Localització" #: editor/animation_track_editor.cpp modules/gltf/gltf_node.cpp #: scene/2d/polygon_2d.cpp scene/2d/remote_transform_2d.cpp #: scene/3d/remote_transform.cpp scene/3d/spatial.cpp scene/gui/control.cpp -#, fuzzy msgid "Rotation" -msgstr "Pas de la Rotació:" +msgstr "Rotació" #: editor/animation_track_editor.cpp editor/script_editor_debugger.cpp #: modules/visual_script/visual_script_nodes.cpp scene/gui/range.cpp @@ -1181,9 +1173,8 @@ msgid "Value" msgstr "Valor" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Arg Count" -msgstr "Quantitat:" +msgstr "Quantitat d'arguments" #: editor/animation_track_editor.cpp main/main.cpp #: modules/mono/mono_gd/gd_mono.cpp @@ -1215,14 +1206,12 @@ msgid "Stream" msgstr "" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Start Offset" -msgstr "òfset de la quadrÃcula:" +msgstr "Desplaçament d'inici" #: editor/animation_track_editor.cpp -#, fuzzy msgid "End Offset" -msgstr "òfset:" +msgstr "Desplaçament final" #: editor/animation_track_editor.cpp editor/editor_settings.cpp #: editor/import/resource_importer_scene.cpp @@ -1346,14 +1335,12 @@ msgid "Remove this track." msgstr "Treu la Pista." #: editor/animation_track_editor.cpp -#, fuzzy msgid "Time (s):" -msgstr "Temps (s): " +msgstr "Temps (s):" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Position:" -msgstr "Posició" +msgstr "Posició:" #: editor/animation_track_editor.cpp #, fuzzy @@ -1375,9 +1362,8 @@ msgid "Type:" msgstr "Tipus:" #: editor/animation_track_editor.cpp -#, fuzzy msgid "(Invalid, expected type: %s)" -msgstr "Plantilla d'exportació no và lida:" +msgstr "(No và lid, tipus esperat: %s)" #: editor/animation_track_editor.cpp #, fuzzy @@ -1630,9 +1616,8 @@ msgid "Add Method Track Key" msgstr "Afegir Clau de Pista de Mètode" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Method not found in object:" -msgstr "No s'ha trobat el mètode en l'objecte: " +msgstr "Mètode no trobat a l'objecte:" #: editor/animation_track_editor.cpp msgid "Anim Move Keys" @@ -2450,17 +2435,15 @@ msgid "%s (already exists)" msgstr "%s (ja existeix)" #: editor/editor_asset_installer.cpp -#, fuzzy msgid "Contents of asset \"%s\" - %d file(s) conflict with your project:" msgstr "" -"El contingut del(s) fitxer(s) d'asset \"%s\" - %d entra en conflicte amb el " -"vostre project:" +"El contingut del recurs \"%s\" - %d fitxer(s) entra en conflicte amb el " +"vostre projecte:" #: editor/editor_asset_installer.cpp -#, fuzzy msgid "Contents of asset \"%s\" - No files conflict with your project:" msgstr "" -"Continguts de l'asset \"%s\" - Cap fitxer entra en conflicte amb el vostre " +"Contingut del recurs \"%s\": no hi ha cap fitxer en conflicte amb el vostre " "projecte:" #: editor/editor_asset_installer.cpp @@ -2477,9 +2460,8 @@ msgid "(and %s more files)" msgstr "(i %s fitxer(s) més)" #: editor/editor_asset_installer.cpp -#, fuzzy msgid "Asset \"%s\" installed successfully!" -msgstr "El asset \"%s\" s'ha instal·lat exitosament!" +msgstr "El recurs \"%s\" s'ha instal·lat correctament!" #: editor/editor_asset_installer.cpp #: editor/plugins/asset_library_editor_plugin.cpp @@ -2613,9 +2595,8 @@ msgid "There is no '%s' file." msgstr "No hi ha cap fitxer '%s'." #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Layout:" -msgstr "Desar Disseny" +msgstr "Disseny:" #: editor/editor_audio_buses.cpp msgid "Invalid file, not an audio bus layout." @@ -2738,9 +2719,8 @@ msgid "%s is an invalid path. File does not exist." msgstr "%s es un camà no và lid. El fitxer no existeix." #: editor/editor_autoload_settings.cpp -#, fuzzy msgid "%s is an invalid path. Not in resource path (res://)." -msgstr "%s es un camà no và lid. No està en el camà del recurs (res://)." +msgstr "%s no és un camà và lid. No a la ruta del recurs (res://)." #: editor/editor_autoload_settings.cpp msgid "Add AutoLoad" @@ -2823,19 +2803,17 @@ msgid "Project export for platform:" msgstr "" #: editor/editor_export.cpp -#, fuzzy msgid "Completed with errors." -msgstr "Copia el Camà del Node" +msgstr "Completat amb errors." #: editor/editor_export.cpp #, fuzzy -msgid "Completed sucessfully." -msgstr "Paquet instal·lat amb èxit!" +msgid "Completed successfully." +msgstr "Completat amb èxit." #: editor/editor_export.cpp -#, fuzzy msgid "Failed." -msgstr "Ha fallat:" +msgstr "Fallit:" #: editor/editor_export.cpp msgid "Storing File:" @@ -2860,14 +2838,12 @@ msgid "Cannot create file \"%s\"." msgstr "No s'ha pogut crear el directori." #: editor/editor_export.cpp -#, fuzzy msgid "Failed to export project files." -msgstr "No s'ha pogut escriure el fitxer" +msgstr "No s'han pogut exportar els fitxers del projecte." #: editor/editor_export.cpp -#, fuzzy msgid "Can't open file to read from path \"%s\"." -msgstr "No s'ha pogut escriure en el fitxer:" +msgstr "No es pot obrir el fitxer per llegir-lo des del camà \"%s\"." #: editor/editor_export.cpp #, fuzzy @@ -2949,9 +2925,8 @@ msgid "Release" msgstr "alliberat" #: editor/editor_export.cpp -#, fuzzy msgid "Binary Format" -msgstr "Operador Color." +msgstr "Format binari" #: editor/editor_export.cpp msgid "64 Bits" @@ -3004,19 +2979,16 @@ msgid "Prepare Template" msgstr "Administrar Plantilles" #: editor/editor_export.cpp platform/osx/export/export.cpp -#, fuzzy msgid "The given export path doesn't exist." msgstr "El camà d'exportació donat no existeix:" #: editor/editor_export.cpp platform/javascript/export/export.cpp -#, fuzzy msgid "Template file not found: \"%s\"." -msgstr "No s'ha trobat la Plantilla:" +msgstr "No s'ha trobat el fitxer de plantilla: \"%s\"." #: editor/editor_export.cpp -#, fuzzy msgid "Failed to copy export template." -msgstr "Plantilla d'exportació no và lida:" +msgstr "No s'ha pogut copiar la plantilla d'exportació." #: editor/editor_export.cpp platform/windows/export/export.cpp #: platform/x11/export/export.cpp @@ -3071,9 +3043,8 @@ msgid "Allows to edit scripts using the integrated script editor." msgstr "Permet editar scripts utilitzant l'editor de scripts integrat." #: editor/editor_feature_profile.cpp -#, fuzzy msgid "Provides built-in access to the Asset Library." -msgstr "Proveeix accés integrat a la Llibreria de Assets." +msgstr "Proporciona accés integrat a la Biblioteca de Recursos." #: editor/editor_feature_profile.cpp msgid "Allows editing the node hierarchy in the Scene dock." @@ -3319,14 +3290,12 @@ msgid "Save a File" msgstr "Desa un Fitxer" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp -#, fuzzy msgid "Access" -msgstr "Èxit!" +msgstr "Accés" #: editor/editor_file_dialog.cpp editor/editor_settings.cpp -#, fuzzy msgid "Display Mode" -msgstr "Mode de Reproducció:" +msgstr "Mode de visualització" #: editor/editor_file_dialog.cpp #: editor/import/resource_importer_layered_texture.cpp @@ -3344,19 +3313,16 @@ msgid "Mode" msgstr "Mode d'Escombratge lateral" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp -#, fuzzy msgid "Current Dir" -msgstr "Actual:" +msgstr "Directori actual" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp -#, fuzzy msgid "Current File" -msgstr "Perfil Actual:" +msgstr "Fitxer actual" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp -#, fuzzy msgid "Current Path" -msgstr "Actual:" +msgstr "Camà actual" #: editor/editor_file_dialog.cpp editor/editor_settings.cpp #: scene/gui/file_dialog.cpp @@ -3687,9 +3653,8 @@ msgid "Checked" msgstr "Element validat" #: editor/editor_inspector.cpp -#, fuzzy msgid "Draw Red" -msgstr "Crides de Dibuix:" +msgstr "Dibuixa en vermell" #: editor/editor_inspector.cpp #, fuzzy @@ -4078,10 +4043,9 @@ msgid "Save changes to '%s' before closing?" msgstr "Desar els canvis a '%s' abans de tancar?" #: editor/editor_node.cpp -#, fuzzy msgid "%s no longer exists! Please specify a new save location." msgstr "" -"%s ja no existeix! Si us plau especifiqueu una nova localització de guardat." +"%s ja no existeix! Si us plau especifiqueu una nova ubicació per desar." #: editor/editor_node.cpp msgid "" @@ -4382,15 +4346,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "Escena" - -#: editor/editor_node.cpp -#, fuzzy -msgid "Scene Naming" -msgstr "Camà de l'Escena:" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp #, fuzzy @@ -4479,9 +4434,8 @@ msgid "Inspector" msgstr "Inspector" #: editor/editor_node.cpp -#, fuzzy msgid "Default Property Name Style" -msgstr "Camà del Projecte:" +msgstr "Estil de nom de propietat per defecte" #: editor/editor_node.cpp msgid "Default Float Step" @@ -4519,6 +4473,10 @@ msgid "Default Color Picker Mode" msgstr "" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "Control de Versions" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Username" msgstr "Reanomena" @@ -4547,6 +4505,10 @@ msgstr "Commutar el Mode Lliure de Distraccions." msgid "Add a new scene." msgstr "Afegeix una escena nova." +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "Escena" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "Vés a l'escena oberta anteriorment." @@ -4903,9 +4865,8 @@ msgid "Update All Changes" msgstr "Actualitzar quan es canvia" #: editor/editor_node.cpp -#, fuzzy msgid "Update Vital Changes" -msgstr "Canvis de Material:" +msgstr "Actualitza els canvis vitals" #: editor/editor_node.cpp msgid "Hide Update Spinner" @@ -5241,9 +5202,8 @@ msgid "Size:" msgstr "Mida:" #: editor/editor_properties_array_dict.cpp -#, fuzzy msgid "Page:" -msgstr "Pà gina: " +msgstr "Pà gina:" #: editor/editor_properties_array_dict.cpp #: editor/plugins/theme_editor_plugin.cpp @@ -5330,9 +5290,8 @@ msgid "Extend Script" msgstr "Estendre l'script" #: editor/editor_resource_picker.cpp -#, fuzzy msgid "Script Owner" -msgstr "Nom de l'script:" +msgstr "Propietari de l'script" #: editor/editor_run_native.cpp #, fuzzy @@ -5510,14 +5469,12 @@ msgid "Directories" msgstr "Direccions" #: editor/editor_settings.cpp -#, fuzzy msgid "Autoscan Project Path" -msgstr "Camà del Projecte:" +msgstr "Escaneja automà ticament la ruta del projecte" #: editor/editor_settings.cpp -#, fuzzy msgid "Default Project Path" -msgstr "Camà del Projecte:" +msgstr "Camà del projecte per defecte" #: editor/editor_settings.cpp #, fuzzy @@ -5539,9 +5496,8 @@ msgid "File Dialog" msgstr "Dià leg XForm" #: editor/editor_settings.cpp -#, fuzzy msgid "Thumbnail Size" -msgstr "Miniatura..." +msgstr "Mida de la miniatura" #: editor/editor_settings.cpp msgid "Docks" @@ -5623,14 +5579,12 @@ msgid "Convert Indent On Save" msgstr "Converteix la Sagnia en Espais" #: editor/editor_settings.cpp scene/gui/text_edit.cpp -#, fuzzy msgid "Draw Tabs" -msgstr "Crides de Dibuix:" +msgstr "Dibuixa pestanyes" #: editor/editor_settings.cpp scene/gui/text_edit.cpp -#, fuzzy msgid "Draw Spaces" -msgstr "Crides de Dibuix:" +msgstr "Dibuixa espais" #: editor/editor_settings.cpp editor/plugins/spatial_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/2d/tile_map.cpp @@ -5666,9 +5620,8 @@ msgid "Appearance" msgstr "" #: editor/editor_settings.cpp scene/gui/text_edit.cpp -#, fuzzy msgid "Show Line Numbers" -msgstr "LÃnia:" +msgstr "Mostra els números de lÃnia" #: editor/editor_settings.cpp #, fuzzy @@ -5814,9 +5767,8 @@ msgid "Add Type Hints" msgstr "Tipus" #: editor/editor_settings.cpp -#, fuzzy msgid "Use Single Quotes" -msgstr "Utilitzar Cometes Simples" +msgstr "Utilitza cometes simples" #: editor/editor_settings.cpp #, fuzzy @@ -5840,9 +5792,8 @@ msgid "Grid Map" msgstr "Mapa de Graella" #: editor/editor_settings.cpp modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "Pick Distance" -msgstr "Trieu la distà ncia:" +msgstr "Trieu la distà ncia" #: editor/editor_settings.cpp editor/plugins/tile_map_editor_plugin.cpp #, fuzzy @@ -5895,14 +5846,12 @@ msgid "Shape" msgstr "" #: editor/editor_settings.cpp -#, fuzzy msgid "Primary Grid Steps" -msgstr "Pas de la QuadrÃcula:" +msgstr "Passos de la quadrÃcula primà ria" #: editor/editor_settings.cpp -#, fuzzy msgid "Grid Size" -msgstr "Pas de la QuadrÃcula:" +msgstr "Mida de la quadrÃcula" #: editor/editor_settings.cpp msgid "Grid Division Level Max" @@ -6087,7 +6036,7 @@ msgstr "Elimina Elements de Classe" #: editor/editor_settings.cpp #, fuzzy msgid "Bone Selected Color" -msgstr "Perfil Actual:" +msgstr "Color seleccionat de l'os" #: editor/editor_settings.cpp msgid "Bone IK Color" @@ -6098,9 +6047,8 @@ msgid "Bone Outline Color" msgstr "" #: editor/editor_settings.cpp -#, fuzzy msgid "Bone Outline Size" -msgstr "Mida del Contorn:" +msgstr "Mida del contorn de l'os" #: editor/editor_settings.cpp msgid "Viewport Border Color" @@ -6194,9 +6142,8 @@ msgid "Auto Save" msgstr "Auto Tall" #: editor/editor_settings.cpp -#, fuzzy msgid "Save Before Running" -msgstr "Desar l'escena abans de executar-la..." +msgstr "Desa abans d'executar-lo" #: editor/editor_settings.cpp #, fuzzy @@ -6205,9 +6152,8 @@ msgstr "Vista Frontal" #: editor/editor_settings.cpp #: modules/gdscript/language_server/gdscript_language_server.cpp -#, fuzzy msgid "Remote Host" -msgstr "Remot " +msgstr "Amfitrió remot" #: editor/editor_settings.cpp #: modules/gdscript/language_server/gdscript_language_server.cpp @@ -6241,9 +6187,8 @@ msgstr "Gestor del Projecte" #. TRANSLATORS: Project Manager here refers to the tool used to create/manage Godot projects. #: editor/editor_settings.cpp -#, fuzzy msgid "Sorting Order" -msgstr "Reanomenant directori:" +msgstr "Ordre d'ordenació" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp msgid "Symbol Color" @@ -6275,16 +6220,14 @@ msgid "Comment Color" msgstr "" #: editor/editor_settings.cpp -#, fuzzy msgid "String Color" -msgstr "Emmagatzemant Fitxer:" +msgstr "Color de la cadena" #: editor/editor_settings.cpp platform/javascript/export/export.cpp #: platform/uwp/export/export.cpp #: scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Background Color" -msgstr "Color de fons no và lid." +msgstr "Color de fons" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp #, fuzzy @@ -6314,14 +6257,12 @@ msgid "Text Color" msgstr "Planta Següent" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Line Number Color" -msgstr "LÃnia:" +msgstr "Color del número de lÃnia" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Safe Line Number Color" -msgstr "LÃnia:" +msgstr "Color del número de lÃnia segura" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp msgid "Caret Color" @@ -6447,9 +6388,8 @@ msgid "%s Error" msgstr "Error" #: editor/export_template_manager.cpp -#, fuzzy msgid "Open the folder containing these templates." -msgstr "Obrir la carpeta que conte aquestes plantilles." +msgstr "Obriu la carpeta que conté aquestes plantilles." #: editor/export_template_manager.cpp msgid "Uninstall these templates." @@ -6466,9 +6406,8 @@ msgid "Retrieving the mirror list..." msgstr "S'estan buscant rèpliques..." #: editor/export_template_manager.cpp -#, fuzzy msgid "Starting the download..." -msgstr "Començant la descarrega..." +msgstr "S'està iniciant la baixada..." #: editor/export_template_manager.cpp msgid "Error requesting URL:" @@ -6497,18 +6436,16 @@ msgid "Request failed." msgstr "Ha fallat la sol·licitud." #: editor/export_template_manager.cpp -#, fuzzy msgid "Request ended up in a redirect loop." -msgstr "La sol·licitud a acabat en un bucle de redirecció." +msgstr "La sol·licitud ha acabat en un bucle de redirecció." #: editor/export_template_manager.cpp msgid "Request failed:" msgstr "La Sol·licitud ha fallat:" #: editor/export_template_manager.cpp -#, fuzzy msgid "Download complete; extracting templates..." -msgstr "Descarrega completa; extraient plantilles..." +msgstr "S'ha completat la baixada; s'estan extraient les plantilles..." #: editor/export_template_manager.cpp #, fuzzy @@ -6535,7 +6472,6 @@ msgstr "" "informeu d'aquest problema!" #: editor/export_template_manager.cpp -#, fuzzy msgid "Best available mirror" msgstr "Millor mirall disponible" @@ -6661,9 +6597,8 @@ msgid "Uninstall" msgstr "Desinstal·lar" #: editor/export_template_manager.cpp -#, fuzzy msgid "Uninstall templates for the current version." -msgstr "Valor inicial per al comptador." +msgstr "Desinstal·la les plantilles de la versió actual." #: editor/export_template_manager.cpp msgid "Download from:" @@ -6703,9 +6638,8 @@ msgid "Install from File" msgstr "Instal·lar des d'un Fitxer" #: editor/export_template_manager.cpp -#, fuzzy msgid "Install templates from a local file." -msgstr "Instal·lar plantilles des d'un fitxer local." +msgstr "Instal·la plantilles des d'un fitxer local." #: editor/export_template_manager.cpp editor/find_in_files.cpp #: editor/progress_dialog.cpp scene/gui/dialogs.cpp @@ -7178,9 +7112,8 @@ msgstr "" #: editor/import/resource_importer_layered_texture.cpp #: editor/import/resource_importer_texture.cpp scene/2d/light_2d.cpp #: scene/gui/control.cpp -#, fuzzy msgid "Filter" -msgstr "Filtres:" +msgstr "Filtre" #: editor/import/resource_importer_layered_texture.cpp #: editor/import/resource_importer_texture.cpp @@ -7207,17 +7140,15 @@ msgstr "Auto Tall" #: scene/gui/aspect_ratio_container.cpp scene/gui/control.cpp #: scene/gui/nine_patch_rect.cpp scene/gui/scroll_container.cpp #: scene/resources/style_box.cpp -#, fuzzy msgid "Horizontal" -msgstr "Horitzontal:" +msgstr "Horitzontal" #: editor/import/resource_importer_layered_texture.cpp #: scene/gui/aspect_ratio_container.cpp scene/gui/control.cpp #: scene/gui/nine_patch_rect.cpp scene/gui/scroll_container.cpp #: scene/resources/style_box.cpp -#, fuzzy msgid "Vertical" -msgstr "Vertical:" +msgstr "Vertical" #: editor/import/resource_importer_obj.cpp #, fuzzy @@ -7297,9 +7228,8 @@ msgid "Root Type" msgstr "Tipus de Membre" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Root Name" -msgstr "Remot " +msgstr "Nom de l'arrel" #: editor/import/resource_importer_scene.cpp #, fuzzy @@ -7312,18 +7242,16 @@ msgid "Custom Script" msgstr "Talla els Nodes" #: editor/import/resource_importer_scene.cpp scene/resources/texture.cpp -#, fuzzy msgid "Storage" -msgstr "Emmagatzemant Fitxer:" +msgstr "Emmagatzematge" #: editor/import/resource_importer_scene.cpp msgid "Use Legacy Names" msgstr "" #: editor/import/resource_importer_scene.cpp modules/gltf/gltf_state.cpp -#, fuzzy msgid "Materials" -msgstr "Canvis de Material:" +msgstr "Materials" #: editor/import/resource_importer_scene.cpp #, fuzzy @@ -7400,14 +7328,12 @@ msgid "Enabled" msgstr "Activar" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Max Linear Error" -msgstr "Error Lineal Max.:" +msgstr "Error lineal mà xim" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Max Angular Error" -msgstr "Error Angular Max.:" +msgstr "Error angular mà xim" #: editor/import/resource_importer_scene.cpp #, fuzzy @@ -7427,9 +7353,8 @@ msgstr "Talls d'Animació" #: editor/import/resource_importer_scene.cpp scene/2d/cpu_particles_2d.cpp #: scene/2d/particles_2d.cpp scene/3d/area.cpp scene/3d/cpu_particles.cpp #: scene/3d/particles.cpp scene/resources/environment.cpp -#, fuzzy msgid "Amount" -msgstr "Quantitat:" +msgstr "Quantitat" #: editor/import/resource_importer_scene.cpp #: editor/plugins/mesh_library_editor_plugin.cpp @@ -7445,9 +7370,8 @@ msgid "Generating Lightmaps" msgstr "S'estan generant els Lightmaps" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Generating for Mesh:" -msgstr "S'està generant per a la Malla: " +msgstr "S'està generant per malla:" #: editor/import/resource_importer_scene.cpp msgid "Running Custom Script..." @@ -7543,9 +7467,8 @@ msgid "Normal Map Invert Y" msgstr "Escala aleatòria:" #: editor/import/resource_importer_texture.cpp -#, fuzzy msgid "Size Limit" -msgstr "Mida: " +msgstr "LÃmit de mida" #: editor/import/resource_importer_texture.cpp msgid "Detect 3D" @@ -7563,14 +7486,12 @@ msgid "" msgstr "" #: editor/import/resource_importer_texture_atlas.cpp -#, fuzzy msgid "Atlas File" -msgstr "Mida del Contorn:" +msgstr "Fitxer Atles" #: editor/import/resource_importer_texture_atlas.cpp -#, fuzzy msgid "Import Mode" -msgstr "Mode d'Exportació:" +msgstr "Mode d'importació" #: editor/import/resource_importer_texture_atlas.cpp #, fuzzy @@ -7582,9 +7503,8 @@ msgid "Trim Alpha Border From Region" msgstr "" #: editor/import/resource_importer_wav.cpp scene/2d/physics_body_2d.cpp -#, fuzzy msgid "Force" -msgstr "Malla d'Origen:" +msgstr "Força" #: editor/import/resource_importer_wav.cpp msgid "8 Bit" @@ -7705,9 +7625,8 @@ msgid "Failed to load resource." msgstr "No s'ha pogut carregar el recurs." #: editor/inspector_dock.cpp -#, fuzzy msgid "Property Name Style" -msgstr "Nom del Projecte:" +msgstr "Estil del nom de la propietat" #: editor/inspector_dock.cpp scene/gui/color_picker.cpp msgid "Raw" @@ -8059,9 +7978,8 @@ msgid "Blend:" msgstr "Mescla:" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy msgid "Parameter Changed:" -msgstr "Parà metre Canviat:" +msgstr "Parà metre canviat:" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -8139,14 +8057,12 @@ msgstr "" "que no es poden recuperar els noms de les pistes." #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy msgid "Anim Clips" -msgstr "Talls d'Animació" +msgstr "Clips d'animació" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy msgid "Audio Clips" -msgstr "Talls d'Àudio" +msgstr "Clips d'à udio" #: editor/plugins/animation_blend_tree_editor_plugin.cpp msgid "Functions" @@ -8474,9 +8390,8 @@ msgid "Set the end animation. This is useful for sub-transitions." msgstr "Definiu l'animació final. Això és útil per a sub-transicions." #: editor/plugins/animation_state_machine_editor.cpp -#, fuzzy msgid "Transition:" -msgstr "Transició: " +msgstr "Transició:" #: editor/plugins/animation_state_machine_editor.cpp msgid "Play Mode:" @@ -8743,9 +8658,8 @@ msgid "Download Error" msgstr "Error en la Baixada" #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Available URLs" -msgstr "Perfils Disponibles:" +msgstr "URL disponibles" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Download for this asset is already in progress!" @@ -8808,9 +8722,8 @@ msgid "All" msgstr "Tot" #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Search templates, projects, and demos" -msgstr "Buscar plantilles, projectes i demos." +msgstr "Cerca plantilles, projectes i demostracions" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Search assets (excluding templates, projects, and demos)" @@ -9858,9 +9771,8 @@ msgstr "" #: editor/plugins/item_list_editor_plugin.cpp #: scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Separator" -msgstr "Separació:" +msgstr "Separador" #: editor/plugins/item_list_editor_plugin.cpp msgid "Item %d" @@ -9951,9 +9863,8 @@ msgid "No mesh to debug." msgstr "Cap malla per depurar." #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Mesh has no UV in layer %d." -msgstr "El model no té UVs en aquesta capa." +msgstr "La malla no té UV a la capa %d." #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "MeshInstance lacks a Mesh!" @@ -10293,9 +10204,8 @@ msgid "Volume" msgstr "Volum" #: editor/plugins/particles_editor_plugin.cpp -#, fuzzy msgid "Emission Source:" -msgstr "Font d'Emissió: " +msgstr "Font d'emissió:" #: editor/plugins/particles_editor_plugin.cpp msgid "A processor material of type 'ParticlesMaterial' is required." @@ -10709,9 +10619,8 @@ msgid "Room Generate Points" msgstr "Recompte de punts generats" #: editor/plugins/room_manager_editor_plugin.cpp -#, fuzzy msgid "Generate Points" -msgstr "Recompte de punts generats" +msgstr "Generar punts" #: editor/plugins/room_manager_editor_plugin.cpp #, fuzzy @@ -11028,9 +10937,8 @@ msgid "Script Temperature History Size" msgstr "" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Current Script Background Color" -msgstr "Color de fons no và lid." +msgstr "Color de fons de l'script actual" #: editor/plugins/script_editor_plugin.cpp #, fuzzy @@ -11043,9 +10951,8 @@ msgid "Sort Scripts By" msgstr "Crea un Script" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "List Script Names As" -msgstr "Nom de l'script:" +msgstr "Llista els noms dels scripts com a" #: editor/plugins/script_editor_plugin.cpp msgid "Exec Flags" @@ -11429,9 +11336,8 @@ msgstr "Translació" #. TRANSLATORS: Refers to changing the scale of a node in the 3D editor. #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Scaling:" -msgstr "Escala: " +msgstr "Escalat:" #. TRANSLATORS: Refers to changing the position of a node in the 3D editor. #: editor/plugins/spatial_editor_plugin.cpp @@ -11461,27 +11367,22 @@ msgid "Yaw:" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Objects Drawn:" -msgstr "Objectes Dibuixats:" +msgstr "Objectes dibuixats:" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Material Changes:" -msgstr "Canvis de Material:" +msgstr "Canvis del Material:" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Shader Changes:" -msgstr "Canvis de Shader:" +msgstr "Canvis del Shader:" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Surface Changes:" -msgstr "Canvis de superfÃcie:" +msgstr "Canvis de la superfÃcie:" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Draw Calls:" msgstr "Crides de Dibuix:" @@ -11996,19 +11897,16 @@ msgid "Sprite" msgstr "Sprite" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Simplification:" -msgstr "Simplificació: " +msgstr "Simplificació:" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Shrink (Pixels):" -msgstr "Redueix (PÃxels): " +msgstr "Redueix (PÃxels):" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Grow (Pixels):" -msgstr "Engrandeix (PÃxels): " +msgstr "Engrandeix (PÃxels):" #: editor/plugins/sprite_editor_plugin.cpp msgid "Update Preview" @@ -12266,9 +12164,8 @@ msgid "With Data" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Select by data type:" -msgstr "Selecciona un Node:" +msgstr "Seleccioneu per tipus de dades:" #: editor/plugins/theme_editor_plugin.cpp msgid "Select all visible color items." @@ -12337,19 +12234,16 @@ msgid "" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Collapse types." -msgstr "Col·lapsar tot." +msgstr "Col·lapsar els tipus." #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Expand types." -msgstr "Expandir tot." +msgstr "Expandir els tipus." #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Select all Theme items." -msgstr "Seleccioneu un Fitxer de Plantilla." +msgstr "Seleccioneu tots els elements del tema." #: editor/plugins/theme_editor_plugin.cpp #, fuzzy @@ -12518,9 +12412,8 @@ msgid "Add Type:" msgstr "Tipus:" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Add Item:" -msgstr "Afegeix un Element:" +msgstr "Afegeix un element:" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy @@ -12528,9 +12421,8 @@ msgid "Add StyleBox Item" msgstr "Afegeix tots els Elements" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Remove Items:" -msgstr "Elimina Element:" +msgstr "Suprimeix els elements:" #: editor/plugins/theme_editor_plugin.cpp msgid "Remove Class Items" @@ -12571,9 +12463,8 @@ msgid "Editor Theme" msgstr "Editar Tema" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Select Another Theme Resource:" -msgstr "Elimina el Recurs:" +msgstr "Seleccioneu un altre recurs de tema:" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy @@ -12600,9 +12491,8 @@ msgid "Available Node-based types:" msgstr "Perfils Disponibles:" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Type name is empty!" -msgstr "El nom del fitxer és buit." +msgstr "El nom del tipus és buit!" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy @@ -13051,9 +12941,8 @@ msgid "Priority" msgstr "Mode Prioritat" #: editor/plugins/tile_set_editor_plugin.cpp scene/2d/node_2d.cpp -#, fuzzy msgid "Z Index" -msgstr "Ãndex" +msgstr "Ãndex Z" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Region Mode" diff --git a/editor/translations/cs.po b/editor/translations/cs.po index 1e589d1dc3..9c3aea1d27 100644 --- a/editor/translations/cs.po +++ b/editor/translations/cs.po @@ -718,6 +718,11 @@ msgid "Main Run Args" msgstr "Argumenty hlavnà scény:" #: core/project_settings.cpp +#, fuzzy +msgid "Scene Naming" +msgstr "Cesta ke scénÄ›:" + +#: core/project_settings.cpp msgid "Search In File Extensions" msgstr "" @@ -725,19 +730,15 @@ msgstr "" msgid "Script Templates Search Path" msgstr "" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" -msgstr "Správa verzÃ" - #: core/project_settings.cpp -msgid "Autoload On Startup" -msgstr "" +#, fuzzy +msgid "Version Control Autoload On Startup" +msgstr "Verzovánà (VCS)" #: core/project_settings.cpp #, fuzzy -msgid "Plugin Name" -msgstr "Název pluginu:" +msgid "Version Control Plugin Name" +msgstr "Správa verzÃ" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -2876,7 +2877,7 @@ msgstr "KopÃrovat cestu k uzlu" #: editor/editor_export.cpp #, fuzzy -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "BalÃÄek byl úspěšnÄ› nainstalován!" #: editor/editor_export.cpp @@ -4398,15 +4399,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "Scéna" - -#: editor/editor_node.cpp -#, fuzzy -msgid "Scene Naming" -msgstr "Cesta ke scénÄ›:" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp #, fuzzy @@ -4535,6 +4527,10 @@ msgid "Default Color Picker Mode" msgstr "" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "Správa verzÃ" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Username" msgstr "PÅ™ejmenovat" @@ -4563,6 +4559,10 @@ msgstr "Zapnout nerozptylujÃcà režim." msgid "Add a new scene." msgstr "PÅ™idat novou scénu." +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "Scéna" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "PÅ™ejÃt na pÅ™edchozà scénu." diff --git a/editor/translations/da.po b/editor/translations/da.po index fb07e70ead..a90d207941 100644 --- a/editor/translations/da.po +++ b/editor/translations/da.po @@ -683,6 +683,11 @@ msgid "Main Run Args" msgstr "" #: core/project_settings.cpp +#, fuzzy +msgid "Scene Naming" +msgstr "Scene Sti:" + +#: core/project_settings.cpp msgid "Search In File Extensions" msgstr "" @@ -690,20 +695,15 @@ msgstr "" msgid "Script Templates Search Path" msgstr "" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp +#: core/project_settings.cpp #, fuzzy -msgid "Version Control" +msgid "Version Control Autoload On Startup" msgstr "Versionskontrol" #: core/project_settings.cpp -msgid "Autoload On Startup" -msgstr "" - -#: core/project_settings.cpp #, fuzzy -msgid "Plugin Name" -msgstr "Node Navn:" +msgid "Version Control Plugin Name" +msgstr "Versionskontrol" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -2890,7 +2890,7 @@ msgstr "" #: editor/editor_export.cpp #, fuzzy -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "Pakke installeret med succes!" #: editor/editor_export.cpp @@ -4449,15 +4449,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "Scene" - -#: editor/editor_node.cpp -#, fuzzy -msgid "Scene Naming" -msgstr "Scene Sti:" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp msgid "Interface" @@ -4586,6 +4577,11 @@ msgstr "" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp #, fuzzy +msgid "Version Control" +msgstr "Versionskontrol" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +#, fuzzy msgid "Username" msgstr "Omdøb" @@ -4613,6 +4609,10 @@ msgstr "Skift distraktions-fri modus." msgid "Add a new scene." msgstr "Tilføj en ny scene." +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "Scene" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "GÃ¥ til den forrige Ã¥bnede scene." diff --git a/editor/translations/de.po b/editor/translations/de.po index 63031da9ea..795dbd5328 100644 --- a/editor/translations/de.po +++ b/editor/translations/de.po @@ -706,6 +706,10 @@ msgid "Main Run Args" msgstr "Laufzeitargumente für Main" #: core/project_settings.cpp +msgid "Scene Naming" +msgstr "Szenenbenennung" + +#: core/project_settings.cpp msgid "Search In File Extensions" msgstr "In Dateierweiterungen suchen" @@ -713,18 +717,15 @@ msgstr "In Dateierweiterungen suchen" msgid "Script Templates Search Path" msgstr "Suchpfad für Skriptvorlagen" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" -msgstr "Versionsverwaltung" - #: core/project_settings.cpp -msgid "Autoload On Startup" +#, fuzzy +msgid "Version Control Autoload On Startup" msgstr "Autoladen beim Start" #: core/project_settings.cpp -msgid "Plugin Name" -msgstr "Pluginname" +#, fuzzy +msgid "Version Control Plugin Name" +msgstr "Versionsverwaltung" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -2828,7 +2829,7 @@ msgstr "Dateipfade vervollständigen" #: editor/editor_export.cpp #, fuzzy -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "Paket wurde erfolgreich installiert!" #: editor/editor_export.cpp @@ -4362,14 +4363,6 @@ msgstr "" "In Datei ‚%s‘ kann nicht geschrieben werden. Die Datei wird bereits " "verwendet, sie ist gesperrt, oder es ist keine Schreibberechtigung vorhanden." -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "Szene" - -#: editor/editor_node.cpp -msgid "Scene Naming" -msgstr "Szenenbenennung" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp msgid "Interface" @@ -4484,6 +4477,10 @@ msgid "Default Color Picker Mode" msgstr "Standard Farbwahlmodus" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "Versionsverwaltung" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Username" msgstr "Nutzername" @@ -4511,6 +4508,10 @@ msgstr "Ablenkungsfreien Modus umschalten." msgid "Add a new scene." msgstr "Eine neue Szene hinzufügen." +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "Szene" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "Gehe zu vorher geöffneter Szene." diff --git a/editor/translations/editor.pot b/editor/translations/editor.pot index d3e83bf799..169d40ebd7 100644 --- a/editor/translations/editor.pot +++ b/editor/translations/editor.pot @@ -618,24 +618,23 @@ msgid "Main Run Args" msgstr "" #: core/project_settings.cpp -msgid "Search In File Extensions" +msgid "Scene Naming" msgstr "" #: core/project_settings.cpp -msgid "Script Templates Search Path" +msgid "Search In File Extensions" msgstr "" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" +#: core/project_settings.cpp +msgid "Script Templates Search Path" msgstr "" #: core/project_settings.cpp -msgid "Autoload On Startup" +msgid "Version Control Autoload On Startup" msgstr "" #: core/project_settings.cpp -msgid "Plugin Name" +msgid "Version Control Plugin Name" msgstr "" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp @@ -2680,7 +2679,7 @@ msgid "Completed with errors." msgstr "" #: editor/editor_export.cpp -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "" #: editor/editor_export.cpp @@ -4086,14 +4085,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "" - -#: editor/editor_node.cpp -msgid "Scene Naming" -msgstr "" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp msgid "Interface" @@ -4208,6 +4199,10 @@ msgid "Default Color Picker Mode" msgstr "" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Username" msgstr "" @@ -4235,6 +4230,10 @@ msgstr "" msgid "Add a new scene." msgstr "" +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "" diff --git a/editor/translations/el.po b/editor/translations/el.po index 10357edf88..a3f5e815e1 100644 --- a/editor/translations/el.po +++ b/editor/translations/el.po @@ -660,6 +660,10 @@ msgid "Main Run Args" msgstr "ΟÏίσματα κÏÏιας σκηνής" #: core/project_settings.cpp +msgid "Scene Naming" +msgstr "Όνομα Σκηνής" + +#: core/project_settings.cpp msgid "Search In File Extensions" msgstr "Αναζήτηση στις Επεκτάσεις ΑÏχείων" @@ -667,18 +671,15 @@ msgstr "Αναζήτηση στις Επεκτάσεις ΑÏχείων" msgid "Script Templates Search Path" msgstr "" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" -msgstr "Έλεγχος Îκδοσης" - #: core/project_settings.cpp -msgid "Autoload On Startup" -msgstr "" +#, fuzzy +msgid "Version Control Autoload On Startup" +msgstr "ΣÏστημα ΕλÎγχου Έκδοσης" #: core/project_settings.cpp -msgid "Plugin Name" -msgstr "Όνομα Î ÏοσθÎτου" +#, fuzzy +msgid "Version Control Plugin Name" +msgstr "Έλεγχος Îκδοσης" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -2835,7 +2836,7 @@ msgstr "ΑντιγÏαφή διαδÏομής κόμβου" #: editor/editor_export.cpp #, fuzzy -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "Το πακÎτο εγκαταστάθηκε επιτυχώς!" #: editor/editor_export.cpp @@ -4377,14 +4378,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "Σκηνή" - -#: editor/editor_node.cpp -msgid "Scene Naming" -msgstr "Όνομα Σκηνής" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp #, fuzzy @@ -4502,6 +4495,10 @@ msgid "Default Color Picker Mode" msgstr "Î ÏοεπιλεγμÎνη ΛειτουÏγία ΕπιλογÎα ΧÏώματος" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "Έλεγχος Îκδοσης" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Username" msgstr "Ψευδώνυμο" @@ -4529,6 +4526,10 @@ msgstr "Εναλλαγή λειτουÏγίας χωÏίς πεÏÎ¹ÏƒÏ€Î±ÏƒÎ¼Î¿Ï msgid "Add a new scene." msgstr "Î Ïοσθήκη νÎας σκηνής." +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "Σκηνή" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "ΕπιστÏοφή στην Ï€ÏοηγουμÎνως ανοιγμÎνη σκηνή." diff --git a/editor/translations/en_Shaw.po b/editor/translations/en_Shaw.po index 0c77d2c65e..14388e1c66 100644 --- a/editor/translations/en_Shaw.po +++ b/editor/translations/en_Shaw.po @@ -630,24 +630,23 @@ msgid "Main Run Args" msgstr "" #: core/project_settings.cpp -msgid "Search In File Extensions" +msgid "Scene Naming" msgstr "" #: core/project_settings.cpp -msgid "Script Templates Search Path" +msgid "Search In File Extensions" msgstr "" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" +#: core/project_settings.cpp +msgid "Script Templates Search Path" msgstr "" #: core/project_settings.cpp -msgid "Autoload On Startup" +msgid "Version Control Autoload On Startup" msgstr "" #: core/project_settings.cpp -msgid "Plugin Name" +msgid "Version Control Plugin Name" msgstr "" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp @@ -2702,7 +2701,7 @@ msgid "Completed with errors." msgstr "" #: editor/editor_export.cpp -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "" #: editor/editor_export.cpp @@ -4110,14 +4109,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "" - -#: editor/editor_node.cpp -msgid "Scene Naming" -msgstr "" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp msgid "Interface" @@ -4232,6 +4223,10 @@ msgid "Default Color Picker Mode" msgstr "" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Username" msgstr "" @@ -4259,6 +4254,10 @@ msgstr "" msgid "Add a new scene." msgstr "" +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "" diff --git a/editor/translations/eo.po b/editor/translations/eo.po index 1cc476926f..46e8f898ce 100644 --- a/editor/translations/eo.po +++ b/editor/translations/eo.po @@ -691,6 +691,11 @@ msgid "Main Run Args" msgstr "Parametroj de ĉefa sceno:" #: core/project_settings.cpp +#, fuzzy +msgid "Scene Naming" +msgstr "Scena dosierindiko:" + +#: core/project_settings.cpp msgid "Search In File Extensions" msgstr "" @@ -698,19 +703,15 @@ msgstr "" msgid "Script Templates Search Path" msgstr "" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" -msgstr "Versikontrolo" - #: core/project_settings.cpp -msgid "Autoload On Startup" -msgstr "" +#, fuzzy +msgid "Version Control Autoload On Startup" +msgstr "Versikontrolo" #: core/project_settings.cpp #, fuzzy -msgid "Plugin Name" -msgstr "Nomo de kromprogramon:" +msgid "Version Control Plugin Name" +msgstr "Versikontrolo" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -2846,7 +2847,7 @@ msgstr "" #: editor/editor_export.cpp #, fuzzy -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "Pakaĵo instalis sukcese!" #: editor/editor_export.cpp @@ -4375,15 +4376,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "Sceno" - -#: editor/editor_node.cpp -#, fuzzy -msgid "Scene Naming" -msgstr "Scena dosierindiko:" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp #, fuzzy @@ -4512,6 +4504,10 @@ msgid "Default Color Picker Mode" msgstr "" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "Versikontrolo" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Username" msgstr "Renomi" @@ -4540,6 +4536,10 @@ msgstr "Baskuli sendistran reÄimon." msgid "Add a new scene." msgstr "Aldoni novan scenon." +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "Sceno" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "Iri al antaÅe malfermitan scenon." diff --git a/editor/translations/es.po b/editor/translations/es.po index ca733436b7..d419b78e4b 100644 --- a/editor/translations/es.po +++ b/editor/translations/es.po @@ -84,8 +84,8 @@ msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-06-08 06:48+0000\n" -"Last-Translator: David MartÃnez <goddrinksjava@gmail.com>\n" +"PO-Revision-Date: 2022-06-19 11:52+0000\n" +"Last-Translator: Javier Ocampos <xavier.ocampos@gmail.com>\n" "Language-Team: Spanish <https://hosted.weblate.org/projects/godot-engine/" "godot/es/>\n" "Language: es\n" @@ -93,7 +93,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.13-dev\n" +"X-Generator: Weblate 4.13.1-dev\n" #: core/bind/core_bind.cpp main/main.cpp msgid "Tablet Driver" @@ -350,7 +350,7 @@ msgstr "Tamaño Máximo del Buffer de Salida" #: core/io/packet_peer.cpp msgid "Stream Peer" -msgstr "Stream Peer" +msgstr "Stream de Pares" #: core/io/stream_peer.cpp msgid "Big Endian" @@ -705,6 +705,10 @@ msgid "Main Run Args" msgstr "Argumentos de la Ejecución Principal" #: core/project_settings.cpp +msgid "Scene Naming" +msgstr "Nombres de Escenas" + +#: core/project_settings.cpp msgid "Search In File Extensions" msgstr "Buscar En Extensiones de Archivos" @@ -712,18 +716,15 @@ msgstr "Buscar En Extensiones de Archivos" msgid "Script Templates Search Path" msgstr "Ruta de Búsqueda de Plantillas de Scripts" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" -msgstr "Control de Versiones" - #: core/project_settings.cpp -msgid "Autoload On Startup" +#, fuzzy +msgid "Version Control Autoload On Startup" msgstr "Cargar automáticamente al inicio" #: core/project_settings.cpp -msgid "Plugin Name" -msgstr "Nombre del Plugin" +#, fuzzy +msgid "Version Control Plugin Name" +msgstr "Control de Versiones" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -915,7 +916,7 @@ msgstr "Tiempo de Espera de Conexión en Segundos" #: core/register_core_types.cpp msgid "Packet Peer Stream" -msgstr "Packet Peer Stream" +msgstr "Stream de Paquetes de Pares" #: core/register_core_types.cpp msgid "Max Buffer (Power of 2)" @@ -1088,7 +1089,7 @@ msgstr "Ponderar Muestras" #: drivers/gles3/rasterizer_scene_gles3.cpp msgid "Voxel Cone Tracing" -msgstr "Voxel Cone Tracing" +msgstr "Trazado de Conos de Vóxeles" #: drivers/gles3/rasterizer_scene_gles3.cpp scene/resources/environment.cpp msgid "High Quality" @@ -1197,9 +1198,8 @@ msgid "Value" msgstr "Valor" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Arg Count" -msgstr "Cuenta" +msgstr "Conteo de Argumentos" #: editor/animation_track_editor.cpp main/main.cpp #: modules/mono/mono_gd/gd_mono.cpp @@ -1360,19 +1360,16 @@ msgid "Remove this track." msgstr "Eliminar esta pista." #: editor/animation_track_editor.cpp -#, fuzzy msgid "Time (s):" -msgstr "Tiempo (s): " +msgstr "Tiempo (s):" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Position:" -msgstr "Posición" +msgstr "Posición:" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Rotation:" -msgstr "Rotación" +msgstr "Rotación:" #: editor/animation_track_editor.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1389,29 +1386,24 @@ msgid "Type:" msgstr "Tipo:" #: editor/animation_track_editor.cpp -#, fuzzy msgid "(Invalid, expected type: %s)" -msgstr "Plantilla de exportación inválida:" +msgstr "(Inválido, tipo esperado: %s)" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Easing:" -msgstr "Entrada-Salida Suave" +msgstr "Relajación:" #: editor/animation_track_editor.cpp -#, fuzzy msgid "In-Handle:" -msgstr "Establecer Manipulador" +msgstr "In-Handle:" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Out-Handle:" -msgstr "Establecer Manipulador" +msgstr "Out-Handle:" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Stream:" -msgstr "Stream Peer" +msgstr "Stream:" #: editor/animation_track_editor.cpp #, fuzzy @@ -1643,9 +1635,8 @@ msgid "Add Method Track Key" msgstr "Añadir Clave de Pista de Método" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Method not found in object:" -msgstr "Método no encontrado en el objeto: " +msgstr "Método no encontrado en el objeto:" #: editor/animation_track_editor.cpp msgid "Anim Move Keys" @@ -2615,9 +2606,8 @@ msgid "There is no '%s' file." msgstr "No hay ningún archivo `%s'." #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Layout:" -msgstr "Layout" +msgstr "Layout:" #: editor/editor_audio_buses.cpp msgid "Invalid file, not an audio bus layout." @@ -2823,19 +2813,17 @@ msgid "Project export for platform:" msgstr "" #: editor/editor_export.cpp -#, fuzzy msgid "Completed with errors." -msgstr "Completar Rutas de Archivos" +msgstr "Completado con errores." #: editor/editor_export.cpp #, fuzzy -msgid "Completed sucessfully." -msgstr "¡Paquete instalado con éxito!" +msgid "Completed successfully." +msgstr "Completado con éxito." #: editor/editor_export.cpp -#, fuzzy msgid "Failed." -msgstr "Fallido:" +msgstr "Falló." #: editor/editor_export.cpp msgid "Storing File:" @@ -2861,14 +2849,12 @@ msgid "Cannot create file \"%s\"." msgstr "No se pudo crear la carpeta." #: editor/editor_export.cpp -#, fuzzy msgid "Failed to export project files." -msgstr "No se pudieron exportar los archivos del proyecto" +msgstr "Fallo en la exportación de los archivos del proyecto." #: editor/editor_export.cpp -#, fuzzy msgid "Can't open file to read from path \"%s\"." -msgstr "No se puede abrir el archivo para escribir:" +msgstr "No se puede abrir el archivo a leer de la ruta \"%s\"." #: editor/editor_export.cpp #, fuzzy @@ -2999,19 +2985,16 @@ msgid "Prepare Template" msgstr "Administrar Plantillas" #: editor/editor_export.cpp platform/osx/export/export.cpp -#, fuzzy msgid "The given export path doesn't exist." -msgstr "La ruta de exportación especificada no existe:" +msgstr "La ruta de exportación proporcionada no existe." #: editor/editor_export.cpp platform/javascript/export/export.cpp -#, fuzzy msgid "Template file not found: \"%s\"." -msgstr "Archivo de plantilla no encontrado:" +msgstr "Archivo de plantilla no encontrado: \"%s\"." #: editor/editor_export.cpp -#, fuzzy msgid "Failed to copy export template." -msgstr "Plantilla de exportación inválida:" +msgstr "Fallo al copiar la plantilla de exportación." #: editor/editor_export.cpp platform/windows/export/export.cpp #: platform/x11/export/export.cpp @@ -4354,14 +4337,6 @@ msgstr "" "No se puede escribir en el archivo '%s', archivo en uso, bloqueado o sin " "permisos." -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "Escena" - -#: editor/editor_node.cpp -msgid "Scene Naming" -msgstr "Nombres de Escenas" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp msgid "Interface" @@ -4476,6 +4451,10 @@ msgid "Default Color Picker Mode" msgstr "Modo De Selección De Color Por Defecto" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "Control de Versiones" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Username" msgstr "Nombre de usuario" @@ -4503,6 +4482,10 @@ msgstr "Act./Desact. modo sin distracciones." msgid "Add a new scene." msgstr "Añadir nueva escena." +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "Escena" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "Ir a la escena abierta previamente." @@ -5199,9 +5182,8 @@ msgid "Size:" msgstr "Tamaño:" #: editor/editor_properties_array_dict.cpp -#, fuzzy msgid "Page:" -msgstr "Página: " +msgstr "Página:" #: editor/editor_properties_array_dict.cpp #: editor/plugins/theme_editor_plugin.cpp @@ -5613,7 +5595,7 @@ msgstr "Plegado de Código" #: editor/editor_settings.cpp msgid "Word Wrap" -msgstr "" +msgstr "Ajuste de Palabras" #: editor/editor_settings.cpp msgid "Show Line Length Guidelines" @@ -5621,7 +5603,7 @@ msgstr "Mostrar GuÃas de Longitud de LÃnea" #: editor/editor_settings.cpp msgid "Line Length Guideline Soft Column" -msgstr "" +msgstr "Directriz de longitud de LÃnea de Columna Flexible" #: editor/editor_settings.cpp msgid "Line Length Guideline Hard Column" @@ -5722,9 +5704,8 @@ msgid "Complete File Paths" msgstr "Completar Rutas de Archivos" #: editor/editor_settings.cpp modules/gdscript/gdscript_editor.cpp -#, fuzzy msgid "Add Type Hints" -msgstr "Añadir Tipo" +msgstr "Añadir Sugerencias de Tipo" #: editor/editor_settings.cpp msgid "Use Single Quotes" @@ -5843,9 +5824,8 @@ msgid "Default Z Far" msgstr "Z Lejana por Defecto" #: editor/editor_settings.cpp -#, fuzzy msgid "Lightmap Baking Number Of CPU Threads" -msgstr "Número de Hilos de la CPU para Baking de Mapa de Luz" +msgstr "Número de hilos de la CPU para el Lightmap Baking" #: editor/editor_settings.cpp msgid "Navigation Scheme" @@ -5968,9 +5948,8 @@ msgid "Bone Selected Color" msgstr "Selección del Color de los Huesos" #: editor/editor_settings.cpp -#, fuzzy msgid "Bone IK Color" -msgstr "Color IK Hueso" +msgstr "Color del hueso IK" #: editor/editor_settings.cpp msgid "Bone Outline Color" @@ -7257,9 +7236,8 @@ msgid "Generating Lightmaps" msgstr "Generando Lightmaps" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Generating for Mesh:" -msgstr "Generando para la Malla: " +msgstr "Generar para el Mesh:" #: editor/import/resource_importer_scene.cpp msgid "Running Custom Script..." @@ -8281,9 +8259,8 @@ msgid "Set the end animation. This is useful for sub-transitions." msgstr "Asignar la animación de fin. Esto es útil para sub-transiciones." #: editor/plugins/animation_state_machine_editor.cpp -#, fuzzy msgid "Transition:" -msgstr "Transición: " +msgstr "Transición:" #: editor/plugins/animation_state_machine_editor.cpp msgid "Play Mode:" @@ -10061,9 +10038,8 @@ msgid "Volume" msgstr "Volumen" #: editor/plugins/particles_editor_plugin.cpp -#, fuzzy msgid "Emission Source:" -msgstr "Fuente de Emisión: " +msgstr "Fuente de Emisión:" #: editor/plugins/particles_editor_plugin.cpp msgid "A processor material of type 'ParticlesMaterial' is required." @@ -11162,15 +11138,13 @@ msgstr "Mover" #. TRANSLATORS: Refers to changing the scale of a node in the 3D editor. #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Scaling:" -msgstr "Escalado: " +msgstr "Escala:" #. TRANSLATORS: Refers to changing the position of a node in the 3D editor. #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Translating:" -msgstr "Trasladar: " +msgstr "Trasladar:" #: editor/plugins/spatial_editor_plugin.cpp msgid "Rotating %s degrees." @@ -11714,19 +11688,16 @@ msgid "Sprite" msgstr "Sprite" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Simplification:" -msgstr "Simplificación: " +msgstr "Simplificación:" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Shrink (Pixels):" -msgstr "Encoger (PÃxeles): " +msgstr "Reducción (PÃxeles):" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Grow (Pixels):" -msgstr "Crecer (Pixeles): " +msgstr "Crecimiento (PÃxeles):" #: editor/plugins/sprite_editor_plugin.cpp msgid "Update Preview" @@ -15908,9 +15879,8 @@ msgid "Attach Node Script" msgstr "Añadir Script de Nodo" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Remote %s:" -msgstr "Remoto " +msgstr "Remoto %s:" #: editor/script_editor_debugger.cpp msgid "Bytes:" @@ -16956,9 +16926,8 @@ msgid "Disabled GDNative Singleton" msgstr "GDNative Singleton desactivado" #: modules/gdnative/gdnative_library_singleton_editor.cpp -#, fuzzy msgid "Libraries:" -msgstr "Bibliotecas: " +msgstr "LibrerÃas:" #: modules/gdnative/nativescript/nativescript.cpp msgid "Class Name" @@ -17849,9 +17818,8 @@ msgstr "" "trabajo de nodos. Prueba arreglando el nodo." #: modules/visual_script/visual_script.cpp -#, fuzzy msgid "Node returned an invalid sequence output:" -msgstr "El nodo devolvió una secuencia de salida incorrecta: " +msgstr "El nodo ha devuelto una secuencia de salida inválida:" #: modules/visual_script/visual_script.cpp msgid "Found sequence bit but not the node in the stack, report bug!" @@ -17860,9 +17828,8 @@ msgstr "" "problema!" #: modules/visual_script/visual_script.cpp -#, fuzzy msgid "Stack overflow with stack depth:" -msgstr "Desbordamiento de pila en el nivel: " +msgstr "Desbordamiento de pila con profundidad de pila:" #: modules/visual_script/visual_script.cpp #, fuzzy @@ -18232,18 +18199,16 @@ msgid "for (elem) in (input):" msgstr "for (elem) in (input):" #: modules/visual_script/visual_script_flow_control.cpp -#, fuzzy msgid "Input type not iterable:" -msgstr "El tipo de entrada no es iterable: " +msgstr "Tipo de entrada no iterable:" #: modules/visual_script/visual_script_flow_control.cpp msgid "Iterator became invalid" msgstr "El iterador ya no es correcto" #: modules/visual_script/visual_script_flow_control.cpp -#, fuzzy msgid "Iterator became invalid:" -msgstr "El iterador ya no es correcto: " +msgstr "El iterador es inválido:" #: modules/visual_script/visual_script_flow_control.cpp msgid "Sequence" @@ -18405,14 +18370,12 @@ msgid "Operator" msgstr "Iterador" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "Invalid argument of type:" -msgstr ": Argumento incorrecto de tipo: " +msgstr "Argumento inválido de tipo:" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "Invalid arguments:" -msgstr ": Argumentos incorrectos: " +msgstr "Argumentos inválidos:" #: modules/visual_script/visual_script_nodes.cpp msgid "a if cond, else b" @@ -18424,14 +18387,12 @@ msgid "Var Name" msgstr "Nombre" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "VariableGet not found in script:" -msgstr "VariableGet no encontrado en el script: " +msgstr "VariableGet no encontrada en el script:" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "VariableSet not found in script:" -msgstr "VariableSet no encontrado en el script: " +msgstr "VariableSet no encontrada en el script:" #: modules/visual_script/visual_script_nodes.cpp msgid "Preload" @@ -19101,15 +19062,13 @@ msgid "Code Signing" msgstr "Firma de código DMG" #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "" "'apksigner' could not be found. Please check that the command is available " "in the Android SDK build-tools directory. The resulting %s is unsigned." msgstr "" -"No se ha encontrado 'apksigner'.\n" -"Por favor, compruebe que el comando está disponible en el directorio Android " -"SDK build-tools.\n" -"El resultado %s es sin firma." +"No se ha encontrado el 'apksigner'. Por favor, comprueba que el comando está " +"disponible en el directorio Android SDK build-tools. El resultado %s es sin " +"firma." #: platform/android/export/export_plugin.cpp msgid "Signing debug %s..." @@ -19124,9 +19083,8 @@ msgid "Could not find keystore, unable to export." msgstr "No se pudo encontrar la keystore, no se puedo exportar." #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Could not start apksigner executable." -msgstr "¡No se pudo comenzar el subproceso!" +msgstr "No se ha podido iniciar el ejecutable apksigner." #: platform/android/export/export_plugin.cpp msgid "'apksigner' returned with error #%d" @@ -19158,9 +19116,8 @@ msgid "Invalid filename! Android APK requires the *.apk extension." msgstr "¡Nombre de archivo inválido! Android APK requiere la extensión *.apk." #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Unsupported export format!" -msgstr "¡Formato de exportación no compatible!\n" +msgstr "¡Formato de exportación no compatible!" #: platform/android/export/export_plugin.cpp msgid "" @@ -19172,29 +19129,24 @@ msgstr "" "'Proyecto'." #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "" "Android build version mismatch: Template installed: %s, Godot version: %s. " "Please reinstall Android build template from 'Project' menu." msgstr "" -"La versión de compilación de Android no coincide:\n" -" Plantilla instalada: %s\n" -" Versión de Godot: %s\n" -"Por favor, reinstala la plantilla de compilación de Android desde el menú " -"'Proyecto'." +"La versión de compilación de Android no coincide: Plantilla instalada: %s, " +"versión de Godot: %s. Reinstala la plantilla de compilación de Android desde " +"el menú \"Proyecto\"." #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "" "Unable to overwrite res://android/build/res/*.xml files with project name." msgstr "" "No se puede sobrescribir los archivos res://android/build/res/*.xml con el " -"nombre del proyecto" +"mismo nombre del proyecto." #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Could not export project files to gradle project." -msgstr "No se pueden exportar los archivos del proyecto a un proyecto gradle\n" +msgstr "No se pueden exportar los archivos del proyecto a un proyecto gradle." #: platform/android/export/export_plugin.cpp msgid "Could not write expansion package file!" @@ -19205,13 +19157,12 @@ msgid "Building Android Project (gradle)" msgstr "Construir Proyecto Android (gradle)" #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "" "Building of Android project failed, check output for the error. " "Alternatively visit docs.godotengine.org for Android build documentation." msgstr "" -"La construcción del proyecto Android falló, comprueba la salida del error.\n" -"También puedes visitar docs.godotengine.org para consultar la documentación " +"La compilación del proyecto Android ha fallado, comprueba la salida del " +"error. También puedes visitar docs.godotengine.org para ver la documentación " "de compilación de Android." #: platform/android/export/export_plugin.cpp @@ -19227,41 +19178,35 @@ msgstr "" "directorio del proyecto de gradle para ver los resultados." #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Package not found: \"%s\"." -msgstr "Paquete no encontrado:% s" +msgstr "Paquete no encontrado: \"%s\"." #: platform/android/export/export_plugin.cpp msgid "Creating APK..." msgstr "Creando APK..." #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Could not find template APK to export: \"%s\"." -msgstr "" -"No se pudo encontrar la plantilla APK para exportar:\n" -"%s" +msgstr "No se pudo encontrar la plantilla APK para exportar: \"%s\"." #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "" "Missing libraries in the export template for the selected architectures: %s. " "Please build a template with all required libraries, or uncheck the missing " "architectures in the export preset." msgstr "" -"Faltan bibliotecas en la plantilla de exportación para las arquitecturas " -"seleccionadas: %s.\n" -"Por favor, construya una plantilla con todas las bibliotecas necesarias, o " -"desmarque las arquitecturas que faltan en el preajuste de exportación." +"Faltan librerÃas en la plantilla de exportación para las arquitecturas " +"seleccionadas: %s. Por favor, crea una plantilla con todas las librerÃas " +"necesarias, o desmarca las arquitecturas que faltan en el preset de " +"exportación." #: platform/android/export/export_plugin.cpp msgid "Adding files..." msgstr "Añadiendo archivos ..." #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Could not export project files." -msgstr "No se pudieron exportar los archivos del proyecto" +msgstr "No se han podido exportar los archivos del proyecto." #: platform/android/export/export_plugin.cpp msgid "Aligning APK..." @@ -19533,19 +19478,16 @@ msgid "Run exported HTML in the system's default browser." msgstr "Ejecutar HTML exportado en el navegador predeterminado del sistema." #: platform/javascript/export/export.cpp -#, fuzzy msgid "Could not open template for export: \"%s\"." -msgstr "No se pudo abrir la plantilla para exportar:" +msgstr "No se pudo abrir la plantilla para la exportación: \"%s\"." #: platform/javascript/export/export.cpp -#, fuzzy msgid "Invalid export template: \"%s\"." -msgstr "Plantilla de exportación inválida:" +msgstr "Plantilla de exportación inválida: \"%s\"." #: platform/javascript/export/export.cpp -#, fuzzy msgid "Could not write file: \"%s\"." -msgstr "No se puede escribir en el archivo:" +msgstr "No se pudo escribir el archivo: \"%s\"." #: platform/javascript/export/export.cpp platform/osx/export/export.cpp #, fuzzy @@ -19553,9 +19495,8 @@ msgid "Icon Creation" msgstr "Asignar Margen" #: platform/javascript/export/export.cpp -#, fuzzy msgid "Could not read file: \"%s\"." -msgstr "No se pudo leer el archivo:" +msgstr "No se pudo leer el archivo: \"%s\"." #: platform/javascript/export/export.cpp msgid "PWA" @@ -19635,19 +19576,16 @@ msgid "Icon 512 X 512" msgstr "" #: platform/javascript/export/export.cpp -#, fuzzy msgid "Could not read HTML shell: \"%s\"." -msgstr "No se pudo leer el shell HTML:" +msgstr "No se ha podido leer el HTML shell: \"%s\"." #: platform/javascript/export/export.cpp -#, fuzzy msgid "Could not create HTTP server directory: %s." -msgstr "No se pudo crear el directorio del servidor HTTP:" +msgstr "No se ha podido crear el directorio del servidor HTTP: %s." #: platform/javascript/export/export.cpp -#, fuzzy msgid "Error starting HTTP server: %d." -msgstr "Error al iniciar el servidor HTTP:" +msgstr "Error al iniciar el servidor HTTP: %d." #: platform/javascript/export/export.cpp msgid "Web" @@ -19938,19 +19876,16 @@ msgid "Apple Team ID" msgstr "" #: platform/osx/export/export.cpp -#, fuzzy msgid "Could not open icon file \"%s\"." -msgstr "No se pudieron exportar los archivos del proyecto" +msgstr "No se ha podido abrir el archivo de icono \"%s\"." #: platform/osx/export/export.cpp -#, fuzzy msgid "Could not start xcrun executable." -msgstr "¡No se pudo comenzar el subproceso!" +msgstr "No se ha podido iniciar el ejecutable xcrun." #: platform/osx/export/export.cpp -#, fuzzy msgid "Notarization failed." -msgstr "Traducciones" +msgstr "La notarización ha fallado." #: platform/osx/export/export.cpp msgid "Notarization request UUID: \"%s\"" @@ -20013,9 +19948,8 @@ msgid "No identity found." msgstr "No se encontró identidad." #: platform/osx/export/export.cpp -#, fuzzy msgid "Cannot sign file %s." -msgstr "Error guardando el archivo: %s" +msgstr "No se puede firmar el archivo %s." #: platform/osx/export/export.cpp #, fuzzy @@ -20030,9 +19964,8 @@ msgid "DMG Creation" msgstr "Direcciones" #: platform/osx/export/export.cpp -#, fuzzy msgid "Could not start hdiutil executable." -msgstr "¡No se pudo comenzar el subproceso!" +msgstr "No se ha podido iniciar el ejecutable hdiutil." #: platform/osx/export/export.cpp msgid "`hdiutil create` failed - file exists." @@ -20047,14 +19980,13 @@ msgid "Creating app bundle" msgstr "Crear paquete de aplicaciones" #: platform/osx/export/export.cpp -#, fuzzy msgid "Could not find template app to export: \"%s\"." -msgstr "No se pudo encontrar la aplicación de plantilla para exportar:" +msgstr "" +"No se ha podido encontrar la plantilla de la aplicación a exportar: \"%s\"." #: platform/osx/export/export.cpp -#, fuzzy msgid "Invalid export format." -msgstr "Plantilla de exportación inválida:" +msgstr "Formato de exportación inválido." #: platform/osx/export/export.cpp msgid "" @@ -20119,9 +20051,8 @@ msgid "ZIP Creation" msgstr "Proyecto" #: platform/osx/export/export.cpp -#, fuzzy msgid "Could not open file to read from path \"%s\"." -msgstr "No se pueden exportar los archivos del proyecto a un proyecto gradle\n" +msgstr "No se pudo abrir el archivo a leer de la ruta \"%s\"." #: platform/osx/export/export.cpp msgid "Invalid bundle identifier:" @@ -20477,9 +20408,8 @@ msgid "Debug Algorithm" msgstr "Depurador" #: platform/windows/export/export.cpp -#, fuzzy msgid "Failed to rename temporary file \"%s\"." -msgstr "No se puede eliminar el archivo temporal:" +msgstr "Fallo al renombrar el archivo temporal \"%s\"." #: platform/windows/export/export.cpp msgid "Identity Type" @@ -20567,9 +20497,8 @@ msgid "Could not find osslsigncode executable at \"%s\"." msgstr "No se pudo encontrar la keystore, no se puedo exportar." #: platform/windows/export/export.cpp -#, fuzzy msgid "Invalid identity type." -msgstr "Identificador inválido:" +msgstr "Tipo de identificador inválido." #: platform/windows/export/export.cpp #, fuzzy @@ -20593,9 +20522,8 @@ msgid "" msgstr "" #: platform/windows/export/export.cpp -#, fuzzy msgid "Failed to remove temporary file \"%s\"." -msgstr "No se puede eliminar el archivo temporal:" +msgstr "No se ha podido eliminar el archivo temporal \"%s\"." #: platform/windows/export/export.cpp msgid "" @@ -23894,9 +23822,8 @@ msgid "Cast Shadow" msgstr "Sombra Proyectada" #: scene/3d/visual_instance.cpp -#, fuzzy msgid "Extra Cull Margin" -msgstr "Argumentos extras de llamada:" +msgstr "Margen de Sacrificio Extra" #: scene/3d/visual_instance.cpp #, fuzzy @@ -23987,9 +23914,8 @@ msgid "Delay" msgstr "" #: scene/animation/animation_blend_tree.cpp -#, fuzzy msgid "Random Delay" -msgstr "Inclinación al azar:" +msgstr "Retraso Aleatorio" #: scene/animation/animation_blend_tree.cpp #, fuzzy @@ -24474,9 +24400,8 @@ msgid "Right Disconnects" msgstr "Desconectar" #: scene/gui/graph_edit.cpp -#, fuzzy msgid "Scroll Offset" -msgstr "Desplazamiento de CuadrÃcula:" +msgstr "Desplazamiento de Scroll" #: scene/gui/graph_edit.cpp msgid "Snap Distance" @@ -26324,12 +26249,11 @@ msgstr "Fuente Principal" #: scene/resources/default_theme/default_theme.cpp #, fuzzy msgid "Table H Separation" -msgstr "Separación:" +msgstr "Separación de Tabla H" #: scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Table V Separation" -msgstr "Separación:" +msgstr "Separación de Tabla V" #: scene/resources/default_theme/default_theme.cpp msgid "Margin Left" @@ -26588,9 +26512,8 @@ msgid "Max Steps" msgstr "Paso" #: scene/resources/environment.cpp -#, fuzzy msgid "Fade In" -msgstr "Fundido de entrada (s):" +msgstr "Fundido de Entrada" #: scene/resources/environment.cpp msgid "Fade Out" @@ -26732,9 +26655,8 @@ msgid "Color Correction" msgstr "Corrección del Color" #: scene/resources/font.cpp -#, fuzzy msgid "Ascent" -msgstr "Recientes:" +msgstr "Aumento" #: scene/resources/font.cpp #, fuzzy @@ -26747,9 +26669,8 @@ msgid "Raw Data" msgstr "Profundidad" #: scene/resources/gradient.cpp -#, fuzzy msgid "Offsets" -msgstr "Offset:" +msgstr "Desplazamientos" #: scene/resources/height_map_shape.cpp msgid "Map Width" @@ -27067,9 +26988,8 @@ msgid "Visible Instance Count" msgstr "" #: scene/resources/navigation_mesh.cpp -#, fuzzy msgid "Sampling" -msgstr "Escalado: " +msgstr "Muestreo" #: scene/resources/navigation_mesh.cpp #, fuzzy @@ -27677,9 +27597,8 @@ msgstr "" #: servers/audio/effects/audio_effect_chorus.cpp #: servers/audio/effects/audio_effect_delay.cpp #: servers/audio/effects/audio_effect_panner.cpp -#, fuzzy msgid "Pan" -msgstr "Plano:" +msgstr "Pan" #: servers/audio/effects/audio_effect_compressor.cpp #: servers/audio/effects/audio_effect_filter.cpp @@ -28297,7 +28216,7 @@ msgstr "Ver Eliminación de Oclusión" #: servers/visual_server.cpp msgid "Max Active Spheres" -msgstr "" +msgstr "Esferas Activas Máximas" #: servers/visual_server.cpp msgid "Max Active Polygons" diff --git a/editor/translations/es_AR.po b/editor/translations/es_AR.po index 2d5420e663..c79bf0828f 100644 --- a/editor/translations/es_AR.po +++ b/editor/translations/es_AR.po @@ -671,6 +671,11 @@ msgid "Main Run Args" msgstr "Argumentos de Escena Principal:" #: core/project_settings.cpp +#, fuzzy +msgid "Scene Naming" +msgstr "Ruta a la Escena:" + +#: core/project_settings.cpp msgid "Search In File Extensions" msgstr "Buscar En Extensiones de Archivos" @@ -678,18 +683,15 @@ msgstr "Buscar En Extensiones de Archivos" msgid "Script Templates Search Path" msgstr "Ruta de Búsqueda de Plantillas de Scripts" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" -msgstr "Control de Versiones" - #: core/project_settings.cpp -msgid "Autoload On Startup" -msgstr "" +#, fuzzy +msgid "Version Control Autoload On Startup" +msgstr "Sistema de Control de Versiones" #: core/project_settings.cpp -msgid "Plugin Name" -msgstr "Nombre del Plugin" +#, fuzzy +msgid "Version Control Plugin Name" +msgstr "Control de Versiones" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -2816,7 +2818,7 @@ msgstr "Copiar Ruta del Nodo" #: editor/editor_export.cpp #, fuzzy -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "El Paquete se instaló exitosamente!" #: editor/editor_export.cpp @@ -4360,15 +4362,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "Escena" - -#: editor/editor_node.cpp -#, fuzzy -msgid "Scene Naming" -msgstr "Ruta a la Escena:" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp #, fuzzy @@ -4497,6 +4490,10 @@ msgid "Default Color Picker Mode" msgstr "" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "Control de Versiones" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Username" msgstr "Nombre de usuario" @@ -4524,6 +4521,10 @@ msgstr "Act./Desact. modo sin distracciones." msgid "Add a new scene." msgstr "Agregar nueva escena." +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "Escena" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "Ir a la escena abierta previamente." diff --git a/editor/translations/et.po b/editor/translations/et.po index 05cf7b9e4d..ca2105aa20 100644 --- a/editor/translations/et.po +++ b/editor/translations/et.po @@ -669,6 +669,11 @@ msgid "Main Run Args" msgstr "" #: core/project_settings.cpp +#, fuzzy +msgid "Scene Naming" +msgstr "Stseeni tee:" + +#: core/project_settings.cpp msgid "Search In File Extensions" msgstr "" @@ -676,19 +681,13 @@ msgstr "" msgid "Script Templates Search Path" msgstr "" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" -msgstr "" - #: core/project_settings.cpp -msgid "Autoload On Startup" +msgid "Version Control Autoload On Startup" msgstr "" #: core/project_settings.cpp -#, fuzzy -msgid "Plugin Name" -msgstr "Pistikprogrammi nimi:" +msgid "Version Control Plugin Name" +msgstr "" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -2784,7 +2783,7 @@ msgid "Completed with errors." msgstr "Kopeeri sõlme tee" #: editor/editor_export.cpp -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "" #: editor/editor_export.cpp @@ -4265,15 +4264,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "Stseen" - -#: editor/editor_node.cpp -#, fuzzy -msgid "Scene Naming" -msgstr "Stseeni tee:" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp #, fuzzy @@ -4399,6 +4389,10 @@ msgid "Default Color Picker Mode" msgstr "" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Username" msgstr "Nimeta ümber" @@ -4427,6 +4421,10 @@ msgstr "" msgid "Add a new scene." msgstr "Lisa uus stseen." +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "Stseen" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "" diff --git a/editor/translations/eu.po b/editor/translations/eu.po index 1ea606fe3c..cfbf2945ff 100644 --- a/editor/translations/eu.po +++ b/editor/translations/eu.po @@ -639,6 +639,11 @@ msgid "Main Run Args" msgstr "" #: core/project_settings.cpp +#, fuzzy +msgid "Scene Naming" +msgstr "Eszenaren bidea:" + +#: core/project_settings.cpp msgid "Search In File Extensions" msgstr "" @@ -646,18 +651,15 @@ msgstr "" msgid "Script Templates Search Path" msgstr "" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" -msgstr "Bertsio kontrola" - #: core/project_settings.cpp -msgid "Autoload On Startup" -msgstr "" +#, fuzzy +msgid "Version Control Autoload On Startup" +msgstr "Bertsio kontrola" #: core/project_settings.cpp -msgid "Plugin Name" -msgstr "" +#, fuzzy +msgid "Version Control Plugin Name" +msgstr "Bertsio kontrola" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -2749,7 +2751,7 @@ msgstr "" #: editor/editor_export.cpp #, fuzzy -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "Paketea ondo instalatu da!" #: editor/editor_export.cpp @@ -4186,15 +4188,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "" - -#: editor/editor_node.cpp -#, fuzzy -msgid "Scene Naming" -msgstr "Eszenaren bidea:" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp msgid "Interface" @@ -4315,6 +4308,10 @@ msgid "Default Color Picker Mode" msgstr "" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "Bertsio kontrola" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Username" msgstr "" @@ -4342,6 +4339,10 @@ msgstr "" msgid "Add a new scene." msgstr "" +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "" diff --git a/editor/translations/fa.po b/editor/translations/fa.po index 4c2b858131..43d79c6ede 100644 --- a/editor/translations/fa.po +++ b/editor/translations/fa.po @@ -701,6 +701,10 @@ msgid "Main Run Args" msgstr "" #: core/project_settings.cpp +msgid "Scene Naming" +msgstr "" + +#: core/project_settings.cpp msgid "Search In File Extensions" msgstr "" @@ -708,19 +712,15 @@ msgstr "" msgid "Script Templates Search Path" msgstr "" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" -msgstr "مهار نسخه" - #: core/project_settings.cpp -msgid "Autoload On Startup" -msgstr "" +#, fuzzy +msgid "Version Control Autoload On Startup" +msgstr "مهار نسخه" #: core/project_settings.cpp #, fuzzy -msgid "Plugin Name" -msgstr "Ø§ÙØ²ÙˆÙ†Ù‡â€ŒÙ‡Ø§" +msgid "Version Control Plugin Name" +msgstr "مهار نسخه" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -2834,7 +2834,7 @@ msgstr "Ú©Ù¾ÛŒ کردن مسیر node" #: editor/editor_export.cpp #, fuzzy -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "بسته با موÙقیت نصب شد!" #: editor/editor_export.cpp @@ -4295,14 +4295,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "صØÙ†Ù‡" - -#: editor/editor_node.cpp -msgid "Scene Naming" -msgstr "" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp #, fuzzy @@ -4430,6 +4422,10 @@ msgid "Default Color Picker Mode" msgstr "" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "مهار نسخه" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Username" msgstr "تغییر نام" @@ -4458,6 +4454,10 @@ msgstr "" msgid "Add a new scene." msgstr "Ø§ÙØ²ÙˆØ¯Ù† صØÙ†Ù‡ جدید." +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "صØÙ†Ù‡" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "" diff --git a/editor/translations/fi.po b/editor/translations/fi.po index c921bfdb62..7c69731934 100644 --- a/editor/translations/fi.po +++ b/editor/translations/fi.po @@ -703,6 +703,11 @@ msgid "Main Run Args" msgstr "Pääkohtauksen argumentit:" #: core/project_settings.cpp +#, fuzzy +msgid "Scene Naming" +msgstr "Kohtauspolku:" + +#: core/project_settings.cpp msgid "Search In File Extensions" msgstr "" @@ -710,19 +715,15 @@ msgstr "" msgid "Script Templates Search Path" msgstr "" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" -msgstr "Versionhallinta" - #: core/project_settings.cpp -msgid "Autoload On Startup" -msgstr "" +#, fuzzy +msgid "Version Control Autoload On Startup" +msgstr "Versionhallintajärjestelmä" #: core/project_settings.cpp #, fuzzy -msgid "Plugin Name" -msgstr "Liitännäisen nimi:" +msgid "Version Control Plugin Name" +msgstr "Versionhallinta" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -2858,7 +2859,7 @@ msgstr "Kopioi solmun polku" #: editor/editor_export.cpp #, fuzzy -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "Paketti asennettu onnistuneesti!" #: editor/editor_export.cpp @@ -4390,15 +4391,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "Kohtaus" - -#: editor/editor_node.cpp -#, fuzzy -msgid "Scene Naming" -msgstr "Kohtauspolku:" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp #, fuzzy @@ -4527,6 +4519,10 @@ msgid "Default Color Picker Mode" msgstr "" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "Versionhallinta" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Username" msgstr "Käyttäjänimi" @@ -4554,6 +4550,10 @@ msgstr "Käytä häiriötöntä tilaa." msgid "Add a new scene." msgstr "Lisää uusi kohtaus." +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "Kohtaus" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "Siirry aiemmin avattuun kohtaukseen." diff --git a/editor/translations/fil.po b/editor/translations/fil.po index 88bb60f942..19cb3febb0 100644 --- a/editor/translations/fil.po +++ b/editor/translations/fil.po @@ -630,6 +630,10 @@ msgid "Main Run Args" msgstr "Pangunahing Args sa Pagtakbo" #: core/project_settings.cpp +msgid "Scene Naming" +msgstr "" + +#: core/project_settings.cpp msgid "Search In File Extensions" msgstr "Maghanap sa mga File Extension" @@ -637,18 +641,15 @@ msgstr "Maghanap sa mga File Extension" msgid "Script Templates Search Path" msgstr "Path ng mga Hahanaping Script Template" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" -msgstr "Version Control" - #: core/project_settings.cpp -msgid "Autoload On Startup" +#, fuzzy +msgid "Version Control Autoload On Startup" msgstr "Kusang i-load sa Simula" #: core/project_settings.cpp -msgid "Plugin Name" -msgstr "Pangalan ng Plugin" +#, fuzzy +msgid "Version Control Plugin Name" +msgstr "Version Control" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -2705,7 +2706,7 @@ msgid "Completed with errors." msgstr "" #: editor/editor_export.cpp -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "" #: editor/editor_export.cpp @@ -4122,14 +4123,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "" - -#: editor/editor_node.cpp -msgid "Scene Naming" -msgstr "" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp msgid "Interface" @@ -4247,6 +4240,10 @@ msgid "Default Color Picker Mode" msgstr "" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "Version Control" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Username" msgstr "" @@ -4274,6 +4271,10 @@ msgstr "" msgid "Add a new scene." msgstr "" +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "" diff --git a/editor/translations/fr.po b/editor/translations/fr.po index 056d03af56..6b077ba5e4 100644 --- a/editor/translations/fr.po +++ b/editor/translations/fr.po @@ -734,6 +734,11 @@ msgid "Main Run Args" msgstr "Arguments de la scène principale :" #: core/project_settings.cpp +#, fuzzy +msgid "Scene Naming" +msgstr "Chemin de la scène :" + +#: core/project_settings.cpp msgid "Search In File Extensions" msgstr "" @@ -741,18 +746,15 @@ msgstr "" msgid "Script Templates Search Path" msgstr "" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" -msgstr "Contrôle de version" - #: core/project_settings.cpp -msgid "Autoload On Startup" -msgstr "" +#, fuzzy +msgid "Version Control Autoload On Startup" +msgstr "Système de contrôle de version" #: core/project_settings.cpp -msgid "Plugin Name" -msgstr "Nom du Plugin" +#, fuzzy +msgid "Version Control Plugin Name" +msgstr "Contrôle de version" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -2883,7 +2885,7 @@ msgstr "Copier le chemin du nÅ“ud" #: editor/editor_export.cpp #, fuzzy -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "Paquetage installé avec succès !" #: editor/editor_export.cpp @@ -4422,15 +4424,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "Scène" - -#: editor/editor_node.cpp -#, fuzzy -msgid "Scene Naming" -msgstr "Chemin de la scène :" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp msgid "Interface" @@ -4558,6 +4551,10 @@ msgid "Default Color Picker Mode" msgstr "" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "Contrôle de version" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Username" msgstr "Nom d'utilisateur" @@ -4585,6 +4582,10 @@ msgstr "Basculer en mode sans distraction." msgid "Add a new scene." msgstr "Ajouter une nouvelle scène." +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "Scène" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "Aller à la scène ouverte précédemment." diff --git a/editor/translations/ga.po b/editor/translations/ga.po index 7d8a3f9826..884214d851 100644 --- a/editor/translations/ga.po +++ b/editor/translations/ga.po @@ -636,24 +636,23 @@ msgid "Main Run Args" msgstr "" #: core/project_settings.cpp -msgid "Search In File Extensions" +msgid "Scene Naming" msgstr "" #: core/project_settings.cpp -msgid "Script Templates Search Path" +msgid "Search In File Extensions" msgstr "" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" +#: core/project_settings.cpp +msgid "Script Templates Search Path" msgstr "" #: core/project_settings.cpp -msgid "Autoload On Startup" +msgid "Version Control Autoload On Startup" msgstr "" #: core/project_settings.cpp -msgid "Plugin Name" +msgid "Version Control Plugin Name" msgstr "" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp @@ -2715,7 +2714,7 @@ msgid "Completed with errors." msgstr "" #: editor/editor_export.cpp -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "" #: editor/editor_export.cpp @@ -4126,14 +4125,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "" - -#: editor/editor_node.cpp -msgid "Scene Naming" -msgstr "" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp msgid "Interface" @@ -4250,6 +4241,10 @@ msgid "Default Color Picker Mode" msgstr "" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Username" msgstr "Ainm nua:" @@ -4278,6 +4273,10 @@ msgstr "" msgid "Add a new scene." msgstr "" +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "" diff --git a/editor/translations/gl.po b/editor/translations/gl.po index 991f3be41a..398746ea6a 100644 --- a/editor/translations/gl.po +++ b/editor/translations/gl.po @@ -686,6 +686,11 @@ msgid "Main Run Args" msgstr "" #: core/project_settings.cpp +#, fuzzy +msgid "Scene Naming" +msgstr "Ruta da Escena:" + +#: core/project_settings.cpp msgid "Search In File Extensions" msgstr "" @@ -693,19 +698,15 @@ msgstr "" msgid "Script Templates Search Path" msgstr "" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" -msgstr "Control de Versións" - #: core/project_settings.cpp -msgid "Autoload On Startup" -msgstr "" +#, fuzzy +msgid "Version Control Autoload On Startup" +msgstr "Control de Versións" #: core/project_settings.cpp #, fuzzy -msgid "Plugin Name" -msgstr "Nome do Plugin:" +msgid "Version Control Plugin Name" +msgstr "Control de Versións" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -2845,7 +2846,7 @@ msgstr "Copiar Ruta do Nodo" #: editor/editor_export.cpp #, fuzzy -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "Paquete instalado correctamente!" #: editor/editor_export.cpp @@ -4387,15 +4388,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "Escena" - -#: editor/editor_node.cpp -#, fuzzy -msgid "Scene Naming" -msgstr "Ruta da Escena:" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp msgid "Interface" @@ -4521,6 +4513,10 @@ msgid "Default Color Picker Mode" msgstr "" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "Control de Versións" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Username" msgstr "Renomear" @@ -4549,6 +4545,10 @@ msgstr "Act./Desact. modo sen distraccións." msgid "Add a new scene." msgstr "Engadir unha nova escena." +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "Escena" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "Ir á escena aberta previamente." diff --git a/editor/translations/he.po b/editor/translations/he.po index 48fb256d23..78c74fd01b 100644 --- a/editor/translations/he.po +++ b/editor/translations/he.po @@ -675,6 +675,11 @@ msgid "Main Run Args" msgstr "" #: core/project_settings.cpp +#, fuzzy +msgid "Scene Naming" +msgstr "× ×ª×™×‘ ×¡×¦× ×•×ª:" + +#: core/project_settings.cpp msgid "Search In File Extensions" msgstr "" @@ -682,19 +687,15 @@ msgstr "" msgid "Script Templates Search Path" msgstr "" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" -msgstr "בקרת גירס×ות" - #: core/project_settings.cpp -msgid "Autoload On Startup" -msgstr "" +#, fuzzy +msgid "Version Control Autoload On Startup" +msgstr "בקרת גירס×ות" #: core/project_settings.cpp #, fuzzy -msgid "Plugin Name" -msgstr "×©× ×”×ž×¤×¨×§:" +msgid "Version Control Plugin Name" +msgstr "בקרת גירס×ות" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -2801,7 +2802,7 @@ msgstr "העתקת × ×ª×™×‘ המפרק" #: editor/editor_export.cpp #, fuzzy -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "החבילה ×”×•×ª×§× ×” בהצלחה!" #: editor/editor_export.cpp @@ -4299,15 +4300,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "×¡×¦× ×”" - -#: editor/editor_node.cpp -#, fuzzy -msgid "Scene Naming" -msgstr "× ×ª×™×‘ ×¡×¦× ×•×ª:" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp #, fuzzy @@ -4435,6 +4427,10 @@ msgid "Default Color Picker Mode" msgstr "" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "בקרת גירס×ות" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Username" msgstr "×©×™× ×•×™ ש×" @@ -4463,6 +4459,10 @@ msgstr "הפעל/בטל מצב ×œ×œ× ×”×¡×—×•×ª דעת." msgid "Add a new scene." msgstr "הוספת ×¡×¦× ×” חדשה." +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "×¡×¦× ×”" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "מעבר ×œ×¡×¦× ×” הקודמת." diff --git a/editor/translations/hi.po b/editor/translations/hi.po index 0d90bddc82..2486887cac 100644 --- a/editor/translations/hi.po +++ b/editor/translations/hi.po @@ -658,6 +658,11 @@ msgid "Main Run Args" msgstr "" #: core/project_settings.cpp +#, fuzzy +msgid "Scene Naming" +msgstr "दृशà¥à¤¯ पथ:" + +#: core/project_settings.cpp msgid "Search In File Extensions" msgstr "" @@ -665,19 +670,15 @@ msgstr "" msgid "Script Templates Search Path" msgstr "" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" -msgstr "वरà¥à¤œà¤¨ कंटà¥à¤°à¥‹à¤²" - #: core/project_settings.cpp -msgid "Autoload On Startup" -msgstr "" +#, fuzzy +msgid "Version Control Autoload On Startup" +msgstr "वरà¥à¤œà¤¨ कंटà¥à¤°à¥‹à¤²" #: core/project_settings.cpp #, fuzzy -msgid "Plugin Name" -msgstr "पà¥à¤²à¤—इनà¥à¤¸" +msgid "Version Control Plugin Name" +msgstr "वरà¥à¤œà¤¨ कंटà¥à¤°à¥‹à¤²" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -2798,7 +2799,7 @@ msgstr "" #: editor/editor_export.cpp #, fuzzy -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "पैकेज सफलतापूरà¥à¤µà¤• सà¥à¤¥à¤¾à¤ªà¤¿à¤¤!" #: editor/editor_export.cpp @@ -4305,15 +4306,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "दृशà¥à¤¯" - -#: editor/editor_node.cpp -#, fuzzy -msgid "Scene Naming" -msgstr "दृशà¥à¤¯ पथ:" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp msgid "Interface" @@ -4438,6 +4430,10 @@ msgid "Default Color Picker Mode" msgstr "" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "वरà¥à¤œà¤¨ कंटà¥à¤°à¥‹à¤²" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Username" msgstr "नाम बदली" @@ -4466,6 +4462,10 @@ msgstr "वà¥à¤¯à¤¾à¤•à¥à¤²à¤¤à¤¾ मà¥à¤•à¥à¤¤ मोड टॉगल।" msgid "Add a new scene." msgstr "à¤à¤• नया दृशà¥à¤¯ जोड़ें।" +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "दृशà¥à¤¯" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "पहले खोले गठदृशà¥à¤¯ में जाà¤à¤‚।" diff --git a/editor/translations/hr.po b/editor/translations/hr.po index 1c7dca2872..c9a87722f5 100644 --- a/editor/translations/hr.po +++ b/editor/translations/hr.po @@ -654,26 +654,24 @@ msgid "Main Run Args" msgstr "" #: core/project_settings.cpp -msgid "Search In File Extensions" +msgid "Scene Naming" msgstr "" #: core/project_settings.cpp -msgid "Script Templates Search Path" +msgid "Search In File Extensions" msgstr "" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" +#: core/project_settings.cpp +msgid "Script Templates Search Path" msgstr "" #: core/project_settings.cpp -msgid "Autoload On Startup" +msgid "Version Control Autoload On Startup" msgstr "" #: core/project_settings.cpp -#, fuzzy -msgid "Plugin Name" -msgstr "Naziv ÄŒvora(node):" +msgid "Version Control Plugin Name" +msgstr "" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -2762,7 +2760,7 @@ msgstr "" #: editor/editor_export.cpp #, fuzzy -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "Paket uspjeÅ¡no instaliran!" #: editor/editor_export.cpp @@ -4192,14 +4190,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "" - -#: editor/editor_node.cpp -msgid "Scene Naming" -msgstr "" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp msgid "Interface" @@ -4320,6 +4310,10 @@ msgid "Default Color Picker Mode" msgstr "" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Username" msgstr "Preimenuj zvuÄnu sabirnicu" @@ -4348,6 +4342,10 @@ msgstr "" msgid "Add a new scene." msgstr "" +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "" diff --git a/editor/translations/hu.po b/editor/translations/hu.po index ac0a5d2667..5ee85051da 100644 --- a/editor/translations/hu.po +++ b/editor/translations/hu.po @@ -23,13 +23,14 @@ # balintmaci <balintmaci@gmail.com>, 2021. # Balázs Püspök-Kiss <pkblazsak@gmail.com>, 2021. # Mr.Catfood <sipos22@msn.com>, 2022. +# 6Leoo6 <leo.takacs@yahoo.com>, 2022. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-06-03 02:51+0000\n" -"Last-Translator: Mr.Catfood <sipos22@msn.com>\n" +"PO-Revision-Date: 2022-06-19 11:52+0000\n" +"Last-Translator: 6Leoo6 <leo.takacs@yahoo.com>\n" "Language-Team: Hungarian <https://hosted.weblate.org/projects/godot-engine/" "godot/hu/>\n" "Language: hu\n" @@ -37,7 +38,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.13-dev\n" +"X-Generator: Weblate 4.13.1-dev\n" #: core/bind/core_bind.cpp main/main.cpp msgid "Tablet Driver" @@ -366,7 +367,7 @@ msgstr "Érvénytelen bemenet %i (nem átadott) a kifejezésben" #: core/math/expression.cpp msgid "self can't be used because instance is null (not passed)" -msgstr "self nem használható, mert a példány null (nincs átadva)" +msgstr "Nem használható self mivel nincs megadva" #: core/math/expression.cpp msgid "Invalid operands to operator %s, %s and %s." @@ -452,9 +453,8 @@ msgid "Pressed" msgstr "ElÅ‘re beállÃtott" #: core/os/input_event.cpp -#, fuzzy msgid "Scancode" -msgstr "Keresés" +msgstr "beolvasási kód" #: core/os/input_event.cpp msgid "Physical Scancode" @@ -462,7 +462,7 @@ msgstr "" #: core/os/input_event.cpp msgid "Unicode" -msgstr "" +msgstr "Unicode" #: core/os/input_event.cpp msgid "Echo" @@ -706,6 +706,11 @@ msgid "Main Run Args" msgstr "FÅ‘ Jelenet Argumentumok:" #: core/project_settings.cpp +#, fuzzy +msgid "Scene Naming" +msgstr "Scene elérési Út:" + +#: core/project_settings.cpp msgid "Search In File Extensions" msgstr "" @@ -713,19 +718,15 @@ msgstr "" msgid "Script Templates Search Path" msgstr "" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" -msgstr "Verziókezelés" - #: core/project_settings.cpp -msgid "Autoload On Startup" -msgstr "" +#, fuzzy +msgid "Version Control Autoload On Startup" +msgstr "Verziókezelés" #: core/project_settings.cpp #, fuzzy -msgid "Plugin Name" -msgstr "BÅ‘vÃtmény neve:" +msgid "Version Control Plugin Name" +msgstr "Verziókezelés" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -2165,7 +2166,7 @@ msgstr "Biztosan eltávolÃtja az összes kapcsolatot a(z) \"%s\" jelzésrÅ‘l?" #: editor/connections_dialog.cpp editor/editor_help.cpp editor/node_dock.cpp msgid "Signals" -msgstr "Jelzések" +msgstr "jelek" #: editor/connections_dialog.cpp msgid "Filter signals" @@ -2866,7 +2867,7 @@ msgstr "Node Útvonal Másolása" #: editor/editor_export.cpp #, fuzzy -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "A csomag telepÃtése sikeres volt!" #: editor/editor_export.cpp @@ -4417,15 +4418,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "Jelenet" - -#: editor/editor_node.cpp -#, fuzzy -msgid "Scene Naming" -msgstr "Scene elérési Út:" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp #, fuzzy @@ -4552,6 +4544,10 @@ msgid "Default Color Picker Mode" msgstr "" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "Verziókezelés" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Username" msgstr "Ãtnevezés" @@ -4580,6 +4576,10 @@ msgstr "Zavarmentes mód váltása." msgid "Add a new scene." msgstr "Hozzáad egy új jelenetet." +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "Jelenet" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "Ugrás az elÅ‘zÅ‘leg megnyitott jelenetre." @@ -5898,7 +5898,7 @@ msgstr "Pont" #: scene/resources/particles_material.cpp servers/physics_2d_server.cpp #: servers/physics_server.cpp msgid "Shape" -msgstr "" +msgstr "Alakzat" #: editor/editor_settings.cpp #, fuzzy @@ -7157,7 +7157,7 @@ msgstr "" #: editor/import/resource_importer_layered_texture.cpp #: editor/import/resource_importer_texture.cpp msgid "sRGB" -msgstr "" +msgstr "sRGB" #: editor/import/resource_importer_layered_texture.cpp #, fuzzy @@ -13339,7 +13339,7 @@ msgstr "" #: editor/plugins/version_control_editor_plugin.cpp msgid "SSH Passphrase" -msgstr "" +msgstr "SSH Passphrase" #: editor/plugins/version_control_editor_plugin.cpp msgid "Detect new changes" @@ -16787,9 +16787,8 @@ msgstr "" #: modules/csg/csg_shape.cpp scene/2d/collision_polygon_2d.cpp #: scene/2d/light_occluder_2d.cpp scene/2d/polygon_2d.cpp #: scene/3d/collision_polygon.cpp -#, fuzzy msgid "Polygon" -msgstr "Sokszögek" +msgstr "Sokszög" #: modules/csg/csg_shape.cpp msgid "Spin Degrees" @@ -18222,7 +18221,7 @@ msgstr "" #: modules/visual_script/visual_script_flow_control.cpp msgid "While" -msgstr "" +msgstr "AmÃg" #: modules/visual_script/visual_script_flow_control.cpp msgid "while (cond):" @@ -18551,7 +18550,7 @@ msgstr "" #: modules/visual_script/visual_script_yield_nodes.cpp msgid "Yield" -msgstr "" +msgstr "hozam" #: modules/visual_script/visual_script_yield_nodes.cpp msgid "Wait" diff --git a/editor/translations/id.po b/editor/translations/id.po index c16217217b..4788d2a7c2 100644 --- a/editor/translations/id.po +++ b/editor/translations/id.po @@ -666,6 +666,10 @@ msgid "Main Run Args" msgstr "Jalan Utama Argumen" #: core/project_settings.cpp +msgid "Scene Naming" +msgstr "Penamaan Skena" + +#: core/project_settings.cpp msgid "Search In File Extensions" msgstr "Cari dalam Ekstensi File" @@ -673,18 +677,15 @@ msgstr "Cari dalam Ekstensi File" msgid "Script Templates Search Path" msgstr "Jalur Pencarian Template Skrip" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" -msgstr "Kontrol Versi" - #: core/project_settings.cpp -msgid "Autoload On Startup" +#, fuzzy +msgid "Version Control Autoload On Startup" msgstr "Muat Otomatis Saat Memulai" #: core/project_settings.cpp -msgid "Plugin Name" -msgstr "Nama Plugin" +#, fuzzy +msgid "Version Control Plugin Name" +msgstr "Kontrol Versi" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -2797,7 +2798,7 @@ msgstr "Salin Lokasi Node" #: editor/editor_export.cpp #, fuzzy -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "Paket Sukses Terpasang!" #: editor/editor_export.cpp @@ -4330,14 +4331,6 @@ msgstr "" "Tidak dapat menulis ke file '%s', file sedang digunakan, terkunci atau tidak " "memiliki izin." -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "Scene" - -#: editor/editor_node.cpp -msgid "Scene Naming" -msgstr "Penamaan Skena" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp #, fuzzy @@ -4466,6 +4459,10 @@ msgid "Default Color Picker Mode" msgstr "" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "Kontrol Versi" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Username" msgstr "Ubah Nama" @@ -4494,6 +4491,10 @@ msgstr "Toggle mode tanpa gangguan." msgid "Add a new scene." msgstr "Tambah skena baru." +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "Scene" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "Pergi ke skena yang sebelumnya dibuka." diff --git a/editor/translations/is.po b/editor/translations/is.po index 9119f1fc50..ea3301ce7f 100644 --- a/editor/translations/is.po +++ b/editor/translations/is.po @@ -647,24 +647,23 @@ msgid "Main Run Args" msgstr "" #: core/project_settings.cpp -msgid "Search In File Extensions" +msgid "Scene Naming" msgstr "" #: core/project_settings.cpp -msgid "Script Templates Search Path" +msgid "Search In File Extensions" msgstr "" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" +#: core/project_settings.cpp +msgid "Script Templates Search Path" msgstr "" #: core/project_settings.cpp -msgid "Autoload On Startup" +msgid "Version Control Autoload On Startup" msgstr "" #: core/project_settings.cpp -msgid "Plugin Name" +msgid "Version Control Plugin Name" msgstr "" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp @@ -2763,7 +2762,7 @@ msgid "Completed with errors." msgstr "" #: editor/editor_export.cpp -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "" #: editor/editor_export.cpp @@ -4187,14 +4186,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "" - -#: editor/editor_node.cpp -msgid "Scene Naming" -msgstr "" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp msgid "Interface" @@ -4315,6 +4306,10 @@ msgid "Default Color Picker Mode" msgstr "" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Username" msgstr "Endurnefning Anim track" @@ -4343,6 +4338,10 @@ msgstr "" msgid "Add a new scene." msgstr "" +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "" diff --git a/editor/translations/it.po b/editor/translations/it.po index 9406ec6484..c529c06241 100644 --- a/editor/translations/it.po +++ b/editor/translations/it.po @@ -73,7 +73,7 @@ msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-06-16 18:57+0000\n" +"PO-Revision-Date: 2022-06-19 11:52+0000\n" "Last-Translator: Mirko <miknsop@gmail.com>\n" "Language-Team: Italian <https://hosted.weblate.org/projects/godot-engine/" "godot/it/>\n" @@ -82,7 +82,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.13-dev\n" +"X-Generator: Weblate 4.13.1-dev\n" #: core/bind/core_bind.cpp main/main.cpp msgid "Tablet Driver" @@ -693,6 +693,10 @@ msgid "Main Run Args" msgstr "Parametri Principali Eseguiti" #: core/project_settings.cpp +msgid "Scene Naming" +msgstr "Nome Scena" + +#: core/project_settings.cpp msgid "Search In File Extensions" msgstr "Cerca nelle Estensioni dei File" @@ -700,18 +704,15 @@ msgstr "Cerca nelle Estensioni dei File" msgid "Script Templates Search Path" msgstr "Percorso di Ricerca dei Template di Script" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" -msgstr "Controllo della versione" - #: core/project_settings.cpp -msgid "Autoload On Startup" +#, fuzzy +msgid "Version Control Autoload On Startup" msgstr "Autocaricamento all'Avvio" #: core/project_settings.cpp -msgid "Plugin Name" -msgstr "Nome dell'estensione" +#, fuzzy +msgid "Version Control Plugin Name" +msgstr "Controllo della versione" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -2808,23 +2809,24 @@ msgid "Choose" msgstr "Scegli" #: editor/editor_export.cpp +#, fuzzy msgid "Project export for platform:" -msgstr "" +msgstr "Esportazione del progetto per la piattaforma:" #: editor/editor_export.cpp #, fuzzy msgid "Completed with errors." -msgstr "Percorsi Completi dei File" +msgstr "Completato con errori." #: editor/editor_export.cpp #, fuzzy -msgid "Completed sucessfully." -msgstr "Pacchetto installato con successo!" +msgid "Completed successfully." +msgstr "Completato con successo." #: editor/editor_export.cpp #, fuzzy msgid "Failed." -msgstr "Fallito:" +msgstr "Fallito." #: editor/editor_export.cpp msgid "Storing File:" @@ -2841,7 +2843,7 @@ msgstr "Impacchettando" #: editor/editor_export.cpp #, fuzzy msgid "Save PCK" -msgstr "Salva come" +msgstr "Salva PCK" #: editor/editor_export.cpp #, fuzzy @@ -2861,7 +2863,7 @@ msgstr "Impossibile aprire il file in scrittura:" #: editor/editor_export.cpp #, fuzzy msgid "Save ZIP" -msgstr "Salva come" +msgstr "Salva ZIP" #: editor/editor_export.cpp msgid "" @@ -4345,14 +4347,6 @@ msgid "" msgstr "" "Impossibile scrivere sul file '%s', file in uso, bloccato o mancano permessi." -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "Scena" - -#: editor/editor_node.cpp -msgid "Scene Naming" -msgstr "Nome Scena" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp msgid "Interface" @@ -4467,6 +4461,10 @@ msgid "Default Color Picker Mode" msgstr "Modalità di Scelta Colore Predefinita" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "Controllo della versione" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Username" msgstr "Nome Utente" @@ -4494,6 +4492,10 @@ msgstr "Commuta la modalità senza distrazioni." msgid "Add a new scene." msgstr "Aggiungi una nuova scena." +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "Scena" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "Va alla scena precedentemente aperta." @@ -18032,8 +18034,9 @@ msgid "if (cond) is:" msgstr "if (cond) is:" #: modules/visual_script/visual_script_flow_control.cpp +#, fuzzy msgid "While" -msgstr "" +msgstr "While" #: modules/visual_script/visual_script_flow_control.cpp msgid "while (cond):" @@ -18345,8 +18348,9 @@ msgid "Search VisualScript" msgstr "Ricerca VisualScript" #: modules/visual_script/visual_script_yield_nodes.cpp +#, fuzzy msgid "Yield" -msgstr "" +msgstr "Yield" #: modules/visual_script/visual_script_yield_nodes.cpp msgid "Wait" @@ -18371,17 +18375,17 @@ msgstr "Tempo Di Attesa" #: modules/visual_script/visual_script_yield_nodes.cpp #, fuzzy msgid "WaitSignal" -msgstr "Segnale" +msgstr "WaitSignal" #: modules/visual_script/visual_script_yield_nodes.cpp #, fuzzy msgid "WaitNodeSignal" -msgstr "Segnale" +msgstr "WaitNodeSignal" #: modules/visual_script/visual_script_yield_nodes.cpp #, fuzzy msgid "WaitInstanceSignal" -msgstr "Istanza" +msgstr "WaitInstanceSignal" #: modules/webrtc/webrtc_data_channel.cpp #, fuzzy @@ -18921,7 +18925,7 @@ msgstr "Non è stato possibile trovare keystore, impossible esportare." #: platform/android/export/export_plugin.cpp #, fuzzy msgid "Could not start apksigner executable." -msgstr "Impossibile avviare il sottoprocesso!" +msgstr "Non è stato possibile avviare l'eseguibile apksigner." #: platform/android/export/export_plugin.cpp msgid "'apksigner' returned with error #%d" @@ -18954,9 +18958,8 @@ msgid "Invalid filename! Android APK requires the *.apk extension." msgstr "Nome file non valido! L'APK Android richiede l'estensione *.apk." #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Unsupported export format!" -msgstr "Formato d'esportazione non supportato!\n" +msgstr "Formato d'esportazione non supportato!" #: platform/android/export/export_plugin.cpp msgid "" @@ -18973,10 +18976,9 @@ msgid "" "Android build version mismatch: Template installed: %s, Godot version: %s. " "Please reinstall Android build template from 'Project' menu." msgstr "" -"Versione build di Android non coerente:\n" -" Template installato: %s\n" -" Versione Godot: %s\n" -"Per favore, reinstalla il build template di Android dal menu \"Progetto\"." +"Versione build di Android non coerente: Template installato: %s, Versione " +"Godot: %s. Per favore, reinstalla il build template di Android dal menu " +"\"Progetto\"." #: platform/android/export/export_plugin.cpp #, fuzzy @@ -18989,7 +18991,7 @@ msgstr "" #: platform/android/export/export_plugin.cpp #, fuzzy msgid "Could not export project files to gradle project." -msgstr "Impossibile esportare i file del progetto in un progetto gradle\n" +msgstr "Impossibile esportare i file del progetto in un progetto gradle." #: platform/android/export/export_plugin.cpp msgid "Could not write expansion package file!" @@ -19034,9 +19036,7 @@ msgstr "Creazione APK..." #: platform/android/export/export_plugin.cpp #, fuzzy msgid "Could not find template APK to export: \"%s\"." -msgstr "" -"Impossibile trovare il template APK per l'esportazione:\n" -"%s" +msgstr "Impossibile trovare il template APK per l'esportazione: \"%s\"." #: platform/android/export/export_plugin.cpp #, fuzzy @@ -19754,7 +19754,7 @@ msgstr "Impossibile esportare i file del progetto" #: platform/osx/export/export.cpp #, fuzzy msgid "Could not start xcrun executable." -msgstr "Impossibile avviare il sottoprocesso!" +msgstr "Impossibile avviare l'eseguibile xcrun." #: platform/osx/export/export.cpp #, fuzzy @@ -19828,7 +19828,7 @@ msgstr "Direzione" #: platform/osx/export/export.cpp #, fuzzy msgid "Could not start hdiutil executable." -msgstr "Impossibile avviare il sottoprocesso!" +msgstr "Impossibile avviare l'eseguibile hdiutil." #: platform/osx/export/export.cpp msgid "`hdiutil create` failed - file exists." @@ -19909,7 +19909,7 @@ msgstr "Proiezione" #: platform/osx/export/export.cpp #, fuzzy msgid "Could not open file to read from path \"%s\"." -msgstr "Impossibile esportare i file del progetto in un progetto gradle\n" +msgstr "Impossibile aprire il file da leggere dal percorso \"%s\"." #: platform/osx/export/export.cpp msgid "Invalid bundle identifier:" @@ -20226,7 +20226,7 @@ msgstr "UWP" #: platform/uwp/export/export.cpp platform/windows/export/export.cpp #, fuzzy msgid "Signtool" -msgstr "Segnale" +msgstr "Signtool" #: platform/uwp/export/export.cpp msgid "Debug Certificate" @@ -21026,8 +21026,9 @@ msgstr "" #: scene/3d/physics_joint.cpp scene/3d/vehicle_body.cpp #: scene/resources/particles_material.cpp #: servers/audio/effects/audio_effect_reverb.cpp +#, fuzzy msgid "Damping" -msgstr "" +msgstr "Smorzamento" #: scene/2d/cpu_particles_2d.cpp scene/3d/cpu_particles.cpp #: scene/resources/particles_material.cpp @@ -21042,8 +21043,9 @@ msgstr "Dividi Curva" #: scene/2d/cpu_particles_2d.cpp scene/3d/cpu_particles.cpp scene/3d/light.cpp #: scene/resources/particles_material.cpp +#, fuzzy msgid "Angle" -msgstr "" +msgstr "Angolo" #: scene/2d/cpu_particles_2d.cpp scene/3d/cpu_particles.cpp #: scene/resources/particles_material.cpp @@ -21176,8 +21178,9 @@ msgstr "" #: scene/2d/joints_2d.cpp scene/resources/animation.cpp #: scene/resources/ray_shape.cpp scene/resources/segment_shape_2d.cpp +#, fuzzy msgid "Length" -msgstr "" +msgstr "Lunghezza" #: scene/2d/joints_2d.cpp #, fuzzy @@ -21213,8 +21216,9 @@ msgstr "TextureRegion" #: scene/2d/light_2d.cpp scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp #: scene/3d/light.cpp scene/resources/environment.cpp #: scene/resources/material.cpp scene/resources/sky.cpp +#, fuzzy msgid "Energy" -msgstr "" +msgstr "Energia" #: scene/2d/light_2d.cpp msgid "Z Min" @@ -21291,8 +21295,9 @@ msgid "Default Color" msgstr "Predefinito" #: scene/2d/line_2d.cpp scene/resources/texture.cpp +#, fuzzy msgid "Fill" -msgstr "" +msgstr "Riempimento" #: scene/2d/line_2d.cpp scene/resources/texture.cpp #, fuzzy @@ -21343,8 +21348,9 @@ msgid "Antialiased" msgstr "Inizializza" #: scene/2d/multimesh_instance_2d.cpp scene/3d/multimesh_instance.cpp +#, fuzzy msgid "Multimesh" -msgstr "" +msgstr "Multimesh" #: scene/2d/navigation_2d.cpp scene/3d/baked_lightmap.cpp #: scene/3d/navigation.cpp scene/animation/root_motion_view.cpp @@ -21415,8 +21421,9 @@ msgstr "" "poligono." #: scene/2d/navigation_polygon.cpp +#, fuzzy msgid "Navpoly" -msgstr "" +msgstr "Navpoly" #: scene/2d/navigation_polygon.cpp scene/3d/navigation_mesh_instance.cpp #, fuzzy @@ -21630,8 +21637,9 @@ msgstr "" "Modifica invece la dimensione nelle forme di collisione figlie." #: scene/2d/physics_body_2d.cpp scene/3d/physics_body.cpp +#, fuzzy msgid "Mass" -msgstr "" +msgstr "Massa" #: scene/2d/physics_body_2d.cpp #, fuzzy @@ -21682,8 +21690,9 @@ msgid "Damp" msgstr "" #: scene/2d/physics_body_2d.cpp scene/3d/physics_body.cpp +#, fuzzy msgid "Angular" -msgstr "" +msgstr "Angolare" #: scene/2d/physics_body_2d.cpp msgid "Applied Forces" diff --git a/editor/translations/ja.po b/editor/translations/ja.po index c0b37f1509..1ae3c9cf8c 100644 --- a/editor/translations/ja.po +++ b/editor/translations/ja.po @@ -675,6 +675,10 @@ msgid "Main Run Args" msgstr "メインシーンã®å¼•æ•°:" #: core/project_settings.cpp +msgid "Scene Naming" +msgstr "シーンã®å‘½åè¦å‰‡" + +#: core/project_settings.cpp msgid "Search In File Extensions" msgstr "ファイル拡張åã§æ¤œç´¢" @@ -682,18 +686,15 @@ msgstr "ファイル拡張åã§æ¤œç´¢" msgid "Script Templates Search Path" msgstr "ã‚¹ã‚¯ãƒªãƒ—ãƒˆãƒ†ãƒ³ãƒ—ãƒ¬ãƒ¼ãƒˆã®æ¤œç´¢ãƒ‘ス" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" -msgstr "ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚³ãƒ³ãƒˆãƒãƒ¼ãƒ«" - #: core/project_settings.cpp -msgid "Autoload On Startup" +#, fuzzy +msgid "Version Control Autoload On Startup" msgstr "起動時ã®è‡ªå‹•èªã¿è¾¼ã¿" #: core/project_settings.cpp -msgid "Plugin Name" -msgstr "プラグインå" +#, fuzzy +msgid "Version Control Plugin Name" +msgstr "ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚³ãƒ³ãƒˆãƒãƒ¼ãƒ«" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -2815,7 +2816,7 @@ msgstr "ノードã®ãƒ‘スをコピー" #: editor/editor_export.cpp #, fuzzy -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "パッケージã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã«æˆåŠŸã—ã¾ã—ãŸï¼" #: editor/editor_export.cpp @@ -4329,14 +4330,6 @@ msgstr "" "ファイル '%s'ã«æ›¸ãè¾¼ã‚ã¾ã›ã‚“。ファイルãŒä½¿ç”¨ä¸ã‹ã€ãƒãƒƒã‚¯ã•れã¦ã„ã‚‹ã‹ã€æ¨©é™ãŒ" "ã‚りã¾ã›ã‚“。" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "シーン" - -#: editor/editor_node.cpp -msgid "Scene Naming" -msgstr "シーンã®å‘½åè¦å‰‡" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp msgid "Interface" @@ -4456,6 +4449,10 @@ msgid "Default Color Picker Mode" msgstr "デフォルトã®ã‚«ãƒ©ãƒ¼ãƒ”ッカーモード" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚³ãƒ³ãƒˆãƒãƒ¼ãƒ«" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Username" msgstr "ユーザーå" @@ -4483,6 +4480,10 @@ msgstr "集ä¸ãƒ¢ãƒ¼ãƒ‰ã‚’切り替ãˆã‚‹ã€‚" msgid "Add a new scene." msgstr "æ–°è¦ã‚·ãƒ¼ãƒ³ã‚’è¿½åŠ ã™ã‚‹ã€‚" +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "シーン" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "以å‰ã«é–‹ã„ãŸã‚·ãƒ¼ãƒ³ã«ç§»å‹•ã™ã‚‹ã€‚" diff --git a/editor/translations/ka.po b/editor/translations/ka.po index bd99c1497d..34914a67b6 100644 --- a/editor/translations/ka.po +++ b/editor/translations/ka.po @@ -661,24 +661,23 @@ msgid "Main Run Args" msgstr "" #: core/project_settings.cpp -msgid "Search In File Extensions" +msgid "Scene Naming" msgstr "" #: core/project_settings.cpp -msgid "Script Templates Search Path" +msgid "Search In File Extensions" msgstr "" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" +#: core/project_settings.cpp +msgid "Script Templates Search Path" msgstr "" #: core/project_settings.cpp -msgid "Autoload On Startup" +msgid "Version Control Autoload On Startup" msgstr "" #: core/project_settings.cpp -msgid "Plugin Name" +msgid "Version Control Plugin Name" msgstr "" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp @@ -2843,7 +2842,7 @@ msgstr "" #: editor/editor_export.cpp #, fuzzy -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "პáƒáƒ™áƒ”ტი დáƒáƒ§áƒ”ნდრწáƒáƒ მáƒáƒ¢áƒ”ბით!" #: editor/editor_export.cpp @@ -4300,14 +4299,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "" - -#: editor/editor_node.cpp -msgid "Scene Naming" -msgstr "" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp msgid "Interface" @@ -4428,6 +4419,10 @@ msgid "Default Color Picker Mode" msgstr "" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Username" msgstr "áƒáƒ£áƒ“ირგáƒáƒ“áƒáƒ›áƒ¢áƒáƒœáƒ˜áƒ¡ სáƒáƒ®áƒ”ლის ცვლილებáƒ" @@ -4456,6 +4451,10 @@ msgstr "" msgid "Add a new scene." msgstr "" +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "" diff --git a/editor/translations/km.po b/editor/translations/km.po index 52131ea96a..700f4f483c 100644 --- a/editor/translations/km.po +++ b/editor/translations/km.po @@ -624,24 +624,23 @@ msgid "Main Run Args" msgstr "" #: core/project_settings.cpp -msgid "Search In File Extensions" +msgid "Scene Naming" msgstr "" #: core/project_settings.cpp -msgid "Script Templates Search Path" +msgid "Search In File Extensions" msgstr "" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" +#: core/project_settings.cpp +msgid "Script Templates Search Path" msgstr "" #: core/project_settings.cpp -msgid "Autoload On Startup" +msgid "Version Control Autoload On Startup" msgstr "" #: core/project_settings.cpp -msgid "Plugin Name" +msgid "Version Control Plugin Name" msgstr "" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp @@ -2691,7 +2690,7 @@ msgid "Completed with errors." msgstr "" #: editor/editor_export.cpp -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "" #: editor/editor_export.cpp @@ -4097,14 +4096,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "" - -#: editor/editor_node.cpp -msgid "Scene Naming" -msgstr "" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp msgid "Interface" @@ -4219,6 +4210,10 @@ msgid "Default Color Picker Mode" msgstr "" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Username" msgstr "" @@ -4246,6 +4241,10 @@ msgstr "" msgid "Add a new scene." msgstr "" +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "" diff --git a/editor/translations/ko.po b/editor/translations/ko.po index cc27ce3de6..b4a91e0076 100644 --- a/editor/translations/ko.po +++ b/editor/translations/ko.po @@ -657,6 +657,10 @@ msgid "Main Run Args" msgstr "ë©”ì¸ ì‹¤í–‰ ì¸ìž" #: core/project_settings.cpp +msgid "Scene Naming" +msgstr "씬 ì´ë¦„ ì§€ì •" + +#: core/project_settings.cpp msgid "Search In File Extensions" msgstr "íŒŒì¼ í™•ìž¥ìžë¡œ 찾기" @@ -664,18 +668,15 @@ msgstr "íŒŒì¼ í™•ìž¥ìžë¡œ 찾기" msgid "Script Templates Search Path" msgstr "스í¬ë¦½íЏ 템플릿 검색 경로" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" -msgstr "ë²„ì „ 컨트롤" - #: core/project_settings.cpp -msgid "Autoload On Startup" +#, fuzzy +msgid "Version Control Autoload On Startup" msgstr "스타트업으로 ìžë™ 로드" #: core/project_settings.cpp -msgid "Plugin Name" -msgstr "í”ŒëŸ¬ê·¸ì¸ ì´ë¦„" +#, fuzzy +msgid "Version Control Plugin Name" +msgstr "ë²„ì „ 컨트롤" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -2753,7 +2754,7 @@ msgstr "íŒŒì¼ ê²½ë¡œ 완성" #: editor/editor_export.cpp #, fuzzy -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "패키지를 성공ì 으로 설치했습니다!" #: editor/editor_export.cpp @@ -4252,14 +4253,6 @@ msgid "" msgstr "" "íŒŒì¼ '%s'ì— ì“¸ 수 없습니다. 파ì¼ì´ 사용 중ì´ê±°ë‚˜ ìž ê²¨ 있거나 ê¶Œí•œì´ ì—†ìŠµë‹ˆë‹¤." -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "씬" - -#: editor/editor_node.cpp -msgid "Scene Naming" -msgstr "씬 ì´ë¦„ ì§€ì •" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp msgid "Interface" @@ -4374,6 +4367,10 @@ msgid "Default Color Picker Mode" msgstr "기본 색 ê³ ë¥´ê¸° 모드" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "ë²„ì „ 컨트롤" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Username" msgstr "ì‚¬ìš©ìž ì´ë¦„" @@ -4401,6 +4398,10 @@ msgstr "집중 모드를 í† ê¸€í•©ë‹ˆë‹¤." msgid "Add a new scene." msgstr "새 ì”¬ì„ ì¶”ê°€í•©ë‹ˆë‹¤." +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "씬" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "ì´ì „ì— ì—´ì—ˆë˜ ì”¬ìœ¼ë¡œ ì´ë™í•©ë‹ˆë‹¤." diff --git a/editor/translations/lt.po b/editor/translations/lt.po index 15e8da21f8..5f0e9b24ad 100644 --- a/editor/translations/lt.po +++ b/editor/translations/lt.po @@ -668,6 +668,11 @@ msgid "Main Run Args" msgstr "" #: core/project_settings.cpp +#, fuzzy +msgid "Scene Naming" +msgstr "Kelias iki Scenos:" + +#: core/project_settings.cpp msgid "Search In File Extensions" msgstr "" @@ -675,20 +680,15 @@ msgstr "" msgid "Script Templates Search Path" msgstr "" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp +#: core/project_settings.cpp #, fuzzy -msgid "Version Control" +msgid "Version Control Autoload On Startup" msgstr "Versija:" #: core/project_settings.cpp -msgid "Autoload On Startup" -msgstr "" - -#: core/project_settings.cpp #, fuzzy -msgid "Plugin Name" -msgstr "Priedai" +msgid "Version Control Plugin Name" +msgstr "Versija:" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -2800,7 +2800,7 @@ msgid "Completed with errors." msgstr "" #: editor/editor_export.cpp -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "" #: editor/editor_export.cpp @@ -4263,15 +4263,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "" - -#: editor/editor_node.cpp -#, fuzzy -msgid "Scene Naming" -msgstr "Kelias iki Scenos:" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp msgid "Interface" @@ -4394,6 +4385,11 @@ msgstr "" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp #, fuzzy +msgid "Version Control" +msgstr "Versija:" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +#, fuzzy msgid "Username" msgstr "Naujas pavadinimas:" @@ -4421,6 +4417,10 @@ msgstr "" msgid "Add a new scene." msgstr "" +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "" diff --git a/editor/translations/lv.po b/editor/translations/lv.po index 88132bc800..7397c083fa 100644 --- a/editor/translations/lv.po +++ b/editor/translations/lv.po @@ -675,6 +675,11 @@ msgid "Main Run Args" msgstr "" #: core/project_settings.cpp +#, fuzzy +msgid "Scene Naming" +msgstr "Ainas ceļš:" + +#: core/project_settings.cpp msgid "Search In File Extensions" msgstr "" @@ -682,19 +687,15 @@ msgstr "" msgid "Script Templates Search Path" msgstr "" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" -msgstr "Versiju Kontrole" - #: core/project_settings.cpp -msgid "Autoload On Startup" -msgstr "" +#, fuzzy +msgid "Version Control Autoload On Startup" +msgstr "Versiju Kontrole" #: core/project_settings.cpp #, fuzzy -msgid "Plugin Name" -msgstr "Spraudņi" +msgid "Version Control Plugin Name" +msgstr "Versiju Kontrole" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -2813,7 +2814,7 @@ msgstr "KopÄ“t mezgla ceļu" #: editor/editor_export.cpp #, fuzzy -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "Pakete instalÄ“ta sekmÄ«gi!" #: editor/editor_export.cpp @@ -4327,15 +4328,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "Aina" - -#: editor/editor_node.cpp -#, fuzzy -msgid "Scene Naming" -msgstr "Ainas ceļš:" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp #, fuzzy @@ -4460,6 +4452,10 @@ msgid "Default Color Picker Mode" msgstr "" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "Versiju Kontrole" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Username" msgstr "PÄrsaukt" @@ -4488,6 +4484,10 @@ msgstr "PÄrslÄ“gt traucÄ“jumu brÄ«vo režīmu." msgid "Add a new scene." msgstr "Pievienot jaunu ainu." +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "Aina" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "Iet uz iepriekÅ¡ atvÄ“rto ainu." diff --git a/editor/translations/mk.po b/editor/translations/mk.po index 90af441963..e37eadfeaf 100644 --- a/editor/translations/mk.po +++ b/editor/translations/mk.po @@ -631,24 +631,23 @@ msgid "Main Run Args" msgstr "" #: core/project_settings.cpp -msgid "Search In File Extensions" +msgid "Scene Naming" msgstr "" #: core/project_settings.cpp -msgid "Script Templates Search Path" +msgid "Search In File Extensions" msgstr "" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" +#: core/project_settings.cpp +msgid "Script Templates Search Path" msgstr "" #: core/project_settings.cpp -msgid "Autoload On Startup" +msgid "Version Control Autoload On Startup" msgstr "" #: core/project_settings.cpp -msgid "Plugin Name" +msgid "Version Control Plugin Name" msgstr "" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp @@ -2702,7 +2701,7 @@ msgid "Completed with errors." msgstr "" #: editor/editor_export.cpp -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "" #: editor/editor_export.cpp @@ -4113,14 +4112,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "" - -#: editor/editor_node.cpp -msgid "Scene Naming" -msgstr "" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp msgid "Interface" @@ -4235,6 +4226,10 @@ msgid "Default Color Picker Mode" msgstr "" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Username" msgstr "" @@ -4262,6 +4257,10 @@ msgstr "" msgid "Add a new scene." msgstr "" +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "" diff --git a/editor/translations/ml.po b/editor/translations/ml.po index 8e5ef57cd8..74ea6168e4 100644 --- a/editor/translations/ml.po +++ b/editor/translations/ml.po @@ -635,24 +635,23 @@ msgid "Main Run Args" msgstr "" #: core/project_settings.cpp -msgid "Search In File Extensions" +msgid "Scene Naming" msgstr "" #: core/project_settings.cpp -msgid "Script Templates Search Path" +msgid "Search In File Extensions" msgstr "" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" +#: core/project_settings.cpp +msgid "Script Templates Search Path" msgstr "" #: core/project_settings.cpp -msgid "Autoload On Startup" +msgid "Version Control Autoload On Startup" msgstr "" #: core/project_settings.cpp -msgid "Plugin Name" +msgid "Version Control Plugin Name" msgstr "" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp @@ -2711,7 +2710,7 @@ msgid "Completed with errors." msgstr "" #: editor/editor_export.cpp -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "" #: editor/editor_export.cpp @@ -4126,14 +4125,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "" - -#: editor/editor_node.cpp -msgid "Scene Naming" -msgstr "" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp msgid "Interface" @@ -4249,6 +4240,10 @@ msgid "Default Color Picker Mode" msgstr "" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Username" msgstr "" @@ -4276,6 +4271,10 @@ msgstr "" msgid "Add a new scene." msgstr "" +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "" diff --git a/editor/translations/mr.po b/editor/translations/mr.po index e9ce5ad750..005f8a3177 100644 --- a/editor/translations/mr.po +++ b/editor/translations/mr.po @@ -637,24 +637,23 @@ msgid "Main Run Args" msgstr "" #: core/project_settings.cpp -msgid "Search In File Extensions" +msgid "Scene Naming" msgstr "" #: core/project_settings.cpp -msgid "Script Templates Search Path" +msgid "Search In File Extensions" msgstr "" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" +#: core/project_settings.cpp +msgid "Script Templates Search Path" msgstr "" #: core/project_settings.cpp -msgid "Autoload On Startup" +msgid "Version Control Autoload On Startup" msgstr "" #: core/project_settings.cpp -msgid "Plugin Name" +msgid "Version Control Plugin Name" msgstr "" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp @@ -2711,7 +2710,7 @@ msgid "Completed with errors." msgstr "" #: editor/editor_export.cpp -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "" #: editor/editor_export.cpp @@ -4119,14 +4118,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "" - -#: editor/editor_node.cpp -msgid "Scene Naming" -msgstr "" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp msgid "Interface" @@ -4243,6 +4234,10 @@ msgid "Default Color Picker Mode" msgstr "" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Username" msgstr "" @@ -4270,6 +4265,10 @@ msgstr "" msgid "Add a new scene." msgstr "" +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "" diff --git a/editor/translations/ms.po b/editor/translations/ms.po index cb6b65ee49..3ef25ef863 100644 --- a/editor/translations/ms.po +++ b/editor/translations/ms.po @@ -633,6 +633,11 @@ msgid "Main Run Args" msgstr "Jalan Utama Args" #: core/project_settings.cpp +#, fuzzy +msgid "Scene Naming" +msgstr "Laluan Adegan:" + +#: core/project_settings.cpp msgid "Search In File Extensions" msgstr "Cari Dalam Sambungan Fail" @@ -640,18 +645,15 @@ msgstr "Cari Dalam Sambungan Fail" msgid "Script Templates Search Path" msgstr "Laluan Carian Templat Skrip" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" -msgstr "Kawalan Versi" - #: core/project_settings.cpp -msgid "Autoload On Startup" +#, fuzzy +msgid "Version Control Autoload On Startup" msgstr "Muatkan Automatik Semasa Permulaan" #: core/project_settings.cpp -msgid "Plugin Name" -msgstr "Nama Plugin" +#, fuzzy +msgid "Version Control Plugin Name" +msgstr "Kawalan Versi" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -2738,7 +2740,7 @@ msgstr "" #: editor/editor_export.cpp #, fuzzy -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "Pakej berjaya dipasang!" #: editor/editor_export.cpp @@ -4268,15 +4270,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "Adegan" - -#: editor/editor_node.cpp -#, fuzzy -msgid "Scene Naming" -msgstr "Laluan Adegan:" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp msgid "Interface" @@ -4404,6 +4397,10 @@ msgid "Default Color Picker Mode" msgstr "" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "Kawalan Versi" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Username" msgstr "Namakan Semula" @@ -4432,6 +4429,10 @@ msgstr "Togol mod bebas gangguan." msgid "Add a new scene." msgstr "Tambah adegan baru." +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "Adegan" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "Pergi ke adegan yang dibuka sebelum ini." diff --git a/editor/translations/nb.po b/editor/translations/nb.po index 21a2832614..e5b0dcc26f 100644 --- a/editor/translations/nb.po +++ b/editor/translations/nb.po @@ -670,6 +670,11 @@ msgid "Main Run Args" msgstr "Hovedkjøringsargumenter" #: core/project_settings.cpp +#, fuzzy +msgid "Scene Naming" +msgstr "Scene-Sti:" + +#: core/project_settings.cpp msgid "Search In File Extensions" msgstr "Søk I Filetternavn" @@ -677,18 +682,15 @@ msgstr "Søk I Filetternavn" msgid "Script Templates Search Path" msgstr "Skriptmaler Søkesti" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" -msgstr "Versjonskontroll" - #: core/project_settings.cpp -msgid "Autoload On Startup" +#, fuzzy +msgid "Version Control Autoload On Startup" msgstr "Automatisk Lasting Ved Oppstart" #: core/project_settings.cpp -msgid "Plugin Name" -msgstr "Navn PÃ¥ Programvareutvidelse" +#, fuzzy +msgid "Version Control Plugin Name" +msgstr "Versjonskontroll" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -2869,7 +2871,7 @@ msgstr "Kopier Node-bane" #: editor/editor_export.cpp #, fuzzy -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "Vellykket Installering av Pakke!" #: editor/editor_export.cpp @@ -4439,15 +4441,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "Scene" - -#: editor/editor_node.cpp -#, fuzzy -msgid "Scene Naming" -msgstr "Scene-Sti:" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp #, fuzzy @@ -4577,6 +4570,10 @@ msgid "Default Color Picker Mode" msgstr "" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "Versjonskontroll" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Username" msgstr "Gi nytt navn" @@ -4605,6 +4602,10 @@ msgstr "Vis/skjul distraksjonsfri modus." msgid "Add a new scene." msgstr "Legg til ny scene." +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "Scene" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "GÃ¥ til forrige Ã¥pne scene." diff --git a/editor/translations/nl.po b/editor/translations/nl.po index 4cfc0fa652..6d43002a17 100644 --- a/editor/translations/nl.po +++ b/editor/translations/nl.po @@ -749,6 +749,11 @@ msgid "Main Run Args" msgstr "Startscène argumenten:" #: core/project_settings.cpp +#, fuzzy +msgid "Scene Naming" +msgstr "Scènepad:" + +#: core/project_settings.cpp msgid "Search In File Extensions" msgstr "" @@ -756,19 +761,15 @@ msgstr "" msgid "Script Templates Search Path" msgstr "" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" -msgstr "Versiebeheer" - #: core/project_settings.cpp -msgid "Autoload On Startup" -msgstr "" +#, fuzzy +msgid "Version Control Autoload On Startup" +msgstr "Versiebeheersysteem" #: core/project_settings.cpp #, fuzzy -msgid "Plugin Name" -msgstr "Pluginnaam:" +msgid "Version Control Plugin Name" +msgstr "Versiebeheer" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -2910,7 +2911,7 @@ msgstr "Knooppad kopiëren" #: editor/editor_export.cpp #, fuzzy -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "Pakket succesvol geïnstalleerd!" #: editor/editor_export.cpp @@ -4447,15 +4448,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "Scène" - -#: editor/editor_node.cpp -#, fuzzy -msgid "Scene Naming" -msgstr "Scènepad:" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp #, fuzzy @@ -4584,6 +4576,10 @@ msgid "Default Color Picker Mode" msgstr "" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "Versiebeheer" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Username" msgstr "Naam wijzigen" @@ -4612,6 +4608,10 @@ msgstr "Afleidingsvrijemodus omschakelen." msgid "Add a new scene." msgstr "Nieuwe scène toevoegen." +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "Scène" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "Ga naar de eerder geopende scène." diff --git a/editor/translations/pl.po b/editor/translations/pl.po index e89a8b69b4..5960c6933e 100644 --- a/editor/translations/pl.po +++ b/editor/translations/pl.po @@ -690,6 +690,11 @@ msgid "Main Run Args" msgstr "Główne argumenty włączania" #: core/project_settings.cpp +#, fuzzy +msgid "Scene Naming" +msgstr "Åšcieżka sceny:" + +#: core/project_settings.cpp msgid "Search In File Extensions" msgstr "Wyszukiwanie w rozszerzeniach plików" @@ -697,18 +702,15 @@ msgstr "Wyszukiwanie w rozszerzeniach plików" msgid "Script Templates Search Path" msgstr "Åšcieżka wyszukiwania szablonów skryptów" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" -msgstr "Kontrola wersji" - #: core/project_settings.cpp -msgid "Autoload On Startup" +#, fuzzy +msgid "Version Control Autoload On Startup" msgstr "Automatyczne Å‚adowanie podczas uruchamiania" #: core/project_settings.cpp -msgid "Plugin Name" -msgstr "Nazwa wtyczki" +#, fuzzy +msgid "Version Control Plugin Name" +msgstr "Kontrola wersji" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -2812,7 +2814,7 @@ msgstr "Skopiuj Å›cieżkÄ™ wÄ™zÅ‚a" #: editor/editor_export.cpp #, fuzzy -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "Pakiet zainstalowano poprawnie!" #: editor/editor_export.cpp @@ -4340,15 +4342,6 @@ msgstr "" "Nie można zapisać do pliku '%s', plik jest w użyciu, zablokowany lub nie ma " "wystarczajÄ…cych uprawnieÅ„." -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "Scena" - -#: editor/editor_node.cpp -#, fuzzy -msgid "Scene Naming" -msgstr "Åšcieżka sceny:" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp #, fuzzy @@ -4480,6 +4473,10 @@ msgid "Default Color Picker Mode" msgstr "DomyÅ›lny tryb pipety" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "Kontrola wersji" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Username" msgstr "Użytkownik" @@ -4507,6 +4504,10 @@ msgstr "Tryb bez rozproszeÅ„." msgid "Add a new scene." msgstr "Dodaj nowÄ… scenÄ™." +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "Scena" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "Wróć do poprzednio otwartej sceny." diff --git a/editor/translations/pr.po b/editor/translations/pr.po index d01d1dcf33..139d252495 100644 --- a/editor/translations/pr.po +++ b/editor/translations/pr.po @@ -665,24 +665,23 @@ msgid "Main Run Args" msgstr "" #: core/project_settings.cpp -msgid "Search In File Extensions" +msgid "Scene Naming" msgstr "" #: core/project_settings.cpp -msgid "Script Templates Search Path" +msgid "Search In File Extensions" msgstr "" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" +#: core/project_settings.cpp +msgid "Script Templates Search Path" msgstr "" #: core/project_settings.cpp -msgid "Autoload On Startup" +msgid "Version Control Autoload On Startup" msgstr "" #: core/project_settings.cpp -msgid "Plugin Name" +msgid "Version Control Plugin Name" msgstr "" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp @@ -2794,7 +2793,7 @@ msgid "Completed with errors." msgstr "Forge yer Node!" #: editor/editor_export.cpp -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "" #: editor/editor_export.cpp @@ -4257,14 +4256,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "" - -#: editor/editor_node.cpp -msgid "Scene Naming" -msgstr "" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp msgid "Interface" @@ -4384,6 +4375,10 @@ msgid "Default Color Picker Mode" msgstr "" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Username" msgstr "Rename Function" @@ -4412,6 +4407,10 @@ msgstr "" msgid "Add a new scene." msgstr "" +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "" diff --git a/editor/translations/pt.po b/editor/translations/pt.po index 510d2515dd..c0af7140fc 100644 --- a/editor/translations/pt.po +++ b/editor/translations/pt.po @@ -663,6 +663,10 @@ msgid "Main Run Args" msgstr "Argumentos da Execução Principal" #: core/project_settings.cpp +msgid "Scene Naming" +msgstr "Nomear a Cena" + +#: core/project_settings.cpp msgid "Search In File Extensions" msgstr "" @@ -670,18 +674,15 @@ msgstr "" msgid "Script Templates Search Path" msgstr "" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" -msgstr "Controle de Versões" - #: core/project_settings.cpp -msgid "Autoload On Startup" -msgstr "" +#, fuzzy +msgid "Version Control Autoload On Startup" +msgstr "Sistema de Controlo de Versões" #: core/project_settings.cpp -msgid "Plugin Name" -msgstr "Nome do Plugin" +#, fuzzy +msgid "Version Control Plugin Name" +msgstr "Controle de Versões" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -2814,7 +2815,7 @@ msgstr "Copiar Caminho do Nó" #: editor/editor_export.cpp #, fuzzy -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "Pacote Instalado com sucesso!" #: editor/editor_export.cpp @@ -4336,14 +4337,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "Cena" - -#: editor/editor_node.cpp -msgid "Scene Naming" -msgstr "Nomear a Cena" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp #, fuzzy @@ -4470,6 +4463,10 @@ msgid "Default Color Picker Mode" msgstr "" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "Controle de Versões" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Username" msgstr "Nome de Utilizador" @@ -4497,6 +4494,10 @@ msgstr "Alternar modo livre de distrações." msgid "Add a new scene." msgstr "Adicionar nova cena." +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "Cena" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "Ir para cena aberta anteriormente." diff --git a/editor/translations/pt_BR.po b/editor/translations/pt_BR.po index 09d0e6c64e..df7e56059b 100644 --- a/editor/translations/pt_BR.po +++ b/editor/translations/pt_BR.po @@ -145,7 +145,7 @@ msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: 2016-05-30\n" -"PO-Revision-Date: 2022-06-16 18:57+0000\n" +"PO-Revision-Date: 2022-06-19 11:52+0000\n" "Last-Translator: lucas rossy brasil coelho <lucasrossy270@gmail.com>\n" "Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/" "godot-engine/godot/pt_BR/>\n" @@ -154,7 +154,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.13-dev\n" +"X-Generator: Weblate 4.13.1-dev\n" #: core/bind/core_bind.cpp main/main.cpp msgid "Tablet Driver" @@ -766,6 +766,10 @@ msgid "Main Run Args" msgstr "Argumentos de Execução Principais" #: core/project_settings.cpp +msgid "Scene Naming" +msgstr "Nomeação de Cena" + +#: core/project_settings.cpp msgid "Search In File Extensions" msgstr "Pesquisar em Extensões de Arquivo" @@ -773,18 +777,15 @@ msgstr "Pesquisar em Extensões de Arquivo" msgid "Script Templates Search Path" msgstr "Caminho de Pesquisa de Modelos de Script" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" -msgstr "Controle de Versão" - #: core/project_settings.cpp -msgid "Autoload On Startup" +#, fuzzy +msgid "Version Control Autoload On Startup" msgstr "Carregamento Automático na Inicialização" #: core/project_settings.cpp -msgid "Plugin Name" -msgstr "Nome do Plugin" +#, fuzzy +msgid "Version Control Plugin Name" +msgstr "Controle de Versão" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -2892,7 +2893,7 @@ msgstr "Copiar Caminho do Nó" #: editor/editor_export.cpp #, fuzzy -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "Pacote instalado com sucesso!" #: editor/editor_export.cpp @@ -4412,14 +4413,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "Cena" - -#: editor/editor_node.cpp -msgid "Scene Naming" -msgstr "Nomeação de Cena" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp msgid "Interface" @@ -4543,6 +4536,10 @@ msgid "Default Color Picker Mode" msgstr "" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "Controle de Versão" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Username" msgstr "Nome do usuário" @@ -4570,6 +4567,10 @@ msgstr "Alternar modo sem-distrações." msgid "Add a new scene." msgstr "Adicionar nova cena." +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "Cena" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "Ir para cena aberta anteriormente." @@ -9873,7 +9874,7 @@ msgstr "Criar Contorno" #: scene/resources/multimesh.cpp scene/resources/primitive_meshes.cpp #: scene/resources/texture.cpp msgid "Mesh" -msgstr "Malha" +msgstr "Mesh" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Static Body" @@ -19225,15 +19226,13 @@ msgid "Code Signing" msgstr "Sinal" #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "" "'apksigner' could not be found. Please check that the command is available " "in the Android SDK build-tools directory. The resulting %s is unsigned." msgstr "" -"'apksigner' não foi encontrado.\n" -"Verifique se o comando está disponÃvel no diretório do Android SDK build-" -"tools.\n" -"O %s resultante está sem assinatura." +"'apksigner' não foi encontrado. Verifique se o comando está disponÃvel no " +"diretório de ferramentas de compilação do Android SDK. O %s resultante não é " +"assinado." #: platform/android/export/export_plugin.cpp msgid "Signing debug %s..." @@ -19281,9 +19280,8 @@ msgid "Invalid filename! Android APK requires the *.apk extension." msgstr "Nome de arquivo inválido! Android APK requer a extensão *.apk." #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Unsupported export format!" -msgstr "Formato de Exportação Não Suportado\n" +msgstr "Formato de exportação não suportado!" #: platform/android/export/export_plugin.cpp msgid "" diff --git a/editor/translations/ro.po b/editor/translations/ro.po index 144032dcff..b6b92325e4 100644 --- a/editor/translations/ro.po +++ b/editor/translations/ro.po @@ -673,6 +673,11 @@ msgid "Main Run Args" msgstr "" #: core/project_settings.cpp +#, fuzzy +msgid "Scene Naming" +msgstr "Calea Scenei:" + +#: core/project_settings.cpp msgid "Search In File Extensions" msgstr "" @@ -680,19 +685,15 @@ msgstr "" msgid "Script Templates Search Path" msgstr "" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" -msgstr "Control versiune" - #: core/project_settings.cpp -msgid "Autoload On Startup" -msgstr "" +#, fuzzy +msgid "Version Control Autoload On Startup" +msgstr "Control versiune" #: core/project_settings.cpp #, fuzzy -msgid "Plugin Name" -msgstr "Nume plugin:" +msgid "Version Control Plugin Name" +msgstr "Control versiune" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -2830,7 +2831,7 @@ msgstr "" #: editor/editor_export.cpp #, fuzzy -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "Pachet instalat cu succes!" #: editor/editor_export.cpp @@ -4360,15 +4361,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "Scenă" - -#: editor/editor_node.cpp -#, fuzzy -msgid "Scene Naming" -msgstr "Calea Scenei:" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp #, fuzzy @@ -4497,6 +4489,10 @@ msgid "Default Color Picker Mode" msgstr "" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "Control versiune" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Username" msgstr "RedenumeÈ™te" @@ -4525,6 +4521,10 @@ msgstr "Comutează modul fără distrageri." msgid "Add a new scene." msgstr "Adaugă o nouă scenă." +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "Scenă" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "Mergi la o scenă deschisă anterior." diff --git a/editor/translations/ru.po b/editor/translations/ru.po index e1d6bd5fbc..b920136351 100644 --- a/editor/translations/ru.po +++ b/editor/translations/ru.po @@ -741,6 +741,10 @@ msgid "Main Run Args" msgstr "ОÑновные аргументы запуÑка" #: core/project_settings.cpp +msgid "Scene Naming" +msgstr "Именование Ñцен" + +#: core/project_settings.cpp msgid "Search In File Extensions" msgstr "ИÑкать в раÑширениÑÑ… файлов" @@ -748,18 +752,15 @@ msgstr "ИÑкать в раÑширениÑÑ… файлов" msgid "Script Templates Search Path" msgstr "Путь поиÑка шаблонов Ñкриптов" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" -msgstr "Контроль верÑий" - #: core/project_settings.cpp -msgid "Autoload On Startup" +#, fuzzy +msgid "Version Control Autoload On Startup" msgstr "Ðвтозагрузка при запуÑке" #: core/project_settings.cpp -msgid "Plugin Name" -msgstr "Ðазвание плагина" +#, fuzzy +msgid "Version Control Plugin Name" +msgstr "Контроль верÑий" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -2848,7 +2849,7 @@ msgstr "Завершать пути файлов" #: editor/editor_export.cpp #, fuzzy -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "Пакет уÑпешно уÑтановлен!" #: editor/editor_export.cpp @@ -4364,14 +4365,6 @@ msgstr "" "Ðевозможно запиÑать в файл «%s», файл иÑпользуетÑÑ, заблокирован или " "отÑутÑтвуют разрешениÑ." -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "Сцена" - -#: editor/editor_node.cpp -msgid "Scene Naming" -msgstr "Именование Ñцен" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp msgid "Interface" @@ -4486,6 +4479,10 @@ msgid "Default Color Picker Mode" msgstr "Режим выбора цвета по умолчанию" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "Контроль верÑий" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Username" msgstr "Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ" @@ -4513,6 +4510,10 @@ msgstr "Переключить режим без отвлечениÑ." msgid "Add a new scene." msgstr "Добавить новую Ñцену." +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "Сцена" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "Перейти к предыдущей открытой Ñцене." diff --git a/editor/translations/si.po b/editor/translations/si.po index 3c24ed1f7b..d28d0a4f81 100644 --- a/editor/translations/si.po +++ b/editor/translations/si.po @@ -640,24 +640,23 @@ msgid "Main Run Args" msgstr "" #: core/project_settings.cpp -msgid "Search In File Extensions" +msgid "Scene Naming" msgstr "" #: core/project_settings.cpp -msgid "Script Templates Search Path" +msgid "Search In File Extensions" msgstr "" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" +#: core/project_settings.cpp +msgid "Script Templates Search Path" msgstr "" #: core/project_settings.cpp -msgid "Autoload On Startup" +msgid "Version Control Autoload On Startup" msgstr "" #: core/project_settings.cpp -msgid "Plugin Name" +msgid "Version Control Plugin Name" msgstr "" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp @@ -2741,7 +2740,7 @@ msgid "Completed with errors." msgstr "" #: editor/editor_export.cpp -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "" #: editor/editor_export.cpp @@ -4160,14 +4159,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "" - -#: editor/editor_node.cpp -msgid "Scene Naming" -msgstr "" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp msgid "Interface" @@ -4286,6 +4277,10 @@ msgid "Default Color Picker Mode" msgstr "" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Username" msgstr "" @@ -4313,6 +4308,10 @@ msgstr "" msgid "Add a new scene." msgstr "" +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "" diff --git a/editor/translations/sk.po b/editor/translations/sk.po index c131bd6515..6615ae93a0 100644 --- a/editor/translations/sk.po +++ b/editor/translations/sk.po @@ -693,6 +693,11 @@ msgid "Main Run Args" msgstr "" #: core/project_settings.cpp +#, fuzzy +msgid "Scene Naming" +msgstr "Cesta Scény:" + +#: core/project_settings.cpp msgid "Search In File Extensions" msgstr "" @@ -700,19 +705,15 @@ msgstr "" msgid "Script Templates Search Path" msgstr "" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" -msgstr "Kontrola Verzie" - #: core/project_settings.cpp -msgid "Autoload On Startup" -msgstr "" +#, fuzzy +msgid "Version Control Autoload On Startup" +msgstr "Kontrola Verzie" #: core/project_settings.cpp #, fuzzy -msgid "Plugin Name" -msgstr "Meno Pluginu:" +msgid "Version Control Plugin Name" +msgstr "Kontrola Verzie" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -2848,7 +2849,7 @@ msgstr "" #: editor/editor_export.cpp #, fuzzy -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "BalÃk bol úspeÅ¡ne nainÅ¡talovaný!" #: editor/editor_export.cpp @@ -4376,15 +4377,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "Scéna" - -#: editor/editor_node.cpp -#, fuzzy -msgid "Scene Naming" -msgstr "Cesta Scény:" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp msgid "Interface" @@ -4512,6 +4504,10 @@ msgid "Default Color Picker Mode" msgstr "" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "Kontrola Verzie" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Username" msgstr "PremenovaÅ¥" @@ -4540,6 +4536,10 @@ msgstr "Prepnúť režim bez rozptyľovania." msgid "Add a new scene." msgstr "PridaÅ¥ novú scénu." +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "Scéna" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "ÃsÅ¥ do naposledy otvorenej scény." diff --git a/editor/translations/sl.po b/editor/translations/sl.po index c717fcb4c9..acb24489bd 100644 --- a/editor/translations/sl.po +++ b/editor/translations/sl.po @@ -667,6 +667,11 @@ msgid "Main Run Args" msgstr "" #: core/project_settings.cpp +#, fuzzy +msgid "Scene Naming" +msgstr "Pot Prizora:" + +#: core/project_settings.cpp msgid "Search In File Extensions" msgstr "" @@ -674,20 +679,15 @@ msgstr "" msgid "Script Templates Search Path" msgstr "" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp +#: core/project_settings.cpp #, fuzzy -msgid "Version Control" +msgid "Version Control Autoload On Startup" msgstr "RazliÄica:" #: core/project_settings.cpp -msgid "Autoload On Startup" -msgstr "" - -#: core/project_settings.cpp #, fuzzy -msgid "Plugin Name" -msgstr "VtiÄniki" +msgid "Version Control Plugin Name" +msgstr "RazliÄica:" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -2882,7 +2882,7 @@ msgstr "" #: editor/editor_export.cpp #, fuzzy -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "Paket je UspeÅ¡no NameÅ¡Äen!" #: editor/editor_export.cpp @@ -4446,15 +4446,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "Prizor" - -#: editor/editor_node.cpp -#, fuzzy -msgid "Scene Naming" -msgstr "Pot Prizora:" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp msgid "Interface" @@ -4583,6 +4574,11 @@ msgstr "" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp #, fuzzy +msgid "Version Control" +msgstr "RazliÄica:" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +#, fuzzy msgid "Username" msgstr "Preimenuj" @@ -4610,6 +4606,10 @@ msgstr "Preklop naÄin pisanja brez motenj." msgid "Add a new scene." msgstr "Dodaj nov Prizor." +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "Prizor" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "Pojdi na predhodno odprti prizor." diff --git a/editor/translations/sq.po b/editor/translations/sq.po index 452dad01af..c97aac239a 100644 --- a/editor/translations/sq.po +++ b/editor/translations/sq.po @@ -669,6 +669,11 @@ msgid "Main Run Args" msgstr "" #: core/project_settings.cpp +#, fuzzy +msgid "Scene Naming" +msgstr "Rruga Skenës:" + +#: core/project_settings.cpp msgid "Search In File Extensions" msgstr "" @@ -676,20 +681,15 @@ msgstr "" msgid "Script Templates Search Path" msgstr "" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp +#: core/project_settings.cpp #, fuzzy -msgid "Version Control" +msgid "Version Control Autoload On Startup" msgstr "Versioni:" #: core/project_settings.cpp -msgid "Autoload On Startup" -msgstr "" - -#: core/project_settings.cpp #, fuzzy -msgid "Plugin Name" -msgstr "Emri i Shtojcës:" +msgid "Version Control Plugin Name" +msgstr "Versioni:" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -2819,7 +2819,7 @@ msgstr "" #: editor/editor_export.cpp #, fuzzy -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "Paketa u instalua me sukses!" #: editor/editor_export.cpp @@ -4386,15 +4386,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "Skenë" - -#: editor/editor_node.cpp -#, fuzzy -msgid "Scene Naming" -msgstr "Rruga Skenës:" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp msgid "Interface" @@ -4521,6 +4512,11 @@ msgstr "" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp #, fuzzy +msgid "Version Control" +msgstr "Versioni:" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +#, fuzzy msgid "Username" msgstr "Riemërto" @@ -4548,6 +4544,10 @@ msgstr "Ndrysho metodën pa shpërqëndrime." msgid "Add a new scene." msgstr "Shto një skenë të re." +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "Skenë" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "Shko në skenën e hapur më parë." diff --git a/editor/translations/sr_Cyrl.po b/editor/translations/sr_Cyrl.po index d4b703a467..55387743e7 100644 --- a/editor/translations/sr_Cyrl.po +++ b/editor/translations/sr_Cyrl.po @@ -700,6 +700,11 @@ msgid "Main Run Args" msgstr "Ðргументи Главне Сцене" #: core/project_settings.cpp +#, fuzzy +msgid "Scene Naming" +msgstr "Пут Ñцене:" + +#: core/project_settings.cpp msgid "Search In File Extensions" msgstr "" @@ -707,20 +712,15 @@ msgstr "" msgid "Script Templates Search Path" msgstr "" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy -msgid "Version Control" -msgstr "Верзија:" - #: core/project_settings.cpp -msgid "Autoload On Startup" -msgstr "" +#, fuzzy +msgid "Version Control Autoload On Startup" +msgstr "VCS(СиÑтем Контроле Верзије)" #: core/project_settings.cpp #, fuzzy -msgid "Plugin Name" -msgstr "Име Прикључка :" +msgid "Version Control Plugin Name" +msgstr "Верзија:" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -2998,7 +2998,7 @@ msgstr "Копирај Путању Чвора" #: editor/editor_export.cpp #, fuzzy -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "Пакет је инÑталиран уÑпешно!" #: editor/editor_export.cpp @@ -4629,15 +4629,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "Сцена" - -#: editor/editor_node.cpp -#, fuzzy -msgid "Scene Naming" -msgstr "Пут Ñцене:" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp #, fuzzy @@ -4768,6 +4759,11 @@ msgstr "" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp #, fuzzy +msgid "Version Control" +msgstr "Верзија:" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +#, fuzzy msgid "Username" msgstr "Преименуј" @@ -4795,6 +4791,10 @@ msgstr "Укљ./ИÑкљ. режим без Ñметње." msgid "Add a new scene." msgstr "Додај нову Ñцену." +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "Сцена" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "Отвори претходну Ñцену." diff --git a/editor/translations/sr_Latn.po b/editor/translations/sr_Latn.po index 7b1eebf83f..21d94999a2 100644 --- a/editor/translations/sr_Latn.po +++ b/editor/translations/sr_Latn.po @@ -656,24 +656,23 @@ msgid "Main Run Args" msgstr "" #: core/project_settings.cpp -msgid "Search In File Extensions" +msgid "Scene Naming" msgstr "" #: core/project_settings.cpp -msgid "Script Templates Search Path" +msgid "Search In File Extensions" msgstr "" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" +#: core/project_settings.cpp +msgid "Script Templates Search Path" msgstr "" #: core/project_settings.cpp -msgid "Autoload On Startup" +msgid "Version Control Autoload On Startup" msgstr "" #: core/project_settings.cpp -msgid "Plugin Name" +msgid "Version Control Plugin Name" msgstr "" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp @@ -2764,7 +2763,7 @@ msgid "Completed with errors." msgstr "" #: editor/editor_export.cpp -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "" #: editor/editor_export.cpp @@ -4174,14 +4173,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "" - -#: editor/editor_node.cpp -msgid "Scene Naming" -msgstr "" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp msgid "Interface" @@ -4301,6 +4292,10 @@ msgid "Default Color Picker Mode" msgstr "" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Username" msgstr "Animacija Preimenuj Kanal" @@ -4329,6 +4324,10 @@ msgstr "" msgid "Add a new scene." msgstr "" +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "" diff --git a/editor/translations/sv.po b/editor/translations/sv.po index c221b5e7a0..54655bcecf 100644 --- a/editor/translations/sv.po +++ b/editor/translations/sv.po @@ -704,6 +704,11 @@ msgid "Main Run Args" msgstr "" #: core/project_settings.cpp +#, fuzzy +msgid "Scene Naming" +msgstr "Scen Filsökväg:" + +#: core/project_settings.cpp msgid "Search In File Extensions" msgstr "" @@ -711,19 +716,15 @@ msgstr "" msgid "Script Templates Search Path" msgstr "" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" -msgstr "Versionshantering" - #: core/project_settings.cpp -msgid "Autoload On Startup" -msgstr "" +#, fuzzy +msgid "Version Control Autoload On Startup" +msgstr "Versionshantering" #: core/project_settings.cpp #, fuzzy -msgid "Plugin Name" -msgstr "Plugin Namn:" +msgid "Version Control Plugin Name" +msgstr "Versionshantering" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -2850,7 +2851,7 @@ msgstr "Kopiera Nod-Sökväg" #: editor/editor_export.cpp #, fuzzy -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "Paketet installerades!" #: editor/editor_export.cpp @@ -4424,15 +4425,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "Scen" - -#: editor/editor_node.cpp -#, fuzzy -msgid "Scene Naming" -msgstr "Scen Filsökväg:" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp msgid "Interface" @@ -4559,6 +4551,10 @@ msgid "Default Color Picker Mode" msgstr "" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "Versionshantering" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Username" msgstr "Byt namn" @@ -4587,6 +4583,10 @@ msgstr "Växla distraktionsfritt läge." msgid "Add a new scene." msgstr "Lägg till en ny scen." +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "Scen" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "GÃ¥ till föregÃ¥ende öppna scen." diff --git a/editor/translations/te.po b/editor/translations/te.po index 4d679d390c..7e39aed20c 100644 --- a/editor/translations/te.po +++ b/editor/translations/te.po @@ -628,24 +628,23 @@ msgid "Main Run Args" msgstr "" #: core/project_settings.cpp -msgid "Search In File Extensions" +msgid "Scene Naming" msgstr "" #: core/project_settings.cpp -msgid "Script Templates Search Path" +msgid "Search In File Extensions" msgstr "" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" +#: core/project_settings.cpp +msgid "Script Templates Search Path" msgstr "" #: core/project_settings.cpp -msgid "Autoload On Startup" +msgid "Version Control Autoload On Startup" msgstr "" #: core/project_settings.cpp -msgid "Plugin Name" +msgid "Version Control Plugin Name" msgstr "" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp @@ -2694,7 +2693,7 @@ msgid "Completed with errors." msgstr "" #: editor/editor_export.cpp -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "" #: editor/editor_export.cpp @@ -4100,14 +4099,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "" - -#: editor/editor_node.cpp -msgid "Scene Naming" -msgstr "" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp msgid "Interface" @@ -4222,6 +4213,10 @@ msgid "Default Color Picker Mode" msgstr "" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Username" msgstr "" @@ -4249,6 +4244,10 @@ msgstr "" msgid "Add a new scene." msgstr "" +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "" diff --git a/editor/translations/th.po b/editor/translations/th.po index a8568f7437..cf482896d4 100644 --- a/editor/translations/th.po +++ b/editor/translations/th.po @@ -703,6 +703,11 @@ msgid "Main Run Args" msgstr "ตัวà¹à¸›à¸£à¸‰à¸²à¸à¸«à¸¥à¸±à¸:" #: core/project_settings.cpp +#, fuzzy +msgid "Scene Naming" +msgstr "ตำà¹à¸«à¸™à¹ˆà¸‡à¸—ี่à¸à¸¢à¸¹à¹ˆà¸‰à¸²à¸:" + +#: core/project_settings.cpp msgid "Search In File Extensions" msgstr "" @@ -710,19 +715,15 @@ msgstr "" msgid "Script Templates Search Path" msgstr "" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" -msgstr "เวà¸à¸£à¹Œà¸Šà¸±à¸™à¸„à¸à¸™à¹‚ทรล" - #: core/project_settings.cpp -msgid "Autoload On Startup" -msgstr "" +#, fuzzy +msgid "Version Control Autoload On Startup" +msgstr "ระบบจัดà¸à¸²à¸£à¸‹à¸à¸£à¹Œà¸ª (Version Control)" #: core/project_settings.cpp #, fuzzy -msgid "Plugin Name" -msgstr "ชื่à¸à¸›à¸¥à¸±à¹Šà¸à¸à¸´à¸™:" +msgid "Version Control Plugin Name" +msgstr "เวà¸à¸£à¹Œà¸Šà¸±à¸™à¸„à¸à¸™à¹‚ทรล" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -2869,7 +2870,7 @@ msgstr "คัดลà¸à¸à¸•ำà¹à¸«à¸™à¹ˆà¸‡à¹‚หนด" #: editor/editor_export.cpp #, fuzzy -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "ติดตั้งà¹à¸žà¸„เà¸à¸ˆà¹€à¸ªà¸£à¹‡à¸ˆà¸ªà¸¡à¸šà¸¹à¸£à¸“์!" #: editor/editor_export.cpp @@ -4376,15 +4377,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "ฉาà¸" - -#: editor/editor_node.cpp -#, fuzzy -msgid "Scene Naming" -msgstr "ตำà¹à¸«à¸™à¹ˆà¸‡à¸—ี่à¸à¸¢à¸¹à¹ˆà¸‰à¸²à¸:" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp #, fuzzy @@ -4513,6 +4505,10 @@ msgid "Default Color Picker Mode" msgstr "" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "เวà¸à¸£à¹Œà¸Šà¸±à¸™à¸„à¸à¸™à¹‚ทรล" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Username" msgstr "เปลี่ยนชื่à¸" @@ -4541,6 +4537,10 @@ msgstr "โหมดไร้สิ่งรบà¸à¸§à¸™" msgid "Add a new scene." msgstr "เพิ่มฉาà¸à¹ƒà¸«à¸¡à¹ˆ" +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "ฉาà¸" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "ไปยังฉาà¸à¸—ี่เพิ่งเปิด" diff --git a/editor/translations/tl.po b/editor/translations/tl.po index 2ba6909fa2..963d542e6d 100644 --- a/editor/translations/tl.po +++ b/editor/translations/tl.po @@ -672,6 +672,11 @@ msgid "Main Run Args" msgstr "" #: core/project_settings.cpp +#, fuzzy +msgid "Scene Naming" +msgstr "Kinalalagyan ng Eksena:" + +#: core/project_settings.cpp msgid "Search In File Extensions" msgstr "" @@ -679,19 +684,15 @@ msgstr "" msgid "Script Templates Search Path" msgstr "" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" -msgstr "Pagmamahala ng Bersyon" - #: core/project_settings.cpp -msgid "Autoload On Startup" -msgstr "" +#, fuzzy +msgid "Version Control Autoload On Startup" +msgstr "Pagmamahala ng Bersyon" #: core/project_settings.cpp #, fuzzy -msgid "Plugin Name" -msgstr "Pangalan ng Plugin:" +msgid "Version Control Plugin Name" +msgstr "Pagmamahala ng Bersyon" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -2807,7 +2808,7 @@ msgid "Completed with errors." msgstr "" #: editor/editor_export.cpp -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "" #: editor/editor_export.cpp @@ -4254,15 +4255,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "Eksena" - -#: editor/editor_node.cpp -#, fuzzy -msgid "Scene Naming" -msgstr "Kinalalagyan ng Eksena:" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp msgid "Interface" @@ -4386,6 +4378,10 @@ msgid "Default Color Picker Mode" msgstr "" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "Pagmamahala ng Bersyon" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Username" msgstr "Inibang Pangalan" @@ -4414,6 +4410,10 @@ msgstr "" msgid "Add a new scene." msgstr "Magdagdag ng panibagong eksena." +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "Eksena" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "Bumalik sa dating binuksang eksena." diff --git a/editor/translations/tr.po b/editor/translations/tr.po index 04e27574ea..ea437aaf30 100644 --- a/editor/translations/tr.po +++ b/editor/translations/tr.po @@ -705,6 +705,11 @@ msgid "Main Run Args" msgstr "Ana Sahne DeÄŸiÅŸtirgenleri:" #: core/project_settings.cpp +#, fuzzy +msgid "Scene Naming" +msgstr "Sahne Yolu:" + +#: core/project_settings.cpp msgid "Search In File Extensions" msgstr "Dosya Uzantılarında Ara" @@ -712,19 +717,15 @@ msgstr "Dosya Uzantılarında Ara" msgid "Script Templates Search Path" msgstr "Script Dosyalarını Aramak İçin Dosya Yolu" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" -msgstr "Sürüm Kontrol" - #: core/project_settings.cpp #, fuzzy -msgid "Autoload On Startup" +msgid "Version Control Autoload On Startup" msgstr "BaÅŸlangıçta Otomatik Yükleme" #: core/project_settings.cpp -msgid "Plugin Name" -msgstr "Eklenti Adı" +#, fuzzy +msgid "Version Control Plugin Name" +msgstr "Sürüm Kontrol" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -2830,7 +2831,7 @@ msgstr "Düğüm Yolunu Kopyala" #: editor/editor_export.cpp #, fuzzy -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "Paket BaÅŸarı ile Kuruldu!" #: editor/editor_export.cpp @@ -4362,15 +4363,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "Sahne" - -#: editor/editor_node.cpp -#, fuzzy -msgid "Scene Naming" -msgstr "Sahne Yolu:" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp #, fuzzy @@ -4499,6 +4491,10 @@ msgid "Default Color Picker Mode" msgstr "" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "Sürüm Kontrol" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Username" msgstr "Kullanıcı adı" @@ -4526,6 +4522,10 @@ msgstr "Dikkat-Dağıtmayan Kipine geç." msgid "Add a new scene." msgstr "Yeni bir sahne ekle." +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "Sahne" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "Daha önce açılan sahneye git." diff --git a/editor/translations/uk.po b/editor/translations/uk.po index 4c90b9e989..6d96ccc30b 100644 --- a/editor/translations/uk.po +++ b/editor/translations/uk.po @@ -650,6 +650,10 @@ msgid "Main Run Args" msgstr "Ðргументи оÑновного запуÑку" #: core/project_settings.cpp +msgid "Scene Naming" +msgstr "Ð†Ð¼ÐµÐ½ÑƒÐ²Ð°Ð½Ð½Ñ Ñцен" + +#: core/project_settings.cpp msgid "Search In File Extensions" msgstr "Ð Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ у файлах" @@ -657,18 +661,15 @@ msgstr "Ð Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ у файлах" msgid "Script Templates Search Path" msgstr "ШлÑÑ… пошуку Ð´Ð»Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ñ–Ð² Ñкриптів" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" -msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð²ÐµÑ€ÑÑ–Ñми" - #: core/project_settings.cpp -msgid "Autoload On Startup" +#, fuzzy +msgid "Version Control Autoload On Startup" msgstr "Ðвтоматично завантажувати під Ñ‡Ð°Ñ Ð·Ð°Ð¿ÑƒÑку" #: core/project_settings.cpp -msgid "Plugin Name" -msgstr "Ðазва додатка" +#, fuzzy +msgid "Version Control Plugin Name" +msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð²ÐµÑ€ÑÑ–Ñми" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -2754,7 +2755,7 @@ msgstr "Повні шлÑхи до файлів" #: editor/editor_export.cpp #, fuzzy -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "Пакунок уÑпішно вÑтановлено!" #: editor/editor_export.cpp @@ -4274,14 +4275,6 @@ msgstr "" "Ðе вдалоÑÑ Ð·Ð°Ð¿Ð¸Ñати до файла «%s», файл викориÑтовує інша програма, його " "заблоковано або у Ð²Ð°Ñ Ð½ÐµÐ¼Ð°Ñ” відповідних прав доÑтупу до нього." -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "Сцена" - -#: editor/editor_node.cpp -msgid "Scene Naming" -msgstr "Ð†Ð¼ÐµÐ½ÑƒÐ²Ð°Ð½Ð½Ñ Ñцен" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp msgid "Interface" @@ -4396,6 +4389,10 @@ msgid "Default Color Picker Mode" msgstr "Типовий режим піпетки кольорів" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð²ÐµÑ€ÑÑ–Ñми" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Username" msgstr "КориÑтувач" @@ -4423,6 +4420,10 @@ msgstr "Перемкнути режим без відволіканнÑ." msgid "Add a new scene." msgstr "Додати нову Ñцену." +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "Сцена" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "Перейти до раніше відкритої Ñцени." diff --git a/editor/translations/ur_PK.po b/editor/translations/ur_PK.po index db5af915dc..79cb7b84e2 100644 --- a/editor/translations/ur_PK.po +++ b/editor/translations/ur_PK.po @@ -655,24 +655,23 @@ msgid "Main Run Args" msgstr "" #: core/project_settings.cpp -msgid "Search In File Extensions" +msgid "Scene Naming" msgstr "" #: core/project_settings.cpp -msgid "Script Templates Search Path" +msgid "Search In File Extensions" msgstr "" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" +#: core/project_settings.cpp +msgid "Script Templates Search Path" msgstr "" #: core/project_settings.cpp -msgid "Autoload On Startup" +msgid "Version Control Autoload On Startup" msgstr "" #: core/project_settings.cpp -msgid "Plugin Name" +msgid "Version Control Plugin Name" msgstr "" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp @@ -2759,7 +2758,7 @@ msgid "Completed with errors." msgstr "" #: editor/editor_export.cpp -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "" #: editor/editor_export.cpp @@ -4211,14 +4210,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "" - -#: editor/editor_node.cpp -msgid "Scene Naming" -msgstr "" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp msgid "Interface" @@ -4338,6 +4329,10 @@ msgid "Default Color Picker Mode" msgstr "" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Username" msgstr ".تمام کا انتخاب" @@ -4366,6 +4361,10 @@ msgstr "" msgid "Add a new scene." msgstr "" +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "" diff --git a/editor/translations/vi.po b/editor/translations/vi.po index 7e5dd162f7..a16d75a4bc 100644 --- a/editor/translations/vi.po +++ b/editor/translations/vi.po @@ -659,6 +659,11 @@ msgid "Main Run Args" msgstr "Tham số Cảnh chÃnh:" #: core/project_settings.cpp +#, fuzzy +msgid "Scene Naming" +msgstr "ÄÆ°á»ng dẫn Cảnh:" + +#: core/project_settings.cpp msgid "Search In File Extensions" msgstr "" @@ -666,18 +671,15 @@ msgstr "" msgid "Script Templates Search Path" msgstr "ÄÆ°á»ng dẫn tìm kiếm bản mẫu kịch bản" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" -msgstr "Theo dõi phiên bản" - #: core/project_settings.cpp -msgid "Autoload On Startup" +#, fuzzy +msgid "Version Control Autoload On Startup" msgstr "Tá»± nạp khi khởi động" #: core/project_settings.cpp -msgid "Plugin Name" -msgstr "Tên trình cắm" +#, fuzzy +msgid "Version Control Plugin Name" +msgstr "Theo dõi phiên bản" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -2790,7 +2792,7 @@ msgstr "Sao chép đưá»ng dẫn nút" #: editor/editor_export.cpp #, fuzzy -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "Cà i đặt gói thà nh công!" #: editor/editor_export.cpp @@ -4275,15 +4277,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "Cảnh" - -#: editor/editor_node.cpp -#, fuzzy -msgid "Scene Naming" -msgstr "ÄÆ°á»ng dẫn Cảnh:" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp msgid "Interface" @@ -4406,6 +4399,10 @@ msgid "Default Color Picker Mode" msgstr "" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "Theo dõi phiên bản" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Username" msgstr "Tên ngưá»i dùng" @@ -4433,6 +4430,10 @@ msgstr "Báºt tắt chế độ táºp trung." msgid "Add a new scene." msgstr "Thêm cảnh má»›i." +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "Cảnh" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "Trở vá» cảnh đã mở trước đó." diff --git a/editor/translations/zh_CN.po b/editor/translations/zh_CN.po index 336418ef35..ea23349421 100644 --- a/editor/translations/zh_CN.po +++ b/editor/translations/zh_CN.po @@ -89,7 +89,7 @@ msgstr "" "Project-Id-Version: Chinese (Simplified) (Godot Engine)\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: 2018-01-20 12:15+0200\n" -"PO-Revision-Date: 2022-06-12 13:19+0000\n" +"PO-Revision-Date: 2022-06-19 11:52+0000\n" "Last-Translator: Haoyu Qiu <timothyqiu32@gmail.com>\n" "Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/" "godot-engine/godot/zh_Hans/>\n" @@ -98,7 +98,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.13-dev\n" +"X-Generator: Weblate 4.13.1-dev\n" #: core/bind/core_bind.cpp main/main.cpp msgid "Tablet Driver" @@ -434,14 +434,12 @@ msgid "Max Size (KB)" msgstr "最大大å°ï¼ˆKB)" #: core/os/input.cpp -#, fuzzy msgid "Mouse Mode" -msgstr "移动模å¼" +msgstr "é¼ æ ‡æ¨¡å¼" #: core/os/input.cpp -#, fuzzy msgid "Use Accumulated Input" -msgstr "åˆ é™¤è¾“å…¥" +msgstr "使用累积输入" #: core/os/input_event.cpp editor/project_settings_editor.cpp #: servers/audio_server.cpp @@ -706,6 +704,10 @@ msgid "Main Run Args" msgstr "主è¿è¡Œå‚æ•°" #: core/project_settings.cpp +msgid "Scene Naming" +msgstr "场景命å" + +#: core/project_settings.cpp msgid "Search In File Extensions" msgstr "æœç´¢æ–‡ä»¶æ‰©å±•å" @@ -713,18 +715,15 @@ msgstr "æœç´¢æ–‡ä»¶æ‰©å±•å" msgid "Script Templates Search Path" msgstr "è„šæœ¬æ¨¡æ¿æœç´¢è·¯å¾„" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" -msgstr "版本控制" - #: core/project_settings.cpp -msgid "Autoload On Startup" +#, fuzzy +msgid "Version Control Autoload On Startup" msgstr "å¯åŠ¨æ—¶è‡ªåŠ¨åŠ è½½" #: core/project_settings.cpp -msgid "Plugin Name" -msgstr "æ’ä»¶å" +#, fuzzy +msgid "Version Control Plugin Name" +msgstr "版本控制" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -2228,7 +2227,7 @@ msgstr "打开" #: editor/dependency_editor.cpp msgid "Owners of: %s (Total: %d)" -msgstr "" +msgstr "%s 的所有者(总计:%d)" #: editor/dependency_editor.cpp msgid "" @@ -2782,22 +2781,20 @@ msgstr "选择" #: editor/editor_export.cpp msgid "Project export for platform:" -msgstr "" +msgstr "针对平å°å¯¼å‡ºé¡¹ç›®ï¼š" #: editor/editor_export.cpp -#, fuzzy msgid "Completed with errors." -msgstr "补全文件路径" +msgstr "已完æˆï¼Œå˜åœ¨é”™è¯¯ã€‚" #: editor/editor_export.cpp #, fuzzy -msgid "Completed sucessfully." -msgstr "软件包安装æˆåŠŸï¼" +msgid "Completed successfully." +msgstr "æˆåŠŸå®Œæˆã€‚" #: editor/editor_export.cpp -#, fuzzy msgid "Failed." -msgstr "失败:" +msgstr "失败。" #: editor/editor_export.cpp msgid "Storing File:" @@ -2812,29 +2809,24 @@ msgid "Packing" msgstr "打包ä¸" #: editor/editor_export.cpp -#, fuzzy msgid "Save PCK" -msgstr "å¦å˜ä¸º" +msgstr "ä¿å˜ PCK" #: editor/editor_export.cpp -#, fuzzy msgid "Cannot create file \"%s\"." -msgstr "æ— æ³•åˆ›å»ºæ–‡ä»¶å¤¹ã€‚" +msgstr "æ— æ³•åˆ›å»ºæ–‡ä»¶â€œ%sâ€ã€‚" #: editor/editor_export.cpp -#, fuzzy msgid "Failed to export project files." -msgstr "æ— æ³•å¯¼å‡ºé¡¹ç›®æ–‡ä»¶" +msgstr "导出项目文件失败。" #: editor/editor_export.cpp -#, fuzzy msgid "Can't open file to read from path \"%s\"." -msgstr "æ— æ³•ä»¥å¯å†™æ¨¡å¼æ‰“开文件:" +msgstr "æ— æ³•æ‰“å¼€ä½äºŽâ€œ%sâ€çš„æ–‡ä»¶ç”¨äºŽè¯»å–。" #: editor/editor_export.cpp -#, fuzzy msgid "Save ZIP" -msgstr "å¦å˜ä¸º" +msgstr "ä¿å˜ ZIP" #: editor/editor_export.cpp msgid "" @@ -2946,30 +2938,25 @@ msgid "Custom release template not found." msgstr "找ä¸åˆ°è‡ªå®šä¹‰å‘布模æ¿ã€‚" #: editor/editor_export.cpp -#, fuzzy msgid "Prepare Template" -msgstr "ç®¡ç†æ¨¡æ¿" +msgstr "准备模æ¿" #: editor/editor_export.cpp platform/osx/export/export.cpp -#, fuzzy msgid "The given export path doesn't exist." -msgstr "指定导出路径ä¸å˜åœ¨ï¼š" +msgstr "给定的导出路径ä¸å˜åœ¨ã€‚" #: editor/editor_export.cpp platform/javascript/export/export.cpp -#, fuzzy msgid "Template file not found: \"%s\"." -msgstr "找ä¸åˆ°æ¨¡æ¿æ–‡ä»¶ï¼š" +msgstr "æ¨¡æ¿æ–‡ä»¶ä¸å˜åœ¨ï¼šâ€œ%sâ€ã€‚" #: editor/editor_export.cpp -#, fuzzy msgid "Failed to copy export template." -msgstr "å¯¼å‡ºæ¨¡æ¿æ— 效:" +msgstr "å¤åˆ¶å¯¼å‡ºæ¨¡æ¿å¤±è´¥ã€‚" #: editor/editor_export.cpp platform/windows/export/export.cpp #: platform/x11/export/export.cpp -#, fuzzy msgid "PCK Embedding" -msgstr "å¡«å……" +msgstr "PCK 内嵌" #: editor/editor_export.cpp msgid "On 32-bit exports the embedded PCK cannot be bigger than 4 GiB." @@ -4251,14 +4238,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "æ— æ³•å†™å…¥æ–‡ä»¶â€œ%sâ€ï¼Œæ–‡ä»¶è¢«å 用ã€å·²é”å®šã€æˆ–æƒé™ä¸è¶³ã€‚" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "场景" - -#: editor/editor_node.cpp -msgid "Scene Naming" -msgstr "场景命å" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp msgid "Interface" @@ -4373,6 +4352,10 @@ msgid "Default Color Picker Mode" msgstr "默认å–色器模å¼" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "版本控制" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Username" msgstr "用户å" @@ -4400,6 +4383,10 @@ msgstr "切æ¢ä¸“注模å¼ã€‚" msgid "Add a new scene." msgstr "æ·»åŠ æ–°åœºæ™¯ã€‚" +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "场景" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "转到上一个打开的场景。" @@ -5164,9 +5151,8 @@ msgstr "" "请在导出èœå•䏿·»åР坿‰§è¡Œé¢„è®¾ï¼Œæˆ–å°†å·²æœ‰é¢„è®¾è®¾ä¸ºå¯æ‰§è¡Œã€‚" #: editor/editor_run_native.cpp -#, fuzzy msgid "Project Run" -msgstr "项目" +msgstr "项目è¿è¡Œ" #: editor/editor_run_script.cpp msgid "Write your logic in the _run() method." @@ -7083,12 +7069,15 @@ msgid "" "%s: Texture detected as used as a normal map in 3D. Enabling red-green " "texture compression to reduce memory usage (blue channel is discarded)." msgstr "" +"%s:检测到纹ç†è¢«ç”¨äºŽ 3D 法线贴图。æ£åœ¨å¯ç”¨çº¢ç»¿çº¹ç†åŽ‹ç¼©ï¼Œé™ä½Žå†…å˜ä½¿ç”¨ï¼ˆè“通é“" +"被丢弃)。" #: editor/import/resource_importer_texture.cpp msgid "" "%s: Texture detected as used in 3D. Enabling filter, repeat, mipmap " "generation and VRAM texture compression." msgstr "" +"%s:检测到纹ç†è¢«ç”¨äºŽ 3D。æ£åœ¨å¯ç”¨è¿‡æ»¤ã€é‡å¤ã€Mipmap 生æˆå’Œ VRAM 纹ç†åŽ‹ç¼©ã€‚" #: editor/import/resource_importer_texture.cpp msgid "2D, Detect 3D" @@ -11363,9 +11352,8 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "æ— æ•ˆçš„å‡ ä½•ä½“ï¼Œæ— æ³•ä½¿ç”¨ç½‘æ ¼æ›¿æ¢ã€‚" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Convert to MeshInstance2D" -msgstr "转æ¢ä¸º Mesh2D" +msgstr "转æ¢ä¸º MeshInstance2D" #: editor/plugins/sprite_editor_plugin.cpp msgid "Invalid geometry, can't create polygon." @@ -13933,9 +13921,8 @@ msgid "Export templates for this platform are missing:" msgstr "该平å°çš„导出模æ¿ç¼ºå¤±ï¼š" #: editor/project_export.cpp -#, fuzzy msgid "Project Export" -msgstr "项目创始人" +msgstr "项目导出" #: editor/project_export.cpp msgid "Manage Export Templates" @@ -16834,17 +16821,15 @@ msgid "Mask" msgstr "é®ç½©" #: modules/gridmap/grid_map.cpp scene/2d/tile_map.cpp -#, fuzzy msgid "Bake Navigation" -msgstr "导航" +msgstr "烘焙导航" #: modules/gridmap/grid_map.cpp scene/2d/navigation_2d.cpp #: scene/2d/navigation_agent_2d.cpp scene/2d/navigation_polygon.cpp #: scene/2d/tile_map.cpp scene/3d/navigation.cpp scene/3d/navigation_agent.cpp #: scene/3d/navigation_mesh_instance.cpp -#, fuzzy msgid "Navigation Layers" -msgstr "导航体验" +msgstr "导航层" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Next Plane" @@ -18385,19 +18370,16 @@ msgstr "“Target Sdkâ€ç‰ˆæœ¬å¿…须大于ç‰äºŽâ€œMin Sdkâ€ç‰ˆæœ¬ã€‚" #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp #: platform/windows/export/export.cpp -#, fuzzy msgid "Code Signing" -msgstr "æ£åœ¨å¯¹ DMG 进行代ç ç¾å" +msgstr "代ç ç¾å" #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "" "'apksigner' could not be found. Please check that the command is available " "in the Android SDK build-tools directory. The resulting %s is unsigned." msgstr "" -"æ— æ³•æ‰¾åˆ°â€œapksignerâ€ã€‚\n" -"请检查 Android SDK çš„ build-tools ç›®å½•ä¸æ˜¯å¦æœ‰æ¤å‘½ä»¤ã€‚\n" -"生æˆçš„ %s 未ç¾å。" +"æ— æ³•æ‰¾åˆ°â€œapksignerâ€ã€‚请检查 Android SDK çš„ build-tools ç›®å½•ä¸æ˜¯å¦æœ‰æ¤å‘½ä»¤ã€‚生" +"æˆçš„ %s 未ç¾å。" #: platform/android/export/export_plugin.cpp msgid "Signing debug %s..." @@ -18412,9 +18394,8 @@ msgid "Could not find keystore, unable to export." msgstr "找ä¸åˆ°å¯†é’¥åº“ï¼Œæ— æ³•å¯¼å‡ºã€‚" #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Could not start apksigner executable." -msgstr "æ— æ³•å¯åЍå进程ï¼" +msgstr "æ— æ³•å¯åЍ apksigner 坿‰§è¡Œæ–‡ä»¶ã€‚" #: platform/android/export/export_plugin.cpp msgid "'apksigner' returned with error #%d" @@ -18445,9 +18426,8 @@ msgid "Invalid filename! Android APK requires the *.apk extension." msgstr "æ— æ•ˆæ–‡ä»¶åï¼Android APK 必须有 *.apk 扩展。" #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Unsupported export format!" -msgstr "䏿”¯æŒçš„å¯¼å‡ºæ ¼å¼ï¼\n" +msgstr "䏿”¯æŒçš„å¯¼å‡ºæ ¼å¼ï¼" #: platform/android/export/export_plugin.cpp msgid "" @@ -18457,26 +18437,21 @@ msgstr "" "å°è¯•ä»Žè‡ªå®šä¹‰æž„å»ºçš„æ¨¡æ¿æž„建,但是ä¸å˜åœ¨å…¶ç‰ˆæœ¬ä¿¡æ¯ã€‚请从“项目â€èœå•ä¸é‡æ–°å®‰è£…。" #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "" "Android build version mismatch: Template installed: %s, Godot version: %s. " "Please reinstall Android build template from 'Project' menu." msgstr "" -"Android 构建版本ä¸åŒ¹é…:\n" -" 安装的模æ¿ï¼š%s\n" -" Godot 版本:%s\n" -"请从“项目â€èœå•ä¸é‡æ–°å®‰è£… Android 构建模æ¿ã€‚" +"Android 构建版本ä¸åŒ¹é…:安装的模æ¿ï¼š%s,Godot 版本:%s。请从“项目â€èœå•ä¸é‡æ–°" +"安装 Android 构建模æ¿ã€‚" #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "" "Unable to overwrite res://android/build/res/*.xml files with project name." -msgstr "æ— æ³•ä½¿ç”¨é¡¹ç›®å称覆盖 res://android/build/res/*.xml 文件" +msgstr "æ— æ³•ä½¿ç”¨é¡¹ç›®å称覆盖 res://android/build/res/*.xml 文件。" #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Could not export project files to gradle project." -msgstr "æ— æ³•å°†é¡¹ç›®æ–‡ä»¶å¯¼å‡ºè‡³ gradle 项目\n" +msgstr "æ— æ³•å°†é¡¹ç›®æ–‡ä»¶å¯¼å‡ºè‡³ gradle 项目。" #: platform/android/export/export_plugin.cpp msgid "Could not write expansion package file!" @@ -18487,13 +18462,12 @@ msgid "Building Android Project (gradle)" msgstr "构建 Android 项目 (Gradle)" #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "" "Building of Android project failed, check output for the error. " "Alternatively visit docs.godotengine.org for Android build documentation." msgstr "" -"Android é¡¹ç›®æž„å»ºå¤±è´¥ï¼Œè¯·æ£€æŸ¥è¾“å‡ºä¸æ˜¾ç¤ºçš„错误。\n" -"也å¯ä»¥è®¿é—® docs.godotengine.org 查看 Android 构建文档。" +"Android é¡¹ç›®æž„å»ºå¤±è´¥ï¼Œè¯·æ£€æŸ¥è¾“å‡ºä¸æ˜¾ç¤ºçš„错误。也å¯ä»¥è®¿é—® docs.godotengine." +"org 查看 Android 构建文档。" #: platform/android/export/export_plugin.cpp msgid "Moving output" @@ -18506,39 +18480,33 @@ msgid "" msgstr "æ— æ³•å¤åˆ¶ä¸Žæ›´å导出文件,请在 Gradle 项目文件夹内确认输出。" #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Package not found: \"%s\"." -msgstr "包ä¸å˜åœ¨ï¼š%s" +msgstr "包ä¸å˜åœ¨ï¼šâ€œ%sâ€ã€‚" #: platform/android/export/export_plugin.cpp msgid "Creating APK..." msgstr "æ£åœ¨åˆ›å»º APK……" #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Could not find template APK to export: \"%s\"." -msgstr "" -"找ä¸åˆ°å¯¼å‡ºæ¨¡æ¿ APK:\n" -"%s" +msgstr "找ä¸åˆ°å¯¼å‡ºæ¨¡æ¿ APK:“%sâ€ã€‚" #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "" "Missing libraries in the export template for the selected architectures: %s. " "Please build a template with all required libraries, or uncheck the missing " "architectures in the export preset." msgstr "" -"导出模æ¿ç¼ºå¤±æ‰€é€‰æž¶æž„的库:%s。\n" -"请使用全部所需的库构建模æ¿ï¼Œæˆ–者在导出预设ä¸å–消对缺失架构的选择。" +"导出模æ¿ç¼ºå¤±æ‰€é€‰æž¶æž„的库:%s。请使用全部所需的库构建模æ¿ï¼Œæˆ–者在导出预设ä¸å–" +"消对缺失架构的选择。" #: platform/android/export/export_plugin.cpp msgid "Adding files..." msgstr "æ£åœ¨æ·»åŠ æ–‡ä»¶â€¦â€¦" #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Could not export project files." -msgstr "æ— æ³•å¯¼å‡ºé¡¹ç›®æ–‡ä»¶" +msgstr "æ— æ³•å¯¼å‡ºé¡¹ç›®æ–‡ä»¶ã€‚" #: platform/android/export/export_plugin.cpp msgid "Aligning APK..." @@ -18763,14 +18731,12 @@ msgstr "自定义背景色" #: platform/iphone/export/export.cpp platform/javascript/export/export.cpp #: platform/osx/export/export.cpp -#, fuzzy msgid "Prepare Templates" -msgstr "ç®¡ç†æ¨¡æ¿" +msgstr "准备模æ¿" #: platform/iphone/export/export.cpp platform/osx/export/export.cpp -#, fuzzy msgid "Export template not found." -msgstr "找ä¸åˆ°è‡ªå®šä¹‰å‘布模æ¿ã€‚" +msgstr "找ä¸åˆ°å¯¼å‡ºæ¨¡æ¿ã€‚" #: platform/iphone/export/export.cpp msgid "App Store Team ID not specified - cannot configure the project." @@ -18793,33 +18759,28 @@ msgid "Run exported HTML in the system's default browser." msgstr "使用默认æµè§ˆå™¨æ‰“开导出的 HTML 文件。" #: platform/javascript/export/export.cpp -#, fuzzy msgid "Could not open template for export: \"%s\"." -msgstr "æ— æ³•æ‰“å¼€å¯¼å‡ºæ¨¡æ¿ï¼š" +msgstr "æ— æ³•æ‰“å¼€å¯¼å‡ºæ¨¡æ¿ï¼šâ€œ%sâ€ã€‚" #: platform/javascript/export/export.cpp -#, fuzzy msgid "Invalid export template: \"%s\"." -msgstr "å¯¼å‡ºæ¨¡æ¿æ— 效:" +msgstr "å¯¼å‡ºæ¨¡æ¿æ— 效:“%sâ€ã€‚" #: platform/javascript/export/export.cpp -#, fuzzy msgid "Could not write file: \"%s\"." -msgstr "æ— æ³•å†™å…¥æ–‡ä»¶:" +msgstr "æ— æ³•å†™å…¥æ–‡ä»¶ï¼šâ€œ%sâ€ã€‚" #: platform/javascript/export/export.cpp platform/osx/export/export.cpp -#, fuzzy msgid "Icon Creation" -msgstr "å›¾æ ‡è¾¹è·" +msgstr "å›¾æ ‡åˆ›å»º" #: platform/javascript/export/export.cpp -#, fuzzy msgid "Could not read file: \"%s\"." -msgstr "æ— æ³•è¯»å–æ–‡ä»¶ï¼š" +msgstr "æ— æ³•è¯»å–æ–‡ä»¶ï¼šâ€œ%sâ€ã€‚" #: platform/javascript/export/export.cpp msgid "PWA" -msgstr "" +msgstr "PWA" #: platform/javascript/export/export.cpp msgid "Variant" @@ -18890,19 +18851,16 @@ msgid "Icon 512 X 512" msgstr "å›¾æ ‡ 512×512" #: platform/javascript/export/export.cpp -#, fuzzy msgid "Could not read HTML shell: \"%s\"." -msgstr "æ— æ³•è¯»å– HTML 壳:" +msgstr "æ— æ³•è¯»å– HTML 壳:“%sâ€ã€‚" #: platform/javascript/export/export.cpp -#, fuzzy msgid "Could not create HTTP server directory: %s." -msgstr "æ— æ³•åˆ›å»º HTTP æœåŠ¡å™¨ç›®å½•ï¼š" +msgstr "æ— æ³•åˆ›å»º HTTP æœåŠ¡å™¨ç›®å½•ï¼š%s。" #: platform/javascript/export/export.cpp -#, fuzzy msgid "Error starting HTTP server: %d." -msgstr "å¯åЍ HTTP æœåŠ¡å™¨æ—¶å‡ºé”™ï¼š" +msgstr "å¯åЍ HTTP æœåŠ¡å™¨æ—¶å‡ºé”™ï¼š%d。" #: platform/javascript/export/export.cpp msgid "Web" @@ -19166,30 +19124,26 @@ msgid "Apple Team ID" msgstr "Apple 团队 ID" #: platform/osx/export/export.cpp -#, fuzzy msgid "Could not open icon file \"%s\"." -msgstr "æ— æ³•å¯¼å‡ºé¡¹ç›®æ–‡ä»¶" +msgstr "æ— æ³•æ‰“å¼€å›¾æ ‡æ–‡ä»¶â€œ%sâ€ã€‚" #: platform/osx/export/export.cpp -#, fuzzy msgid "Could not start xcrun executable." -msgstr "æ— æ³•å¯åЍå进程ï¼" +msgstr "æ— æ³•å¯åЍ xcrun 坿‰§è¡Œæ–‡ä»¶ã€‚" #: platform/osx/export/export.cpp -#, fuzzy msgid "Notarization failed." -msgstr "å…¬è¯" +msgstr "å…¬è¯å¤±è´¥ã€‚" #: platform/osx/export/export.cpp msgid "Notarization request UUID: \"%s\"" -msgstr "" +msgstr "å…¬è¯è¯·æ±‚ UUID:“%sâ€" #: platform/osx/export/export.cpp -#, fuzzy msgid "" "The notarization process generally takes less than an hour. When the process " "is completed, you'll receive an email." -msgstr "注æ„:公è¯è¿‡ç¨‹é€šå¸¸å°‘äºŽä¸€ä¸ªå°æ—¶ã€‚过程结æŸåŽï¼Œä½ 会收到一å°é‚®ä»¶ã€‚" +msgstr "å…¬è¯è¿‡ç¨‹é€šå¸¸å°‘äºŽä¸€ä¸ªå°æ—¶ã€‚过程结æŸåŽï¼Œä½ 会收到一å°é‚®ä»¶ã€‚" #: platform/osx/export/export.cpp msgid "" @@ -19204,75 +19158,67 @@ msgid "" msgstr "è¿è¡Œä»¥ä¸‹å‘½ä»¤å°†å…¬è¯ç¥¨è¯è£…订到导出的应用ä¸ï¼ˆå¯é€‰ï¼‰ï¼š" #: platform/osx/export/export.cpp -#, fuzzy msgid "Timestamping is not compatible with ad-hoc signature, and was disabled!" -msgstr "时间戳è¿è¡Œæ—¶çŽ¯å¢ƒä¸Ž Ad-hoc ç¾åä¸å…¼å®¹ï¼Œå°†è¢«ç¦ç”¨ï¼" +msgstr "æ·»åŠ æ—¶é—´æˆ³ä¸Ž Ad-hoc ç¾åä¸å…¼å®¹ï¼Œå·²è¢«ç¦ç”¨ï¼" #: platform/osx/export/export.cpp -#, fuzzy msgid "" "Hardened Runtime is not compatible with ad-hoc signature, and was disabled!" -msgstr "åŠ å›ºè¿è¡Œæ—¶çŽ¯å¢ƒä¸Ž Ad-hoc ç¾åä¸å…¼å®¹ï¼Œå°†è¢«ç¦ç”¨ï¼" +msgstr "åŠ å›ºè¿è¡Œæ—¶çŽ¯å¢ƒä¸Ž Ad-hoc ç¾åä¸å…¼å®¹ï¼Œå·²è¢«ç¦ç”¨ï¼" #: platform/osx/export/export.cpp msgid "Built-in CodeSign failed with error \"%s\"." -msgstr "" +msgstr "内置 CodeSign 失败,错误为“%sâ€ã€‚" #: platform/osx/export/export.cpp msgid "Built-in CodeSign require regex module." -msgstr "" +msgstr "内置 CodeSign éœ€è¦ regex 模å—。" #: platform/osx/export/export.cpp msgid "" "Could not start codesign executable, make sure Xcode command line tools are " "installed." -msgstr "" +msgstr "æ— æ³•å¯åЍ codesign 坿‰§è¡Œæ–‡ä»¶ï¼Œè¯·ç¡®ä¿å·²å®‰è£… Xcode 命令行工具。" #: platform/osx/export/export.cpp platform/windows/export/export.cpp msgid "No identity found." msgstr "没有找到身份。" #: platform/osx/export/export.cpp -#, fuzzy msgid "Cannot sign file %s." -msgstr "ä¿å˜æ–‡ä»¶æ—¶å‡ºé”™ï¼š%s" +msgstr "æ— æ³•ç¾å文件 %s。" #: platform/osx/export/export.cpp -#, fuzzy msgid "Relative symlinks are not supported, exported \"%s\" might be broken!" -msgstr "该æ“ä½œç³»ç»Ÿä¸Šä¸æ”¯æŒç›¸å¯¹ç¬¦å·é“¾æŽ¥ï¼Œå¯¼å‡ºçš„项目å¯èƒ½æŸåï¼" +msgstr "䏿”¯æŒç›¸å¯¹ç¬¦å·é“¾æŽ¥ï¼Œå¯¼å‡ºçš„“%sâ€å¯èƒ½æŸåï¼" #: platform/osx/export/export.cpp -#, fuzzy msgid "DMG Creation" -msgstr "æ–¹å‘" +msgstr "DMG 创建" #: platform/osx/export/export.cpp -#, fuzzy msgid "Could not start hdiutil executable." -msgstr "æ— æ³•å¯åЍå进程ï¼" +msgstr "æ— æ³•å¯åЍ hdiutil 坿‰§è¡Œæ–‡ä»¶ã€‚" #: platform/osx/export/export.cpp msgid "`hdiutil create` failed - file exists." -msgstr "" +msgstr "`hdiutil create` 失败 - 文件已å˜åœ¨ã€‚" #: platform/osx/export/export.cpp msgid "`hdiutil create` failed." -msgstr "" +msgstr "`hdiutil create` 失败。" #: platform/osx/export/export.cpp msgid "Creating app bundle" msgstr "æ£åœ¨åˆ›å»ºåº”用æ†ç»‘包" #: platform/osx/export/export.cpp -#, fuzzy msgid "Could not find template app to export: \"%s\"." -msgstr "æ— æ³•æ‰¾åˆ°å¯¼å‡ºçš„æ¨¡æ¿åº”用:" +msgstr "æ— æ³•æ‰¾åˆ°å¯¼å‡ºçš„æ¨¡æ¿åº”用:“%sâ€ã€‚" #: platform/osx/export/export.cpp -#, fuzzy msgid "Invalid export format." -msgstr "å¯¼å‡ºæ¨¡æ¿æ— 效:" +msgstr "å¯¼å‡ºæ ¼å¼æ— 效。" #: platform/osx/export/export.cpp msgid "" @@ -19281,11 +19227,10 @@ msgid "" msgstr "该æ“ä½œç³»ç»Ÿä¸Šä¸æ”¯æŒç›¸å¯¹ç¬¦å·é“¾æŽ¥ï¼Œå¯¼å‡ºçš„项目å¯èƒ½æŸåï¼" #: platform/osx/export/export.cpp -#, fuzzy msgid "" "Requested template binary \"%s\" not found. It might be missing from your " "template archive." -msgstr "未找到请求的二进制模æ¿â€œ%sâ€ã€‚ä½ çš„æ¨¡æ¿å½’æ¡£ä¸å¯èƒ½ç¼ºå¤±è¯¥æ–‡ä»¶ã€‚" +msgstr "未找到请求的模æ¿äºŒè¿›åˆ¶æ–‡ä»¶â€œ%sâ€ã€‚ä½ çš„æ¨¡æ¿å½’æ¡£ä¸å¯èƒ½ç¼ºå¤±è¯¥æ–‡ä»¶ã€‚" #: platform/osx/export/export.cpp msgid "Making PKG" @@ -19324,14 +19269,12 @@ msgid "Sending archive for notarization" msgstr "æ£åœ¨å‘é€å½’档进行公è¯" #: platform/osx/export/export.cpp -#, fuzzy msgid "ZIP Creation" -msgstr "投影" +msgstr "ZIP 创建" #: platform/osx/export/export.cpp -#, fuzzy msgid "Could not open file to read from path \"%s\"." -msgstr "æ— æ³•å°†é¡¹ç›®æ–‡ä»¶å¯¼å‡ºè‡³ gradle 项目\n" +msgstr "æ— æ³•æ‰“å¼€ä½äºŽâ€œ%sâ€çš„æ–‡ä»¶è¿›è¡Œè¯»å–。" #: platform/osx/export/export.cpp msgid "Invalid bundle identifier:" @@ -19638,9 +19581,8 @@ msgid "Debug Algorithm" msgstr "调试算法" #: platform/windows/export/export.cpp -#, fuzzy msgid "Failed to rename temporary file \"%s\"." -msgstr "æ— æ³•ç§»é™¤ä¸´æ—¶æ–‡ä»¶ï¼š" +msgstr "é‡å‘½å临时文件“%sâ€å¤±è´¥ã€‚" #: platform/windows/export/export.cpp msgid "Identity Type" @@ -19683,74 +19625,68 @@ msgid "Trademarks" msgstr "å•†æ ‡" #: platform/windows/export/export.cpp -#, fuzzy msgid "Resources Modification" -msgstr "推é€é€šçŸ¥" +msgstr "资æºä¿®æ”¹" #: platform/windows/export/export.cpp -#, fuzzy msgid "Could not find rcedit executable at \"%s\"." -msgstr "找ä¸åˆ°å¯†é’¥åº“ï¼Œæ— æ³•å¯¼å‡ºã€‚" +msgstr "æ— æ³•åœ¨â€œ%sâ€æ‰¾åˆ° rcedit 坿‰§è¡Œæ–‡ä»¶ã€‚" #: platform/windows/export/export.cpp -#, fuzzy msgid "Could not find wine executable at \"%s\"." -msgstr "找ä¸åˆ°å¯†é’¥åº“ï¼Œæ— æ³•å¯¼å‡ºã€‚" +msgstr "æ— æ³•åœ¨â€œ%sâ€æ‰¾åˆ° wine 坿‰§è¡Œæ–‡ä»¶ã€‚" #: platform/windows/export/export.cpp -#, fuzzy msgid "" "Could not start rcedit executable, configure rcedit path in the Editor " "Settings (Export > Windows > Rcedit)." msgstr "" -"必须在编辑器设置ä¸é…ç½® rcedit 工具(Export > Windows > Rcedit)æ‰èƒ½ä¿®æ”¹å›¾æ ‡æˆ–" -"åº”ç”¨ä¿¡æ¯æ•°æ®ã€‚" +"æ— æ³•å¯åЍ rcedit 坿‰§è¡Œæ–‡ä»¶ï¼Œè¯·åœ¨ç¼–辑器设置ä¸é…ç½® rcedit 路径(导出 > Windows " +"> Rcedit)。" #: platform/windows/export/export.cpp msgid "" "rcedit failed to modify executable:\n" "%s" msgstr "" +"rcedit ä¿®æ”¹å¯æ‰§è¡Œæ–‡ä»¶å¤±è´¥ï¼š\n" +"%s" #: platform/windows/export/export.cpp -#, fuzzy msgid "Could not find signtool executable at \"%s\"." -msgstr "找ä¸åˆ°å¯†é’¥åº“ï¼Œæ— æ³•å¯¼å‡ºã€‚" +msgstr "æ— æ³•åœ¨â€œ%sâ€æ‰¾åˆ° signtool 坿‰§è¡Œæ–‡ä»¶ã€‚" #: platform/windows/export/export.cpp -#, fuzzy msgid "Could not find osslsigncode executable at \"%s\"." -msgstr "找ä¸åˆ°å¯†é’¥åº“ï¼Œæ— æ³•å¯¼å‡ºã€‚" +msgstr "æ— æ³•åœ¨â€œ%sâ€æ‰¾åˆ° osslsigncode 坿‰§è¡Œæ–‡ä»¶ã€‚" #: platform/windows/export/export.cpp -#, fuzzy msgid "Invalid identity type." -msgstr "身份类型" +msgstr "èº«ä»½ç±»åž‹æ— æ•ˆã€‚" #: platform/windows/export/export.cpp -#, fuzzy msgid "Invalid timestamp server." -msgstr "åç§°æ— æ•ˆã€‚" +msgstr "时间戳æœåŠ¡å™¨æ— æ•ˆã€‚" #: platform/windows/export/export.cpp -#, fuzzy msgid "" "Could not start signtool executable, configure signtool path in the Editor " "Settings (Export > Windows > Signtool)." msgstr "" -"必须在编辑器设置ä¸é…ç½® rcedit 工具(Export > Windows > Rcedit)æ‰èƒ½ä¿®æ”¹å›¾æ ‡æˆ–" -"åº”ç”¨ä¿¡æ¯æ•°æ®ã€‚" +"æ— æ³•å¯åЍ signtool 坿‰§è¡Œæ–‡ä»¶ï¼Œè¯·åœ¨ç¼–辑器设置ä¸é…ç½® signtool 路径(导出 > " +"Windows > Signtool)。" #: platform/windows/export/export.cpp msgid "" "Signtool failed to sign executable:\n" "%s" msgstr "" +"Signtool ç¾å坿‰§è¡Œæ–‡ä»¶å¤±è´¥ï¼š\n" +"%s" #: platform/windows/export/export.cpp -#, fuzzy msgid "Failed to remove temporary file \"%s\"." -msgstr "æ— æ³•ç§»é™¤ä¸´æ—¶æ–‡ä»¶ï¼š" +msgstr "移除临时文件“%sâ€å¤±è´¥ã€‚" #: platform/windows/export/export.cpp msgid "" @@ -19774,20 +19710,19 @@ msgstr "产å“ç‰ˆæœ¬æ— æ•ˆï¼š" #: platform/windows/export/export.cpp msgid "Windows executables cannot be >= 4 GiB." -msgstr "" +msgstr "Windows 坿‰§è¡Œæ–‡ä»¶ä¸èƒ½ >= 4GiB。" #: platform/windows/export/export.cpp platform/x11/export/export.cpp -#, fuzzy msgid "Failed to open executable file \"%s\"." -msgstr "坿‰§è¡Œæ–‡ä»¶æ— 效。" +msgstr "æ‰“å¼€å¯æ‰§è¡Œæ–‡ä»¶â€œ%sâ€å¤±è´¥ã€‚" #: platform/windows/export/export.cpp platform/x11/export/export.cpp msgid "Executable file header corrupted." -msgstr "" +msgstr "坿‰§è¡Œæ–‡ä»¶å¤´å·²æŸå。" #: platform/windows/export/export.cpp platform/x11/export/export.cpp msgid "Executable \"pck\" section not found." -msgstr "" +msgstr "坿‰§è¡Œæ–‡ä»¶â€œpckâ€åŒºæœªæ‰¾åˆ°ã€‚" #: platform/windows/export/export.cpp msgid "Windows" @@ -19807,7 +19742,7 @@ msgstr "Wine" #: platform/x11/export/export.cpp msgid "32-bit executables cannot have embedded data >= 4 GiB." -msgstr "" +msgstr "32 ä½å¯æ‰§è¡Œæ–‡ä»¶æ— 法内嵌 >= 4 GiB 的数æ®ã€‚" #: scene/2d/animated_sprite.cpp scene/3d/sprite_3d.cpp #: scene/resources/texture.cpp @@ -20684,14 +20619,12 @@ msgid "Navpoly" msgstr "导航多边形" #: scene/2d/navigation_polygon.cpp scene/3d/navigation_mesh_instance.cpp -#, fuzzy msgid "Enter Cost" -msgstr "底部居ä¸" +msgstr "进入消耗" #: scene/2d/navigation_polygon.cpp scene/3d/navigation_mesh_instance.cpp -#, fuzzy msgid "Travel Cost" -msgstr "行程" +msgstr "移动消耗" #: scene/2d/node_2d.cpp scene/2d/polygon_2d.cpp scene/3d/spatial.cpp #: scene/main/canvas_layer.cpp @@ -24162,14 +24095,12 @@ msgid "3D Physics" msgstr "3D 物ç†" #: scene/register_scene_types.cpp -#, fuzzy msgid "2D Navigation" -msgstr "导航" +msgstr "2D 导航" #: scene/register_scene_types.cpp -#, fuzzy msgid "3D Navigation" -msgstr "导航" +msgstr "3D 导航" #: scene/register_scene_types.cpp msgid "Use hiDPI" @@ -25455,14 +25386,12 @@ msgid "Visible Instance Count" msgstr "å¯è§å®žä¾‹æ•°" #: scene/resources/navigation_mesh.cpp -#, fuzzy msgid "Sampling" -msgstr "缩放:" +msgstr "é‡‡æ ·" #: scene/resources/navigation_mesh.cpp -#, fuzzy msgid "Partition Type" -msgstr "é‡‡æ ·åˆ†åŒºç±»åž‹" +msgstr "分区类型" #: scene/resources/navigation_mesh.cpp msgid "Parsed Geometry Type" @@ -25477,12 +25406,10 @@ msgid "Source Group Name" msgstr "æ¥æºåˆ†ç»„åç§°" #: scene/resources/navigation_mesh.cpp -#, fuzzy msgid "Cells" msgstr "å•å…ƒæ ¼" #: scene/resources/navigation_mesh.cpp -#, fuzzy msgid "Agents" msgstr "代ç†" @@ -25495,16 +25422,14 @@ msgid "Max Slope" msgstr "最大斜å¡" #: scene/resources/navigation_mesh.cpp -#, fuzzy msgid "Regions" -msgstr "区域" +msgstr "地区" #: scene/resources/navigation_mesh.cpp msgid "Merge Size" msgstr "åˆå¹¶å¤§å°" #: scene/resources/navigation_mesh.cpp -#, fuzzy msgid "Edges" msgstr "边界" @@ -25517,7 +25442,6 @@ msgid "Verts Per Poly" msgstr "æ¯å¤šè¾¹å½¢é¡¶ç‚¹æ•°" #: scene/resources/navigation_mesh.cpp -#, fuzzy msgid "Details" msgstr "细节" @@ -25538,9 +25462,8 @@ msgid "Ledge Spans" msgstr "凸å°èŒƒå›´" #: scene/resources/navigation_mesh.cpp -#, fuzzy msgid "Walkable Low Height Spans" -msgstr "过滤å¯è¡Œèµ°ä½Žé«˜åº¦èŒƒå›´" +msgstr "å¯è¡Œèµ°ä½Žé«˜åº¦èŒƒå›´" #: scene/resources/occluder_shape.cpp msgid "Spheres" @@ -25897,9 +25820,8 @@ msgid "Scenario" msgstr "场景" #: scene/resources/world.cpp scene/resources/world_2d.cpp -#, fuzzy msgid "Navigation Map" -msgstr "导航" +msgstr "导航地图" #: scene/resources/world.cpp scene/resources/world_2d.cpp msgid "Direct Space State" @@ -25918,24 +25840,20 @@ msgid "Default Angular Damp" msgstr "默认角度阻尼" #: scene/resources/world.cpp -#, fuzzy msgid "Default Map Up" -msgstr "默认浮点数æ¥é•¿" +msgstr "默认地图上方" #: scene/resources/world.cpp scene/resources/world_2d.cpp -#, fuzzy msgid "Default Cell Size" -msgstr "å•å…ƒæ ¼å¤§å°" +msgstr "默认å•å…ƒæ ¼å¤§å°" #: scene/resources/world.cpp scene/resources/world_2d.cpp -#, fuzzy msgid "Default Cell Height" -msgstr "å•å…ƒæ ¼é«˜åº¦" +msgstr "默认å•å…ƒæ ¼é«˜åº¦" #: scene/resources/world.cpp scene/resources/world_2d.cpp -#, fuzzy msgid "Default Edge Connection Margin" -msgstr "边界连接边è·" +msgstr "默认边界连接边è·" #: scene/resources/world_2d.cpp msgid "Canvas" diff --git a/editor/translations/zh_HK.po b/editor/translations/zh_HK.po index 898b29af95..01c72c6ee1 100644 --- a/editor/translations/zh_HK.po +++ b/editor/translations/zh_HK.po @@ -676,6 +676,11 @@ msgid "Main Run Args" msgstr "" #: core/project_settings.cpp +#, fuzzy +msgid "Scene Naming" +msgstr "å ´æ™¯è·¯å¾‘:" + +#: core/project_settings.cpp msgid "Search In File Extensions" msgstr "" @@ -683,20 +688,15 @@ msgstr "" msgid "Script Templates Search Path" msgstr "" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp +#: core/project_settings.cpp #, fuzzy -msgid "Version Control" +msgid "Version Control Autoload On Startup" msgstr "版本:" #: core/project_settings.cpp -msgid "Autoload On Startup" -msgstr "" - -#: core/project_settings.cpp #, fuzzy -msgid "Plugin Name" -msgstr "æ’件列表:" +msgid "Version Control Plugin Name" +msgstr "版本:" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -2885,7 +2885,7 @@ msgid "Completed with errors." msgstr "複製路徑" #: editor/editor_export.cpp -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "" #: editor/editor_export.cpp @@ -4408,15 +4408,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "å ´æ™¯" - -#: editor/editor_node.cpp -#, fuzzy -msgid "Scene Naming" -msgstr "å ´æ™¯è·¯å¾‘:" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp msgid "Interface" @@ -4544,6 +4535,11 @@ msgstr "" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp #, fuzzy +msgid "Version Control" +msgstr "版本:" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +#, fuzzy msgid "Username" msgstr "釿–°å‘½å" @@ -4573,6 +4569,10 @@ msgstr "" msgid "Add a new scene." msgstr "新增軌迹" +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "å ´æ™¯" + #: editor/editor_node.cpp #, fuzzy msgid "Go to previously opened scene." diff --git a/editor/translations/zh_TW.po b/editor/translations/zh_TW.po index eb229cb9fa..be888529cc 100644 --- a/editor/translations/zh_TW.po +++ b/editor/translations/zh_TW.po @@ -689,6 +689,11 @@ msgstr "主執行引數" #: core/project_settings.cpp #, fuzzy +msgid "Scene Naming" +msgstr "å ´æ™¯è·¯å¾‘ï¼š" + +#: core/project_settings.cpp +#, fuzzy msgid "Search In File Extensions" msgstr "ä»¥å‰¯æª”åæœå°‹" @@ -696,18 +701,15 @@ msgstr "ä»¥å‰¯æª”åæœå°‹" msgid "Script Templates Search Path" msgstr "è…³æœ¬æ¨£æ¿æœå°‹è·¯å¾‘" -#: core/project_settings.cpp editor/editor_node.cpp -#: editor/plugins/version_control_editor_plugin.cpp -msgid "Version Control" -msgstr "版本控制" - #: core/project_settings.cpp -msgid "Autoload On Startup" +#, fuzzy +msgid "Version Control Autoload On Startup" msgstr "啟動時自動載入" #: core/project_settings.cpp -msgid "Plugin Name" -msgstr "外掛å稱" +#, fuzzy +msgid "Version Control Plugin Name" +msgstr "版本控制" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -2827,7 +2829,7 @@ msgstr "複製節點路徑" #: editor/editor_export.cpp #, fuzzy -msgid "Completed sucessfully." +msgid "Completed successfully." msgstr "å¥—ä»¶å®‰è£æˆåŠŸï¼" #: editor/editor_export.cpp @@ -4315,15 +4317,6 @@ msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "無法寫入檔案'%s',該檔案æ£è¢«ä½¿ç”¨ã€éŽ–å®šæˆ–å› æ¬Šé™ä¸è¶³ã€‚" -#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp -msgid "Scene" -msgstr "å ´æ™¯" - -#: editor/editor_node.cpp -#, fuzzy -msgid "Scene Naming" -msgstr "å ´æ™¯è·¯å¾‘ï¼š" - #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp #, fuzzy @@ -4454,6 +4447,10 @@ msgid "Default Color Picker Mode" msgstr "é è¨é¡è‰²æŒ‘é¸å™¨æ¨¡å¼" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "版本控制" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Username" msgstr "釿–°å‘½å" @@ -4482,6 +4479,10 @@ msgstr "切æ›ï¼å–消專注模å¼ã€‚" msgid "Add a new scene." msgstr "æ–°å¢žå ´æ™¯ã€‚" +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "å ´æ™¯" + #: editor/editor_node.cpp msgid "Go to previously opened scene." msgstr "è·³è‡³ä¸Šä¸€å€‹é–‹å•Ÿçš„å ´æ™¯ã€‚" diff --git a/misc/scripts/codespell.sh b/misc/scripts/codespell.sh index f99c5d22b2..f99c5d22b2 100644..100755 --- a/misc/scripts/codespell.sh +++ b/misc/scripts/codespell.sh diff --git a/modules/gdscript/gdscript.cpp b/modules/gdscript/gdscript.cpp index 64258ee8d3..617db883f8 100644 --- a/modules/gdscript/gdscript.cpp +++ b/modules/gdscript/gdscript.cpp @@ -62,7 +62,7 @@ GDScriptNativeClass::GDScriptNativeClass(const StringName &p_name) { bool GDScriptNativeClass::_get(const StringName &p_name, Variant &r_ret) const { bool ok; - int v = ClassDB::get_integer_constant(name, p_name, &ok); + int64_t v = ClassDB::get_integer_constant(name, p_name, &ok); if (ok) { r_ret = v; diff --git a/modules/gdscript/gdscript.h b/modules/gdscript/gdscript.h index 80f187a375..0057962d5e 100644 --- a/modules/gdscript/gdscript.h +++ b/modules/gdscript/gdscript.h @@ -368,7 +368,7 @@ public: if (_debug_call_stack_pos >= _debug_max_call_stack) { //stack overflow - _debug_error = "Stack Overflow (Stack Size: " + itos(_debug_max_call_stack) + ")"; + _debug_error = vformat("Stack overflow (stack size: %s). Check for infinite recursion in your script.", _debug_max_call_stack); EngineDebugger::get_script_debugger()->debug(this); return; } diff --git a/modules/gdscript/gdscript_analyzer.cpp b/modules/gdscript/gdscript_analyzer.cpp index a070d319f3..42b02ce3b9 100644 --- a/modules/gdscript/gdscript_analyzer.cpp +++ b/modules/gdscript/gdscript_analyzer.cpp @@ -2900,7 +2900,7 @@ void GDScriptAnalyzer::reduce_identifier_from_base(GDScriptParser::IdentifierNod return; } bool valid = false; - int int_constant = ClassDB::get_integer_constant(native, name, &valid); + int64_t int_constant = ClassDB::get_integer_constant(native, name, &valid); if (valid) { p_identifier->is_constant = true; p_identifier->reduced_value = int_constant; diff --git a/modules/gdscript/gdscript_compiler.cpp b/modules/gdscript/gdscript_compiler.cpp index b2cce9d8ee..25454030b1 100644 --- a/modules/gdscript/gdscript_compiler.cpp +++ b/modules/gdscript/gdscript_compiler.cpp @@ -312,7 +312,7 @@ GDScriptCodeGenerator::Address GDScriptCompiler::_parse_expression(CodeGen &code // Class C++ integer constant. if (nc) { bool success = false; - int constant = ClassDB::get_integer_constant(nc->get_name(), identifier, &success); + int64_t constant = ClassDB::get_integer_constant(nc->get_name(), identifier, &success); if (success) { return codegen.add_constant(constant); } diff --git a/modules/mono/class_db_api_json.cpp b/modules/mono/class_db_api_json.cpp index 3afde1e8d3..c4547b4323 100644 --- a/modules/mono/class_db_api_json.cpp +++ b/modules/mono/class_db_api_json.cpp @@ -124,7 +124,7 @@ void class_db_api_to_json(const String &p_output_file, ClassDB::APIType p_api) { List<StringName> snames; - for (const KeyValue<StringName, int> &F : t->constant_map) { + for (const KeyValue<StringName, int64_t> &F : t->constant_map) { snames.push_back(F.key); } diff --git a/modules/mono/editor/bindings_generator.cpp b/modules/mono/editor/bindings_generator.cpp index 960d2fe27c..9d3d481068 100644 --- a/modules/mono/editor/bindings_generator.cpp +++ b/modules/mono/editor/bindings_generator.cpp @@ -954,7 +954,7 @@ void BindingsGenerator::_generate_global_constants(StringBuilder &p_output) { } } - p_output.append(MEMBER_BEGIN "public const int "); + p_output.append(MEMBER_BEGIN "public const long "); p_output.append(iconstant.proxy_name); p_output.append(" = "); p_output.append(itos(iconstant.value)); @@ -992,6 +992,7 @@ void BindingsGenerator::_generate_global_constants(StringBuilder &p_output) { p_output.append("\n" INDENT1 "public enum "); p_output.append(enum_proxy_name); + p_output.append(" : long"); p_output.append("\n" INDENT1 OPEN_BLOCK); const ConstantInterface &last = ienum.constants.back()->get(); @@ -1417,7 +1418,7 @@ Error BindingsGenerator::_generate_cs_type(const TypeInterface &itype, const Str } } - output.append(MEMBER_BEGIN "public const int "); + output.append(MEMBER_BEGIN "public const long "); output.append(iconstant.proxy_name); output.append(" = "); output.append(itos(iconstant.value)); @@ -1435,6 +1436,7 @@ Error BindingsGenerator::_generate_cs_type(const TypeInterface &itype, const Str output.append(MEMBER_BEGIN "public enum "); output.append(ienum.cname.operator String()); + output.append(" : long"); output.append(MEMBER_BEGIN OPEN_BLOCK); const ConstantInterface &last = ienum.constants.back()->get(); @@ -3088,7 +3090,7 @@ bool BindingsGenerator::_populate_object_type_interfaces() { const List<StringName> &enum_constants = E.value; for (const StringName &constant_cname : enum_constants) { String constant_name = constant_cname.operator String(); - int *value = class_info->constant_map.getptr(constant_cname); + int64_t *value = class_info->constant_map.getptr(constant_cname); ERR_FAIL_NULL_V(value, false); constants.erase(constant_name); @@ -3123,7 +3125,7 @@ bool BindingsGenerator::_populate_object_type_interfaces() { } for (const String &constant_name : constants) { - int *value = class_info->constant_map.getptr(StringName(constant_name)); + int64_t *value = class_info->constant_map.getptr(StringName(constant_name)); ERR_FAIL_NULL_V(value, false); ConstantInterface iconstant(constant_name, snake_to_pascal_case(constant_name, true), *value); @@ -3666,7 +3668,7 @@ void BindingsGenerator::_populate_global_constants() { } } - int constant_value = CoreConstants::get_global_constant_value(i); + int64_t constant_value = CoreConstants::get_global_constant_value(i); StringName enum_name = CoreConstants::get_global_constant_enum(i); ConstantInterface iconstant(constant_name, snake_to_pascal_case(constant_name, true), constant_value); diff --git a/modules/mono/editor/bindings_generator.h b/modules/mono/editor/bindings_generator.h index f0ba2b18e4..70c4f12146 100644 --- a/modules/mono/editor/bindings_generator.h +++ b/modules/mono/editor/bindings_generator.h @@ -45,12 +45,12 @@ class BindingsGenerator { struct ConstantInterface { String name; String proxy_name; - int value = 0; + int64_t value = 0; const DocData::ConstantDoc *const_doc; ConstantInterface() {} - ConstantInterface(const String &p_name, const String &p_proxy_name, int p_value) { + ConstantInterface(const String &p_name, const String &p_proxy_name, int64_t p_value) { name = p_name; proxy_name = p_proxy_name; value = p_value; diff --git a/modules/mono/utils/string_utils.cpp b/modules/mono/utils/string_utils.cpp index e6975611d2..64b68b70af 100644 --- a/modules/mono/utils/string_utils.cpp +++ b/modules/mono/utils/string_utils.cpp @@ -145,7 +145,7 @@ bool is_csharp_keyword(const String &p_name) { p_name == "do" || p_name == "double" || p_name == "else" || p_name == "enum" || p_name == "event" || p_name == "explicit" || p_name == "extern" || p_name == "false" || p_name == "finally" || p_name == "fixed" || p_name == "float" || p_name == "for" || - p_name == "forech" || p_name == "goto" || p_name == "if" || p_name == "implicit" || + p_name == "foreach" || p_name == "goto" || p_name == "if" || p_name == "implicit" || p_name == "in" || p_name == "int" || p_name == "interface" || p_name == "internal" || p_name == "is" || p_name == "lock" || p_name == "long" || p_name == "namespace" || p_name == "new" || p_name == "null" || p_name == "object" || p_name == "operator" || diff --git a/modules/visual_script/visual_script.cpp b/modules/visual_script/visual_script.cpp index 30b64d0a7b..c4fafb6676 100644 --- a/modules/visual_script/visual_script.cpp +++ b/modules/visual_script/visual_script.cpp @@ -1582,7 +1582,7 @@ Variant VisualScriptInstance::_call_internal(const StringName &p_method, void *p if (!found) { r_error.error = Callable::CallError::CALL_ERROR_INVALID_METHOD; - error_str = RTR("Found sequence bit but not the node in the stack, report bug!"); + error_str = RTR("Found sequence bit but not the node in the stack (please report)."); error = true; break; } @@ -1594,7 +1594,7 @@ Variant VisualScriptInstance::_call_internal(const StringName &p_method, void *p // Check for stack overflow. if (flow_stack_pos + 1 >= flow_max) { r_error.error = Callable::CallError::CALL_ERROR_INVALID_METHOD; - error_str = RTR("Stack overflow with stack depth:") + " " + itos(output); + error_str = vformat(RTR("Stack overflow (stack size: %s). Check for infinite recursion in your script."), output); error = true; break; } diff --git a/modules/visual_script/visual_script.h b/modules/visual_script/visual_script.h index 0f3b8de3fc..c2e4d0e597 100644 --- a/modules/visual_script/visual_script.h +++ b/modules/visual_script/visual_script.h @@ -522,7 +522,7 @@ public: if (_debug_call_stack_pos >= _debug_max_call_stack) { // Stack overflow. - _debug_error = "Stack Overflow (Stack Size: " + itos(_debug_max_call_stack) + ")"; + _debug_error = vformat("Stack overflow (stack size: %s). Check for infinite recursion in your script.", _debug_max_call_stack); EngineDebugger::get_script_debugger()->debug(this); return; } @@ -545,7 +545,7 @@ public: } if (_debug_call_stack_pos == 0) { - _debug_error = "Stack Underflow (Engine Bug)"; + _debug_error = "Stack underflow (engine bug), please report."; EngineDebugger::get_script_debugger()->debug(this); return; } diff --git a/platform/linuxbsd/key_mapping_x11.cpp b/platform/linuxbsd/key_mapping_x11.cpp index afe965e038..047ee74671 100644 --- a/platform/linuxbsd/key_mapping_x11.cpp +++ b/platform/linuxbsd/key_mapping_x11.cpp @@ -135,6 +135,25 @@ static _XTranslatePair _xkeysym_to_keycode[] = { { XK_F14, Key::F14 }, { XK_F15, Key::F15 }, { XK_F16, Key::F16 }, + { XK_F17, Key::F17 }, + { XK_F18, Key::F18 }, + { XK_F19, Key::F19 }, + { XK_F20, Key::F20 }, + { XK_F21, Key::F21 }, + { XK_F22, Key::F22 }, + { XK_F23, Key::F23 }, + { XK_F24, Key::F24 }, + { XK_F25, Key::F25 }, + { XK_F26, Key::F26 }, + { XK_F27, Key::F27 }, + { XK_F28, Key::F28 }, + { XK_F29, Key::F29 }, + { XK_F30, Key::F30 }, + { XK_F31, Key::F31 }, + { XK_F32, Key::F32 }, + { XK_F33, Key::F33 }, + { XK_F34, Key::F34 }, + { XK_F35, Key::F35 }, // media keys { XF86XK_Back, Key::BACK }, @@ -294,6 +313,29 @@ static _TranslatePair _scancode_to_keycode[] = { { Key::SUPER_L, 0x85 }, { Key::SUPER_R, 0x86 }, { Key::MENU, 0x87 }, + { Key::F13, 0xBF }, + { Key::F14, 0xC0 }, + { Key::F15, 0xC1 }, + { Key::F16, 0xC2 }, + { Key::F17, 0xC3 }, + { Key::F18, 0xC4 }, + { Key::F19, 0xC5 }, + { Key::F20, 0xC6 }, + { Key::F21, 0xC7 }, + { Key::F22, 0xC8 }, + { Key::F23, 0xC9 }, + { Key::F24, 0xCA }, + { Key::F25, 0xCB }, + { Key::F26, 0xCC }, + { Key::F27, 0xCD }, + { Key::F28, 0xCE }, + { Key::F29, 0xCF }, + { Key::F30, 0xD0 }, + { Key::F31, 0xD1 }, + { Key::F32, 0xD2 }, + { Key::F33, 0xD3 }, + { Key::F34, 0xD4 }, + { Key::F35, 0xD5 }, { Key::UNKNOWN, 0 } }; diff --git a/platform/osx/key_mapping_osx.mm b/platform/osx/key_mapping_osx.mm index bfec45de58..0bf6bc7d1c 100644 --- a/platform/osx/key_mapping_osx.mm +++ b/platform/osx/key_mapping_osx.mm @@ -130,7 +130,7 @@ static const Key _osx_to_godot_table[128] = { /* 3d */ Key::ALT, /* 3e */ Key::CTRL, /* 3f */ Key::UNKNOWN, /* Function */ - /* 40 */ Key::UNKNOWN, /* F17 */ + /* 40 */ Key::F17, /* 41 */ Key::KP_PERIOD, /* 42 */ Key::UNKNOWN, /* 43 */ Key::KP_MULTIPLY, @@ -145,8 +145,8 @@ static const Key _osx_to_godot_table[128] = { /* 4c */ Key::KP_ENTER, /* 4d */ Key::UNKNOWN, /* 4e */ Key::KP_SUBTRACT, - /* 4f */ Key::UNKNOWN, /* F18 */ - /* 50 */ Key::UNKNOWN, /* F19 */ + /* 4f */ Key::F18, + /* 50 */ Key::F19, /* 51 */ Key::EQUAL, /* KeypadEqual */ /* 52 */ Key::KP_0, /* 53 */ Key::KP_1, @@ -156,7 +156,7 @@ static const Key _osx_to_godot_table[128] = { /* 57 */ Key::KP_5, /* 58 */ Key::KP_6, /* 59 */ Key::KP_7, - /* 5a */ Key::UNKNOWN, /* F20 */ + /* 5a */ Key::F20, /* 5b */ Key::KP_8, /* 5c */ Key::KP_9, /* 5d */ Key::YEN, /* JIS Yen */ @@ -366,7 +366,26 @@ static const _KeyCodeText _native_keycodes[] = { {Key::F13 ,NSF13FunctionKey}, {Key::F14 ,NSF14FunctionKey}, {Key::F15 ,NSF15FunctionKey}, - {Key::F16 ,NSF16FunctionKey}, //* ... NSF35FunctionKey */ + {Key::F16 ,NSF16FunctionKey}, + {Key::F17 ,NSF17FunctionKey}, + {Key::F18 ,NSF18FunctionKey}, + {Key::F19 ,NSF19FunctionKey}, + {Key::F20 ,NSF20FunctionKey}, + {Key::F21 ,NSF21FunctionKey}, + {Key::F22 ,NSF22FunctionKey}, + {Key::F23 ,NSF23FunctionKey}, + {Key::F24 ,NSF24FunctionKey}, + {Key::F25 ,NSF25FunctionKey}, + {Key::F26 ,NSF26FunctionKey}, + {Key::F27 ,NSF27FunctionKey}, + {Key::F28 ,NSF28FunctionKey}, + {Key::F29 ,NSF29FunctionKey}, + {Key::F30 ,NSF30FunctionKey}, + {Key::F31 ,NSF31FunctionKey}, + {Key::F32 ,NSF32FunctionKey}, + {Key::F33 ,NSF33FunctionKey}, + {Key::F34 ,NSF34FunctionKey}, + {Key::F35 ,NSF35FunctionKey}, {Key::MENU ,NSMenuFunctionKey}, {Key::HELP ,NSHelpFunctionKey}, {Key::STOP ,NSStopFunctionKey}, diff --git a/platform/windows/key_mapping_windows.cpp b/platform/windows/key_mapping_windows.cpp index e32dc0d1a6..2d8d68a575 100644 --- a/platform/windows/key_mapping_windows.cpp +++ b/platform/windows/key_mapping_windows.cpp @@ -179,7 +179,14 @@ static _WinTranslatePair _vk_to_keycode[] = { { Key::F14, VK_F14 }, // (0x7D) { Key::F15, VK_F15 }, // (0x7E) { Key::F16, VK_F16 }, // (0x7F) - // We have no mappings for F17-F24. (0x80-87) + { Key::F17, VK_F17 }, // (0x80) + { Key::F18, VK_F18 }, // (0x81) + { Key::F19, VK_F19 }, // (0x82) + { Key::F20, VK_F20 }, // (0x83) + { Key::F21, VK_F21 }, // (0x84) + { Key::F22, VK_F22 }, // (0x85) + { Key::F23, VK_F23 }, // (0x86) + { Key::F24, VK_F24 }, // (0x87) // 0x88-8F are reserved for UI navigation. { Key::NUMLOCK, VK_NUMLOCK }, // (0x90) { Key::SCROLLLOCK, VK_SCROLL }, // (0x91) @@ -409,6 +416,14 @@ static _WinTranslatePair _scancode_to_keycode[] = { { Key::F14, 0x65 }, { Key::F15, 0x66 }, { Key::F16, 0x67 }, + { Key::F17, 0x68 }, + { Key::F18, 0x69 }, + { Key::F19, 0x6A }, + { Key::F20, 0x6B }, + { Key::F21, 0x6C }, + { Key::F22, 0x6D }, + { Key::F23, 0x6E }, + { Key::F24, 0x76 }, { Key::UNKNOWN, 0 } }; diff --git a/scene/2d/audio_stream_player_2d.cpp b/scene/2d/audio_stream_player_2d.cpp index e7f1740f0b..eaab58c4ae 100644 --- a/scene/2d/audio_stream_player_2d.cpp +++ b/scene/2d/audio_stream_player_2d.cpp @@ -30,6 +30,7 @@ #include "audio_stream_player_2d.h" +#include "core/config/project_settings.h" #include "scene/2d/area_2d.h" #include "scene/2d/audio_listener_2d.h" #include "scene/main/window.h" @@ -186,7 +187,14 @@ void AudioStreamPlayer2D::_update_panning() { float multiplier = Math::pow(1.0f - dist / max_distance, attenuation); multiplier *= Math::db2linear(volume_db); //also apply player volume! - float pan = CLAMP((relative_to_listener.x + screen_size.x * 0.5) / screen_size.x, 0.0, 1.0); + float pan = relative_to_listener.x / screen_size.x; + // Don't let the panning effect extend (too far) beyond the screen. + pan = CLAMP(pan, -1, 1); + + // Bake in a constant factor here to allow the project setting defaults for 2d and 3d to be normalized to 1.0. + pan *= panning_strength * cached_global_panning_strength * 0.5f; + + pan = CLAMP(pan + 0.5, 0.0, 1.0); float l = 1.0 - pan; float r = pan; @@ -391,6 +399,15 @@ int AudioStreamPlayer2D::get_max_polyphony() const { return max_polyphony; } +void AudioStreamPlayer2D::set_panning_strength(float p_panning_strength) { + ERR_FAIL_COND_MSG(p_panning_strength < 0, "Panning strength must be a positive number."); + panning_strength = p_panning_strength; +} + +float AudioStreamPlayer2D::get_panning_strength() const { + return panning_strength; +} + void AudioStreamPlayer2D::_bind_methods() { ClassDB::bind_method(D_METHOD("set_stream", "stream"), &AudioStreamPlayer2D::set_stream); ClassDB::bind_method(D_METHOD("get_stream"), &AudioStreamPlayer2D::get_stream); @@ -432,6 +449,9 @@ void AudioStreamPlayer2D::_bind_methods() { ClassDB::bind_method(D_METHOD("set_max_polyphony", "max_polyphony"), &AudioStreamPlayer2D::set_max_polyphony); ClassDB::bind_method(D_METHOD("get_max_polyphony"), &AudioStreamPlayer2D::get_max_polyphony); + ClassDB::bind_method(D_METHOD("set_panning_strength", "panning_strength"), &AudioStreamPlayer2D::set_panning_strength); + ClassDB::bind_method(D_METHOD("get_panning_strength"), &AudioStreamPlayer2D::get_panning_strength); + ClassDB::bind_method(D_METHOD("get_stream_playback"), &AudioStreamPlayer2D::get_stream_playback); ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "stream", PROPERTY_HINT_RESOURCE_TYPE, "AudioStream"), "set_stream", "get_stream"); @@ -443,6 +463,7 @@ void AudioStreamPlayer2D::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "max_distance", PROPERTY_HINT_RANGE, "1,4096,1,or_greater,exp,suffix:px"), "set_max_distance", "get_max_distance"); ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "attenuation", PROPERTY_HINT_EXP_EASING, "attenuation"), "set_attenuation", "get_attenuation"); ADD_PROPERTY(PropertyInfo(Variant::INT, "max_polyphony", PROPERTY_HINT_NONE, ""), "set_max_polyphony", "get_max_polyphony"); + ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "panning_strength", PROPERTY_HINT_RANGE, "0,3,0.01,or_greater"), "set_panning_strength", "get_panning_strength"); ADD_PROPERTY(PropertyInfo(Variant::STRING_NAME, "bus", PROPERTY_HINT_ENUM, ""), "set_bus", "get_bus"); ADD_PROPERTY(PropertyInfo(Variant::INT, "area_mask", PROPERTY_HINT_LAYERS_2D_PHYSICS), "set_area_mask", "get_area_mask"); @@ -451,6 +472,7 @@ void AudioStreamPlayer2D::_bind_methods() { AudioStreamPlayer2D::AudioStreamPlayer2D() { AudioServer::get_singleton()->connect("bus_layout_changed", callable_mp(this, &AudioStreamPlayer2D::_bus_layout_changed)); + cached_global_panning_strength = ProjectSettings::get_singleton()->get("audio/general/2d_panning_strength"); } AudioStreamPlayer2D::~AudioStreamPlayer2D() { diff --git a/scene/2d/audio_stream_player_2d.h b/scene/2d/audio_stream_player_2d.h index 73b09e432f..a22782fe44 100644 --- a/scene/2d/audio_stream_player_2d.h +++ b/scene/2d/audio_stream_player_2d.h @@ -81,6 +81,9 @@ private: float max_distance = 2000.0; float attenuation = 1.0; + float panning_strength = 1.0f; + float cached_global_panning_strength = 1.0f; + protected: void _validate_property(PropertyInfo &property) const override; void _notification(int p_what); @@ -123,6 +126,9 @@ public: void set_max_polyphony(int p_max_polyphony); int get_max_polyphony() const; + void set_panning_strength(float p_panning_strength); + float get_panning_strength() const; + Ref<AudioStreamPlayback> get_stream_playback(); AudioStreamPlayer2D(); diff --git a/scene/2d/cpu_particles_2d.cpp b/scene/2d/cpu_particles_2d.cpp index f9cf70a586..913003c7e6 100644 --- a/scene/2d/cpu_particles_2d.cpp +++ b/scene/2d/cpu_particles_2d.cpp @@ -1362,7 +1362,7 @@ void CPUParticles2D::_bind_methods() { ClassDB::bind_method(D_METHOD("convert_from_particles", "particles"), &CPUParticles2D::convert_from_particles); ADD_GROUP("Emission Shape", "emission_"); - ADD_PROPERTY(PropertyInfo(Variant::INT, "emission_shape", PROPERTY_HINT_ENUM, "Point,Sphere,Sphere Surface,Box,Points,Directed Points", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_UPDATE_ALL_IF_MODIFIED), "set_emission_shape", "get_emission_shape"); + ADD_PROPERTY(PropertyInfo(Variant::INT, "emission_shape", PROPERTY_HINT_ENUM, "Point,Sphere,Sphere Surface,Rectangle,Points,Directed Points", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_UPDATE_ALL_IF_MODIFIED), "set_emission_shape", "get_emission_shape"); ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "emission_sphere_radius", PROPERTY_HINT_RANGE, "0.01,128,0.01,suffix:px"), "set_emission_sphere_radius", "get_emission_sphere_radius"); ADD_PROPERTY(PropertyInfo(Variant::VECTOR2, "emission_rect_extents", PROPERTY_HINT_NONE, "suffix:px"), "set_emission_rect_extents", "get_emission_rect_extents"); ADD_PROPERTY(PropertyInfo(Variant::PACKED_VECTOR2_ARRAY, "emission_points"), "set_emission_points", "get_emission_points"); diff --git a/scene/3d/audio_stream_player_3d.cpp b/scene/3d/audio_stream_player_3d.cpp index 7c1fb3779f..824ea0407e 100644 --- a/scene/3d/audio_stream_player_3d.cpp +++ b/scene/3d/audio_stream_player_3d.cpp @@ -30,6 +30,7 @@ #include "audio_stream_player_3d.h" +#include "core/config/project_settings.h" #include "scene/3d/area_3d.h" #include "scene/3d/audio_listener_3d.h" #include "scene/3d/camera_3d.h" @@ -462,9 +463,10 @@ Vector<AudioFrame> AudioStreamPlayer3D::_update_panning() { for (Ref<AudioStreamPlayback> &playback : stream_playbacks) { AudioServer::get_singleton()->set_playback_highshelf_params(playback, linear_attenuation, attenuation_filter_cutoff_hz); } - //TODO: The lower the second parameter (tightness) the more the sound will "enclose" the listener (more undirected / playing from - // speakers not facing the source) - this could be made distance dependent. - _calc_output_vol(local_pos.normalized(), 4.0, output_volume_vector); + // Bake in a constant factor here to allow the project setting defaults for 2d and 3d to be normalized to 1.0. + float tightness = cached_global_panning_strength * 2.0f; + tightness *= panning_strength; + _calc_output_vol(local_pos.normalized(), tightness, output_volume_vector); for (unsigned int k = 0; k < 4; k++) { output_volume_vector.write[k] = multiplier * output_volume_vector[k]; @@ -792,6 +794,15 @@ int AudioStreamPlayer3D::get_max_polyphony() const { return max_polyphony; } +void AudioStreamPlayer3D::set_panning_strength(float p_panning_strength) { + ERR_FAIL_COND_MSG(p_panning_strength < 0, "Panning strength must be a positive number."); + panning_strength = p_panning_strength; +} + +float AudioStreamPlayer3D::get_panning_strength() const { + return panning_strength; +} + void AudioStreamPlayer3D::_bind_methods() { ClassDB::bind_method(D_METHOD("set_stream", "stream"), &AudioStreamPlayer3D::set_stream); ClassDB::bind_method(D_METHOD("get_stream"), &AudioStreamPlayer3D::get_stream); @@ -857,6 +868,9 @@ void AudioStreamPlayer3D::_bind_methods() { ClassDB::bind_method(D_METHOD("set_max_polyphony", "max_polyphony"), &AudioStreamPlayer3D::set_max_polyphony); ClassDB::bind_method(D_METHOD("get_max_polyphony"), &AudioStreamPlayer3D::get_max_polyphony); + ClassDB::bind_method(D_METHOD("set_panning_strength", "panning_strength"), &AudioStreamPlayer3D::set_panning_strength); + ClassDB::bind_method(D_METHOD("get_panning_strength"), &AudioStreamPlayer3D::get_panning_strength); + ClassDB::bind_method(D_METHOD("get_stream_playback"), &AudioStreamPlayer3D::get_stream_playback); ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "stream", PROPERTY_HINT_RESOURCE_TYPE, "AudioStream"), "set_stream", "get_stream"); @@ -870,6 +884,7 @@ void AudioStreamPlayer3D::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::BOOL, "stream_paused", PROPERTY_HINT_NONE, ""), "set_stream_paused", "get_stream_paused"); ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "max_distance", PROPERTY_HINT_RANGE, "0,4096,0.01,or_greater,suffix:m"), "set_max_distance", "get_max_distance"); ADD_PROPERTY(PropertyInfo(Variant::INT, "max_polyphony", PROPERTY_HINT_NONE, ""), "set_max_polyphony", "get_max_polyphony"); + ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "panning_strength", PROPERTY_HINT_RANGE, "0,3,0.01,or_greater"), "set_panning_strength", "get_panning_strength"); ADD_PROPERTY(PropertyInfo(Variant::STRING_NAME, "bus", PROPERTY_HINT_ENUM, ""), "set_bus", "get_bus"); ADD_PROPERTY(PropertyInfo(Variant::INT, "area_mask", PROPERTY_HINT_LAYERS_2D_PHYSICS), "set_area_mask", "get_area_mask"); ADD_GROUP("Emission Angle", "emission_angle"); @@ -898,6 +913,7 @@ AudioStreamPlayer3D::AudioStreamPlayer3D() { velocity_tracker.instantiate(); AudioServer::get_singleton()->connect("bus_layout_changed", callable_mp(this, &AudioStreamPlayer3D::_bus_layout_changed)); set_disable_scale(true); + cached_global_panning_strength = ProjectSettings::get_singleton()->get("audio/general/3d_panning_strength"); } AudioStreamPlayer3D::~AudioStreamPlayer3D() { diff --git a/scene/3d/audio_stream_player_3d.h b/scene/3d/audio_stream_player_3d.h index bc47a8de93..85ece6d8d5 100644 --- a/scene/3d/audio_stream_player_3d.h +++ b/scene/3d/audio_stream_player_3d.h @@ -116,6 +116,9 @@ private: float _get_attenuation_db(float p_distance) const; + float panning_strength = 1.0f; + float cached_global_panning_strength = 1.0f; + protected: void _validate_property(PropertyInfo &property) const override; void _notification(int p_what); @@ -182,6 +185,9 @@ public: void set_stream_paused(bool p_pause); bool get_stream_paused() const; + void set_panning_strength(float p_panning_strength); + float get_panning_strength() const; + Ref<AudioStreamPlayback> get_stream_playback(); AudioStreamPlayer3D(); diff --git a/scene/3d/light_3d.cpp b/scene/3d/light_3d.cpp index d80c10d63a..28614d7cae 100644 --- a/scene/3d/light_3d.cpp +++ b/scene/3d/light_3d.cpp @@ -281,7 +281,7 @@ void Light3D::_bind_methods() { ADD_PROPERTYI(PropertyInfo(Variant::FLOAT, "light_indirect_energy", PROPERTY_HINT_RANGE, "0,16,0.001,or_greater"), "set_param", "get_param", PARAM_INDIRECT_ENERGY); ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "light_projector", PROPERTY_HINT_RESOURCE_TYPE, "Texture2D"), "set_projector", "get_projector"); ADD_PROPERTYI(PropertyInfo(Variant::FLOAT, "light_size", PROPERTY_HINT_RANGE, "0,1,0.001,or_greater,suffix:m"), "set_param", "get_param", PARAM_SIZE); - ADD_PROPERTYI(PropertyInfo(Variant::FLOAT, "light_angular_distance", PROPERTY_HINT_RANGE, "0,90,0.01,radians"), "set_param", "get_param", PARAM_SIZE); + ADD_PROPERTYI(PropertyInfo(Variant::FLOAT, "light_angular_distance", PROPERTY_HINT_RANGE, "0,90,0.01,degrees"), "set_param", "get_param", PARAM_SIZE); ADD_PROPERTY(PropertyInfo(Variant::BOOL, "light_negative"), "set_negative", "is_negative"); ADD_PROPERTYI(PropertyInfo(Variant::FLOAT, "light_specular", PROPERTY_HINT_RANGE, "0,16,0.001,or_greater"), "set_param", "get_param", PARAM_SPECULAR); ADD_PROPERTY(PropertyInfo(Variant::INT, "light_bake_mode", PROPERTY_HINT_ENUM, "Disabled,Static (VoxelGI/SDFGI/LightmapGI),Dynamic (VoxelGI/SDFGI only)"), "set_bake_mode", "get_bake_mode"); diff --git a/scene/3d/skeleton_3d.cpp b/scene/3d/skeleton_3d.cpp index ba2029788e..fbd5f31dd5 100644 --- a/scene/3d/skeleton_3d.cpp +++ b/scene/3d/skeleton_3d.cpp @@ -326,13 +326,11 @@ void Skeleton3D::_notification(int p_what) { case NOTIFICATION_INTERNAL_PHYSICS_PROCESS: { // This is active only if the skeleton animates the physical bones // and the state of the bone is not active. - if (Engine::get_singleton()->is_editor_hint()) { - if (animate_physical_bones) { - for (int i = 0; i < bones.size(); i += 1) { - if (bones[i].physical_bone) { - if (bones[i].physical_bone->is_simulating_physics() == false) { - bones[i].physical_bone->reset_to_rest_position(); - } + if (animate_physical_bones) { + for (int i = 0; i < bones.size(); i += 1) { + if (bones[i].physical_bone) { + if (bones[i].physical_bone->is_simulating_physics() == false) { + bones[i].physical_bone->reset_to_rest_position(); } } } diff --git a/scene/animation/animation_player.cpp b/scene/animation/animation_player.cpp index 8edfaa5853..5d471c9e84 100644 --- a/scene/animation/animation_player.cpp +++ b/scene/animation/animation_player.cpp @@ -1909,7 +1909,7 @@ NodePath AnimationPlayer::get_root() const { void AnimationPlayer::get_argument_options(const StringName &p_function, int p_idx, List<String> *r_options) const { String pf = p_function; - if (p_idx == 0 && (p_function == "play" || p_function == "play_backwards" || p_function == "remove_animation" || p_function == "has_animation" || p_function == "queue")) { + if (p_idx == 0 && (p_function == "play" || p_function == "play_backwards" || p_function == "has_animation" || p_function == "queue")) { List<StringName> al; get_animation_list(&al); for (const StringName &name : al) { diff --git a/scene/animation/animation_tree.cpp b/scene/animation/animation_tree.cpp index d34e8db093..136285c4dc 100644 --- a/scene/animation/animation_tree.cpp +++ b/scene/animation/animation_tree.cpp @@ -919,7 +919,6 @@ void AnimationTree::_process_graph(double p_delta) { state.valid = true; state.invalid_reasons = ""; state.animation_states.clear(); //will need to be re-created - state.valid = true; state.player = player; state.last_pass = process_pass; state.tree = this; diff --git a/scene/main/window.cpp b/scene/main/window.cpp index 1d697a2176..11c2a495ad 100644 --- a/scene/main/window.cpp +++ b/scene/main/window.cpp @@ -111,31 +111,19 @@ Size2i Window::get_real_size() const { void Window::set_max_size(const Size2i &p_max_size) { max_size = p_max_size; - if (window_id != DisplayServer::INVALID_WINDOW_ID) { - DisplayServer::get_singleton()->window_set_max_size(max_size, window_id); - } _update_window_size(); } Size2i Window::get_max_size() const { - if (window_id != DisplayServer::INVALID_WINDOW_ID) { - max_size = DisplayServer::get_singleton()->window_get_max_size(window_id); - } return max_size; } void Window::set_min_size(const Size2i &p_min_size) { min_size = p_min_size; - if (!wrap_controls && window_id != DisplayServer::INVALID_WINDOW_ID) { - DisplayServer::get_singleton()->window_set_min_size(min_size, window_id); - } _update_window_size(); } Size2i Window::get_min_size() const { - if (window_id != DisplayServer::INVALID_WINDOW_ID) { - min_size = DisplayServer::get_singleton()->window_get_min_size(window_id); - } return min_size; } @@ -621,6 +609,7 @@ void Window::_update_window_size() { } else if (window_id != DisplayServer::INVALID_WINDOW_ID) { DisplayServer::get_singleton()->window_set_size(size, window_id); DisplayServer::get_singleton()->window_set_min_size(size_limit, window_id); + DisplayServer::get_singleton()->window_set_max_size(max_size, window_id); } //update the viewport diff --git a/scene/resources/scene_replication_config.cpp b/scene/resources/scene_replication_config.cpp index 4aea04bf87..6789f9f7d5 100644 --- a/scene/resources/scene_replication_config.cpp +++ b/scene/resources/scene_replication_config.cpp @@ -52,11 +52,19 @@ bool SceneReplicationConfig::_set(const StringName &p_name, const Variant &p_val ReplicationProperty &prop = properties[idx]; if (what == "sync") { prop.sync = p_value; - sync_props.push_back(prop.name); + if (prop.sync) { + sync_props.push_back(prop.name); + } else { + sync_props.erase(prop.name); + } return true; } else if (what == "spawn") { prop.spawn = p_value; - spawn_props.push_back(prop.name); + if (prop.spawn) { + spawn_props.push_back(prop.name); + } else { + spawn_props.erase(prop.name); + } return true; } } diff --git a/servers/audio/effects/audio_effect_record.cpp b/servers/audio/effects/audio_effect_record.cpp index d68522e5b9..a6553e1431 100644 --- a/servers/audio/effects/audio_effect_record.cpp +++ b/servers/audio/effects/audio_effect_record.cpp @@ -71,8 +71,6 @@ bool AudioEffectRecordInstance::process_silence() const { } void AudioEffectRecordInstance::_io_thread_process() { - thread_active = true; - while (is_recording) { //Check: The current recording has been requested to stop if (!base->recording_active) { @@ -86,8 +84,6 @@ void AudioEffectRecordInstance::_io_thread_process() { OS::get_singleton()->delay_usec(500); } } - - thread_active = false; } void AudioEffectRecordInstance::_io_store_buffer() { diff --git a/servers/audio/effects/audio_effect_record.h b/servers/audio/effects/audio_effect_record.h index 305484d1cb..8a6247e27a 100644 --- a/servers/audio/effects/audio_effect_record.h +++ b/servers/audio/effects/audio_effect_record.h @@ -48,7 +48,6 @@ class AudioEffectRecordInstance : public AudioEffectInstance { bool is_recording; Thread io_thread; - bool thread_active = false; Vector<AudioFrame> ring_buffer; Vector<float> recording_data; diff --git a/servers/rendering/renderer_rd/forward_clustered/render_forward_clustered.cpp b/servers/rendering/renderer_rd/forward_clustered/render_forward_clustered.cpp index 2d3998bd90..d390614e53 100644 --- a/servers/rendering/renderer_rd/forward_clustered/render_forward_clustered.cpp +++ b/servers/rendering/renderer_rd/forward_clustered/render_forward_clustered.cpp @@ -692,6 +692,11 @@ void RenderForwardClustered::_setup_environment(const RenderDataRD *p_render_dat projection = correction * p_render_data->view_projection[v]; RendererStorageRD::store_camera(projection, scene_state.ubo.projection_matrix_view[v]); RendererStorageRD::store_camera(projection.inverse(), scene_state.ubo.inv_projection_matrix_view[v]); + + scene_state.ubo.eye_offset[v][0] = p_render_data->view_eye_offset[v].x; + scene_state.ubo.eye_offset[v][1] = p_render_data->view_eye_offset[v].y; + scene_state.ubo.eye_offset[v][2] = p_render_data->view_eye_offset[v].z; + scene_state.ubo.eye_offset[v][3] = 0.0; } scene_state.ubo.taa_jitter[0] = p_render_data->taa_jitter.x; diff --git a/servers/rendering/renderer_rd/forward_clustered/render_forward_clustered.h b/servers/rendering/renderer_rd/forward_clustered/render_forward_clustered.h index 6ad42bf0ec..97f39164a4 100644 --- a/servers/rendering/renderer_rd/forward_clustered/render_forward_clustered.h +++ b/servers/rendering/renderer_rd/forward_clustered/render_forward_clustered.h @@ -237,6 +237,7 @@ class RenderForwardClustered : public RendererSceneRenderRD { float projection_matrix_view[RendererSceneRender::MAX_RENDER_VIEWS][16]; float inv_projection_matrix_view[RendererSceneRender::MAX_RENDER_VIEWS][16]; + float eye_offset[RendererSceneRender::MAX_RENDER_VIEWS][4]; float viewport_size[2]; float screen_pixel_size[2]; diff --git a/servers/rendering/renderer_rd/forward_mobile/render_forward_mobile.cpp b/servers/rendering/renderer_rd/forward_mobile/render_forward_mobile.cpp index b2e0af06cd..eae5685dd1 100644 --- a/servers/rendering/renderer_rd/forward_mobile/render_forward_mobile.cpp +++ b/servers/rendering/renderer_rd/forward_mobile/render_forward_mobile.cpp @@ -1542,6 +1542,11 @@ void RenderForwardMobile::_setup_environment(const RenderDataRD *p_render_data, projection = correction * p_render_data->view_projection[v]; RendererStorageRD::store_camera(projection, scene_state.ubo.projection_matrix_view[v]); RendererStorageRD::store_camera(projection.inverse(), scene_state.ubo.inv_projection_matrix_view[v]); + + scene_state.ubo.eye_offset[v][0] = p_render_data->view_eye_offset[v].x; + scene_state.ubo.eye_offset[v][1] = p_render_data->view_eye_offset[v].y; + scene_state.ubo.eye_offset[v][2] = p_render_data->view_eye_offset[v].z; + scene_state.ubo.eye_offset[v][3] = 0.0; } scene_state.ubo.z_far = p_render_data->z_far; diff --git a/servers/rendering/renderer_rd/forward_mobile/render_forward_mobile.h b/servers/rendering/renderer_rd/forward_mobile/render_forward_mobile.h index fc6f32ecb0..1b2df0ab9f 100644 --- a/servers/rendering/renderer_rd/forward_mobile/render_forward_mobile.h +++ b/servers/rendering/renderer_rd/forward_mobile/render_forward_mobile.h @@ -260,6 +260,7 @@ protected: float projection_matrix_view[RendererSceneRender::MAX_RENDER_VIEWS][16]; float inv_projection_matrix_view[RendererSceneRender::MAX_RENDER_VIEWS][16]; + float eye_offset[RendererSceneRender::MAX_RENDER_VIEWS][4]; float viewport_size[2]; float screen_pixel_size[2]; diff --git a/servers/rendering/renderer_rd/renderer_scene_render_rd.cpp b/servers/rendering/renderer_rd/renderer_scene_render_rd.cpp index ef959bc3c6..a50a05d905 100644 --- a/servers/rendering/renderer_rd/renderer_scene_render_rd.cpp +++ b/servers/rendering/renderer_rd/renderer_scene_render_rd.cpp @@ -5115,12 +5115,12 @@ void RendererSceneRenderRD::render_scene(RID p_render_buffers, const CameraData // Our first camera is used by default render_data.cam_transform = p_camera_data->main_transform; render_data.cam_projection = p_camera_data->main_projection; - render_data.view_projection[0] = p_camera_data->main_projection; render_data.cam_orthogonal = p_camera_data->is_orthogonal; render_data.taa_jitter = p_camera_data->taa_jitter; render_data.view_count = p_camera_data->view_count; for (uint32_t v = 0; v < p_camera_data->view_count; v++) { + render_data.view_eye_offset[v] = p_camera_data->view_offset[v].origin; render_data.view_projection[v] = p_camera_data->view_projection[v]; } diff --git a/servers/rendering/renderer_rd/renderer_scene_render_rd.h b/servers/rendering/renderer_rd/renderer_scene_render_rd.h index 1b1df6469e..a90c165d83 100644 --- a/servers/rendering/renderer_rd/renderer_scene_render_rd.h +++ b/servers/rendering/renderer_rd/renderer_scene_render_rd.h @@ -58,6 +58,7 @@ struct RenderDataRD { // For stereo rendering uint32_t view_count = 1; + Vector3 view_eye_offset[RendererSceneRender::MAX_RENDER_VIEWS]; CameraMatrix view_projection[RendererSceneRender::MAX_RENDER_VIEWS]; Transform3D prev_cam_transform; diff --git a/servers/rendering/renderer_rd/shaders/scene_forward_clustered.glsl b/servers/rendering/renderer_rd/shaders/scene_forward_clustered.glsl index 92c4fc3d67..b992e948c3 100644 --- a/servers/rendering/renderer_rd/shaders/scene_forward_clustered.glsl +++ b/servers/rendering/renderer_rd/shaders/scene_forward_clustered.glsl @@ -634,7 +634,11 @@ void fragment_shader(in SceneData scene_data) { //lay out everything, whatever is unused is optimized away anyway vec3 vertex = vertex_interp; +#ifdef USE_MULTIVIEW + vec3 view = -normalize(vertex_interp - scene_data.eye_offset[ViewIndex].xyz); +#else vec3 view = -normalize(vertex_interp); +#endif vec3 albedo = vec3(1.0); vec3 backlight = vec3(0.0); vec4 transmittance_color = vec4(0.0, 0.0, 0.0, 1.0); @@ -1191,7 +1195,7 @@ void fragment_shader(in SceneData scene_data) { if (sc_use_forward_gi && bool(instances.data[instance_index].flags & INSTANCE_FLAGS_USE_VOXEL_GI)) { // process voxel_gi_instances uint index1 = instances.data[instance_index].gi_offset & 0xFFFF; - vec3 ref_vec = normalize(reflect(normalize(vertex), normal)); + vec3 ref_vec = normalize(reflect(-view, normal)); //find arbitrary tangent and bitangent, then build a matrix vec3 v0 = abs(normal.z) < 0.999 ? vec3(0.0, 0.0, 1.0) : vec3(0.0, 1.0, 0.0); vec3 tangent = normalize(cross(v0, normal)); @@ -1309,7 +1313,7 @@ void fragment_shader(in SceneData scene_data) { #else vec3 bent_normal = normal; #endif - reflection_process(reflection_index, vertex, bent_normal, roughness, ambient_light, specular_light, ambient_accum, reflection_accum); + reflection_process(reflection_index, view, vertex, bent_normal, roughness, ambient_light, specular_light, ambient_accum, reflection_accum); } } diff --git a/servers/rendering/renderer_rd/shaders/scene_forward_clustered_inc.glsl b/servers/rendering/renderer_rd/shaders/scene_forward_clustered_inc.glsl index b700e21543..32ea83397a 100644 --- a/servers/rendering/renderer_rd/shaders/scene_forward_clustered_inc.glsl +++ b/servers/rendering/renderer_rd/shaders/scene_forward_clustered_inc.glsl @@ -180,6 +180,7 @@ struct SceneData { // only used for multiview mat4 projection_matrix_view[MAX_VIEWS]; mat4 inv_projection_matrix_view[MAX_VIEWS]; + vec4 eye_offset[MAX_VIEWS]; vec2 viewport_size; vec2 screen_pixel_size; @@ -250,7 +251,7 @@ struct SceneData { bool pancake_shadows; vec2 taa_jitter; - uvec2 pad; + uvec2 pad2; }; layout(set = 1, binding = 0, std140) uniform SceneDataBlock { diff --git a/servers/rendering/renderer_rd/shaders/scene_forward_lights_inc.glsl b/servers/rendering/renderer_rd/shaders/scene_forward_lights_inc.glsl index 5a308bbd02..c92b29b14a 100644 --- a/servers/rendering/renderer_rd/shaders/scene_forward_lights_inc.glsl +++ b/servers/rendering/renderer_rd/shaders/scene_forward_lights_inc.glsl @@ -869,7 +869,7 @@ void light_process_spot(uint idx, vec3 vertex, vec3 eye_vec, vec3 normal, vec3 v diffuse_light, specular_light); } -void reflection_process(uint ref_index, vec3 vertex, vec3 normal, float roughness, vec3 ambient_light, vec3 specular_light, inout vec4 ambient_accum, inout vec4 reflection_accum) { +void reflection_process(uint ref_index, vec3 view, vec3 vertex, vec3 normal, float roughness, vec3 ambient_light, vec3 specular_light, inout vec4 ambient_accum, inout vec4 reflection_accum) { vec3 box_extents = reflections.data[ref_index].box_extents; vec3 local_pos = (reflections.data[ref_index].local_matrix * vec4(vertex, 1.0)).xyz; @@ -877,7 +877,7 @@ void reflection_process(uint ref_index, vec3 vertex, vec3 normal, float roughnes return; } - vec3 ref_vec = normalize(reflect(vertex, normal)); + vec3 ref_vec = normalize(reflect(-view, normal)); vec3 inner_pos = abs(local_pos / box_extents); float blend = max(inner_pos.x, max(inner_pos.y, inner_pos.z)); diff --git a/servers/rendering/renderer_rd/shaders/scene_forward_mobile.glsl b/servers/rendering/renderer_rd/shaders/scene_forward_mobile.glsl index e15ebbfc91..cd94908c31 100644 --- a/servers/rendering/renderer_rd/shaders/scene_forward_mobile.glsl +++ b/servers/rendering/renderer_rd/shaders/scene_forward_mobile.glsl @@ -586,7 +586,11 @@ void main() { //lay out everything, whatever is unused is optimized away anyway vec3 vertex = vertex_interp; +#ifdef USE_MULTIVIEW + vec3 view = -normalize(vertex_interp - scene_data.eye_offset[ViewIndex].xyz); +#else vec3 view = -normalize(vertex_interp); +#endif vec3 albedo = vec3(1.0); vec3 backlight = vec3(0.0); vec4 transmittance_color = vec4(0.0); @@ -1051,7 +1055,7 @@ void main() { #else vec3 bent_normal = normal; #endif - reflection_process(reflection_index, vertex, bent_normal, roughness, ambient_light, specular_light, ambient_accum, reflection_accum); + reflection_process(reflection_index, view, vertex, bent_normal, roughness, ambient_light, specular_light, ambient_accum, reflection_accum); } if (reflection_accum.a > 0.0) { diff --git a/servers/rendering/renderer_rd/shaders/scene_forward_mobile_inc.glsl b/servers/rendering/renderer_rd/shaders/scene_forward_mobile_inc.glsl index dd14a15837..7413d8730a 100644 --- a/servers/rendering/renderer_rd/shaders/scene_forward_mobile_inc.glsl +++ b/servers/rendering/renderer_rd/shaders/scene_forward_mobile_inc.glsl @@ -134,6 +134,7 @@ struct SceneData { // only used for multiview highp mat4 projection_matrix_view[MAX_VIEWS]; highp mat4 inv_projection_matrix_view[MAX_VIEWS]; + highp vec4 eye_offset[MAX_VIEWS]; highp vec2 viewport_size; highp vec2 screen_pixel_size; diff --git a/servers/rendering_server.cpp b/servers/rendering_server.cpp index 26ab8b659e..9b407043fc 100644 --- a/servers/rendering_server.cpp +++ b/servers/rendering_server.cpp @@ -2934,10 +2934,10 @@ void RenderingServer::init() { ProjectSettings::get_singleton()->set_custom_property_info("rendering/anti_aliasing/screen_space_roughness_limiter/amount", PropertyInfo(Variant::FLOAT, "rendering/anti_aliasing/screen_space_roughness_limiter/amount", PROPERTY_HINT_RANGE, "0.01,4.0,0.01")); ProjectSettings::get_singleton()->set_custom_property_info("rendering/anti_aliasing/screen_space_roughness_limiter/limit", PropertyInfo(Variant::FLOAT, "rendering/anti_aliasing/screen_space_roughness_limiter/limit", PROPERTY_HINT_RANGE, "0.01,1.0,0.01")); - GLOBAL_DEF_RST("rendering/scaling_3d/mode", 0); - GLOBAL_DEF_RST("rendering/scaling_3d/scale", 1.0); - GLOBAL_DEF_RST("rendering/scaling_3d/fsr_sharpness", 0.2f); - GLOBAL_DEF_RST("rendering/scaling_3d/fsr_mipmap_bias", 0.0f); + GLOBAL_DEF("rendering/scaling_3d/mode", 0); + GLOBAL_DEF("rendering/scaling_3d/scale", 1.0); + GLOBAL_DEF("rendering/scaling_3d/fsr_sharpness", 0.2f); + GLOBAL_DEF("rendering/scaling_3d/fsr_mipmap_bias", 0.0f); ProjectSettings::get_singleton()->set_custom_property_info("rendering/scaling_3d/mode", PropertyInfo(Variant::INT, "rendering/scaling_3d/mode", diff --git a/tests/core/object/test_class_db.h b/tests/core/object/test_class_db.h index 8aaca69d13..7ea9e16ff1 100644 --- a/tests/core/object/test_class_db.h +++ b/tests/core/object/test_class_db.h @@ -46,7 +46,7 @@ struct TypeReference { struct ConstantData { String name; - int value = 0; + int64_t value = 0; }; struct EnumData { @@ -743,7 +743,7 @@ void add_exposed_classes(Context &r_context) { TEST_FAIL_COND(String(constant_name).find("::") != -1, "Enum constant contains '::', check bindings to remove the scope: '", String(class_name), ".", String(enum_.name), ".", String(constant_name), "'."); - int *value = class_info->constant_map.getptr(constant_name); + int64_t *value = class_info->constant_map.getptr(constant_name); TEST_FAIL_COND(!value, "Missing enum constant value: '", String(class_name), ".", String(enum_.name), ".", String(constant_name), "'."); constants.erase(constant_name); @@ -765,7 +765,7 @@ void add_exposed_classes(Context &r_context) { TEST_FAIL_COND(constant_name.find("::") != -1, "Constant contains '::', check bindings to remove the scope: '", String(class_name), ".", constant_name, "'."); - int *value = class_info->constant_map.getptr(StringName(E)); + int64_t *value = class_info->constant_map.getptr(StringName(E)); TEST_FAIL_COND(!value, "Missing constant value: '", String(class_name), ".", String(constant_name), "'."); ConstantData constant; diff --git a/thirdparty/README.md b/thirdparty/README.md index 3b6932b3e1..7d5c80f61f 100644 --- a/thirdparty/README.md +++ b/thirdparty/README.md @@ -62,7 +62,7 @@ Files extracted from upstream source: ## doctest - Upstream: https://github.com/onqtam/doctest -- Version: 2.4.8 (7b9885133108ae301ddd16e2651320f54cafeba7, 2022) +- Version: 2.4.9 (b7c21ec5ceeadb4951b00396fc1e4642dd347e5f, 2022) - License: MIT Files extracted from upstream source: diff --git a/thirdparty/doctest/doctest.h b/thirdparty/doctest/doctest.h index d25f526827..aa2724c738 100644 --- a/thirdparty/doctest/doctest.h +++ b/thirdparty/doctest/doctest.h @@ -48,7 +48,7 @@ #define DOCTEST_VERSION_MAJOR 2 #define DOCTEST_VERSION_MINOR 4 -#define DOCTEST_VERSION_PATCH 8 +#define DOCTEST_VERSION_PATCH 9 // util we need here #define DOCTEST_TOSTR_IMPL(x) #x @@ -68,6 +68,12 @@ // ideas for the version stuff are taken from here: https://github.com/cxxstuff/cxx_detect +#ifdef _MSC_VER +#define DOCTEST_CPLUSPLUS _MSVC_LANG +#else +#define DOCTEST_CPLUSPLUS __cplusplus +#endif + #define DOCTEST_COMPILER(MAJOR, MINOR, PATCH) ((MAJOR)*10000000 + (MINOR)*100000 + (PATCH)) // GCC/Clang and GCC/MSVC are mutually exclusive, but Clang/MSVC are not because of clang-cl... @@ -153,7 +159,6 @@ DOCTEST_CLANG_SUPPRESS_WARNING("-Wweak-vtables") \ DOCTEST_CLANG_SUPPRESS_WARNING("-Wpadded") \ DOCTEST_CLANG_SUPPRESS_WARNING("-Wmissing-prototypes") \ - DOCTEST_CLANG_SUPPRESS_WARNING("-Wunused-local-typedef") \ DOCTEST_CLANG_SUPPRESS_WARNING("-Wc++98-compat") \ DOCTEST_CLANG_SUPPRESS_WARNING("-Wc++98-compat-pedantic") \ \ @@ -164,7 +169,6 @@ DOCTEST_GCC_SUPPRESS_WARNING("-Wstrict-overflow") \ DOCTEST_GCC_SUPPRESS_WARNING("-Wstrict-aliasing") \ DOCTEST_GCC_SUPPRESS_WARNING("-Wmissing-declarations") \ - DOCTEST_GCC_SUPPRESS_WARNING("-Wunused-local-typedefs") \ DOCTEST_GCC_SUPPRESS_WARNING("-Wuseless-cast") \ DOCTEST_GCC_SUPPRESS_WARNING("-Wnoexcept") \ \ @@ -231,7 +235,8 @@ DOCTEST_MSVC_SUPPRESS_WARNING(4623) // default constructor was implicitly define DOCTEST_MSVC_SUPPRESS_WARNING(4623) /* default constructor was implicitly deleted */ \ DOCTEST_MSVC_SUPPRESS_WARNING(5039) /* pointer to pot. throwing function passed to extern C */ \ DOCTEST_MSVC_SUPPRESS_WARNING(5045) /* Spectre mitigation for memory load */ \ - DOCTEST_MSVC_SUPPRESS_WARNING(5105) /* macro producing 'defined' has undefined behavior */ + DOCTEST_MSVC_SUPPRESS_WARNING(5105) /* macro producing 'defined' has undefined behavior */ \ + DOCTEST_MSVC_SUPPRESS_WARNING(4738) /* storing float result in memory, loss of performance */ #define DOCTEST_MAKE_STD_HEADERS_CLEAN_FROM_WARNINGS_ON_WALL_END DOCTEST_MSVC_SUPPRESS_WARNING_POP @@ -266,7 +271,7 @@ DOCTEST_MSVC_SUPPRESS_WARNING(4623) // default constructor was implicitly define #endif // DOCTEST_CONFIG_NO_WINDOWS_SEH #if !defined(_WIN32) && !defined(__QNX__) && !defined(DOCTEST_CONFIG_POSIX_SIGNALS) && \ - !defined(__EMSCRIPTEN__) + !defined(__EMSCRIPTEN__) && !defined(__wasi__) #define DOCTEST_CONFIG_POSIX_SIGNALS #endif // _WIN32 #if defined(DOCTEST_CONFIG_NO_POSIX_SIGNALS) && defined(DOCTEST_CONFIG_POSIX_SIGNALS) @@ -274,7 +279,8 @@ DOCTEST_MSVC_SUPPRESS_WARNING(4623) // default constructor was implicitly define #endif // DOCTEST_CONFIG_NO_POSIX_SIGNALS #ifndef DOCTEST_CONFIG_NO_EXCEPTIONS -#if !defined(__cpp_exceptions) && !defined(__EXCEPTIONS) && !defined(_CPPUNWIND) +#if !defined(__cpp_exceptions) && !defined(__EXCEPTIONS) && !defined(_CPPUNWIND) \ + || defined(__wasi__) #define DOCTEST_CONFIG_NO_EXCEPTIONS #endif // no exceptions #endif // DOCTEST_CONFIG_NO_EXCEPTIONS @@ -289,6 +295,10 @@ DOCTEST_MSVC_SUPPRESS_WARNING(4623) // default constructor was implicitly define #define DOCTEST_CONFIG_NO_TRY_CATCH_IN_ASSERTS #endif // DOCTEST_CONFIG_NO_EXCEPTIONS && !DOCTEST_CONFIG_NO_TRY_CATCH_IN_ASSERTS +#ifdef __wasi__ +#define DOCTEST_CONFIG_NO_MULTITHREADING +#endif + #if defined(DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN) && !defined(DOCTEST_CONFIG_IMPLEMENT) #define DOCTEST_CONFIG_IMPLEMENT #endif // DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN @@ -316,6 +326,16 @@ DOCTEST_MSVC_SUPPRESS_WARNING(4623) // default constructor was implicitly define #define DOCTEST_INTERFACE #endif // DOCTEST_CONFIG_IMPLEMENTATION_IN_DLL +// needed for extern template instantiations +// see https://github.com/fmtlib/fmt/issues/2228 +#if DOCTEST_MSVC +#define DOCTEST_INTERFACE_DECL +#define DOCTEST_INTERFACE_DEF DOCTEST_INTERFACE +#else // DOCTEST_MSVC +#define DOCTEST_INTERFACE_DECL DOCTEST_INTERFACE +#define DOCTEST_INTERFACE_DEF +#endif // DOCTEST_MSVC + #define DOCTEST_EMPTY #if DOCTEST_MSVC @@ -351,8 +371,10 @@ DOCTEST_MSVC_SUPPRESS_WARNING(4623) // default constructor was implicitly define #ifndef DOCTEST_CONSTEXPR #if DOCTEST_MSVC && (DOCTEST_MSVC < DOCTEST_COMPILER(19, 0, 0)) #define DOCTEST_CONSTEXPR const +#define DOCTEST_CONSTEXPR_FUNC inline #else // DOCTEST_MSVC #define DOCTEST_CONSTEXPR constexpr +#define DOCTEST_CONSTEXPR_FUNC constexpr #endif // DOCTEST_MSVC #endif // DOCTEST_CONSTEXPR @@ -360,6 +382,17 @@ DOCTEST_MSVC_SUPPRESS_WARNING(4623) // default constructor was implicitly define // == FEATURE DETECTION END ======================================================================== // ================================================================================================= +#define DOCTEST_DECLARE_INTERFACE(name) \ + virtual ~name(); \ + name() = default; \ + name(const name&) = delete; \ + name(name&&) = delete; \ + name& operator=(const name&) = delete; \ + name& operator=(name&&) = delete; + +#define DOCTEST_DEFINE_INTERFACE(name) \ + name::~name() = default; + // internal macros for string concatenation and anonymous variable name generation #define DOCTEST_CAT_IMPL(s1, s2) s1##s2 #define DOCTEST_CAT(s1, s2) DOCTEST_CAT_IMPL(s1, s2) @@ -382,17 +415,19 @@ DOCTEST_MSVC_SUPPRESS_WARNING(4623) // default constructor was implicitly define #define DOCTEST_PLATFORM_IPHONE #elif defined(_WIN32) #define DOCTEST_PLATFORM_WINDOWS +#elif defined(__wasi__) +#define DOCTEST_PLATFORM_WASI #else // DOCTEST_PLATFORM #define DOCTEST_PLATFORM_LINUX #endif // DOCTEST_PLATFORM namespace doctest { namespace detail { - static DOCTEST_CONSTEXPR int consume(const int*, int) { return 0; } + static DOCTEST_CONSTEXPR int consume(const int*, int) noexcept { return 0; } }} -#define DOCTEST_GLOBAL_NO_WARNINGS(var, ...) \ - DOCTEST_CLANG_SUPPRESS_WARNING_WITH_PUSH("-Wglobal-constructors") \ - static const int var = doctest::detail::consume(&var, __VA_ARGS__); \ +#define DOCTEST_GLOBAL_NO_WARNINGS(var, ...) \ + DOCTEST_CLANG_SUPPRESS_WARNING_WITH_PUSH("-Wglobal-constructors") \ + static const int var = doctest::detail::consume(&var, __VA_ARGS__); \ DOCTEST_CLANG_SUPPRESS_WARNING_POP #ifndef DOCTEST_BREAK_INTO_DEBUGGER @@ -400,16 +435,19 @@ namespace doctest { namespace detail { #ifdef DOCTEST_PLATFORM_LINUX #if defined(__GNUC__) && (defined(__i386) || defined(__x86_64)) // Break at the location of the failing check if possible -#define DOCTEST_BREAK_INTO_DEBUGGER() __asm__("int $3\n" : :) // NOLINT (hicpp-no-assembler) +#define DOCTEST_BREAK_INTO_DEBUGGER() __asm__("int $3\n" : :) // NOLINT(hicpp-no-assembler) #else #include <signal.h> #define DOCTEST_BREAK_INTO_DEBUGGER() raise(SIGTRAP) #endif #elif defined(DOCTEST_PLATFORM_MAC) #if defined(__x86_64) || defined(__x86_64__) || defined(__amd64__) || defined(__i386) -#define DOCTEST_BREAK_INTO_DEBUGGER() __asm__("int $3\n" : :) // NOLINT (hicpp-no-assembler) +#define DOCTEST_BREAK_INTO_DEBUGGER() __asm__("int $3\n" : :) // NOLINT(hicpp-no-assembler) +#elif defined(__ppc__) || defined(__ppc64__) +// https://www.cocoawithlove.com/2008/03/break-into-debugger.html +#define DOCTEST_BREAK_INTO_DEBUGGER() __asm__("li r0, 20\nsc\nnop\nli r0, 37\nli r4, 2\nsc\nnop\n": : : "memory","r0","r3","r4") // NOLINT(hicpp-no-assembler) #else -#define DOCTEST_BREAK_INTO_DEBUGGER() __asm__("brk #0"); // NOLINT (hicpp-no-assembler) +#define DOCTEST_BREAK_INTO_DEBUGGER() __asm__("brk #0"); // NOLINT(hicpp-no-assembler) #endif #elif DOCTEST_MSVC #define DOCTEST_BREAK_INTO_DEBUGGER() __debugbreak() @@ -425,7 +463,9 @@ DOCTEST_GCC_SUPPRESS_WARNING_POP // this is kept here for backwards compatibility since the config option was changed #ifdef DOCTEST_CONFIG_USE_IOSFWD +#ifndef DOCTEST_CONFIG_USE_STD_HEADERS #define DOCTEST_CONFIG_USE_STD_HEADERS +#endif #endif // DOCTEST_CONFIG_USE_IOSFWD // for clang - always include ciso646 (which drags some std stuff) because @@ -436,7 +476,9 @@ DOCTEST_GCC_SUPPRESS_WARNING_POP #if DOCTEST_CLANG #include <ciso646> #ifdef _LIBCPP_VERSION +#ifndef DOCTEST_CONFIG_USE_STD_HEADERS #define DOCTEST_CONFIG_USE_STD_HEADERS +#endif #endif // _LIBCPP_VERSION #endif // clang @@ -444,26 +486,32 @@ DOCTEST_GCC_SUPPRESS_WARNING_POP #ifndef DOCTEST_CONFIG_INCLUDE_TYPE_TRAITS #define DOCTEST_CONFIG_INCLUDE_TYPE_TRAITS #endif // DOCTEST_CONFIG_INCLUDE_TYPE_TRAITS +DOCTEST_MAKE_STD_HEADERS_CLEAN_FROM_WARNINGS_ON_WALL_BEGIN #include <cstddef> #include <ostream> #include <istream> +DOCTEST_MAKE_STD_HEADERS_CLEAN_FROM_WARNINGS_ON_WALL_END #else // DOCTEST_CONFIG_USE_STD_HEADERS // Forward declaring 'X' in namespace std is not permitted by the C++ Standard. DOCTEST_MSVC_SUPPRESS_WARNING_WITH_PUSH(4643) -namespace std { // NOLINT (cert-dcl58-cpp) -typedef decltype(nullptr) nullptr_t; +namespace std { // NOLINT(cert-dcl58-cpp) +typedef decltype(nullptr) nullptr_t; // NOLINT(modernize-use-using) +typedef decltype(sizeof(void*)) size_t; // NOLINT(modernize-use-using) template <class charT> struct char_traits; template <> struct char_traits<char>; template <class charT, class traits> -class basic_ostream; -typedef basic_ostream<char, char_traits<char>> ostream; +class basic_ostream; // NOLINT(fuchsia-virtual-inheritance) +typedef basic_ostream<char, char_traits<char>> ostream; // NOLINT(modernize-use-using) +template<class traits> +// NOLINTNEXTLINE +basic_ostream<char, traits>& operator<<(basic_ostream<char, traits>&, const char*); template <class charT, class traits> class basic_istream; -typedef basic_istream<char, char_traits<char>> istream; +typedef basic_istream<char, char_traits<char>> istream; // NOLINT(modernize-use-using) template <class... Types> class tuple; #if DOCTEST_MSVC >= DOCTEST_COMPILER(19, 20, 0) @@ -486,8 +534,14 @@ DOCTEST_MSVC_SUPPRESS_WARNING_POP namespace doctest { +using std::size_t; + DOCTEST_INTERFACE extern bool is_running_in_test; +#ifndef DOCTEST_CONFIG_STRING_SIZE_TYPE +#define DOCTEST_CONFIG_STRING_SIZE_TYPE unsigned +#endif + // A 24 byte string class (can be as small as 17 for x64 and 13 for x86) that can hold strings with length // of up to 23 chars on the stack before going on the heap - the last byte of the buffer is used for: // - "is small" bit - the highest bit - if "0" then it is small - otherwise its "1" (128) @@ -500,7 +554,6 @@ DOCTEST_INTERFACE extern bool is_running_in_test; // TODO: // - optimizations - like not deleting memory unnecessarily in operator= and etc. // - resize/reserve/clear -// - substr // - replace // - back/front // - iterator stuff @@ -510,64 +563,80 @@ DOCTEST_INTERFACE extern bool is_running_in_test; // - relational operators as free functions - taking const char* as one of the params class DOCTEST_INTERFACE String { - static const unsigned len = 24; //!OCLINT avoid private static members - static const unsigned last = len - 1; //!OCLINT avoid private static members +public: + using size_type = DOCTEST_CONFIG_STRING_SIZE_TYPE; + +private: + static DOCTEST_CONSTEXPR size_type len = 24; //!OCLINT avoid private static members + static DOCTEST_CONSTEXPR size_type last = len - 1; //!OCLINT avoid private static members struct view // len should be more than sizeof(view) - because of the final byte for flags { char* ptr; - unsigned size; - unsigned capacity; + size_type size; + size_type capacity; }; union { - char buf[len]; + char buf[len]; // NOLINT(*-avoid-c-arrays) view data; }; - char* allocate(unsigned sz); + char* allocate(size_type sz); - bool isOnStack() const { return (buf[last] & 128) == 0; } - void setOnHeap(); - void setLast(unsigned in = last); + bool isOnStack() const noexcept { return (buf[last] & 128) == 0; } + void setOnHeap() noexcept; + void setLast(size_type in = last) noexcept; + void setSize(size_type sz) noexcept; void copy(const String& other); public: - String(); + static DOCTEST_CONSTEXPR size_type npos = static_cast<size_type>(-1); + + String() noexcept; ~String(); // cppcheck-suppress noExplicitConstructor String(const char* in); - String(const char* in, unsigned in_size); + String(const char* in, size_type in_size); - String(std::istream& in, unsigned in_size); + String(std::istream& in, size_type in_size); String(const String& other); String& operator=(const String& other); String& operator+=(const String& other); - String(String&& other); - String& operator=(String&& other); + String(String&& other) noexcept; + String& operator=(String&& other) noexcept; - char operator[](unsigned i) const; - char& operator[](unsigned i); + char operator[](size_type i) const; + char& operator[](size_type i); // the only functions I'm willing to leave in the interface - available for inlining const char* c_str() const { return const_cast<String*>(this)->c_str(); } // NOLINT char* c_str() { - if(isOnStack()) + if (isOnStack()) { return reinterpret_cast<char*>(buf); + } return data.ptr; } - unsigned size() const; - unsigned capacity() const; + size_type size() const; + size_type capacity() const; + + String substr(size_type pos, size_type cnt = npos) &&; + String substr(size_type pos, size_type cnt = npos) const &; + + size_type find(char ch, size_type pos = 0) const; + size_type rfind(char ch, size_type pos = npos) const; int compare(const char* other, bool no_case = false) const; int compare(const String& other, bool no_case = false) const; + +friend DOCTEST_INTERFACE std::ostream& operator<<(std::ostream& s, const String& in); }; DOCTEST_INTERFACE String operator+(const String& lhs, const String& rhs); @@ -579,7 +648,21 @@ DOCTEST_INTERFACE bool operator>(const String& lhs, const String& rhs); DOCTEST_INTERFACE bool operator<=(const String& lhs, const String& rhs); DOCTEST_INTERFACE bool operator>=(const String& lhs, const String& rhs); -DOCTEST_INTERFACE std::ostream& operator<<(std::ostream& s, const String& in); +class DOCTEST_INTERFACE Contains { +public: + explicit Contains(const String& string); + + bool checkWith(const String& other) const; + + String string; +}; + +DOCTEST_INTERFACE String toString(const Contains& in); + +DOCTEST_INTERFACE bool operator==(const String& lhs, const Contains& rhs); +DOCTEST_INTERFACE bool operator==(const Contains& lhs, const String& rhs); +DOCTEST_INTERFACE bool operator!=(const String& lhs, const Contains& rhs); +DOCTEST_INTERFACE bool operator!=(const Contains& lhs, const String& rhs); namespace Color { enum Enum @@ -652,7 +735,7 @@ namespace assertType { DT_WARN_THROWS_WITH = is_throws_with | is_warn, DT_CHECK_THROWS_WITH = is_throws_with | is_check, DT_REQUIRE_THROWS_WITH = is_throws_with | is_require, - + DT_WARN_THROWS_WITH_AS = is_throws_with | is_throws_as | is_warn, DT_CHECK_THROWS_WITH_AS = is_throws_with | is_throws_as | is_check, DT_REQUIRE_THROWS_WITH_AS = is_throws_with | is_throws_as | is_require, @@ -733,9 +816,27 @@ struct DOCTEST_INTERFACE AssertData String m_decomp; // for specific exception-related asserts - bool m_threw_as; - const char* m_exception_type; - const char* m_exception_string; + bool m_threw_as; + const char* m_exception_type; + + class DOCTEST_INTERFACE StringContains { + private: + Contains content; + bool isContains; + + public: + StringContains(const String& str) : content(str), isContains(false) { } + StringContains(Contains cntn) : content(static_cast<Contains&&>(cntn)), isContains(true) { } + + bool check(const String& str) { return isContains ? (content == str) : (content.string == str); } + + operator const String&() const { return content.string; } + + const char* c_str() const { return content.string.c_str(); } + } m_exception_string; + + AssertData(assertType::Enum at, const char* file, int line, const char* expr, + const char* exception_type, const StringContains& exception_string); }; struct DOCTEST_INTERFACE MessageData @@ -752,13 +853,13 @@ struct DOCTEST_INTERFACE SubcaseSignature const char* m_file; int m_line; + bool operator==(const SubcaseSignature& other) const; bool operator<(const SubcaseSignature& other) const; }; struct DOCTEST_INTERFACE IContextScope { - IContextScope(); - virtual ~IContextScope(); + DOCTEST_DECLARE_INTERFACE(IContextScope) virtual void stringify(std::ostream*) const = 0; }; @@ -815,200 +916,184 @@ struct ContextOptions //!OCLINT too many fields }; namespace detail { - template <bool CONDITION, typename TYPE = void> - struct enable_if - {}; + namespace types { +#ifdef DOCTEST_CONFIG_INCLUDE_TYPE_TRAITS + using namespace std; +#else + template <bool COND, typename T = void> + struct enable_if { }; + + template <typename T> + struct enable_if<true, T> { using type = T; }; - template <typename TYPE> - struct enable_if<true, TYPE> - { typedef TYPE type; }; + struct true_type { static DOCTEST_CONSTEXPR bool value = true; }; + struct false_type { static DOCTEST_CONSTEXPR bool value = false; }; - // clang-format off - template<class T> struct remove_reference { typedef T type; }; - template<class T> struct remove_reference<T&> { typedef T type; }; - template<class T> struct remove_reference<T&&> { typedef T type; }; + template <typename T> struct remove_reference { using type = T; }; + template <typename T> struct remove_reference<T&> { using type = T; }; + template <typename T> struct remove_reference<T&&> { using type = T; }; - template<typename T, typename U = T&&> U declval(int); + template <typename T> struct is_rvalue_reference : false_type { }; + template <typename T> struct is_rvalue_reference<T&&> : true_type { }; - template<typename T> T declval(long); + template<typename T> struct remove_const { using type = T; }; + template <typename T> struct remove_const<const T> { using type = T; }; - template<typename T> auto declval() DOCTEST_NOEXCEPT -> decltype(declval<T>(0)) ; + // Compiler intrinsics + template <typename T> struct is_enum { static DOCTEST_CONSTEXPR bool value = __is_enum(T); }; + template <typename T> struct underlying_type { using type = __underlying_type(T); }; - template<class T> struct is_lvalue_reference { const static bool value=false; }; - template<class T> struct is_lvalue_reference<T&> { const static bool value=true; }; + template <typename T> struct is_pointer : false_type { }; + template <typename T> struct is_pointer<T*> : true_type { }; + + template <typename T> struct is_array : false_type { }; + // NOLINTNEXTLINE(*-avoid-c-arrays) + template <typename T, size_t SIZE> struct is_array<T[SIZE]> : true_type { }; +#endif + } - template<class T> struct is_rvalue_reference { const static bool value=false; }; - template<class T> struct is_rvalue_reference<T&&> { const static bool value=true; }; + // <utility> + template <typename T> + T&& declval(); template <class T> - inline T&& forward(typename remove_reference<T>::type& t) DOCTEST_NOEXCEPT - { + DOCTEST_CONSTEXPR_FUNC T&& forward(typename types::remove_reference<T>::type& t) DOCTEST_NOEXCEPT { return static_cast<T&&>(t); } template <class T> - inline T&& forward(typename remove_reference<T>::type&& t) DOCTEST_NOEXCEPT - { - static_assert(!is_lvalue_reference<T>::value, - "Can not forward an rvalue as an lvalue."); + DOCTEST_CONSTEXPR_FUNC T&& forward(typename types::remove_reference<T>::type&& t) DOCTEST_NOEXCEPT { return static_cast<T&&>(t); } - template<class T> struct remove_const { typedef T type; }; - template<class T> struct remove_const<const T> { typedef T type; }; -#ifdef DOCTEST_CONFIG_INCLUDE_TYPE_TRAITS - template<class T> struct is_enum : public std::is_enum<T> {}; - template<class T> struct underlying_type : public std::underlying_type<T> {}; -#else - // Use compiler intrinsics - template<class T> struct is_enum { DOCTEST_CONSTEXPR static bool value = __is_enum(T); }; - template<class T> struct underlying_type { typedef __underlying_type(T) type; }; -#endif - // clang-format on + template <typename T> + struct deferred_false : types::false_type { }; + +// MSVS 2015 :( +#if defined(_MSC_VER) && _MSC_VER <= 1900 + template <typename T, typename = void> + struct has_global_insertion_operator : types::false_type { }; template <typename T> - struct deferred_false - // cppcheck-suppress unusedStructMember - { static const bool value = false; }; - - namespace has_insertion_operator_impl { - std::ostream &os(); - template<class T> - DOCTEST_REF_WRAP(T) val(); - - template<class, class = void> - struct check { - static DOCTEST_CONSTEXPR bool value = false; - }; + struct has_global_insertion_operator<T, decltype(::operator<<(declval<std::ostream&>(), declval<const T&>()), void())> : types::true_type { }; - template<class T> - struct check<T, decltype(os() << val<T>(), void())> { - static DOCTEST_CONSTEXPR bool value = true; - }; - } // namespace has_insertion_operator_impl + template <typename T, typename = void> + struct has_insertion_operator { static DOCTEST_CONSTEXPR bool value = has_global_insertion_operator<T>::value; }; + + template <typename T, bool global> + struct insert_hack; + + template <typename T> + struct insert_hack<T, true> { + static void insert(std::ostream& os, const T& t) { ::operator<<(os, t); } + }; - template<class T> - using has_insertion_operator = has_insertion_operator_impl::check<const T>; + template <typename T> + struct insert_hack<T, false> { + static void insert(std::ostream& os, const T& t) { operator<<(os, t); } + }; + + template <typename T> + using insert_hack_t = insert_hack<T, has_global_insertion_operator<T>::value>; +#else + template <typename T, typename = void> + struct has_insertion_operator : types::false_type { }; +#endif + +template <typename T> +struct has_insertion_operator<T, decltype(operator<<(declval<std::ostream&>(), declval<const T&>()), void())> : types::true_type { }; DOCTEST_INTERFACE std::ostream* tlssPush(); DOCTEST_INTERFACE String tlssPop(); - template <bool C> - struct StringMakerBase - { + struct StringMakerBase { template <typename T> static String convert(const DOCTEST_REF_WRAP(T)) { +#ifdef DOCTEST_CONFIG_REQUIRE_STRINGIFICATION_FOR_ALL_USED_TYPES + static_assert(deferred_false<T>::value, "No stringification detected for type T. See string conversion manual"); +#endif return "{?}"; } }; - // Vector<int> and various type other than pointer or array. - template<typename T> - struct filldata - { - static void fill(std::ostream* stream, const T &in) { - *stream << in; - } - }; - - template<typename T,unsigned long N> - struct filldata<T[N]> - { - static void fill(std::ostream* stream, const T (&in)[N]) { - for (unsigned long i = 0; i < N; i++) { - *stream << in[i]; - } - } - }; - - // Specialized since we don't want the terminating null byte! - template<unsigned long N> - struct filldata<const char[N]> - { - static void fill(std::ostream* stream, const char(&in)[N]) { - *stream << in; - } - }; + template <typename T> + struct filldata; - template<typename T> + template <typename T> void filloss(std::ostream* stream, const T& in) { filldata<T>::fill(stream, in); } - template<typename T,unsigned long N> - void filloss(std::ostream* stream, const T (&in)[N]) { + template <typename T, size_t N> + void filloss(std::ostream* stream, const T (&in)[N]) { // NOLINT(*-avoid-c-arrays) // T[N], T(&)[N], T(&&)[N] have same behaviour. // Hence remove reference. - filldata<typename remove_reference<decltype(in)>::type>::fill(stream, in); + filloss<typename types::remove_reference<decltype(in)>::type>(stream, in); + } + + template <typename T> + String toStream(const T& in) { + std::ostream* stream = tlssPush(); + filloss(stream, in); + return tlssPop(); } template <> - struct StringMakerBase<true> - { + struct StringMakerBase<true> { template <typename T> static String convert(const DOCTEST_REF_WRAP(T) in) { - /* When parameter "in" is a null terminated const char* it works. - * When parameter "in" is a T arr[N] without '\0' we can fill the - * stringstream with N objects (T=char).If in is char pointer * - * without '\0' , it would cause segfault - * stepping over unaccessible memory. - */ - - std::ostream* stream = tlssPush(); - filloss(stream, in); - return tlssPop(); + return toStream(in); } }; - - DOCTEST_INTERFACE String rawMemoryToString(const void* object, unsigned size); - - template <typename T> - String rawMemoryToString(const DOCTEST_REF_WRAP(T) object) { - return rawMemoryToString(&object, sizeof(object)); - } - - template <typename T> - const char* type_to_string() { - return "<>"; - } } // namespace detail template <typename T> -struct StringMaker : public detail::StringMakerBase<detail::has_insertion_operator<T>::value> +struct StringMaker : public detail::StringMakerBase< + detail::has_insertion_operator<T>::value || detail::types::is_pointer<T>::value || detail::types::is_array<T>::value> {}; -template <typename T> -struct StringMaker<T*> -{ - template <typename U> - static String convert(U* p) { - if(p) - return detail::rawMemoryToString(p); - return "NULL"; - } -}; +#ifndef DOCTEST_STRINGIFY +#ifdef DOCTEST_CONFIG_DOUBLE_STRINGIFY +#define DOCTEST_STRINGIFY(...) toString(toString(__VA_ARGS__)) +#else +#define DOCTEST_STRINGIFY(...) toString(__VA_ARGS__) +#endif +#endif -template <typename R, typename C> -struct StringMaker<R C::*> -{ - static String convert(R C::*p) { - if(p) - return detail::rawMemoryToString(p); - return "NULL"; - } -}; +template <typename T> +String toString() { +#if DOCTEST_MSVC >= 0 && DOCTEST_CLANG == 0 && DOCTEST_GCC == 0 + String ret = __FUNCSIG__; // class doctest::String __cdecl doctest::toString<TYPE>(void) + String::size_type beginPos = ret.find('<'); + return ret.substr(beginPos + 1, ret.size() - beginPos - static_cast<String::size_type>(sizeof(">(void)"))); +#else + String ret = __PRETTY_FUNCTION__; // doctest::String toString() [with T = TYPE] + String::size_type begin = ret.find('=') + 2; + return ret.substr(begin, ret.size() - begin - 1); +#endif +} -template <typename T, typename detail::enable_if<!detail::is_enum<T>::value, bool>::type = true> +template <typename T, typename detail::types::enable_if<!detail::types::is_enum<T>::value, bool>::type = true> String toString(const DOCTEST_REF_WRAP(T) value) { return StringMaker<T>::convert(value); } #ifdef DOCTEST_CONFIG_TREAT_CHAR_STAR_AS_STRING -DOCTEST_INTERFACE String toString(char* in); DOCTEST_INTERFACE String toString(const char* in); #endif // DOCTEST_CONFIG_TREAT_CHAR_STAR_AS_STRING + +#if DOCTEST_MSVC >= DOCTEST_COMPILER(19, 20, 0) +// see this issue on why this is needed: https://github.com/doctest/doctest/issues/183 +DOCTEST_INTERFACE String toString(const std::string& in); +#endif // VS 2019 + +DOCTEST_INTERFACE String toString(String in); + +DOCTEST_INTERFACE String toString(std::nullptr_t); + DOCTEST_INTERFACE String toString(bool in); + DOCTEST_INTERFACE String toString(float in); DOCTEST_INTERFACE String toString(double in); DOCTEST_INTERFACE String toString(double long in); @@ -1016,40 +1101,85 @@ DOCTEST_INTERFACE String toString(double long in); DOCTEST_INTERFACE String toString(char in); DOCTEST_INTERFACE String toString(char signed in); DOCTEST_INTERFACE String toString(char unsigned in); -DOCTEST_INTERFACE String toString(int short in); -DOCTEST_INTERFACE String toString(int short unsigned in); -DOCTEST_INTERFACE String toString(int in); -DOCTEST_INTERFACE String toString(int unsigned in); -DOCTEST_INTERFACE String toString(int long in); -DOCTEST_INTERFACE String toString(int long unsigned in); -DOCTEST_INTERFACE String toString(int long long in); -DOCTEST_INTERFACE String toString(int long long unsigned in); -DOCTEST_INTERFACE String toString(std::nullptr_t in); - -template <typename T, typename detail::enable_if<detail::is_enum<T>::value, bool>::type = true> +DOCTEST_INTERFACE String toString(short in); +DOCTEST_INTERFACE String toString(short unsigned in); +DOCTEST_INTERFACE String toString(signed in); +DOCTEST_INTERFACE String toString(unsigned in); +DOCTEST_INTERFACE String toString(long in); +DOCTEST_INTERFACE String toString(long unsigned in); +DOCTEST_INTERFACE String toString(long long in); +DOCTEST_INTERFACE String toString(long long unsigned in); + +template <typename T, typename detail::types::enable_if<detail::types::is_enum<T>::value, bool>::type = true> String toString(const DOCTEST_REF_WRAP(T) value) { - typedef typename detail::underlying_type<T>::type UT; - return toString(static_cast<UT>(value)); + using UT = typename detail::types::underlying_type<T>::type; + return (DOCTEST_STRINGIFY(static_cast<UT>(value))); } -#if DOCTEST_MSVC >= DOCTEST_COMPILER(19, 20, 0) -// see this issue on why this is needed: https://github.com/doctest/doctest/issues/183 -DOCTEST_INTERFACE String toString(const std::string& in); -#endif // VS 2019 +namespace detail { + template <typename T> + struct filldata + { + static void fill(std::ostream* stream, const T& in) { +#if defined(_MSC_VER) && _MSC_VER <= 1900 + insert_hack_t<T>::insert(*stream, in); +#else + operator<<(*stream, in); +#endif + } + }; + +DOCTEST_MSVC_SUPPRESS_WARNING_WITH_PUSH(4866) +// NOLINTBEGIN(*-avoid-c-arrays) + template <typename T, size_t N> + struct filldata<T[N]> { + static void fill(std::ostream* stream, const T(&in)[N]) { + *stream << "["; + for (size_t i = 0; i < N; i++) { + if (i != 0) { *stream << ", "; } + *stream << (DOCTEST_STRINGIFY(in[i])); + } + *stream << "]"; + } + }; +// NOLINTEND(*-avoid-c-arrays) +DOCTEST_MSVC_SUPPRESS_WARNING_POP -class DOCTEST_INTERFACE Approx + // Specialized since we don't want the terminating null byte! +// NOLINTBEGIN(*-avoid-c-arrays) + template <size_t N> + struct filldata<const char[N]> { + static void fill(std::ostream* stream, const char (&in)[N]) { + *stream << String(in, in[N - 1] ? N : N - 1); + } // NOLINT(clang-analyzer-cplusplus.NewDeleteLeaks) + }; +// NOLINTEND(*-avoid-c-arrays) + + template <> + struct filldata<const void*> { + static void fill(std::ostream* stream, const void* in); + }; + + template <typename T> + struct filldata<T*> { + static void fill(std::ostream* stream, const T* in) { + filldata<const void*>::fill(stream, in); + } + }; +} + +struct DOCTEST_INTERFACE Approx { -public: - explicit Approx(double value); + Approx(double value); Approx operator()(double value) const; #ifdef DOCTEST_CONFIG_INCLUDE_TYPE_TRAITS template <typename T> explicit Approx(const T& value, - typename detail::enable_if<std::is_constructible<double, T>::value>::type* = + typename detail::types::enable_if<std::is_constructible<double, T>::value>::type* = static_cast<T*>(nullptr)) { - *this = Approx(static_cast<double>(value)); + *this = static_cast<double>(value); } #endif // DOCTEST_CONFIG_INCLUDE_TYPE_TRAITS @@ -1057,7 +1187,7 @@ public: #ifdef DOCTEST_CONFIG_INCLUDE_TYPE_TRAITS template <typename T> - typename detail::enable_if<std::is_constructible<double, T>::value, Approx&>::type epsilon( + typename std::enable_if<std::is_constructible<double, T>::value, Approx&>::type epsilon( const T& newEpsilon) { m_epsilon = static_cast<double>(newEpsilon); return *this; @@ -1068,7 +1198,7 @@ public: #ifdef DOCTEST_CONFIG_INCLUDE_TYPE_TRAITS template <typename T> - typename detail::enable_if<std::is_constructible<double, T>::value, Approx&>::type scale( + typename std::enable_if<std::is_constructible<double, T>::value, Approx&>::type scale( const T& newScale) { m_scale = static_cast<double>(newScale); return *this; @@ -1089,30 +1219,27 @@ public: DOCTEST_INTERFACE friend bool operator> (double lhs, const Approx & rhs); DOCTEST_INTERFACE friend bool operator> (const Approx & lhs, double rhs); - DOCTEST_INTERFACE friend String toString(const Approx& in); - #ifdef DOCTEST_CONFIG_INCLUDE_TYPE_TRAITS #define DOCTEST_APPROX_PREFIX \ - template <typename T> friend typename detail::enable_if<std::is_constructible<double, T>::value, bool>::type + template <typename T> friend typename std::enable_if<std::is_constructible<double, T>::value, bool>::type - DOCTEST_APPROX_PREFIX operator==(const T& lhs, const Approx& rhs) { return operator==(double(lhs), rhs); } + DOCTEST_APPROX_PREFIX operator==(const T& lhs, const Approx& rhs) { return operator==(static_cast<double>(lhs), rhs); } DOCTEST_APPROX_PREFIX operator==(const Approx& lhs, const T& rhs) { return operator==(rhs, lhs); } DOCTEST_APPROX_PREFIX operator!=(const T& lhs, const Approx& rhs) { return !operator==(lhs, rhs); } DOCTEST_APPROX_PREFIX operator!=(const Approx& lhs, const T& rhs) { return !operator==(rhs, lhs); } - DOCTEST_APPROX_PREFIX operator<=(const T& lhs, const Approx& rhs) { return double(lhs) < rhs.m_value || lhs == rhs; } - DOCTEST_APPROX_PREFIX operator<=(const Approx& lhs, const T& rhs) { return lhs.m_value < double(rhs) || lhs == rhs; } - DOCTEST_APPROX_PREFIX operator>=(const T& lhs, const Approx& rhs) { return double(lhs) > rhs.m_value || lhs == rhs; } - DOCTEST_APPROX_PREFIX operator>=(const Approx& lhs, const T& rhs) { return lhs.m_value > double(rhs) || lhs == rhs; } - DOCTEST_APPROX_PREFIX operator< (const T& lhs, const Approx& rhs) { return double(lhs) < rhs.m_value && lhs != rhs; } - DOCTEST_APPROX_PREFIX operator< (const Approx& lhs, const T& rhs) { return lhs.m_value < double(rhs) && lhs != rhs; } - DOCTEST_APPROX_PREFIX operator> (const T& lhs, const Approx& rhs) { return double(lhs) > rhs.m_value && lhs != rhs; } - DOCTEST_APPROX_PREFIX operator> (const Approx& lhs, const T& rhs) { return lhs.m_value > double(rhs) && lhs != rhs; } + DOCTEST_APPROX_PREFIX operator<=(const T& lhs, const Approx& rhs) { return static_cast<double>(lhs) < rhs.m_value || lhs == rhs; } + DOCTEST_APPROX_PREFIX operator<=(const Approx& lhs, const T& rhs) { return lhs.m_value < static_cast<double>(rhs) || lhs == rhs; } + DOCTEST_APPROX_PREFIX operator>=(const T& lhs, const Approx& rhs) { return static_cast<double>(lhs) > rhs.m_value || lhs == rhs; } + DOCTEST_APPROX_PREFIX operator>=(const Approx& lhs, const T& rhs) { return lhs.m_value > static_cast<double>(rhs) || lhs == rhs; } + DOCTEST_APPROX_PREFIX operator< (const T& lhs, const Approx& rhs) { return static_cast<double>(lhs) < rhs.m_value && lhs != rhs; } + DOCTEST_APPROX_PREFIX operator< (const Approx& lhs, const T& rhs) { return lhs.m_value < static_cast<double>(rhs) && lhs != rhs; } + DOCTEST_APPROX_PREFIX operator> (const T& lhs, const Approx& rhs) { return static_cast<double>(lhs) > rhs.m_value && lhs != rhs; } + DOCTEST_APPROX_PREFIX operator> (const Approx& lhs, const T& rhs) { return lhs.m_value > static_cast<double>(rhs) && lhs != rhs; } #undef DOCTEST_APPROX_PREFIX #endif // DOCTEST_CONFIG_INCLUDE_TYPE_TRAITS // clang-format on -private: double m_epsilon; double m_scale; double m_value; @@ -1122,18 +1249,35 @@ DOCTEST_INTERFACE String toString(const Approx& in); DOCTEST_INTERFACE const ContextOptions* getContextOptions(); -#if !defined(DOCTEST_CONFIG_DISABLE) +template <typename F> +struct DOCTEST_INTERFACE_DECL IsNaN +{ + F value; bool flipped; + IsNaN(F f, bool flip = false) : value(f), flipped(flip) { } + IsNaN<F> operator!() const { return { value, !flipped }; } + operator bool() const; +}; +#ifndef __MINGW32__ +extern template struct DOCTEST_INTERFACE_DECL IsNaN<float>; +extern template struct DOCTEST_INTERFACE_DECL IsNaN<double>; +extern template struct DOCTEST_INTERFACE_DECL IsNaN<long double>; +#endif +DOCTEST_INTERFACE String toString(IsNaN<float> in); +DOCTEST_INTERFACE String toString(IsNaN<double> in); +DOCTEST_INTERFACE String toString(IsNaN<double long> in); + +#ifndef DOCTEST_CONFIG_DISABLE namespace detail { // clang-format off #ifdef DOCTEST_CONFIG_TREAT_CHAR_STAR_AS_STRING - template<class T> struct decay_array { typedef T type; }; - template<class T, unsigned N> struct decay_array<T[N]> { typedef T* type; }; - template<class T> struct decay_array<T[]> { typedef T* type; }; + template<class T> struct decay_array { using type = T; }; + template<class T, unsigned N> struct decay_array<T[N]> { using type = T*; }; + template<class T> struct decay_array<T[]> { using type = T*; }; - template<class T> struct not_char_pointer { enum { value = 1 }; }; - template<> struct not_char_pointer<char*> { enum { value = 0 }; }; - template<> struct not_char_pointer<const char*> { enum { value = 0 }; }; + template<class T> struct not_char_pointer { static DOCTEST_CONSTEXPR value = 1; }; + template<> struct not_char_pointer<char*> { static DOCTEST_CONSTEXPR value = 0; }; + template<> struct not_char_pointer<const char*> { static DOCTEST_CONSTEXPR value = 0; }; template<class T> struct can_use_op : public not_char_pointer<typename decay_array<T>::type> {}; #endif // DOCTEST_CONFIG_TREAT_CHAR_STAR_AS_STRING @@ -1156,16 +1300,22 @@ namespace detail { bool m_entered = false; Subcase(const String& name, const char* file, int line); + Subcase(const Subcase&) = delete; + Subcase(Subcase&&) = delete; + Subcase& operator=(const Subcase&) = delete; + Subcase& operator=(Subcase&&) = delete; ~Subcase(); operator bool() const; + + private: + bool checkFilters(); }; template <typename L, typename R> String stringifyBinaryExpr(const DOCTEST_REF_WRAP(L) lhs, const char* op, const DOCTEST_REF_WRAP(R) rhs) { - // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks) - return toString(lhs) + op + toString(rhs); + return (DOCTEST_STRINGIFY(lhs)) + op + (DOCTEST_STRINGIFY(rhs)); } #if DOCTEST_CLANG && DOCTEST_CLANG < DOCTEST_COMPILER(3, 6, 0) @@ -1180,17 +1330,8 @@ DOCTEST_CLANG_SUPPRESS_WARNING_WITH_PUSH("-Wunused-comparison") #define DOCTEST_DO_BINARY_EXPRESSION_COMPARISON(op, op_str, op_macro) \ template <typename R> \ - DOCTEST_NOINLINE SFINAE_OP(Result,op) operator op(const R&& rhs) { \ - bool res = op_macro(doctest::detail::forward<const L>(lhs), doctest::detail::forward<const R>(rhs)); \ - if(m_at & assertType::is_false) \ - res = !res; \ - if(!res || doctest::getContextOptions()->success) \ - return Result(res, stringifyBinaryExpr(lhs, op_str, rhs)); \ - return Result(res); \ - } \ - template <typename R ,typename enable_if<!doctest::detail::is_rvalue_reference<R>::value, void >::type* = nullptr> \ - DOCTEST_NOINLINE SFINAE_OP(Result,op) operator op(const R& rhs) { \ - bool res = op_macro(doctest::detail::forward<const L>(lhs), rhs); \ + DOCTEST_NOINLINE SFINAE_OP(Result,op) operator op(R&& rhs) { \ + bool res = op_macro(doctest::detail::forward<const L>(lhs), doctest::detail::forward<R>(rhs)); \ if(m_at & assertType::is_false) \ res = !res; \ if(!res || doctest::getContextOptions()->success) \ @@ -1209,12 +1350,12 @@ DOCTEST_CLANG_SUPPRESS_WARNING_WITH_PUSH("-Wunused-comparison") return *this; \ } - struct DOCTEST_INTERFACE Result + struct DOCTEST_INTERFACE Result // NOLINT(*-member-init) { bool m_passed; String m_decomp; - Result() = default; + Result() = default; // TODO: Why do we need this? (To remove NOLINT) Result(bool passed, const String& decomposition = String()); // forbidding some expressions based on this table: https://en.cppreference.com/w/cpp/language/operator_precedence @@ -1271,8 +1412,7 @@ DOCTEST_CLANG_SUPPRESS_WARNING_WITH_PUSH("-Wunused-comparison") #ifndef DOCTEST_CONFIG_TREAT_CHAR_STAR_AS_STRING #define DOCTEST_COMPARISON_RETURN_TYPE bool #else // DOCTEST_CONFIG_TREAT_CHAR_STAR_AS_STRING -#define DOCTEST_COMPARISON_RETURN_TYPE typename enable_if<can_use_op<L>::value || can_use_op<R>::value, bool>::type - // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks) +#define DOCTEST_COMPARISON_RETURN_TYPE typename types::enable_if<can_use_op<L>::value || can_use_op<R>::value, bool>::type inline bool eq(const char* lhs, const char* rhs) { return String(lhs) == String(rhs); } inline bool ne(const char* lhs, const char* rhs) { return String(lhs) != String(rhs); } inline bool lt(const char* lhs, const char* rhs) { return String(lhs) < String(rhs); } @@ -1320,7 +1460,7 @@ DOCTEST_CLANG_SUPPRESS_WARNING_WITH_PUSH("-Wunused-comparison") assertType::Enum m_at; explicit Expression_lhs(L&& in, assertType::Enum at) - : lhs(doctest::detail::forward<L>(in)) + : lhs(static_cast<L&&>(in)) , m_at(at) {} DOCTEST_NOINLINE operator Result() { @@ -1328,12 +1468,14 @@ DOCTEST_CLANG_SUPPRESS_WARNING_WITH_PUSH("-Wunused-comparison") DOCTEST_MSVC_SUPPRESS_WARNING_WITH_PUSH(4800) // 'int': forcing value to bool bool res = static_cast<bool>(lhs); DOCTEST_MSVC_SUPPRESS_WARNING_POP - if(m_at & assertType::is_false) //!OCLINT bitwise operator in conditional + if(m_at & assertType::is_false) { //!OCLINT bitwise operator in conditional res = !res; + } - if(!res || getContextOptions()->success) - return Result(res, toString(lhs)); - return Result(res); + if(!res || getContextOptions()->success) { + return { res, (DOCTEST_STRINGIFY(lhs)) }; + } + return { res }; } /* This is required for user-defined conversions from Expression_lhs to L */ @@ -1394,11 +1536,11 @@ DOCTEST_CLANG_SUPPRESS_WARNING_POP // https://github.com/catchorg/Catch2/issues/870 // https://github.com/catchorg/Catch2/issues/565 template <typename L> - Expression_lhs<const L> operator<<(const L &&operand) { - return Expression_lhs<const L>(doctest::detail::forward<const L>(operand), m_at); + Expression_lhs<L> operator<<(L&& operand) { + return Expression_lhs<L>(static_cast<L&&>(operand), m_at); } - template <typename L,typename enable_if<!doctest::detail::is_rvalue_reference<L>::value,void >::type* = nullptr> + template <typename L,typename types::enable_if<!doctest::detail::types::is_rvalue_reference<L>::value,void >::type* = nullptr> Expression_lhs<const L&> operator<<(const L &operand) { return Expression_lhs<const L&>(operand, m_at); } @@ -1425,25 +1567,28 @@ DOCTEST_CLANG_SUPPRESS_WARNING_POP } }; - typedef void (*funcType)(); + using funcType = void (*)(); struct DOCTEST_INTERFACE TestCase : public TestCaseData { funcType m_test; // a function pointer to the test case - const char* m_type; // for templated test cases - gets appended to the real name + String m_type; // for templated test cases - gets appended to the real name int m_template_id; // an ID used to distinguish between the different versions of a templated test case String m_full_name; // contains the name (only for templated test cases!) + the template type TestCase(funcType test, const char* file, unsigned line, const TestSuite& test_suite, - const char* type = "", int template_id = -1); + const String& type = String(), int template_id = -1); TestCase(const TestCase& other); + TestCase(TestCase&&) = delete; DOCTEST_MSVC_SUPPRESS_WARNING_WITH_PUSH(26434) // hides a non-virtual function TestCase& operator=(const TestCase& other); DOCTEST_MSVC_SUPPRESS_WARNING_POP + TestCase& operator=(TestCase&&) = delete; + TestCase& operator*(const char* in); template <typename T> @@ -1453,6 +1598,8 @@ DOCTEST_CLANG_SUPPRESS_WARNING_POP } bool operator<(const TestCase& other) const; + + ~TestCase() = default; }; // forward declarations of functions used by the macros @@ -1492,7 +1639,10 @@ DOCTEST_CLANG_SUPPRESS_WARNING_POP struct DOCTEST_INTERFACE ResultBuilder : public AssertData { ResultBuilder(assertType::Enum at, const char* file, int line, const char* expr, - const char* exception_type = "", const char* exception_string = ""); + const char* exception_type = "", const String& exception_string = ""); + + ResultBuilder(assertType::Enum at, const char* file, int line, const char* expr, + const char* exception_type, const Contains& exception_string); void setResult(const Result& res); @@ -1500,8 +1650,9 @@ DOCTEST_CLANG_SUPPRESS_WARNING_POP DOCTEST_NOINLINE bool binary_assert(const DOCTEST_REF_WRAP(L) lhs, const DOCTEST_REF_WRAP(R) rhs) { m_failed = !RelationalComparator<comparison, L, R>()(lhs, rhs); - if(m_failed || getContextOptions()->success) + if (m_failed || getContextOptions()->success) { m_decomp = stringifyBinaryExpr(lhs, ", ", rhs); + } return !m_failed; } @@ -1509,11 +1660,13 @@ DOCTEST_CLANG_SUPPRESS_WARNING_POP DOCTEST_NOINLINE bool unary_assert(const DOCTEST_REF_WRAP(L) val) { m_failed = !val; - if(m_at & assertType::is_false) //!OCLINT bitwise operator in conditional + if (m_at & assertType::is_false) { //!OCLINT bitwise operator in conditional m_failed = !m_failed; + } - if(m_failed || getContextOptions()->success) - m_decomp = toString(val); + if (m_failed || getContextOptions()->success) { + m_decomp = (DOCTEST_STRINGIFY(val)); + } return !m_failed; } @@ -1536,7 +1689,7 @@ DOCTEST_CLANG_SUPPRESS_WARNING_POP DOCTEST_INTERFACE void failed_out_of_a_testing_context(const AssertData& ad); DOCTEST_INTERFACE bool decomp_assert(assertType::Enum at, const char* file, int line, - const char* expr, Result result); + const char* expr, const Result& result); #define DOCTEST_ASSERT_OUT_OF_TESTS(decomp) \ do { \ @@ -1592,15 +1745,14 @@ DOCTEST_CLANG_SUPPRESS_WARNING_POP // IF THE DEBUGGER BREAKS HERE - GO 1 LEVEL UP IN THE CALLSTACK FOR THE FAILING ASSERT // THIS IS THE EFFECT OF HAVING 'DOCTEST_CONFIG_SUPER_FAST_ASSERTS' DEFINED // ################################################################################### - DOCTEST_ASSERT_OUT_OF_TESTS(toString(val)); - DOCTEST_ASSERT_IN_TESTS(toString(val)); + DOCTEST_ASSERT_OUT_OF_TESTS((DOCTEST_STRINGIFY(val))); + DOCTEST_ASSERT_IN_TESTS((DOCTEST_STRINGIFY(val))); return !failed; } struct DOCTEST_INTERFACE IExceptionTranslator { - IExceptionTranslator(); - virtual ~IExceptionTranslator(); + DOCTEST_DECLARE_INTERFACE(IExceptionTranslator) virtual bool translate(String&) const = 0; }; @@ -1616,7 +1768,7 @@ DOCTEST_CLANG_SUPPRESS_WARNING_POP try { throw; // lgtm [cpp/rethrow-no-exception] // cppcheck-suppress catchExceptionByValue - } catch(T ex) { // NOLINT + } catch(const T& ex) { res = m_translateFunction(ex); //!OCLINT parameter reassignment return true; } catch(...) {} //!OCLINT - empty catch statement @@ -1631,64 +1783,19 @@ DOCTEST_CLANG_SUPPRESS_WARNING_POP DOCTEST_INTERFACE void registerExceptionTranslatorImpl(const IExceptionTranslator* et); - template <bool C> - struct StringStreamBase - { - template <typename T> - static void convert(std::ostream* s, const T& in) { - *s << toString(in); - } - - // always treat char* as a string in this context - no matter - // if DOCTEST_CONFIG_TREAT_CHAR_STAR_AS_STRING is defined - static void convert(std::ostream* s, const char* in) { *s << String(in); } - }; - - template <> - struct StringStreamBase<true> - { - template <typename T> - static void convert(std::ostream* s, const T& in) { - *s << in; - } - }; + // ContextScope base class used to allow implementing methods of ContextScope + // that don't depend on the template parameter in doctest.cpp. + struct DOCTEST_INTERFACE ContextScopeBase : public IContextScope { + ContextScopeBase(const ContextScopeBase&) = delete; - template <typename T> - struct StringStream : public StringStreamBase<has_insertion_operator<T>::value> - {}; + ContextScopeBase& operator=(const ContextScopeBase&) = delete; + ContextScopeBase& operator=(ContextScopeBase&&) = delete; - template <typename T> - void toStream(std::ostream* s, const T& value) { - StringStream<T>::convert(s, value); - } + ~ContextScopeBase() override = default; -#ifdef DOCTEST_CONFIG_TREAT_CHAR_STAR_AS_STRING - DOCTEST_INTERFACE void toStream(std::ostream* s, char* in); - DOCTEST_INTERFACE void toStream(std::ostream* s, const char* in); -#endif // DOCTEST_CONFIG_TREAT_CHAR_STAR_AS_STRING - DOCTEST_INTERFACE void toStream(std::ostream* s, bool in); - DOCTEST_INTERFACE void toStream(std::ostream* s, float in); - DOCTEST_INTERFACE void toStream(std::ostream* s, double in); - DOCTEST_INTERFACE void toStream(std::ostream* s, double long in); - - DOCTEST_INTERFACE void toStream(std::ostream* s, char in); - DOCTEST_INTERFACE void toStream(std::ostream* s, char signed in); - DOCTEST_INTERFACE void toStream(std::ostream* s, char unsigned in); - DOCTEST_INTERFACE void toStream(std::ostream* s, int short in); - DOCTEST_INTERFACE void toStream(std::ostream* s, int short unsigned in); - DOCTEST_INTERFACE void toStream(std::ostream* s, int in); - DOCTEST_INTERFACE void toStream(std::ostream* s, int unsigned in); - DOCTEST_INTERFACE void toStream(std::ostream* s, int long in); - DOCTEST_INTERFACE void toStream(std::ostream* s, int long unsigned in); - DOCTEST_INTERFACE void toStream(std::ostream* s, int long long in); - DOCTEST_INTERFACE void toStream(std::ostream* s, int long long unsigned in); - - // ContextScope base class used to allow implementing methods of ContextScope - // that don't depend on the template parameter in doctest.cpp. - class DOCTEST_INTERFACE ContextScopeBase : public IContextScope { protected: ContextScopeBase(); - ContextScopeBase(ContextScopeBase&& other); + ContextScopeBase(ContextScopeBase&& other) noexcept; void destroy(); bool need_to_destroy{true}; @@ -1696,12 +1803,17 @@ DOCTEST_CLANG_SUPPRESS_WARNING_POP template <typename L> class ContextScope : public ContextScopeBase { - const L lambda_; + L lambda_; public: explicit ContextScope(const L &lambda) : lambda_(lambda) {} + explicit ContextScope(L&& lambda) : lambda_(static_cast<L&&>(lambda)) { } - ContextScope(ContextScope &&other) : ContextScopeBase(static_cast<ContextScopeBase&&>(other)), lambda_(other.lambda_) {} + ContextScope(const ContextScope&) = delete; + ContextScope(ContextScope&&) noexcept = default; + + ContextScope& operator=(const ContextScope&) = delete; + ContextScope& operator=(ContextScope&&) = delete; void stringify(std::ostream* s) const override { lambda_(s); } @@ -1718,15 +1830,23 @@ DOCTEST_CLANG_SUPPRESS_WARNING_POP bool logged = false; MessageBuilder(const char* file, int line, assertType::Enum severity); - MessageBuilder() = delete; + + MessageBuilder(const MessageBuilder&) = delete; + MessageBuilder(MessageBuilder&&) = delete; + + MessageBuilder& operator=(const MessageBuilder&) = delete; + MessageBuilder& operator=(MessageBuilder&&) = delete; + ~MessageBuilder(); // the preferred way of chaining parameters for stringification +DOCTEST_MSVC_SUPPRESS_WARNING_WITH_PUSH(4866) template <typename T> MessageBuilder& operator,(const T& in) { - toStream(m_stream, in); + *m_stream << (DOCTEST_STRINGIFY(in)); return *this; } +DOCTEST_MSVC_SUPPRESS_WARNING_POP // kept here just for backwards-compatibility - the comma operator should be preferred now template <typename T> @@ -1742,7 +1862,7 @@ DOCTEST_CLANG_SUPPRESS_WARNING_POP bool log(); void react(); }; - + template <typename L> ContextScope<L> MakeContextScope(const L &lambda) { return ContextScope<L>(lambda); @@ -1795,7 +1915,7 @@ int registerExceptionTranslator(String (*)(T)) { #endif // DOCTEST_CONFIG_DISABLE namespace detail { - typedef void (*assert_handler)(const AssertData&); + using assert_handler = void (*)(const AssertData&); struct ContextState; } // namespace detail @@ -1808,7 +1928,13 @@ class DOCTEST_INTERFACE Context public: explicit Context(int argc = 0, const char* const* argv = nullptr); - ~Context(); + Context(const Context&) = delete; + Context(Context&&) = delete; + + Context& operator=(const Context&) = delete; + Context& operator=(Context&&) = delete; + + ~Context(); // NOLINT(performance-trivially-destructible) void applyCommandLine(int argc, const char* const* argv); @@ -1916,8 +2042,7 @@ struct DOCTEST_INTERFACE IReporter // or isn't in the execution range (between first and last) (safe to cache a pointer to the input) virtual void test_case_skipped(const TestCaseData&) = 0; - // doctest will not be managing the lifetimes of reporters given to it but this would still be nice to have - virtual ~IReporter(); + DOCTEST_DECLARE_INTERFACE(IReporter) // can obtain all currently active contexts and stringify them if one wishes to do so static int get_num_active_contexts(); @@ -1929,7 +2054,7 @@ struct DOCTEST_INTERFACE IReporter }; namespace detail { - typedef IReporter* (*reporterCreatorFunc)(const ContextOptions&); + using reporterCreatorFunc = IReporter* (*)(const ContextOptions&); DOCTEST_INTERFACE void registerReporterImpl(const char* name, int prio, reporterCreatorFunc c, bool isReporter); @@ -1946,15 +2071,30 @@ int registerReporter(const char* name, int priority, bool isReporter) { } } // namespace doctest +#ifdef DOCTEST_CONFIG_ASSERTS_RETURN_VALUES +#define DOCTEST_FUNC_EMPTY [] { return false; }() +#else +#define DOCTEST_FUNC_EMPTY (void)0 +#endif + // if registering is not disabled -#if !defined(DOCTEST_CONFIG_DISABLE) +#ifndef DOCTEST_CONFIG_DISABLE + +#ifdef DOCTEST_CONFIG_ASSERTS_RETURN_VALUES +#define DOCTEST_FUNC_SCOPE_BEGIN [&] +#define DOCTEST_FUNC_SCOPE_END () +#define DOCTEST_FUNC_SCOPE_RET(v) return v +#else +#define DOCTEST_FUNC_SCOPE_BEGIN do +#define DOCTEST_FUNC_SCOPE_END while(false) +#define DOCTEST_FUNC_SCOPE_RET(v) (void)0 +#endif // common code in asserts - for convenience #define DOCTEST_ASSERT_LOG_REACT_RETURN(b) \ - if(b.log()) \ - DOCTEST_BREAK_INTO_DEBUGGER(); \ - b.react(); \ - return !b.m_failed + if(b.log()) DOCTEST_BREAK_INTO_DEBUGGER(); \ + b.react(); \ + DOCTEST_FUNC_SCOPE_RET(!b.m_failed) #ifdef DOCTEST_CONFIG_NO_TRY_CATCH_IN_ASSERTS #define DOCTEST_WRAP_IN_TRY(x) x; @@ -1976,7 +2116,7 @@ int registerReporter(const char* name, int priority, bool isReporter) { // registers the test by initializing a dummy var with a function #define DOCTEST_REGISTER_FUNCTION(global_prefix, f, decorators) \ - global_prefix DOCTEST_GLOBAL_NO_WARNINGS(DOCTEST_ANONYMOUS(DOCTEST_ANON_VAR_), \ + global_prefix DOCTEST_GLOBAL_NO_WARNINGS(DOCTEST_ANONYMOUS(DOCTEST_ANON_VAR_), /* NOLINT */ \ doctest::detail::regTest( \ doctest::detail::TestCase( \ f, __FILE__, __LINE__, \ @@ -1984,18 +2124,18 @@ int registerReporter(const char* name, int priority, bool isReporter) { decorators)) #define DOCTEST_IMPLEMENT_FIXTURE(der, base, func, decorators) \ - namespace { \ + namespace { /* NOLINT */ \ struct der : public base \ { \ void f(); \ }; \ - static void func() { \ + static inline DOCTEST_NOINLINE void func() { \ der v; \ v.f(); \ } \ DOCTEST_REGISTER_FUNCTION(DOCTEST_EMPTY, func, decorators) \ } \ - inline DOCTEST_NOINLINE void der::f() + inline DOCTEST_NOINLINE void der::f() // NOLINT(misc-definitions-in-headers) #define DOCTEST_CREATE_AND_REGISTER_FUNCTION(f, decorators) \ static void f(); \ @@ -2004,7 +2144,7 @@ int registerReporter(const char* name, int priority, bool isReporter) { #define DOCTEST_CREATE_AND_REGISTER_FUNCTION_IN_CLASS(f, proxy, decorators) \ static doctest::detail::funcType proxy() { return f; } \ - DOCTEST_REGISTER_FUNCTION(inline, proxy(), decorators) \ + DOCTEST_REGISTER_FUNCTION(inline, proxy(), decorators) \ static void f() // for registering tests @@ -2012,7 +2152,7 @@ int registerReporter(const char* name, int priority, bool isReporter) { DOCTEST_CREATE_AND_REGISTER_FUNCTION(DOCTEST_ANONYMOUS(DOCTEST_ANON_FUNC_), decorators) // for registering tests in classes - requires C++17 for inline variables! -#if __cplusplus >= 201703L || (DOCTEST_MSVC >= DOCTEST_COMPILER(19, 12, 0) && _MSVC_LANG >= 201703L) +#if DOCTEST_CPLUSPLUS >= 201703L #define DOCTEST_TEST_CASE_CLASS(decorators) \ DOCTEST_CREATE_AND_REGISTER_FUNCTION_IN_CLASS(DOCTEST_ANONYMOUS(DOCTEST_ANON_FUNC_), \ DOCTEST_ANONYMOUS(DOCTEST_ANON_PROXY_), \ @@ -2028,22 +2168,21 @@ int registerReporter(const char* name, int priority, bool isReporter) { DOCTEST_ANONYMOUS(DOCTEST_ANON_FUNC_), decorators) // for converting types to strings without the <typeinfo> header and demangling -#define DOCTEST_TYPE_TO_STRING_IMPL(...) \ - template <> \ - inline const char* type_to_string<__VA_ARGS__>() { \ - return "<" #__VA_ARGS__ ">"; \ - } -#define DOCTEST_TYPE_TO_STRING(...) \ - namespace doctest { namespace detail { \ - DOCTEST_TYPE_TO_STRING_IMPL(__VA_ARGS__) \ +#define DOCTEST_TYPE_TO_STRING_AS(str, ...) \ + namespace doctest { \ + template <> \ + inline String toString<__VA_ARGS__>() { \ + return str; \ } \ } \ static_assert(true, "") +#define DOCTEST_TYPE_TO_STRING(...) DOCTEST_TYPE_TO_STRING_AS(#__VA_ARGS__, __VA_ARGS__) + #define DOCTEST_TEST_CASE_TEMPLATE_DEFINE_IMPL(dec, T, iter, func) \ template <typename T> \ static void func(); \ - namespace { \ + namespace { /* NOLINT */ \ template <typename Tuple> \ struct iter; \ template <typename Type, typename... Rest> \ @@ -2052,7 +2191,7 @@ int registerReporter(const char* name, int priority, bool isReporter) { iter(const char* file, unsigned line, int index) { \ doctest::detail::regTest(doctest::detail::TestCase(func<Type>, file, line, \ doctest_detail_test_suite_ns::getCurrentTestSuite(), \ - doctest::detail::type_to_string<Type>(), \ + doctest::toString<Type>(), \ int(line) * 1000 + index) \ * dec); \ iter<std::tuple<Rest...>>(file, line, index + 1); \ @@ -2072,7 +2211,7 @@ int registerReporter(const char* name, int priority, bool isReporter) { DOCTEST_ANONYMOUS(DOCTEST_ANON_TMP_)) #define DOCTEST_TEST_CASE_TEMPLATE_INSTANTIATE_IMPL(id, anon, ...) \ - DOCTEST_GLOBAL_NO_WARNINGS(DOCTEST_CAT(anon, DUMMY), \ + DOCTEST_GLOBAL_NO_WARNINGS(DOCTEST_CAT(anon, DUMMY), /* NOLINT(cert-err58-cpp, fuchsia-statically-constructed-objects) */ \ doctest::detail::instantiationHelper( \ DOCTEST_CAT(id, ITERATOR)<__VA_ARGS__>(__FILE__, __LINE__, 0))) @@ -2101,7 +2240,7 @@ int registerReporter(const char* name, int priority, bool isReporter) { // for grouping tests in test suites by using code blocks #define DOCTEST_TEST_SUITE_IMPL(decorators, ns_name) \ namespace ns_name { namespace doctest_detail_test_suite_ns { \ - static DOCTEST_NOINLINE doctest::detail::TestSuite& getCurrentTestSuite() { \ + static DOCTEST_NOINLINE doctest::detail::TestSuite& getCurrentTestSuite() noexcept { \ DOCTEST_MSVC_SUPPRESS_WARNING_WITH_PUSH(4640) \ DOCTEST_CLANG_SUPPRESS_WARNING_WITH_PUSH("-Wexit-time-destructors") \ DOCTEST_GCC_SUPPRESS_WARNING_WITH_PUSH("-Wmissing-field-initializers") \ @@ -2125,20 +2264,20 @@ int registerReporter(const char* name, int priority, bool isReporter) { // for starting a testsuite block #define DOCTEST_TEST_SUITE_BEGIN(decorators) \ - DOCTEST_GLOBAL_NO_WARNINGS(DOCTEST_ANONYMOUS(DOCTEST_ANON_VAR_), \ + DOCTEST_GLOBAL_NO_WARNINGS(DOCTEST_ANONYMOUS(DOCTEST_ANON_VAR_), /* NOLINT(cert-err58-cpp) */ \ doctest::detail::setTestSuite(doctest::detail::TestSuite() * decorators)) \ static_assert(true, "") // for ending a testsuite block #define DOCTEST_TEST_SUITE_END \ - DOCTEST_GLOBAL_NO_WARNINGS(DOCTEST_ANONYMOUS(DOCTEST_ANON_VAR_), \ + DOCTEST_GLOBAL_NO_WARNINGS(DOCTEST_ANONYMOUS(DOCTEST_ANON_VAR_), /* NOLINT(cert-err58-cpp) */ \ doctest::detail::setTestSuite(doctest::detail::TestSuite() * "")) \ - typedef int DOCTEST_ANONYMOUS(DOCTEST_ANON_FOR_SEMICOLON_) + using DOCTEST_ANONYMOUS(DOCTEST_ANON_FOR_SEMICOLON_) = int // for registering exception translators #define DOCTEST_REGISTER_EXCEPTION_TRANSLATOR_IMPL(translatorName, signature) \ inline doctest::String translatorName(signature); \ - DOCTEST_GLOBAL_NO_WARNINGS(DOCTEST_ANONYMOUS(DOCTEST_ANON_TRANSLATOR_), \ + DOCTEST_GLOBAL_NO_WARNINGS(DOCTEST_ANONYMOUS(DOCTEST_ANON_TRANSLATOR_), /* NOLINT(cert-err58-cpp) */ \ doctest::registerExceptionTranslator(translatorName)) \ doctest::String translatorName(signature) @@ -2148,13 +2287,13 @@ int registerReporter(const char* name, int priority, bool isReporter) { // for registering reporters #define DOCTEST_REGISTER_REPORTER(name, priority, reporter) \ - DOCTEST_GLOBAL_NO_WARNINGS(DOCTEST_ANONYMOUS(DOCTEST_ANON_REPORTER_), \ + DOCTEST_GLOBAL_NO_WARNINGS(DOCTEST_ANONYMOUS(DOCTEST_ANON_REPORTER_), /* NOLINT(cert-err58-cpp) */ \ doctest::registerReporter<reporter>(name, priority, true)) \ static_assert(true, "") // for registering listeners #define DOCTEST_REGISTER_LISTENER(name, priority, reporter) \ - DOCTEST_GLOBAL_NO_WARNINGS(DOCTEST_ANONYMOUS(DOCTEST_ANON_REPORTER_), \ + DOCTEST_GLOBAL_NO_WARNINGS(DOCTEST_ANONYMOUS(DOCTEST_ANON_REPORTER_), /* NOLINT(cert-err58-cpp) */ \ doctest::registerReporter<reporter>(name, priority, false)) \ static_assert(true, "") @@ -2177,13 +2316,13 @@ int registerReporter(const char* name, int priority, bool isReporter) { #define DOCTEST_CAPTURE(x) DOCTEST_INFO(#x " := ", x) #define DOCTEST_ADD_AT_IMPL(type, file, line, mb, ...) \ - [&] { \ + DOCTEST_FUNC_SCOPE_BEGIN { \ doctest::detail::MessageBuilder mb(file, line, doctest::assertType::type); \ mb * __VA_ARGS__; \ if(mb.log()) \ DOCTEST_BREAK_INTO_DEBUGGER(); \ mb.react(); \ - }() + } DOCTEST_FUNC_SCOPE_END // clang-format off #define DOCTEST_ADD_MESSAGE_AT(file, line, ...) DOCTEST_ADD_AT_IMPL(is_warn, file, line, DOCTEST_ANONYMOUS(DOCTEST_MESSAGE_), __VA_ARGS__) @@ -2201,18 +2340,37 @@ int registerReporter(const char* name, int priority, bool isReporter) { #define DOCTEST_ASSERT_IMPLEMENT_2(assert_type, ...) \ DOCTEST_CLANG_SUPPRESS_WARNING_WITH_PUSH("-Woverloaded-shift-op-parentheses") \ + /* NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks) */ \ doctest::detail::ResultBuilder DOCTEST_RB(doctest::assertType::assert_type, __FILE__, \ __LINE__, #__VA_ARGS__); \ DOCTEST_WRAP_IN_TRY(DOCTEST_RB.setResult( \ doctest::detail::ExpressionDecomposer(doctest::assertType::assert_type) \ - << __VA_ARGS__)) \ + << __VA_ARGS__)) /* NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks) */ \ DOCTEST_ASSERT_LOG_REACT_RETURN(DOCTEST_RB) \ DOCTEST_CLANG_SUPPRESS_WARNING_POP #define DOCTEST_ASSERT_IMPLEMENT_1(assert_type, ...) \ - [&] { \ + DOCTEST_FUNC_SCOPE_BEGIN { \ DOCTEST_ASSERT_IMPLEMENT_2(assert_type, __VA_ARGS__); \ - }() + } DOCTEST_FUNC_SCOPE_END // NOLINT(clang-analyzer-cplusplus.NewDeleteLeaks) + +#define DOCTEST_BINARY_ASSERT(assert_type, comp, ...) \ + DOCTEST_FUNC_SCOPE_BEGIN { \ + doctest::detail::ResultBuilder DOCTEST_RB(doctest::assertType::assert_type, __FILE__, \ + __LINE__, #__VA_ARGS__); \ + DOCTEST_WRAP_IN_TRY( \ + DOCTEST_RB.binary_assert<doctest::detail::binaryAssertComparison::comp>( \ + __VA_ARGS__)) \ + DOCTEST_ASSERT_LOG_REACT_RETURN(DOCTEST_RB); \ + } DOCTEST_FUNC_SCOPE_END + +#define DOCTEST_UNARY_ASSERT(assert_type, ...) \ + DOCTEST_FUNC_SCOPE_BEGIN { \ + doctest::detail::ResultBuilder DOCTEST_RB(doctest::assertType::assert_type, __FILE__, \ + __LINE__, #__VA_ARGS__); \ + DOCTEST_WRAP_IN_TRY(DOCTEST_RB.unary_assert(__VA_ARGS__)) \ + DOCTEST_ASSERT_LOG_REACT_RETURN(DOCTEST_RB); \ + } DOCTEST_FUNC_SCOPE_END #else // DOCTEST_CONFIG_SUPER_FAST_ASSERTS @@ -2226,6 +2384,14 @@ int registerReporter(const char* name, int priority, bool isReporter) { doctest::detail::ExpressionDecomposer(doctest::assertType::assert_type) \ << __VA_ARGS__) DOCTEST_CLANG_SUPPRESS_WARNING_POP +#define DOCTEST_BINARY_ASSERT(assert_type, comparison, ...) \ + doctest::detail::binary_assert<doctest::detail::binaryAssertComparison::comparison>( \ + doctest::assertType::assert_type, __FILE__, __LINE__, #__VA_ARGS__, __VA_ARGS__) + +#define DOCTEST_UNARY_ASSERT(assert_type, ...) \ + doctest::detail::unary_assert(doctest::assertType::assert_type, __FILE__, __LINE__, \ + #__VA_ARGS__, __VA_ARGS__) + #endif // DOCTEST_CONFIG_SUPER_FAST_ASSERTS #define DOCTEST_WARN(...) DOCTEST_ASSERT_IMPLEMENT_1(DT_WARN, __VA_ARGS__) @@ -2236,34 +2402,62 @@ int registerReporter(const char* name, int priority, bool isReporter) { #define DOCTEST_REQUIRE_FALSE(...) DOCTEST_ASSERT_IMPLEMENT_1(DT_REQUIRE_FALSE, __VA_ARGS__) // clang-format off -#define DOCTEST_WARN_MESSAGE(cond, ...) [&] {DOCTEST_INFO(__VA_ARGS__); DOCTEST_ASSERT_IMPLEMENT_2(DT_WARN, cond); }() -#define DOCTEST_CHECK_MESSAGE(cond, ...) [&] {DOCTEST_INFO(__VA_ARGS__); DOCTEST_ASSERT_IMPLEMENT_2(DT_CHECK, cond); }() -#define DOCTEST_REQUIRE_MESSAGE(cond, ...) [&] {DOCTEST_INFO(__VA_ARGS__); DOCTEST_ASSERT_IMPLEMENT_2(DT_REQUIRE, cond); }() -#define DOCTEST_WARN_FALSE_MESSAGE(cond, ...) [&] {DOCTEST_INFO(__VA_ARGS__); DOCTEST_ASSERT_IMPLEMENT_2(DT_WARN_FALSE, cond); }() -#define DOCTEST_CHECK_FALSE_MESSAGE(cond, ...) [&] {DOCTEST_INFO(__VA_ARGS__); DOCTEST_ASSERT_IMPLEMENT_2(DT_CHECK_FALSE, cond); }() -#define DOCTEST_REQUIRE_FALSE_MESSAGE(cond, ...) [&] {DOCTEST_INFO(__VA_ARGS__); DOCTEST_ASSERT_IMPLEMENT_2(DT_REQUIRE_FALSE, cond); }() +#define DOCTEST_WARN_MESSAGE(cond, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_ASSERT_IMPLEMENT_2(DT_WARN, cond); } DOCTEST_FUNC_SCOPE_END +#define DOCTEST_CHECK_MESSAGE(cond, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_ASSERT_IMPLEMENT_2(DT_CHECK, cond); } DOCTEST_FUNC_SCOPE_END +#define DOCTEST_REQUIRE_MESSAGE(cond, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_ASSERT_IMPLEMENT_2(DT_REQUIRE, cond); } DOCTEST_FUNC_SCOPE_END +#define DOCTEST_WARN_FALSE_MESSAGE(cond, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_ASSERT_IMPLEMENT_2(DT_WARN_FALSE, cond); } DOCTEST_FUNC_SCOPE_END +#define DOCTEST_CHECK_FALSE_MESSAGE(cond, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_ASSERT_IMPLEMENT_2(DT_CHECK_FALSE, cond); } DOCTEST_FUNC_SCOPE_END +#define DOCTEST_REQUIRE_FALSE_MESSAGE(cond, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_ASSERT_IMPLEMENT_2(DT_REQUIRE_FALSE, cond); } DOCTEST_FUNC_SCOPE_END // clang-format on +#define DOCTEST_WARN_EQ(...) DOCTEST_BINARY_ASSERT(DT_WARN_EQ, eq, __VA_ARGS__) +#define DOCTEST_CHECK_EQ(...) DOCTEST_BINARY_ASSERT(DT_CHECK_EQ, eq, __VA_ARGS__) +#define DOCTEST_REQUIRE_EQ(...) DOCTEST_BINARY_ASSERT(DT_REQUIRE_EQ, eq, __VA_ARGS__) +#define DOCTEST_WARN_NE(...) DOCTEST_BINARY_ASSERT(DT_WARN_NE, ne, __VA_ARGS__) +#define DOCTEST_CHECK_NE(...) DOCTEST_BINARY_ASSERT(DT_CHECK_NE, ne, __VA_ARGS__) +#define DOCTEST_REQUIRE_NE(...) DOCTEST_BINARY_ASSERT(DT_REQUIRE_NE, ne, __VA_ARGS__) +#define DOCTEST_WARN_GT(...) DOCTEST_BINARY_ASSERT(DT_WARN_GT, gt, __VA_ARGS__) +#define DOCTEST_CHECK_GT(...) DOCTEST_BINARY_ASSERT(DT_CHECK_GT, gt, __VA_ARGS__) +#define DOCTEST_REQUIRE_GT(...) DOCTEST_BINARY_ASSERT(DT_REQUIRE_GT, gt, __VA_ARGS__) +#define DOCTEST_WARN_LT(...) DOCTEST_BINARY_ASSERT(DT_WARN_LT, lt, __VA_ARGS__) +#define DOCTEST_CHECK_LT(...) DOCTEST_BINARY_ASSERT(DT_CHECK_LT, lt, __VA_ARGS__) +#define DOCTEST_REQUIRE_LT(...) DOCTEST_BINARY_ASSERT(DT_REQUIRE_LT, lt, __VA_ARGS__) +#define DOCTEST_WARN_GE(...) DOCTEST_BINARY_ASSERT(DT_WARN_GE, ge, __VA_ARGS__) +#define DOCTEST_CHECK_GE(...) DOCTEST_BINARY_ASSERT(DT_CHECK_GE, ge, __VA_ARGS__) +#define DOCTEST_REQUIRE_GE(...) DOCTEST_BINARY_ASSERT(DT_REQUIRE_GE, ge, __VA_ARGS__) +#define DOCTEST_WARN_LE(...) DOCTEST_BINARY_ASSERT(DT_WARN_LE, le, __VA_ARGS__) +#define DOCTEST_CHECK_LE(...) DOCTEST_BINARY_ASSERT(DT_CHECK_LE, le, __VA_ARGS__) +#define DOCTEST_REQUIRE_LE(...) DOCTEST_BINARY_ASSERT(DT_REQUIRE_LE, le, __VA_ARGS__) + +#define DOCTEST_WARN_UNARY(...) DOCTEST_UNARY_ASSERT(DT_WARN_UNARY, __VA_ARGS__) +#define DOCTEST_CHECK_UNARY(...) DOCTEST_UNARY_ASSERT(DT_CHECK_UNARY, __VA_ARGS__) +#define DOCTEST_REQUIRE_UNARY(...) DOCTEST_UNARY_ASSERT(DT_REQUIRE_UNARY, __VA_ARGS__) +#define DOCTEST_WARN_UNARY_FALSE(...) DOCTEST_UNARY_ASSERT(DT_WARN_UNARY_FALSE, __VA_ARGS__) +#define DOCTEST_CHECK_UNARY_FALSE(...) DOCTEST_UNARY_ASSERT(DT_CHECK_UNARY_FALSE, __VA_ARGS__) +#define DOCTEST_REQUIRE_UNARY_FALSE(...) DOCTEST_UNARY_ASSERT(DT_REQUIRE_UNARY_FALSE, __VA_ARGS__) + +#ifndef DOCTEST_CONFIG_NO_EXCEPTIONS + #define DOCTEST_ASSERT_THROWS_AS(expr, assert_type, message, ...) \ - [&] { \ + DOCTEST_FUNC_SCOPE_BEGIN { \ if(!doctest::getContextOptions()->no_throw) { \ doctest::detail::ResultBuilder DOCTEST_RB(doctest::assertType::assert_type, __FILE__, \ __LINE__, #expr, #__VA_ARGS__, message); \ try { \ DOCTEST_CAST_TO_VOID(expr) \ - } catch(const typename doctest::detail::remove_const< \ - typename doctest::detail::remove_reference<__VA_ARGS__>::type>::type&) { \ + } catch(const typename doctest::detail::types::remove_const< \ + typename doctest::detail::types::remove_reference<__VA_ARGS__>::type>::type&) {\ DOCTEST_RB.translateException(); \ DOCTEST_RB.m_threw_as = true; \ } catch(...) { DOCTEST_RB.translateException(); } \ DOCTEST_ASSERT_LOG_REACT_RETURN(DOCTEST_RB); \ - } else { \ - return false; \ + } else { /* NOLINT(*-else-after-return) */ \ + DOCTEST_FUNC_SCOPE_RET(false); \ } \ - }() + } DOCTEST_FUNC_SCOPE_END #define DOCTEST_ASSERT_THROWS_WITH(expr, expr_str, assert_type, ...) \ - [&] { \ + DOCTEST_FUNC_SCOPE_BEGIN { \ if(!doctest::getContextOptions()->no_throw) { \ doctest::detail::ResultBuilder DOCTEST_RB(doctest::assertType::assert_type, __FILE__, \ __LINE__, expr_str, "", __VA_ARGS__); \ @@ -2271,20 +2465,20 @@ int registerReporter(const char* name, int priority, bool isReporter) { DOCTEST_CAST_TO_VOID(expr) \ } catch(...) { DOCTEST_RB.translateException(); } \ DOCTEST_ASSERT_LOG_REACT_RETURN(DOCTEST_RB); \ - } else { \ - return false; \ + } else { /* NOLINT(*-else-after-return) */ \ + DOCTEST_FUNC_SCOPE_RET(false); \ } \ - }() + } DOCTEST_FUNC_SCOPE_END #define DOCTEST_ASSERT_NOTHROW(assert_type, ...) \ - [&] { \ + DOCTEST_FUNC_SCOPE_BEGIN { \ doctest::detail::ResultBuilder DOCTEST_RB(doctest::assertType::assert_type, __FILE__, \ __LINE__, #__VA_ARGS__); \ try { \ DOCTEST_CAST_TO_VOID(__VA_ARGS__) \ } catch(...) { DOCTEST_RB.translateException(); } \ DOCTEST_ASSERT_LOG_REACT_RETURN(DOCTEST_RB); \ - }() + } DOCTEST_FUNC_SCOPE_END // clang-format off #define DOCTEST_WARN_THROWS(...) DOCTEST_ASSERT_THROWS_WITH((__VA_ARGS__), #__VA_ARGS__, DT_WARN_THROWS, "") @@ -2307,166 +2501,23 @@ int registerReporter(const char* name, int priority, bool isReporter) { #define DOCTEST_CHECK_NOTHROW(...) DOCTEST_ASSERT_NOTHROW(DT_CHECK_NOTHROW, __VA_ARGS__) #define DOCTEST_REQUIRE_NOTHROW(...) DOCTEST_ASSERT_NOTHROW(DT_REQUIRE_NOTHROW, __VA_ARGS__) -#define DOCTEST_WARN_THROWS_MESSAGE(expr, ...) [&] {DOCTEST_INFO(__VA_ARGS__); DOCTEST_WARN_THROWS(expr); }() -#define DOCTEST_CHECK_THROWS_MESSAGE(expr, ...) [&] {DOCTEST_INFO(__VA_ARGS__); DOCTEST_CHECK_THROWS(expr); }() -#define DOCTEST_REQUIRE_THROWS_MESSAGE(expr, ...) [&] {DOCTEST_INFO(__VA_ARGS__); DOCTEST_REQUIRE_THROWS(expr); }() -#define DOCTEST_WARN_THROWS_AS_MESSAGE(expr, ex, ...) [&] {DOCTEST_INFO(__VA_ARGS__); DOCTEST_WARN_THROWS_AS(expr, ex); }() -#define DOCTEST_CHECK_THROWS_AS_MESSAGE(expr, ex, ...) [&] {DOCTEST_INFO(__VA_ARGS__); DOCTEST_CHECK_THROWS_AS(expr, ex); }() -#define DOCTEST_REQUIRE_THROWS_AS_MESSAGE(expr, ex, ...) [&] {DOCTEST_INFO(__VA_ARGS__); DOCTEST_REQUIRE_THROWS_AS(expr, ex); }() -#define DOCTEST_WARN_THROWS_WITH_MESSAGE(expr, with, ...) [&] {DOCTEST_INFO(__VA_ARGS__); DOCTEST_WARN_THROWS_WITH(expr, with); }() -#define DOCTEST_CHECK_THROWS_WITH_MESSAGE(expr, with, ...) [&] {DOCTEST_INFO(__VA_ARGS__); DOCTEST_CHECK_THROWS_WITH(expr, with); }() -#define DOCTEST_REQUIRE_THROWS_WITH_MESSAGE(expr, with, ...) [&] {DOCTEST_INFO(__VA_ARGS__); DOCTEST_REQUIRE_THROWS_WITH(expr, with); }() -#define DOCTEST_WARN_THROWS_WITH_AS_MESSAGE(expr, with, ex, ...) [&] {DOCTEST_INFO(__VA_ARGS__); DOCTEST_WARN_THROWS_WITH_AS(expr, with, ex); }() -#define DOCTEST_CHECK_THROWS_WITH_AS_MESSAGE(expr, with, ex, ...) [&] {DOCTEST_INFO(__VA_ARGS__); DOCTEST_CHECK_THROWS_WITH_AS(expr, with, ex); }() -#define DOCTEST_REQUIRE_THROWS_WITH_AS_MESSAGE(expr, with, ex, ...) [&] {DOCTEST_INFO(__VA_ARGS__); DOCTEST_REQUIRE_THROWS_WITH_AS(expr, with, ex); }() -#define DOCTEST_WARN_NOTHROW_MESSAGE(expr, ...) [&] {DOCTEST_INFO(__VA_ARGS__); DOCTEST_WARN_NOTHROW(expr); }() -#define DOCTEST_CHECK_NOTHROW_MESSAGE(expr, ...) [&] {DOCTEST_INFO(__VA_ARGS__); DOCTEST_CHECK_NOTHROW(expr); }() -#define DOCTEST_REQUIRE_NOTHROW_MESSAGE(expr, ...) [&] {DOCTEST_INFO(__VA_ARGS__); DOCTEST_REQUIRE_NOTHROW(expr); }() +#define DOCTEST_WARN_THROWS_MESSAGE(expr, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_WARN_THROWS(expr); } DOCTEST_FUNC_SCOPE_END +#define DOCTEST_CHECK_THROWS_MESSAGE(expr, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_CHECK_THROWS(expr); } DOCTEST_FUNC_SCOPE_END +#define DOCTEST_REQUIRE_THROWS_MESSAGE(expr, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_REQUIRE_THROWS(expr); } DOCTEST_FUNC_SCOPE_END +#define DOCTEST_WARN_THROWS_AS_MESSAGE(expr, ex, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_WARN_THROWS_AS(expr, ex); } DOCTEST_FUNC_SCOPE_END +#define DOCTEST_CHECK_THROWS_AS_MESSAGE(expr, ex, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_CHECK_THROWS_AS(expr, ex); } DOCTEST_FUNC_SCOPE_END +#define DOCTEST_REQUIRE_THROWS_AS_MESSAGE(expr, ex, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_REQUIRE_THROWS_AS(expr, ex); } DOCTEST_FUNC_SCOPE_END +#define DOCTEST_WARN_THROWS_WITH_MESSAGE(expr, with, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_WARN_THROWS_WITH(expr, with); } DOCTEST_FUNC_SCOPE_END +#define DOCTEST_CHECK_THROWS_WITH_MESSAGE(expr, with, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_CHECK_THROWS_WITH(expr, with); } DOCTEST_FUNC_SCOPE_END +#define DOCTEST_REQUIRE_THROWS_WITH_MESSAGE(expr, with, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_REQUIRE_THROWS_WITH(expr, with); } DOCTEST_FUNC_SCOPE_END +#define DOCTEST_WARN_THROWS_WITH_AS_MESSAGE(expr, with, ex, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_WARN_THROWS_WITH_AS(expr, with, ex); } DOCTEST_FUNC_SCOPE_END +#define DOCTEST_CHECK_THROWS_WITH_AS_MESSAGE(expr, with, ex, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_CHECK_THROWS_WITH_AS(expr, with, ex); } DOCTEST_FUNC_SCOPE_END +#define DOCTEST_REQUIRE_THROWS_WITH_AS_MESSAGE(expr, with, ex, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_REQUIRE_THROWS_WITH_AS(expr, with, ex); } DOCTEST_FUNC_SCOPE_END +#define DOCTEST_WARN_NOTHROW_MESSAGE(expr, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_WARN_NOTHROW(expr); } DOCTEST_FUNC_SCOPE_END +#define DOCTEST_CHECK_NOTHROW_MESSAGE(expr, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_CHECK_NOTHROW(expr); } DOCTEST_FUNC_SCOPE_END +#define DOCTEST_REQUIRE_NOTHROW_MESSAGE(expr, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_REQUIRE_NOTHROW(expr); } DOCTEST_FUNC_SCOPE_END // clang-format on -#ifndef DOCTEST_CONFIG_SUPER_FAST_ASSERTS - -#define DOCTEST_BINARY_ASSERT(assert_type, comp, ...) \ - [&] { \ - doctest::detail::ResultBuilder DOCTEST_RB(doctest::assertType::assert_type, __FILE__, \ - __LINE__, #__VA_ARGS__); \ - DOCTEST_WRAP_IN_TRY( \ - DOCTEST_RB.binary_assert<doctest::detail::binaryAssertComparison::comp>( \ - __VA_ARGS__)) \ - DOCTEST_ASSERT_LOG_REACT_RETURN(DOCTEST_RB); \ - }() - -#define DOCTEST_UNARY_ASSERT(assert_type, ...) \ - [&] { \ - doctest::detail::ResultBuilder DOCTEST_RB(doctest::assertType::assert_type, __FILE__, \ - __LINE__, #__VA_ARGS__); \ - DOCTEST_WRAP_IN_TRY(DOCTEST_RB.unary_assert(__VA_ARGS__)) \ - DOCTEST_ASSERT_LOG_REACT_RETURN(DOCTEST_RB); \ - }() - -#else // DOCTEST_CONFIG_SUPER_FAST_ASSERTS - -#define DOCTEST_BINARY_ASSERT(assert_type, comparison, ...) \ - doctest::detail::binary_assert<doctest::detail::binaryAssertComparison::comparison>( \ - doctest::assertType::assert_type, __FILE__, __LINE__, #__VA_ARGS__, __VA_ARGS__) - -#define DOCTEST_UNARY_ASSERT(assert_type, ...) \ - doctest::detail::unary_assert(doctest::assertType::assert_type, __FILE__, __LINE__, \ - #__VA_ARGS__, __VA_ARGS__) - -#endif // DOCTEST_CONFIG_SUPER_FAST_ASSERTS - -#define DOCTEST_WARN_EQ(...) DOCTEST_BINARY_ASSERT(DT_WARN_EQ, eq, __VA_ARGS__) -#define DOCTEST_CHECK_EQ(...) DOCTEST_BINARY_ASSERT(DT_CHECK_EQ, eq, __VA_ARGS__) -#define DOCTEST_REQUIRE_EQ(...) DOCTEST_BINARY_ASSERT(DT_REQUIRE_EQ, eq, __VA_ARGS__) -#define DOCTEST_WARN_NE(...) DOCTEST_BINARY_ASSERT(DT_WARN_NE, ne, __VA_ARGS__) -#define DOCTEST_CHECK_NE(...) DOCTEST_BINARY_ASSERT(DT_CHECK_NE, ne, __VA_ARGS__) -#define DOCTEST_REQUIRE_NE(...) DOCTEST_BINARY_ASSERT(DT_REQUIRE_NE, ne, __VA_ARGS__) -#define DOCTEST_WARN_GT(...) DOCTEST_BINARY_ASSERT(DT_WARN_GT, gt, __VA_ARGS__) -#define DOCTEST_CHECK_GT(...) DOCTEST_BINARY_ASSERT(DT_CHECK_GT, gt, __VA_ARGS__) -#define DOCTEST_REQUIRE_GT(...) DOCTEST_BINARY_ASSERT(DT_REQUIRE_GT, gt, __VA_ARGS__) -#define DOCTEST_WARN_LT(...) DOCTEST_BINARY_ASSERT(DT_WARN_LT, lt, __VA_ARGS__) -#define DOCTEST_CHECK_LT(...) DOCTEST_BINARY_ASSERT(DT_CHECK_LT, lt, __VA_ARGS__) -#define DOCTEST_REQUIRE_LT(...) DOCTEST_BINARY_ASSERT(DT_REQUIRE_LT, lt, __VA_ARGS__) -#define DOCTEST_WARN_GE(...) DOCTEST_BINARY_ASSERT(DT_WARN_GE, ge, __VA_ARGS__) -#define DOCTEST_CHECK_GE(...) DOCTEST_BINARY_ASSERT(DT_CHECK_GE, ge, __VA_ARGS__) -#define DOCTEST_REQUIRE_GE(...) DOCTEST_BINARY_ASSERT(DT_REQUIRE_GE, ge, __VA_ARGS__) -#define DOCTEST_WARN_LE(...) DOCTEST_BINARY_ASSERT(DT_WARN_LE, le, __VA_ARGS__) -#define DOCTEST_CHECK_LE(...) DOCTEST_BINARY_ASSERT(DT_CHECK_LE, le, __VA_ARGS__) -#define DOCTEST_REQUIRE_LE(...) DOCTEST_BINARY_ASSERT(DT_REQUIRE_LE, le, __VA_ARGS__) - -#define DOCTEST_WARN_UNARY(...) DOCTEST_UNARY_ASSERT(DT_WARN_UNARY, __VA_ARGS__) -#define DOCTEST_CHECK_UNARY(...) DOCTEST_UNARY_ASSERT(DT_CHECK_UNARY, __VA_ARGS__) -#define DOCTEST_REQUIRE_UNARY(...) DOCTEST_UNARY_ASSERT(DT_REQUIRE_UNARY, __VA_ARGS__) -#define DOCTEST_WARN_UNARY_FALSE(...) DOCTEST_UNARY_ASSERT(DT_WARN_UNARY_FALSE, __VA_ARGS__) -#define DOCTEST_CHECK_UNARY_FALSE(...) DOCTEST_UNARY_ASSERT(DT_CHECK_UNARY_FALSE, __VA_ARGS__) -#define DOCTEST_REQUIRE_UNARY_FALSE(...) DOCTEST_UNARY_ASSERT(DT_REQUIRE_UNARY_FALSE, __VA_ARGS__) - -#ifdef DOCTEST_CONFIG_NO_EXCEPTIONS - -#undef DOCTEST_WARN_THROWS -#undef DOCTEST_CHECK_THROWS -#undef DOCTEST_REQUIRE_THROWS -#undef DOCTEST_WARN_THROWS_AS -#undef DOCTEST_CHECK_THROWS_AS -#undef DOCTEST_REQUIRE_THROWS_AS -#undef DOCTEST_WARN_THROWS_WITH -#undef DOCTEST_CHECK_THROWS_WITH -#undef DOCTEST_REQUIRE_THROWS_WITH -#undef DOCTEST_WARN_THROWS_WITH_AS -#undef DOCTEST_CHECK_THROWS_WITH_AS -#undef DOCTEST_REQUIRE_THROWS_WITH_AS -#undef DOCTEST_WARN_NOTHROW -#undef DOCTEST_CHECK_NOTHROW -#undef DOCTEST_REQUIRE_NOTHROW - -#undef DOCTEST_WARN_THROWS_MESSAGE -#undef DOCTEST_CHECK_THROWS_MESSAGE -#undef DOCTEST_REQUIRE_THROWS_MESSAGE -#undef DOCTEST_WARN_THROWS_AS_MESSAGE -#undef DOCTEST_CHECK_THROWS_AS_MESSAGE -#undef DOCTEST_REQUIRE_THROWS_AS_MESSAGE -#undef DOCTEST_WARN_THROWS_WITH_MESSAGE -#undef DOCTEST_CHECK_THROWS_WITH_MESSAGE -#undef DOCTEST_REQUIRE_THROWS_WITH_MESSAGE -#undef DOCTEST_WARN_THROWS_WITH_AS_MESSAGE -#undef DOCTEST_CHECK_THROWS_WITH_AS_MESSAGE -#undef DOCTEST_REQUIRE_THROWS_WITH_AS_MESSAGE -#undef DOCTEST_WARN_NOTHROW_MESSAGE -#undef DOCTEST_CHECK_NOTHROW_MESSAGE -#undef DOCTEST_REQUIRE_NOTHROW_MESSAGE - -#ifdef DOCTEST_CONFIG_NO_EXCEPTIONS_BUT_WITH_ALL_ASSERTS - -#define DOCTEST_WARN_THROWS(...) ([] { return false; }) -#define DOCTEST_CHECK_THROWS(...) ([] { return false; }) -#define DOCTEST_REQUIRE_THROWS(...) ([] { return false; }) -#define DOCTEST_WARN_THROWS_AS(expr, ...) ([] { return false; }) -#define DOCTEST_CHECK_THROWS_AS(expr, ...) ([] { return false; }) -#define DOCTEST_REQUIRE_THROWS_AS(expr, ...) ([] { return false; }) -#define DOCTEST_WARN_THROWS_WITH(expr, ...) ([] { return false; }) -#define DOCTEST_CHECK_THROWS_WITH(expr, ...) ([] { return false; }) -#define DOCTEST_REQUIRE_THROWS_WITH(expr, ...) ([] { return false; }) -#define DOCTEST_WARN_THROWS_WITH_AS(expr, with, ...) ([] { return false; }) -#define DOCTEST_CHECK_THROWS_WITH_AS(expr, with, ...) ([] { return false; }) -#define DOCTEST_REQUIRE_THROWS_WITH_AS(expr, with, ...) ([] { return false; }) -#define DOCTEST_WARN_NOTHROW(...) ([] { return false; }) -#define DOCTEST_CHECK_NOTHROW(...) ([] { return false; }) -#define DOCTEST_REQUIRE_NOTHROW(...) ([] { return false; }) - -#define DOCTEST_WARN_THROWS_MESSAGE(expr, ...) ([] { return false; }) -#define DOCTEST_CHECK_THROWS_MESSAGE(expr, ...) ([] { return false; }) -#define DOCTEST_REQUIRE_THROWS_MESSAGE(expr, ...) ([] { return false; }) -#define DOCTEST_WARN_THROWS_AS_MESSAGE(expr, ex, ...) ([] { return false; }) -#define DOCTEST_CHECK_THROWS_AS_MESSAGE(expr, ex, ...) ([] { return false; }) -#define DOCTEST_REQUIRE_THROWS_AS_MESSAGE(expr, ex, ...) ([] { return false; }) -#define DOCTEST_WARN_THROWS_WITH_MESSAGE(expr, with, ...) ([] { return false; }) -#define DOCTEST_CHECK_THROWS_WITH_MESSAGE(expr, with, ...) ([] { return false; }) -#define DOCTEST_REQUIRE_THROWS_WITH_MESSAGE(expr, with, ...) ([] { return false; }) -#define DOCTEST_WARN_THROWS_WITH_AS_MESSAGE(expr, with, ex, ...) ([] { return false; }) -#define DOCTEST_CHECK_THROWS_WITH_AS_MESSAGE(expr, with, ex, ...) ([] { return false; }) -#define DOCTEST_REQUIRE_THROWS_WITH_AS_MESSAGE(expr, with, ex, ...) ([] { return false; }) -#define DOCTEST_WARN_NOTHROW_MESSAGE(expr, ...) ([] { return false; }) -#define DOCTEST_CHECK_NOTHROW_MESSAGE(expr, ...) ([] { return false; }) -#define DOCTEST_REQUIRE_NOTHROW_MESSAGE(expr, ...) ([] { return false; }) - -#else // DOCTEST_CONFIG_NO_EXCEPTIONS_BUT_WITH_ALL_ASSERTS - -#undef DOCTEST_REQUIRE -#undef DOCTEST_REQUIRE_FALSE -#undef DOCTEST_REQUIRE_MESSAGE -#undef DOCTEST_REQUIRE_FALSE_MESSAGE -#undef DOCTEST_REQUIRE_EQ -#undef DOCTEST_REQUIRE_NE -#undef DOCTEST_REQUIRE_GT -#undef DOCTEST_REQUIRE_LT -#undef DOCTEST_REQUIRE_GE -#undef DOCTEST_REQUIRE_LE -#undef DOCTEST_REQUIRE_UNARY -#undef DOCTEST_REQUIRE_UNARY_FALSE - -#endif // DOCTEST_CONFIG_NO_EXCEPTIONS_BUT_WITH_ALL_ASSERTS - #endif // DOCTEST_CONFIG_NO_EXCEPTIONS // ================================================================================================= @@ -2476,7 +2527,7 @@ int registerReporter(const char* name, int priority, bool isReporter) { #else // DOCTEST_CONFIG_DISABLE #define DOCTEST_IMPLEMENT_FIXTURE(der, base, func, name) \ - namespace { \ + namespace /* NOLINT */ { \ template <typename DOCTEST_UNUSED_TEMPLATE_TYPE> \ struct der : public base \ { void f(); }; \ @@ -2502,8 +2553,8 @@ int registerReporter(const char* name, int priority, bool isReporter) { DOCTEST_ANONYMOUS(DOCTEST_ANON_FUNC_), name) // for converting types to strings without the <typeinfo> header and demangling +#define DOCTEST_TYPE_TO_STRING_AS(str, ...) static_assert(true, "") #define DOCTEST_TYPE_TO_STRING(...) static_assert(true, "") -#define DOCTEST_TYPE_TO_STRING_IMPL(...) // for typed tests #define DOCTEST_TEST_CASE_TEMPLATE(name, type, ...) \ @@ -2521,13 +2572,13 @@ int registerReporter(const char* name, int priority, bool isReporter) { #define DOCTEST_SUBCASE(name) // for a testsuite block -#define DOCTEST_TEST_SUITE(name) namespace +#define DOCTEST_TEST_SUITE(name) namespace // NOLINT // for starting a testsuite block #define DOCTEST_TEST_SUITE_BEGIN(name) static_assert(true, "") // for ending a testsuite block -#define DOCTEST_TEST_SUITE_END typedef int DOCTEST_ANONYMOUS(DOCTEST_ANON_FOR_SEMICOLON_) +#define DOCTEST_TEST_SUITE_END using DOCTEST_ANONYMOUS(DOCTEST_ANON_FOR_SEMICOLON_) = int #define DOCTEST_REGISTER_EXCEPTION_TRANSLATOR(signature) \ template <typename DOCTEST_UNUSED_TEMPLATE_TYPE> \ @@ -2545,7 +2596,8 @@ int registerReporter(const char* name, int priority, bool isReporter) { #define DOCTEST_FAIL_CHECK(...) (static_cast<void>(0)) #define DOCTEST_FAIL(...) (static_cast<void>(0)) -#ifdef DOCTEST_CONFIG_EVALUATE_ASSERTS_EVEN_WHEN_DISABLED +#if defined(DOCTEST_CONFIG_EVALUATE_ASSERTS_EVEN_WHEN_DISABLED) \ + && defined(DOCTEST_CONFIG_ASSERTS_RETURN_VALUES) #define DOCTEST_WARN(...) [&] { return __VA_ARGS__; }() #define DOCTEST_CHECK(...) [&] { return __VA_ARGS__; }() @@ -2601,85 +2653,196 @@ namespace detail { #define DOCTEST_CHECK_UNARY_FALSE(...) [&] { return !(__VA_ARGS__); }() #define DOCTEST_REQUIRE_UNARY_FALSE(...) [&] { return !(__VA_ARGS__); }() +#ifndef DOCTEST_CONFIG_NO_EXCEPTIONS + +#define DOCTEST_WARN_THROWS_WITH(expr, with, ...) [] { static_assert(false, "Exception translation is not available when doctest is disabled."); return false; }() +#define DOCTEST_CHECK_THROWS_WITH(expr, with, ...) DOCTEST_WARN_THROWS_WITH(,,) +#define DOCTEST_REQUIRE_THROWS_WITH(expr, with, ...) DOCTEST_WARN_THROWS_WITH(,,) +#define DOCTEST_WARN_THROWS_WITH_AS(expr, with, ex, ...) DOCTEST_WARN_THROWS_WITH(,,) +#define DOCTEST_CHECK_THROWS_WITH_AS(expr, with, ex, ...) DOCTEST_WARN_THROWS_WITH(,,) +#define DOCTEST_REQUIRE_THROWS_WITH_AS(expr, with, ex, ...) DOCTEST_WARN_THROWS_WITH(,,) + +#define DOCTEST_WARN_THROWS_WITH_MESSAGE(expr, with, ...) DOCTEST_WARN_THROWS_WITH(,,) +#define DOCTEST_CHECK_THROWS_WITH_MESSAGE(expr, with, ...) DOCTEST_WARN_THROWS_WITH(,,) +#define DOCTEST_REQUIRE_THROWS_WITH_MESSAGE(expr, with, ...) DOCTEST_WARN_THROWS_WITH(,,) +#define DOCTEST_WARN_THROWS_WITH_AS_MESSAGE(expr, with, ex, ...) DOCTEST_WARN_THROWS_WITH(,,) +#define DOCTEST_CHECK_THROWS_WITH_AS_MESSAGE(expr, with, ex, ...) DOCTEST_WARN_THROWS_WITH(,,) +#define DOCTEST_REQUIRE_THROWS_WITH_AS_MESSAGE(expr, with, ex, ...) DOCTEST_WARN_THROWS_WITH(,,) + +#define DOCTEST_WARN_THROWS(...) [&] { try { __VA_ARGS__; return false; } catch (...) { return true; } }() +#define DOCTEST_CHECK_THROWS(...) [&] { try { __VA_ARGS__; return false; } catch (...) { return true; } }() +#define DOCTEST_REQUIRE_THROWS(...) [&] { try { __VA_ARGS__; return false; } catch (...) { return true; } }() +#define DOCTEST_WARN_THROWS_AS(expr, ...) [&] { try { expr; } catch (__VA_ARGS__) { return true; } catch (...) { } return false; }() +#define DOCTEST_CHECK_THROWS_AS(expr, ...) [&] { try { expr; } catch (__VA_ARGS__) { return true; } catch (...) { } return false; }() +#define DOCTEST_REQUIRE_THROWS_AS(expr, ...) [&] { try { expr; } catch (__VA_ARGS__) { return true; } catch (...) { } return false; }() +#define DOCTEST_WARN_NOTHROW(...) [&] { try { __VA_ARGS__; return true; } catch (...) { return false; } }() +#define DOCTEST_CHECK_NOTHROW(...) [&] { try { __VA_ARGS__; return true; } catch (...) { return false; } }() +#define DOCTEST_REQUIRE_NOTHROW(...) [&] { try { __VA_ARGS__; return true; } catch (...) { return false; } }() + +#define DOCTEST_WARN_THROWS_MESSAGE(expr, ...) [&] { try { __VA_ARGS__; return false; } catch (...) { return true; } }() +#define DOCTEST_CHECK_THROWS_MESSAGE(expr, ...) [&] { try { __VA_ARGS__; return false; } catch (...) { return true; } }() +#define DOCTEST_REQUIRE_THROWS_MESSAGE(expr, ...) [&] { try { __VA_ARGS__; return false; } catch (...) { return true; } }() +#define DOCTEST_WARN_THROWS_AS_MESSAGE(expr, ex, ...) [&] { try { expr; } catch (__VA_ARGS__) { return true; } catch (...) { } return false; }() +#define DOCTEST_CHECK_THROWS_AS_MESSAGE(expr, ex, ...) [&] { try { expr; } catch (__VA_ARGS__) { return true; } catch (...) { } return false; }() +#define DOCTEST_REQUIRE_THROWS_AS_MESSAGE(expr, ex, ...) [&] { try { expr; } catch (__VA_ARGS__) { return true; } catch (...) { } return false; }() +#define DOCTEST_WARN_NOTHROW_MESSAGE(expr, ...) [&] { try { __VA_ARGS__; return true; } catch (...) { return false; } }() +#define DOCTEST_CHECK_NOTHROW_MESSAGE(expr, ...) [&] { try { __VA_ARGS__; return true; } catch (...) { return false; } }() +#define DOCTEST_REQUIRE_NOTHROW_MESSAGE(expr, ...) [&] { try { __VA_ARGS__; return true; } catch (...) { return false; } }() + +#endif // DOCTEST_CONFIG_NO_EXCEPTIONS + #else // DOCTEST_CONFIG_EVALUATE_ASSERTS_EVEN_WHEN_DISABLED -#define DOCTEST_WARN(...) ([] { return false; }) -#define DOCTEST_CHECK(...) ([] { return false; }) -#define DOCTEST_REQUIRE(...) ([] { return false; }) -#define DOCTEST_WARN_FALSE(...) ([] { return false; }) -#define DOCTEST_CHECK_FALSE(...) ([] { return false; }) -#define DOCTEST_REQUIRE_FALSE(...) ([] { return false; }) - -#define DOCTEST_WARN_MESSAGE(cond, ...) ([] { return false; }) -#define DOCTEST_CHECK_MESSAGE(cond, ...) ([] { return false; }) -#define DOCTEST_REQUIRE_MESSAGE(cond, ...) ([] { return false; }) -#define DOCTEST_WARN_FALSE_MESSAGE(cond, ...) ([] { return false; }) -#define DOCTEST_CHECK_FALSE_MESSAGE(cond, ...) ([] { return false; }) -#define DOCTEST_REQUIRE_FALSE_MESSAGE(cond, ...) ([] { return false; }) - -#define DOCTEST_WARN_EQ(...) ([] { return false; }) -#define DOCTEST_CHECK_EQ(...) ([] { return false; }) -#define DOCTEST_REQUIRE_EQ(...) ([] { return false; }) -#define DOCTEST_WARN_NE(...) ([] { return false; }) -#define DOCTEST_CHECK_NE(...) ([] { return false; }) -#define DOCTEST_REQUIRE_NE(...) ([] { return false; }) -#define DOCTEST_WARN_GT(...) ([] { return false; }) -#define DOCTEST_CHECK_GT(...) ([] { return false; }) -#define DOCTEST_REQUIRE_GT(...) ([] { return false; }) -#define DOCTEST_WARN_LT(...) ([] { return false; }) -#define DOCTEST_CHECK_LT(...) ([] { return false; }) -#define DOCTEST_REQUIRE_LT(...) ([] { return false; }) -#define DOCTEST_WARN_GE(...) ([] { return false; }) -#define DOCTEST_CHECK_GE(...) ([] { return false; }) -#define DOCTEST_REQUIRE_GE(...) ([] { return false; }) -#define DOCTEST_WARN_LE(...) ([] { return false; }) -#define DOCTEST_CHECK_LE(...) ([] { return false; }) -#define DOCTEST_REQUIRE_LE(...) ([] { return false; }) - -#define DOCTEST_WARN_UNARY(...) ([] { return false; }) -#define DOCTEST_CHECK_UNARY(...) ([] { return false; }) -#define DOCTEST_REQUIRE_UNARY(...) ([] { return false; }) -#define DOCTEST_WARN_UNARY_FALSE(...) ([] { return false; }) -#define DOCTEST_CHECK_UNARY_FALSE(...) ([] { return false; }) -#define DOCTEST_REQUIRE_UNARY_FALSE(...) ([] { return false; }) +#define DOCTEST_WARN(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_CHECK(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_REQUIRE(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_WARN_FALSE(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_CHECK_FALSE(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_REQUIRE_FALSE(...) DOCTEST_FUNC_EMPTY + +#define DOCTEST_WARN_MESSAGE(cond, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_CHECK_MESSAGE(cond, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_REQUIRE_MESSAGE(cond, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_WARN_FALSE_MESSAGE(cond, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_CHECK_FALSE_MESSAGE(cond, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_REQUIRE_FALSE_MESSAGE(cond, ...) DOCTEST_FUNC_EMPTY + +#define DOCTEST_WARN_EQ(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_CHECK_EQ(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_REQUIRE_EQ(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_WARN_NE(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_CHECK_NE(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_REQUIRE_NE(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_WARN_GT(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_CHECK_GT(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_REQUIRE_GT(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_WARN_LT(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_CHECK_LT(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_REQUIRE_LT(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_WARN_GE(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_CHECK_GE(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_REQUIRE_GE(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_WARN_LE(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_CHECK_LE(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_REQUIRE_LE(...) DOCTEST_FUNC_EMPTY + +#define DOCTEST_WARN_UNARY(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_CHECK_UNARY(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_REQUIRE_UNARY(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_WARN_UNARY_FALSE(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_CHECK_UNARY_FALSE(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_REQUIRE_UNARY_FALSE(...) DOCTEST_FUNC_EMPTY -#endif // DOCTEST_CONFIG_EVALUATE_ASSERTS_EVEN_WHEN_DISABLED +#ifndef DOCTEST_CONFIG_NO_EXCEPTIONS -// TODO: think about if these also need to work properly even when doctest is disabled -#define DOCTEST_WARN_THROWS(...) ([] { return false; }) -#define DOCTEST_CHECK_THROWS(...) ([] { return false; }) -#define DOCTEST_REQUIRE_THROWS(...) ([] { return false; }) -#define DOCTEST_WARN_THROWS_AS(expr, ...) ([] { return false; }) -#define DOCTEST_CHECK_THROWS_AS(expr, ...) ([] { return false; }) -#define DOCTEST_REQUIRE_THROWS_AS(expr, ...) ([] { return false; }) -#define DOCTEST_WARN_THROWS_WITH(expr, ...) ([] { return false; }) -#define DOCTEST_CHECK_THROWS_WITH(expr, ...) ([] { return false; }) -#define DOCTEST_REQUIRE_THROWS_WITH(expr, ...) ([] { return false; }) -#define DOCTEST_WARN_THROWS_WITH_AS(expr, with, ...) ([] { return false; }) -#define DOCTEST_CHECK_THROWS_WITH_AS(expr, with, ...) ([] { return false; }) -#define DOCTEST_REQUIRE_THROWS_WITH_AS(expr, with, ...) ([] { return false; }) -#define DOCTEST_WARN_NOTHROW(...) ([] { return false; }) -#define DOCTEST_CHECK_NOTHROW(...) ([] { return false; }) -#define DOCTEST_REQUIRE_NOTHROW(...) ([] { return false; }) - -#define DOCTEST_WARN_THROWS_MESSAGE(expr, ...) ([] { return false; }) -#define DOCTEST_CHECK_THROWS_MESSAGE(expr, ...) ([] { return false; }) -#define DOCTEST_REQUIRE_THROWS_MESSAGE(expr, ...) ([] { return false; }) -#define DOCTEST_WARN_THROWS_AS_MESSAGE(expr, ex, ...) ([] { return false; }) -#define DOCTEST_CHECK_THROWS_AS_MESSAGE(expr, ex, ...) ([] { return false; }) -#define DOCTEST_REQUIRE_THROWS_AS_MESSAGE(expr, ex, ...) ([] { return false; }) -#define DOCTEST_WARN_THROWS_WITH_MESSAGE(expr, with, ...) ([] { return false; }) -#define DOCTEST_CHECK_THROWS_WITH_MESSAGE(expr, with, ...) ([] { return false; }) -#define DOCTEST_REQUIRE_THROWS_WITH_MESSAGE(expr, with, ...) ([] { return false; }) -#define DOCTEST_WARN_THROWS_WITH_AS_MESSAGE(expr, with, ex, ...) ([] { return false; }) -#define DOCTEST_CHECK_THROWS_WITH_AS_MESSAGE(expr, with, ex, ...) ([] { return false; }) -#define DOCTEST_REQUIRE_THROWS_WITH_AS_MESSAGE(expr, with, ex, ...) ([] { return false; }) -#define DOCTEST_WARN_NOTHROW_MESSAGE(expr, ...) ([] { return false; }) -#define DOCTEST_CHECK_NOTHROW_MESSAGE(expr, ...) ([] { return false; }) -#define DOCTEST_REQUIRE_NOTHROW_MESSAGE(expr, ...) ([] { return false; }) +#define DOCTEST_WARN_THROWS(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_CHECK_THROWS(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_REQUIRE_THROWS(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_WARN_THROWS_AS(expr, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_CHECK_THROWS_AS(expr, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_REQUIRE_THROWS_AS(expr, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_WARN_THROWS_WITH(expr, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_CHECK_THROWS_WITH(expr, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_REQUIRE_THROWS_WITH(expr, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_WARN_THROWS_WITH_AS(expr, with, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_CHECK_THROWS_WITH_AS(expr, with, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_REQUIRE_THROWS_WITH_AS(expr, with, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_WARN_NOTHROW(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_CHECK_NOTHROW(...) DOCTEST_FUNC_EMPTY +#define DOCTEST_REQUIRE_NOTHROW(...) DOCTEST_FUNC_EMPTY + +#define DOCTEST_WARN_THROWS_MESSAGE(expr, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_CHECK_THROWS_MESSAGE(expr, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_REQUIRE_THROWS_MESSAGE(expr, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_WARN_THROWS_AS_MESSAGE(expr, ex, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_CHECK_THROWS_AS_MESSAGE(expr, ex, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_REQUIRE_THROWS_AS_MESSAGE(expr, ex, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_WARN_THROWS_WITH_MESSAGE(expr, with, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_CHECK_THROWS_WITH_MESSAGE(expr, with, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_REQUIRE_THROWS_WITH_MESSAGE(expr, with, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_WARN_THROWS_WITH_AS_MESSAGE(expr, with, ex, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_CHECK_THROWS_WITH_AS_MESSAGE(expr, with, ex, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_REQUIRE_THROWS_WITH_AS_MESSAGE(expr, with, ex, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_WARN_NOTHROW_MESSAGE(expr, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_CHECK_NOTHROW_MESSAGE(expr, ...) DOCTEST_FUNC_EMPTY +#define DOCTEST_REQUIRE_NOTHROW_MESSAGE(expr, ...) DOCTEST_FUNC_EMPTY + +#endif // DOCTEST_CONFIG_NO_EXCEPTIONS + +#endif // DOCTEST_CONFIG_EVALUATE_ASSERTS_EVEN_WHEN_DISABLED #endif // DOCTEST_CONFIG_DISABLE +#ifdef DOCTEST_CONFIG_NO_EXCEPTIONS + +#ifdef DOCTEST_CONFIG_NO_EXCEPTIONS_BUT_WITH_ALL_ASSERTS +#define DOCTEST_EXCEPTION_EMPTY_FUNC DOCTEST_FUNC_EMPTY +#else // DOCTEST_CONFIG_NO_EXCEPTIONS_BUT_WITH_ALL_ASSERTS +#define DOCTEST_EXCEPTION_EMPTY_FUNC [] { static_assert(false, "Exceptions are disabled! " \ + "Use DOCTEST_CONFIG_NO_EXCEPTIONS_BUT_WITH_ALL_ASSERTS if you want to compile with exceptions disabled."); return false; }() + +#undef DOCTEST_REQUIRE +#undef DOCTEST_REQUIRE_FALSE +#undef DOCTEST_REQUIRE_MESSAGE +#undef DOCTEST_REQUIRE_FALSE_MESSAGE +#undef DOCTEST_REQUIRE_EQ +#undef DOCTEST_REQUIRE_NE +#undef DOCTEST_REQUIRE_GT +#undef DOCTEST_REQUIRE_LT +#undef DOCTEST_REQUIRE_GE +#undef DOCTEST_REQUIRE_LE +#undef DOCTEST_REQUIRE_UNARY +#undef DOCTEST_REQUIRE_UNARY_FALSE + +#define DOCTEST_REQUIRE DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_REQUIRE_FALSE DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_REQUIRE_MESSAGE DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_REQUIRE_FALSE_MESSAGE DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_REQUIRE_EQ DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_REQUIRE_NE DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_REQUIRE_GT DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_REQUIRE_LT DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_REQUIRE_GE DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_REQUIRE_LE DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_REQUIRE_UNARY DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_REQUIRE_UNARY_FALSE DOCTEST_EXCEPTION_EMPTY_FUNC + +#endif // DOCTEST_CONFIG_NO_EXCEPTIONS_BUT_WITH_ALL_ASSERTS + +#define DOCTEST_WARN_THROWS(...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_CHECK_THROWS(...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_REQUIRE_THROWS(...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_WARN_THROWS_AS(expr, ...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_CHECK_THROWS_AS(expr, ...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_REQUIRE_THROWS_AS(expr, ...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_WARN_THROWS_WITH(expr, ...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_CHECK_THROWS_WITH(expr, ...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_REQUIRE_THROWS_WITH(expr, ...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_WARN_THROWS_WITH_AS(expr, with, ...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_CHECK_THROWS_WITH_AS(expr, with, ...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_REQUIRE_THROWS_WITH_AS(expr, with, ...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_WARN_NOTHROW(...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_CHECK_NOTHROW(...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_REQUIRE_NOTHROW(...) DOCTEST_EXCEPTION_EMPTY_FUNC + +#define DOCTEST_WARN_THROWS_MESSAGE(expr, ...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_CHECK_THROWS_MESSAGE(expr, ...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_REQUIRE_THROWS_MESSAGE(expr, ...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_WARN_THROWS_AS_MESSAGE(expr, ex, ...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_CHECK_THROWS_AS_MESSAGE(expr, ex, ...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_REQUIRE_THROWS_AS_MESSAGE(expr, ex, ...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_WARN_THROWS_WITH_MESSAGE(expr, with, ...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_CHECK_THROWS_WITH_MESSAGE(expr, with, ...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_REQUIRE_THROWS_WITH_MESSAGE(expr, with, ...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_WARN_THROWS_WITH_AS_MESSAGE(expr, with, ex, ...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_CHECK_THROWS_WITH_AS_MESSAGE(expr, with, ex, ...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_REQUIRE_THROWS_WITH_AS_MESSAGE(expr, with, ex, ...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_WARN_NOTHROW_MESSAGE(expr, ...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_CHECK_NOTHROW_MESSAGE(expr, ...) DOCTEST_EXCEPTION_EMPTY_FUNC +#define DOCTEST_REQUIRE_NOTHROW_MESSAGE(expr, ...) DOCTEST_EXCEPTION_EMPTY_FUNC + +#endif // DOCTEST_CONFIG_NO_EXCEPTIONS + // clang-format off // KEPT FOR BACKWARDS COMPATIBILITY - FORWARDING TO THE RIGHT MACROS #define DOCTEST_FAST_WARN_EQ DOCTEST_WARN_EQ @@ -2726,11 +2889,12 @@ namespace detail { // clang-format on // == SHORT VERSIONS OF THE MACROS -#if !defined(DOCTEST_CONFIG_NO_SHORT_MACRO_NAMES) +#ifndef DOCTEST_CONFIG_NO_SHORT_MACRO_NAMES #define TEST_CASE(name) DOCTEST_TEST_CASE(name) #define TEST_CASE_CLASS(name) DOCTEST_TEST_CASE_CLASS(name) #define TEST_CASE_FIXTURE(x, name) DOCTEST_TEST_CASE_FIXTURE(x, name) +#define TYPE_TO_STRING_AS(str, ...) DOCTEST_TYPE_TO_STRING_AS(str, __VA_ARGS__) #define TYPE_TO_STRING(...) DOCTEST_TYPE_TO_STRING(__VA_ARGS__) #define TEST_CASE_TEMPLATE(name, T, ...) DOCTEST_TEST_CASE_TEMPLATE(name, T, __VA_ARGS__) #define TEST_CASE_TEMPLATE_DEFINE(name, T, id) DOCTEST_TEST_CASE_TEMPLATE_DEFINE(name, T, id) @@ -2863,33 +3027,11 @@ namespace detail { #endif // DOCTEST_CONFIG_NO_SHORT_MACRO_NAMES -#if !defined(DOCTEST_CONFIG_DISABLE) +#ifndef DOCTEST_CONFIG_DISABLE // this is here to clear the 'current test suite' for the current translation unit - at the top DOCTEST_TEST_SUITE_END(); -// add stringification for primitive/fundamental types -namespace doctest { namespace detail { - DOCTEST_TYPE_TO_STRING_IMPL(bool) - DOCTEST_TYPE_TO_STRING_IMPL(float) - DOCTEST_TYPE_TO_STRING_IMPL(double) - DOCTEST_TYPE_TO_STRING_IMPL(long double) - DOCTEST_TYPE_TO_STRING_IMPL(char) - DOCTEST_TYPE_TO_STRING_IMPL(signed char) - DOCTEST_TYPE_TO_STRING_IMPL(unsigned char) -#if !DOCTEST_MSVC || defined(_NATIVE_WCHAR_T_DEFINED) - DOCTEST_TYPE_TO_STRING_IMPL(wchar_t) -#endif // not MSVC or wchar_t support enabled - DOCTEST_TYPE_TO_STRING_IMPL(short int) - DOCTEST_TYPE_TO_STRING_IMPL(unsigned short int) - DOCTEST_TYPE_TO_STRING_IMPL(int) - DOCTEST_TYPE_TO_STRING_IMPL(unsigned int) - DOCTEST_TYPE_TO_STRING_IMPL(long int) - DOCTEST_TYPE_TO_STRING_IMPL(unsigned long int) - DOCTEST_TYPE_TO_STRING_IMPL(long long int) - DOCTEST_TYPE_TO_STRING_IMPL(unsigned long long int) -}} // namespace doctest::detail - #endif // DOCTEST_CONFIG_DISABLE DOCTEST_CLANG_SUPPRESS_WARNING_POP @@ -2981,16 +3123,27 @@ DOCTEST_MAKE_STD_HEADERS_CLEAN_FROM_WARNINGS_ON_WALL_BEGIN #include <algorithm> #include <iomanip> #include <vector> +#ifndef DOCTEST_CONFIG_NO_MULTITHREADING #include <atomic> #include <mutex> +#define DOCTEST_DECLARE_MUTEX(name) std::mutex name; +#define DOCTEST_DECLARE_STATIC_MUTEX(name) static DOCTEST_DECLARE_MUTEX(name) +#define DOCTEST_LOCK_MUTEX(name) std::lock_guard<std::mutex> DOCTEST_ANONYMOUS(DOCTEST_ANON_LOCK_)(name); +#else // DOCTEST_CONFIG_NO_MULTITHREADING +#define DOCTEST_DECLARE_MUTEX(name) +#define DOCTEST_DECLARE_STATIC_MUTEX(name) +#define DOCTEST_LOCK_MUTEX(name) +#endif // DOCTEST_CONFIG_NO_MULTITHREADING #include <set> #include <map> +#include <unordered_set> #include <exception> #include <stdexcept> #include <csignal> #include <cfloat> #include <cctype> #include <cstdint> +#include <string> #ifdef DOCTEST_PLATFORM_MAC #include <sys/types.h> @@ -3045,7 +3198,7 @@ DOCTEST_MAKE_STD_HEADERS_CLEAN_FROM_WARNINGS_ON_WALL_END #endif #ifndef DOCTEST_THREAD_LOCAL -#if DOCTEST_MSVC && (DOCTEST_MSVC < DOCTEST_COMPILER(19, 0, 0)) +#if defined(DOCTEST_CONFIG_NO_MULTITHREADING) || DOCTEST_MSVC && (DOCTEST_MSVC < DOCTEST_COMPILER(19, 0, 0)) #define DOCTEST_THREAD_LOCAL #else // DOCTEST_MSVC #define DOCTEST_THREAD_LOCAL thread_local @@ -3107,20 +3260,6 @@ namespace { } } - template <typename T> - String fpToString(T value, int precision) { - std::ostringstream oss; - oss << std::setprecision(precision) << std::fixed << value; - std::string d = oss.str(); - size_t i = d.find_last_not_of('0'); - if(i != std::string::npos && i != d.size() - 1) { - if(d[i] == '.') - i++; - d = d.substr(0, i + 1); - } - return d.c_str(); - } - struct Endianness { enum Arch @@ -3141,22 +3280,6 @@ namespace { } // namespace namespace detail { - String rawMemoryToString(const void* object, unsigned size) { - // Reverse order for little endian architectures - int i = 0, end = static_cast<int>(size), inc = 1; - if(Endianness::which() == Endianness::Little) { - i = end - 1; - end = inc = -1; - } - - unsigned const char* bytes = static_cast<unsigned const char*>(object); - std::ostream* oss = tlssPush(); - *oss << "0x" << std::setfill('0') << std::hex; - for(; i != end; i += inc) - *oss << std::setw(2) << static_cast<unsigned>(bytes[i]); - return tlssPop(); - } - DOCTEST_THREAD_LOCAL class { std::vector<std::streampos> stack; @@ -3194,19 +3317,19 @@ namespace timer_large_integer { #if defined(DOCTEST_PLATFORM_WINDOWS) - typedef ULONGLONG type; + using type = ULONGLONG; #else // DOCTEST_PLATFORM_WINDOWS - typedef std::uint64_t type; + using type = std::uint64_t; #endif // DOCTEST_PLATFORM_WINDOWS } -typedef timer_large_integer::type ticks_t; +using ticks_t = timer_large_integer::type; #ifdef DOCTEST_CONFIG_GETCURRENTTICKS ticks_t getCurrentTicks() { return DOCTEST_CONFIG_GETCURRENTTICKS(); } #elif defined(DOCTEST_PLATFORM_WINDOWS) ticks_t getCurrentTicks() { - static LARGE_INTEGER hz = {0}, hzo = {0}; + static LARGE_INTEGER hz = { {0} }, hzo = { {0} }; if(!hz.QuadPart) { QueryPerformanceFrequency(&hz); QueryPerformanceCounter(&hzo); @@ -3238,9 +3361,17 @@ typedef timer_large_integer::type ticks_t; ticks_t m_ticks = 0; }; -#ifdef DOCTEST_CONFIG_NO_MULTI_LANE_ATOMICS +#ifdef DOCTEST_CONFIG_NO_MULTITHREADING + template <typename T> + using Atomic = T; +#else // DOCTEST_CONFIG_NO_MULTITHREADING template <typename T> - using AtomicOrMultiLaneAtomic = std::atomic<T>; + using Atomic = std::atomic<T>; +#endif // DOCTEST_CONFIG_NO_MULTITHREADING + +#if defined(DOCTEST_CONFIG_NO_MULTI_LANE_ATOMICS) || defined(DOCTEST_CONFIG_NO_MULTITHREADING) + template <typename T> + using MultiLaneAtomic = Atomic<T>; #else // DOCTEST_CONFIG_NO_MULTI_LANE_ATOMICS // Provides a multilane implementation of an atomic variable that supports add, sub, load, // store. Instead of using a single atomic variable, this splits up into multiple ones, @@ -3257,8 +3388,8 @@ typedef timer_large_integer::type ticks_t; { struct CacheLineAlignedAtomic { - std::atomic<T> atomic{}; - char padding[DOCTEST_MULTI_LANE_ATOMICS_CACHE_LINE_SIZE - sizeof(std::atomic<T>)]; + Atomic<T> atomic{}; + char padding[DOCTEST_MULTI_LANE_ATOMICS_CACHE_LINE_SIZE - sizeof(Atomic<T>)]; }; CacheLineAlignedAtomic m_atomics[DOCTEST_MULTI_LANE_ATOMICS_THREAD_LANES]; @@ -3314,24 +3445,21 @@ typedef timer_large_integer::type ticks_t; // assigned in a round-robin fashion. // 3. This tlsLaneIdx is stored in the thread local data, so it is directly available with // little overhead. - std::atomic<T>& myAtomic() DOCTEST_NOEXCEPT { - static std::atomic<size_t> laneCounter; + Atomic<T>& myAtomic() DOCTEST_NOEXCEPT { + static Atomic<size_t> laneCounter; DOCTEST_THREAD_LOCAL size_t tlsLaneIdx = laneCounter++ % DOCTEST_MULTI_LANE_ATOMICS_THREAD_LANES; return m_atomics[tlsLaneIdx].atomic; } }; - - template <typename T> - using AtomicOrMultiLaneAtomic = MultiLaneAtomic<T>; #endif // DOCTEST_CONFIG_NO_MULTI_LANE_ATOMICS // this holds both parameters from the command line and runtime data for tests struct ContextState : ContextOptions, TestRunStats, CurrentTestCaseStats { - AtomicOrMultiLaneAtomic<int> numAssertsCurrentTest_atomic; - AtomicOrMultiLaneAtomic<int> numAssertsFailedCurrentTest_atomic; + MultiLaneAtomic<int> numAssertsCurrentTest_atomic; + MultiLaneAtomic<int> numAssertsFailedCurrentTest_atomic; std::vector<std::vector<String>> filters = decltype(filters)(9); // 9 different filters @@ -3344,11 +3472,12 @@ typedef timer_large_integer::type ticks_t; std::vector<String> stringifiedContexts; // logging from INFO() due to an exception // stuff for subcases - std::vector<SubcaseSignature> subcasesStack; - std::set<decltype(subcasesStack)> subcasesPassed; - int subcasesCurrentMaxLevel; - bool should_reenter; - std::atomic<bool> shouldLogCurrentException; + bool reachedLeaf; + std::vector<SubcaseSignature> subcaseStack; + std::vector<SubcaseSignature> nextSubcaseStack; + std::unordered_set<unsigned long long> fullyTraversedSubcases; + size_t currentSubcaseDepth; + Atomic<bool> shouldLogCurrentException; void resetRunData() { numTestCases = 0; @@ -3414,7 +3543,7 @@ typedef timer_large_integer::type ticks_t; #endif // DOCTEST_CONFIG_DISABLE } // namespace detail -char* String::allocate(unsigned sz) { +char* String::allocate(size_type sz) { if (sz <= last) { buf[sz] = '\0'; setLast(last - sz); @@ -3429,8 +3558,12 @@ char* String::allocate(unsigned sz) { } } -void String::setOnHeap() { *reinterpret_cast<unsigned char*>(&buf[last]) = 128; } -void String::setLast(unsigned in) { buf[last] = char(in); } +void String::setOnHeap() noexcept { *reinterpret_cast<unsigned char*>(&buf[last]) = 128; } +void String::setLast(size_type in) noexcept { buf[last] = char(in); } +void String::setSize(size_type sz) noexcept { + if (isOnStack()) { buf[sz] = '\0'; setLast(last - sz); } + else { data.ptr[sz] = '\0'; data.size = sz; } +} void String::copy(const String& other) { if(other.isOnStack()) { @@ -3440,7 +3573,7 @@ void String::copy(const String& other) { } } -String::String() { +String::String() noexcept { buf[0] = '\0'; setLast(); } @@ -3448,17 +3581,16 @@ String::String() { String::~String() { if(!isOnStack()) delete[] data.ptr; - // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks) -} +} // NOLINT(clang-analyzer-cplusplus.NewDeleteLeaks) String::String(const char* in) : String(in, strlen(in)) {} -String::String(const char* in, unsigned in_size) { +String::String(const char* in, size_type in_size) { memcpy(allocate(in_size), in, in_size); } -String::String(std::istream& in, unsigned in_size) { +String::String(std::istream& in, size_type in_size) { in.read(allocate(in_size), in_size); } @@ -3476,9 +3608,9 @@ String& String::operator=(const String& other) { } String& String::operator+=(const String& other) { - const unsigned my_old_size = size(); - const unsigned other_size = other.size(); - const unsigned total_size = my_old_size + other_size; + const size_type my_old_size = size(); + const size_type other_size = other.size(); + const size_type total_size = my_old_size + other_size; if(isOnStack()) { if(total_size < len) { // append to the current stack space @@ -3525,13 +3657,13 @@ String& String::operator+=(const String& other) { return *this; } -String::String(String&& other) { +String::String(String&& other) noexcept { memcpy(buf, other.buf, len); other.buf[0] = '\0'; other.setLast(); } -String& String::operator=(String&& other) { +String& String::operator=(String&& other) noexcept { if(this != &other) { if(!isOnStack()) delete[] data.ptr; @@ -3542,30 +3674,60 @@ String& String::operator=(String&& other) { return *this; } -char String::operator[](unsigned i) const { - return const_cast<String*>(this)->operator[](i); // NOLINT +char String::operator[](size_type i) const { + return const_cast<String*>(this)->operator[](i); } -char& String::operator[](unsigned i) { +char& String::operator[](size_type i) { if(isOnStack()) return reinterpret_cast<char*>(buf)[i]; return data.ptr[i]; } DOCTEST_GCC_SUPPRESS_WARNING_WITH_PUSH("-Wmaybe-uninitialized") -unsigned String::size() const { +String::size_type String::size() const { if(isOnStack()) - return last - (unsigned(buf[last]) & 31); // using "last" would work only if "len" is 32 + return last - (size_type(buf[last]) & 31); // using "last" would work only if "len" is 32 return data.size; } DOCTEST_GCC_SUPPRESS_WARNING_POP -unsigned String::capacity() const { +String::size_type String::capacity() const { if(isOnStack()) return len; return data.capacity; } +String String::substr(size_type pos, size_type cnt) && { + cnt = std::min(cnt, size() - 1 - pos); + char* cptr = c_str(); + memmove(cptr, cptr + pos, cnt); + setSize(cnt); + return std::move(*this); +} + +String String::substr(size_type pos, size_type cnt) const & { + cnt = std::min(cnt, size() - 1 - pos); + return String{ c_str() + pos, cnt }; +} + +String::size_type String::find(char ch, size_type pos) const { + const char* begin = c_str(); + const char* end = begin + size(); + const char* it = begin + pos; + for (; it < end && *it != ch; it++); + if (it < end) { return static_cast<size_type>(it - begin); } + else { return npos; } +} + +String::size_type String::rfind(char ch, size_type pos) const { + const char* begin = c_str(); + const char* it = begin + std::min(pos, size() - 1); + for (; it >= begin && *it != ch; it--); + if (it >= begin) { return static_cast<size_type>(it - begin); } + else { return npos; } +} + int String::compare(const char* other, bool no_case) const { if(no_case) return doctest::stricmp(c_str(), other); @@ -3576,20 +3738,32 @@ int String::compare(const String& other, bool no_case) const { return compare(other.c_str(), no_case); } -// NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks) String operator+(const String& lhs, const String& rhs) { return String(lhs) += rhs; } -// clang-format off bool operator==(const String& lhs, const String& rhs) { return lhs.compare(rhs) == 0; } bool operator!=(const String& lhs, const String& rhs) { return lhs.compare(rhs) != 0; } bool operator< (const String& lhs, const String& rhs) { return lhs.compare(rhs) < 0; } bool operator> (const String& lhs, const String& rhs) { return lhs.compare(rhs) > 0; } bool operator<=(const String& lhs, const String& rhs) { return (lhs != rhs) ? lhs.compare(rhs) < 0 : true; } bool operator>=(const String& lhs, const String& rhs) { return (lhs != rhs) ? lhs.compare(rhs) > 0 : true; } -// clang-format on std::ostream& operator<<(std::ostream& s, const String& in) { return s << in.c_str(); } +Contains::Contains(const String& str) : string(str) { } + +bool Contains::checkWith(const String& other) const { + return strstr(other.c_str(), string.c_str()) != nullptr; +} + +String toString(const Contains& in) { + return "Contains( " + in.string + " )"; +} + +bool operator==(const String& lhs, const Contains& rhs) { return rhs.checkWith(lhs); } +bool operator==(const Contains& lhs, const String& rhs) { return lhs.checkWith(rhs); } +bool operator!=(const String& lhs, const Contains& rhs) { return !rhs.checkWith(lhs); } +bool operator!=(const Contains& lhs, const String& rhs) { return !lhs.checkWith(rhs); } + namespace { void color_to_stream(std::ostream&, Color::Enum) DOCTEST_BRANCH_ON_DISABLED({}, ;) } // namespace @@ -3603,64 +3777,42 @@ namespace Color { // clang-format off const char* assertString(assertType::Enum at) { - DOCTEST_MSVC_SUPPRESS_WARNING_WITH_PUSH(4062) // enum 'x' in switch of enum 'y' is not handled - switch(at) { //!OCLINT missing default in switch statements - case assertType::DT_WARN : return "WARN"; - case assertType::DT_CHECK : return "CHECK"; - case assertType::DT_REQUIRE : return "REQUIRE"; - - case assertType::DT_WARN_FALSE : return "WARN_FALSE"; - case assertType::DT_CHECK_FALSE : return "CHECK_FALSE"; - case assertType::DT_REQUIRE_FALSE : return "REQUIRE_FALSE"; - - case assertType::DT_WARN_THROWS : return "WARN_THROWS"; - case assertType::DT_CHECK_THROWS : return "CHECK_THROWS"; - case assertType::DT_REQUIRE_THROWS : return "REQUIRE_THROWS"; - - case assertType::DT_WARN_THROWS_AS : return "WARN_THROWS_AS"; - case assertType::DT_CHECK_THROWS_AS : return "CHECK_THROWS_AS"; - case assertType::DT_REQUIRE_THROWS_AS : return "REQUIRE_THROWS_AS"; - - case assertType::DT_WARN_THROWS_WITH : return "WARN_THROWS_WITH"; - case assertType::DT_CHECK_THROWS_WITH : return "CHECK_THROWS_WITH"; - case assertType::DT_REQUIRE_THROWS_WITH : return "REQUIRE_THROWS_WITH"; - - case assertType::DT_WARN_THROWS_WITH_AS : return "WARN_THROWS_WITH_AS"; - case assertType::DT_CHECK_THROWS_WITH_AS : return "CHECK_THROWS_WITH_AS"; - case assertType::DT_REQUIRE_THROWS_WITH_AS : return "REQUIRE_THROWS_WITH_AS"; - - case assertType::DT_WARN_NOTHROW : return "WARN_NOTHROW"; - case assertType::DT_CHECK_NOTHROW : return "CHECK_NOTHROW"; - case assertType::DT_REQUIRE_NOTHROW : return "REQUIRE_NOTHROW"; - - case assertType::DT_WARN_EQ : return "WARN_EQ"; - case assertType::DT_CHECK_EQ : return "CHECK_EQ"; - case assertType::DT_REQUIRE_EQ : return "REQUIRE_EQ"; - case assertType::DT_WARN_NE : return "WARN_NE"; - case assertType::DT_CHECK_NE : return "CHECK_NE"; - case assertType::DT_REQUIRE_NE : return "REQUIRE_NE"; - case assertType::DT_WARN_GT : return "WARN_GT"; - case assertType::DT_CHECK_GT : return "CHECK_GT"; - case assertType::DT_REQUIRE_GT : return "REQUIRE_GT"; - case assertType::DT_WARN_LT : return "WARN_LT"; - case assertType::DT_CHECK_LT : return "CHECK_LT"; - case assertType::DT_REQUIRE_LT : return "REQUIRE_LT"; - case assertType::DT_WARN_GE : return "WARN_GE"; - case assertType::DT_CHECK_GE : return "CHECK_GE"; - case assertType::DT_REQUIRE_GE : return "REQUIRE_GE"; - case assertType::DT_WARN_LE : return "WARN_LE"; - case assertType::DT_CHECK_LE : return "CHECK_LE"; - case assertType::DT_REQUIRE_LE : return "REQUIRE_LE"; - - case assertType::DT_WARN_UNARY : return "WARN_UNARY"; - case assertType::DT_CHECK_UNARY : return "CHECK_UNARY"; - case assertType::DT_REQUIRE_UNARY : return "REQUIRE_UNARY"; - case assertType::DT_WARN_UNARY_FALSE : return "WARN_UNARY_FALSE"; - case assertType::DT_CHECK_UNARY_FALSE : return "CHECK_UNARY_FALSE"; - case assertType::DT_REQUIRE_UNARY_FALSE : return "REQUIRE_UNARY_FALSE"; + DOCTEST_MSVC_SUPPRESS_WARNING_WITH_PUSH(4061) // enum 'x' in switch of enum 'y' is not explicitely handled + #define DOCTEST_GENERATE_ASSERT_TYPE_CASE(assert_type) case assertType::DT_ ## assert_type: return #assert_type + #define DOCTEST_GENERATE_ASSERT_TYPE_CASES(assert_type) \ + DOCTEST_GENERATE_ASSERT_TYPE_CASE(WARN_ ## assert_type); \ + DOCTEST_GENERATE_ASSERT_TYPE_CASE(CHECK_ ## assert_type); \ + DOCTEST_GENERATE_ASSERT_TYPE_CASE(REQUIRE_ ## assert_type) + switch(at) { + DOCTEST_GENERATE_ASSERT_TYPE_CASE(WARN); + DOCTEST_GENERATE_ASSERT_TYPE_CASE(CHECK); + DOCTEST_GENERATE_ASSERT_TYPE_CASE(REQUIRE); + + DOCTEST_GENERATE_ASSERT_TYPE_CASES(FALSE); + + DOCTEST_GENERATE_ASSERT_TYPE_CASES(THROWS); + + DOCTEST_GENERATE_ASSERT_TYPE_CASES(THROWS_AS); + + DOCTEST_GENERATE_ASSERT_TYPE_CASES(THROWS_WITH); + + DOCTEST_GENERATE_ASSERT_TYPE_CASES(THROWS_WITH_AS); + + DOCTEST_GENERATE_ASSERT_TYPE_CASES(NOTHROW); + + DOCTEST_GENERATE_ASSERT_TYPE_CASES(EQ); + DOCTEST_GENERATE_ASSERT_TYPE_CASES(NE); + DOCTEST_GENERATE_ASSERT_TYPE_CASES(GT); + DOCTEST_GENERATE_ASSERT_TYPE_CASES(LT); + DOCTEST_GENERATE_ASSERT_TYPE_CASES(GE); + DOCTEST_GENERATE_ASSERT_TYPE_CASES(LE); + + DOCTEST_GENERATE_ASSERT_TYPE_CASES(UNARY); + DOCTEST_GENERATE_ASSERT_TYPE_CASES(UNARY_FALSE); + + default: DOCTEST_INTERNAL_ERROR("Tried stringifying invalid assert type!"); } DOCTEST_MSVC_SUPPRESS_WARNING_POP - return ""; } // clang-format on @@ -3694,6 +3846,12 @@ const char* skipPathFromFilename(const char* file) { DOCTEST_CLANG_SUPPRESS_WARNING_POP DOCTEST_GCC_SUPPRESS_WARNING_POP +bool SubcaseSignature::operator==(const SubcaseSignature& other) const { + return m_line == other.m_line + && std::strcmp(m_file, other.m_file) == 0 + && m_name == other.m_name; +} + bool SubcaseSignature::operator<(const SubcaseSignature& other) const { if(m_line != other.m_line) return m_line < other.m_line; @@ -3702,45 +3860,53 @@ bool SubcaseSignature::operator<(const SubcaseSignature& other) const { return m_name.compare(other.m_name) < 0; } -IContextScope::IContextScope() = default; -IContextScope::~IContextScope() = default; +DOCTEST_DEFINE_INTERFACE(IContextScope) -#ifdef DOCTEST_CONFIG_TREAT_CHAR_STAR_AS_STRING -String toString(char* in) { return toString(static_cast<const char*>(in)); } -// NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks) -String toString(const char* in) { return String("\"") + (in ? in : "{null string}") + "\""; } -#endif // DOCTEST_CONFIG_TREAT_CHAR_STAR_AS_STRING -String toString(bool in) { return in ? "true" : "false"; } -String toString(float in) { return fpToString(in, 5) + "f"; } -String toString(double in) { return fpToString(in, 10); } -String toString(double long in) { return fpToString(in, 15); } - -#define DOCTEST_TO_STRING_OVERLOAD(type, fmt) \ - String toString(type in) { \ - char buf[64]; \ - std::sprintf(buf, fmt, in); \ - return buf; \ +namespace detail { + void filldata<const void*>::fill(std::ostream* stream, const void* in) { + if (in) { *stream << in; } + else { *stream << "nullptr"; } } -DOCTEST_TO_STRING_OVERLOAD(char, "%d") -DOCTEST_TO_STRING_OVERLOAD(char signed, "%d") -DOCTEST_TO_STRING_OVERLOAD(char unsigned, "%u") -DOCTEST_TO_STRING_OVERLOAD(int short, "%d") -DOCTEST_TO_STRING_OVERLOAD(int short unsigned, "%u") -DOCTEST_TO_STRING_OVERLOAD(int, "%d") -DOCTEST_TO_STRING_OVERLOAD(unsigned, "%u") -DOCTEST_TO_STRING_OVERLOAD(int long, "%ld") -DOCTEST_TO_STRING_OVERLOAD(int long unsigned, "%lu") -DOCTEST_TO_STRING_OVERLOAD(int long long, "%lld") -DOCTEST_TO_STRING_OVERLOAD(int long long unsigned, "%llu") + template <typename T> + String toStreamLit(T t) { + std::ostream* os = tlssPush(); + os->operator<<(t); + return tlssPop(); + } +} -String toString(std::nullptr_t) { return "NULL"; } +#ifdef DOCTEST_CONFIG_TREAT_CHAR_STAR_AS_STRING +String toString(const char* in) { return String("\"") + (in ? in : "{null string}") + "\""; } +#endif // DOCTEST_CONFIG_TREAT_CHAR_STAR_AS_STRING #if DOCTEST_MSVC >= DOCTEST_COMPILER(19, 20, 0) // see this issue on why this is needed: https://github.com/doctest/doctest/issues/183 String toString(const std::string& in) { return in.c_str(); } #endif // VS 2019 +String toString(String in) { return in; } + +String toString(std::nullptr_t) { return "nullptr"; } + +String toString(bool in) { return in ? "true" : "false"; } + +String toString(float in) { return toStreamLit(in); } +String toString(double in) { return toStreamLit(in); } +String toString(double long in) { return toStreamLit(in); } + +String toString(char in) { return toStreamLit(static_cast<signed>(in)); } +String toString(char signed in) { return toStreamLit(static_cast<signed>(in)); } +String toString(char unsigned in) { return toStreamLit(static_cast<unsigned>(in)); } +String toString(short in) { return toStreamLit(in); } +String toString(short unsigned in) { return toStreamLit(in); } +String toString(signed in) { return toStreamLit(in); } +String toString(unsigned in) { return toStreamLit(in); } +String toString(long in) { return toStreamLit(in); } +String toString(long unsigned in) { return toStreamLit(in); } +String toString(long long in) { return toStreamLit(in); } +String toString(long long unsigned in) { return toStreamLit(in); } + Approx::Approx(double value) : m_epsilon(static_cast<double>(std::numeric_limits<float>::epsilon()) * 100) , m_scale(1.0) @@ -3780,11 +3946,25 @@ bool operator>(double lhs, const Approx& rhs) { return lhs > rhs.m_value && lhs bool operator>(const Approx& lhs, double rhs) { return lhs.m_value > rhs && lhs != rhs; } String toString(const Approx& in) { - // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks) return "Approx( " + doctest::toString(in.m_value) + " )"; } const ContextOptions* getContextOptions() { return DOCTEST_BRANCH_ON_DISABLED(nullptr, g_cs); } +DOCTEST_MSVC_SUPPRESS_WARNING_WITH_PUSH(4738) +template <typename F> +IsNaN<F>::operator bool() const { + return std::isnan(value) ^ flipped; +} +DOCTEST_MSVC_SUPPRESS_WARNING_POP +template struct DOCTEST_INTERFACE_DEF IsNaN<float>; +template struct DOCTEST_INTERFACE_DEF IsNaN<double>; +template struct DOCTEST_INTERFACE_DEF IsNaN<long double>; +template <typename F> +String toString(IsNaN<F> in) { return String(in.flipped ? "! " : "") + "IsNaN( " + doctest::toString(in.value) + " )"; } +String toString(IsNaN<float> in) { return toString<float>(in); } +String toString(IsNaN<double> in) { return toString<double>(in); } +String toString(IsNaN<double long> in) { return toString<double long>(in); } + } // namespace doctest #ifdef DOCTEST_CONFIG_DISABLE @@ -3800,11 +3980,9 @@ void Context::setOption(const char*, const char*) {} bool Context::shouldExit() { return false; } void Context::setAsDefaultForAssertsOutOfTestCases() {} void Context::setAssertHandler(detail::assert_handler) {} -void Context::setCout(std::ostream* out) {} +void Context::setCout(std::ostream*) {} int Context::run() { return 0; } -IReporter::~IReporter() = default; - int IReporter::get_num_active_contexts() { return 0; } const IContextScope* const* IReporter::get_active_contexts() { return nullptr; } int IReporter::get_num_stringified_contexts() { return 0; } @@ -3837,7 +4015,7 @@ namespace doctest { namespace { // the int (priority) is part of the key for automatic sorting - sadly one can register a // reporter with a duplicate name and a different priority but hopefully that won't happen often :| - typedef std::map<std::pair<int, String>, reporterCreatorFunc> reporterMap; + using reporterMap = std::map<std::pair<int, String>, reporterCreatorFunc>; reporterMap& getReporters() { static reporterMap data; @@ -3869,8 +4047,8 @@ namespace detail { #ifndef DOCTEST_CONFIG_NO_EXCEPTIONS DOCTEST_NORETURN void throwException() { g_cs->shouldLogCurrentException = false; - throw TestFailureException(); - } // NOLINT(cert-err60-cpp) + throw TestFailureException(); // NOLINT(hicpp-exception-baseclass) + } #else // DOCTEST_CONFIG_NO_EXCEPTIONS void throwException() {} #endif // DOCTEST_CONFIG_NO_EXCEPTIONS @@ -3916,59 +4094,92 @@ namespace { return !*wild; } - //// C string hash function (djb2) - taken from http://www.cse.yorku.ca/~oz/hash.html - //unsigned hashStr(unsigned const char* str) { - // unsigned long hash = 5381; - // char c; - // while((c = *str++)) - // hash = ((hash << 5) + hash) + c; // hash * 33 + c - // return hash; - //} - // checks if the name matches any of the filters (and can be configured what to do when empty) bool matchesAny(const char* name, const std::vector<String>& filters, bool matchEmpty, - bool caseSensitive) { - if(filters.empty() && matchEmpty) + bool caseSensitive) { + if (filters.empty() && matchEmpty) return true; - for(auto& curr : filters) - if(wildcmp(name, curr.c_str(), caseSensitive)) + for (auto& curr : filters) + if (wildcmp(name, curr.c_str(), caseSensitive)) return true; return false; } -} // namespace -namespace detail { - Subcase::Subcase(const String& name, const char* file, int line) - : m_signature({name, file, line}) { - auto* s = g_cs; + unsigned long long hash(unsigned long long a, unsigned long long b) { + return (a << 5) + b; + } - // check subcase filters - if(s->subcasesStack.size() < size_t(s->subcase_filter_levels)) { - if(!matchesAny(m_signature.m_name.c_str(), s->filters[6], true, s->case_sensitive)) - return; - if(matchesAny(m_signature.m_name.c_str(), s->filters[7], false, s->case_sensitive)) - return; - } - - // if a Subcase on the same level has already been entered - if(s->subcasesStack.size() < size_t(s->subcasesCurrentMaxLevel)) { - s->should_reenter = true; - return; - } + // C string hash function (djb2) - taken from http://www.cse.yorku.ca/~oz/hash.html + unsigned long long hash(const char* str) { + unsigned long long hash = 5381; + char c; + while ((c = *str++)) + hash = ((hash << 5) + hash) + c; // hash * 33 + c + return hash; + } - // push the current signature to the stack so we can check if the - // current stack + the current new subcase have been traversed - s->subcasesStack.push_back(m_signature); - if(s->subcasesPassed.count(s->subcasesStack) != 0) { - // pop - revert to previous stack since we've already passed this - s->subcasesStack.pop_back(); - return; + unsigned long long hash(const SubcaseSignature& sig) { + return hash(hash(hash(sig.m_file), hash(sig.m_name.c_str())), sig.m_line); + } + + unsigned long long hash(const std::vector<SubcaseSignature>& sigs, size_t count) { + unsigned long long running = 0; + auto end = sigs.begin() + count; + for (auto it = sigs.begin(); it != end; it++) { + running = hash(running, hash(*it)); } + return running; + } - s->subcasesCurrentMaxLevel = s->subcasesStack.size(); - m_entered = true; + unsigned long long hash(const std::vector<SubcaseSignature>& sigs) { + unsigned long long running = 0; + for (const SubcaseSignature& sig : sigs) { + running = hash(running, hash(sig)); + } + return running; + } +} // namespace +namespace detail { + bool Subcase::checkFilters() { + if (g_cs->subcaseStack.size() < size_t(g_cs->subcase_filter_levels)) { + if (!matchesAny(m_signature.m_name.c_str(), g_cs->filters[6], true, g_cs->case_sensitive)) + return true; + if (matchesAny(m_signature.m_name.c_str(), g_cs->filters[7], false, g_cs->case_sensitive)) + return true; + } + return false; + } - DOCTEST_ITERATE_THROUGH_REPORTERS(subcase_start, m_signature); + Subcase::Subcase(const String& name, const char* file, int line) + : m_signature({name, file, line}) { + if (!g_cs->reachedLeaf) { + if (g_cs->nextSubcaseStack.size() <= g_cs->subcaseStack.size() + || g_cs->nextSubcaseStack[g_cs->subcaseStack.size()] == m_signature) { + // Going down. + if (checkFilters()) { return; } + + g_cs->subcaseStack.push_back(m_signature); + g_cs->currentSubcaseDepth++; + m_entered = true; + DOCTEST_ITERATE_THROUGH_REPORTERS(subcase_start, m_signature); + } + } else { + if (g_cs->subcaseStack[g_cs->currentSubcaseDepth] == m_signature) { + // This subcase is reentered via control flow. + g_cs->currentSubcaseDepth++; + m_entered = true; + DOCTEST_ITERATE_THROUGH_REPORTERS(subcase_start, m_signature); + } else if (g_cs->nextSubcaseStack.size() <= g_cs->currentSubcaseDepth + && g_cs->fullyTraversedSubcases.find(hash(hash(g_cs->subcaseStack, g_cs->currentSubcaseDepth), hash(m_signature))) + == g_cs->fullyTraversedSubcases.end()) { + if (checkFilters()) { return; } + // This subcase is part of the one to be executed next. + g_cs->nextSubcaseStack.clear(); + g_cs->nextSubcaseStack.insert(g_cs->nextSubcaseStack.end(), + g_cs->subcaseStack.begin(), g_cs->subcaseStack.begin() + g_cs->currentSubcaseDepth); + g_cs->nextSubcaseStack.push_back(m_signature); + } + } } DOCTEST_MSVC_SUPPRESS_WARNING_WITH_PUSH(4996) // std::uncaught_exception is deprecated in C++17 @@ -3976,25 +4187,33 @@ namespace detail { DOCTEST_CLANG_SUPPRESS_WARNING_WITH_PUSH("-Wdeprecated-declarations") Subcase::~Subcase() { - if(m_entered) { - // only mark the subcase stack as passed if no subcases have been skipped - if(g_cs->should_reenter == false) - g_cs->subcasesPassed.insert(g_cs->subcasesStack); - g_cs->subcasesStack.pop_back(); + if (m_entered) { + g_cs->currentSubcaseDepth--; + + if (!g_cs->reachedLeaf) { + // Leaf. + g_cs->fullyTraversedSubcases.insert(hash(g_cs->subcaseStack)); + g_cs->nextSubcaseStack.clear(); + g_cs->reachedLeaf = true; + } else if (g_cs->nextSubcaseStack.empty()) { + // All children are finished. + g_cs->fullyTraversedSubcases.insert(hash(g_cs->subcaseStack)); + } #if defined(__cpp_lib_uncaught_exceptions) && __cpp_lib_uncaught_exceptions >= 201411L && (!defined(__MAC_OS_X_VERSION_MIN_REQUIRED) || __MAC_OS_X_VERSION_MIN_REQUIRED >= 101200) if(std::uncaught_exceptions() > 0 #else if(std::uncaught_exception() #endif - && g_cs->shouldLogCurrentException) { + && g_cs->shouldLogCurrentException) { DOCTEST_ITERATE_THROUGH_REPORTERS( test_case_exception, {"exception thrown in subcase - will translate later " - "when the whole test case has been exited (cannot " - "translate while there is an active exception)", - false}); + "when the whole test case has been exited (cannot " + "translate while there is an active exception)", + false}); g_cs->shouldLogCurrentException = false; } + DOCTEST_ITERATE_THROUGH_REPORTERS(subcase_end, DOCTEST_EMPTY); } } @@ -4018,7 +4237,7 @@ namespace detail { } TestCase::TestCase(funcType test, const char* file, unsigned line, const TestSuite& test_suite, - const char* type, int template_id) { + const String& type, int template_id) { m_file = file; m_line = line; m_name = nullptr; // will be later overridden in operator* @@ -4043,10 +4262,8 @@ namespace detail { } DOCTEST_MSVC_SUPPRESS_WARNING_WITH_PUSH(26434) // hides a non-virtual function - DOCTEST_MSVC_SUPPRESS_WARNING(26437) // Do not slice TestCase& TestCase::operator=(const TestCase& other) { - static_cast<TestCaseData&>(*this) = static_cast<const TestCaseData&>(other); - + TestCaseData::operator=(other); m_test = other.m_test; m_type = other.m_type; m_template_id = other.m_template_id; @@ -4062,7 +4279,7 @@ namespace detail { m_name = in; // make a new name with an appended type for templated test case if(m_template_id != -1) { - m_full_name = String(m_name) + m_type; + m_full_name = String(m_name) + "<" + m_type + ">"; // redirect the name to point to the newly constructed full name m_name = m_full_name.c_str(); } @@ -4304,34 +4521,13 @@ namespace detail { getExceptionTranslators().push_back(et); } -#ifdef DOCTEST_CONFIG_TREAT_CHAR_STAR_AS_STRING - void toStream(std::ostream* s, char* in) { *s << in; } - void toStream(std::ostream* s, const char* in) { *s << in; } -#endif // DOCTEST_CONFIG_TREAT_CHAR_STAR_AS_STRING - void toStream(std::ostream* s, bool in) { *s << std::boolalpha << in << std::noboolalpha; } - void toStream(std::ostream* s, float in) { *s << in; } - void toStream(std::ostream* s, double in) { *s << in; } - void toStream(std::ostream* s, double long in) { *s << in; } - - void toStream(std::ostream* s, char in) { *s << in; } - void toStream(std::ostream* s, char signed in) { *s << in; } - void toStream(std::ostream* s, char unsigned in) { *s << in; } - void toStream(std::ostream* s, int short in) { *s << in; } - void toStream(std::ostream* s, int short unsigned in) { *s << in; } - void toStream(std::ostream* s, int in) { *s << in; } - void toStream(std::ostream* s, int unsigned in) { *s << in; } - void toStream(std::ostream* s, int long in) { *s << in; } - void toStream(std::ostream* s, int long unsigned in) { *s << in; } - void toStream(std::ostream* s, int long long in) { *s << in; } - void toStream(std::ostream* s, int long long unsigned in) { *s << in; } - DOCTEST_THREAD_LOCAL std::vector<IContextScope*> g_infoContexts; // for logging with INFO() ContextScopeBase::ContextScopeBase() { g_infoContexts.push_back(this); } - ContextScopeBase::ContextScopeBase(ContextScopeBase&& other) { + ContextScopeBase::ContextScopeBase(ContextScopeBase&& other) noexcept { if (other.need_to_destroy) { other.destroy(); } @@ -4401,10 +4597,10 @@ namespace { static LONG CALLBACK handleException(PEXCEPTION_POINTERS ExceptionInfo) { // Multiple threads may enter this filter/handler at once. We want the error message to be printed on the // console just once no matter how many threads have crashed. - static std::mutex mutex; + DOCTEST_DECLARE_STATIC_MUTEX(mutex) static bool execute = true; { - std::lock_guard<std::mutex> lock(mutex); + DOCTEST_LOCK_MUTEX(mutex) if(execute) { bool reported = false; for(size_t i = 0; i < DOCTEST_COUNTOF(signalDefs); ++i) { @@ -4577,7 +4773,7 @@ namespace { sigStack.ss_flags = 0; sigaltstack(&sigStack, &oldSigStack); struct sigaction sa = {}; - sa.sa_handler = handleSignal; // NOLINT + sa.sa_handler = handleSignal; sa.sa_flags = SA_ONSTACK; for(std::size_t i = 0; i < DOCTEST_COUNTOF(signalDefs); ++i) { sigaction(signalDefs[i].id, &sa, &oldSigActions[i]); @@ -4616,7 +4812,7 @@ namespace { #define DOCTEST_OUTPUT_DEBUG_STRING(text) ::OutputDebugStringA(text) #else // TODO: integration with XCode and other IDEs -#define DOCTEST_OUTPUT_DEBUG_STRING(text) // NOLINT(clang-diagnostic-unused-macros) +#define DOCTEST_OUTPUT_DEBUG_STRING(text) #endif // Platform void addAssert(assertType::Enum at) { @@ -4635,8 +4831,8 @@ namespace { DOCTEST_ITERATE_THROUGH_REPORTERS(test_case_exception, {message.c_str(), true}); - while(g_cs->subcasesStack.size()) { - g_cs->subcasesStack.pop_back(); + while (g_cs->subcaseStack.size()) { + g_cs->subcaseStack.pop_back(); DOCTEST_ITERATE_THROUGH_REPORTERS(subcase_end, DOCTEST_EMPTY); } @@ -4648,25 +4844,26 @@ namespace { } #endif // DOCTEST_CONFIG_POSIX_SIGNALS || DOCTEST_CONFIG_WINDOWS_SEH } // namespace -namespace detail { - ResultBuilder::ResultBuilder(assertType::Enum at, const char* file, int line, const char* expr, - const char* exception_type, const char* exception_string) { - m_test_case = g_cs->currentTest; - m_at = at; - m_file = file; - m_line = line; - m_expr = expr; - m_failed = true; - m_threw = false; - m_threw_as = false; - m_exception_type = exception_type; - m_exception_string = exception_string; +AssertData::AssertData(assertType::Enum at, const char* file, int line, const char* expr, + const char* exception_type, const StringContains& exception_string) + : m_test_case(g_cs->currentTest), m_at(at), m_file(file), m_line(line), m_expr(expr), + m_failed(true), m_threw(false), m_threw_as(false), m_exception_type(exception_type), + m_exception_string(exception_string) { #if DOCTEST_MSVC - if(m_expr[0] == ' ') // this happens when variadic macros are disabled under MSVC - ++m_expr; + if (m_expr[0] == ' ') // this happens when variadic macros are disabled under MSVC + ++m_expr; #endif // MSVC - } +} + +namespace detail { + ResultBuilder::ResultBuilder(assertType::Enum at, const char* file, int line, const char* expr, + const char* exception_type, const String& exception_string) + : AssertData(at, file, line, expr, exception_type, exception_string) { } + + ResultBuilder::ResultBuilder(assertType::Enum at, const char* file, int line, const char* expr, + const char* exception_type, const Contains& exception_string) + : AssertData(at, file, line, expr, exception_type, exception_string) { } void ResultBuilder::setResult(const Result& res) { m_decomp = res.m_decomp; @@ -4682,11 +4879,11 @@ namespace detail { if(m_at & assertType::is_throws) { //!OCLINT bitwise operator in conditional m_failed = !m_threw; } else if((m_at & assertType::is_throws_as) && (m_at & assertType::is_throws_with)) { //!OCLINT - m_failed = !m_threw_as || (m_exception != m_exception_string); + m_failed = !m_threw_as || !m_exception_string.check(m_exception); } else if(m_at & assertType::is_throws_as) { //!OCLINT bitwise operator in conditional m_failed = !m_threw_as; } else if(m_at & assertType::is_throws_with) { //!OCLINT bitwise operator in conditional - m_failed = m_exception != m_exception_string; + m_failed = !m_exception_string.check(m_exception); } else if(m_at & assertType::is_nothrow) { //!OCLINT bitwise operator in conditional m_failed = m_threw; } @@ -4721,7 +4918,7 @@ namespace detail { } bool decomp_assert(assertType::Enum at, const char* file, int line, const char* expr, - Result result) { + const Result& result) { bool failed = !result.m_passed; // ################################################################################### @@ -4730,7 +4927,6 @@ namespace detail { // ################################################################################### DOCTEST_ASSERT_OUT_OF_TESTS(result.m_decomp); DOCTEST_ASSERT_IN_TESTS(result.m_decomp); - // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks) return !failed; } @@ -4746,8 +4942,7 @@ namespace detail { tlssPop(); } - IExceptionTranslator::IExceptionTranslator() = default; - IExceptionTranslator::~IExceptionTranslator() = default; + DOCTEST_DEFINE_INTERFACE(IExceptionTranslator) bool MessageBuilder::log() { if (!logged) { @@ -4858,10 +5053,10 @@ namespace { void ensureTagClosed(); - private: - void writeDeclaration(); + private: + void newlineIfNecessary(); bool m_tagIsOpen = false; @@ -5050,7 +5245,7 @@ namespace { XmlWriter::XmlWriter( std::ostream& os ) : m_os( os ) { - writeDeclaration(); + // writeDeclaration(); // called explicitly by the reporters that use the writer class - see issue #627 } XmlWriter::~XmlWriter() { @@ -5161,8 +5356,8 @@ namespace { struct XmlReporter : public IReporter { - XmlWriter xml; - std::mutex mutex; + XmlWriter xml; + DOCTEST_DECLARE_MUTEX(mutex) // caching pointers/references to objects of these types - safe to do const ContextOptions& opt; @@ -5256,6 +5451,8 @@ namespace { } void test_run_start() override { + xml.writeDeclaration(); + // remove .exe extension - mainly to have the same output on UNIX and Windows std::string binary_name = skipPathFromFilename(opt.binary_name.c_str()); #ifdef DOCTEST_PLATFORM_WINDOWS @@ -5322,7 +5519,7 @@ namespace { } void test_case_exception(const TestCaseException& e) override { - std::lock_guard<std::mutex> lock(mutex); + DOCTEST_LOCK_MUTEX(mutex) xml.scopedElement("Exception") .writeAttribute("crash", e.is_crash) @@ -5343,7 +5540,7 @@ namespace { if(!rb.m_failed && !opt.success) return; - std::lock_guard<std::mutex> lock(mutex); + DOCTEST_LOCK_MUTEX(mutex) xml.startElement("Expression") .writeAttribute("success", !rb.m_failed) @@ -5359,7 +5556,7 @@ namespace { if(rb.m_at & assertType::is_throws_as) xml.scopedElement("ExpectedException").writeText(rb.m_exception_type); if(rb.m_at & assertType::is_throws_with) - xml.scopedElement("ExpectedExceptionString").writeText(rb.m_exception_string); + xml.scopedElement("ExpectedExceptionString").writeText(rb.m_exception_string.c_str()); if((rb.m_at & assertType::is_normal) && !rb.m_threw) xml.scopedElement("Expanded").writeText(rb.m_decomp.c_str()); @@ -5369,7 +5566,7 @@ namespace { } void log_message(const MessageData& mb) override { - std::lock_guard<std::mutex> lock(mutex); + DOCTEST_LOCK_MUTEX(mutex) xml.startElement("Message") .writeAttribute("type", failureString(mb.m_severity)) @@ -5405,7 +5602,8 @@ namespace { } else if((rb.m_at & assertType::is_throws_as) && (rb.m_at & assertType::is_throws_with)) { //!OCLINT s << Color::Cyan << assertString(rb.m_at) << "( " << rb.m_expr << ", \"" - << rb.m_exception_string << "\", " << rb.m_exception_type << " ) " << Color::None; + << rb.m_exception_string.c_str() + << "\", " << rb.m_exception_type << " ) " << Color::None; if(rb.m_threw) { if(!rb.m_failed) { s << "threw as expected!\n"; @@ -5426,7 +5624,8 @@ namespace { } else if(rb.m_at & assertType::is_throws_with) { //!OCLINT bitwise operator in conditional s << Color::Cyan << assertString(rb.m_at) << "( " << rb.m_expr << ", \"" - << rb.m_exception_string << "\" ) " << Color::None + << rb.m_exception_string.c_str() + << "\" ) " << Color::None << (rb.m_threw ? (!rb.m_failed ? "threw as expected!" : "threw a DIFFERENT exception: ") : "did NOT throw at all!") @@ -5451,8 +5650,8 @@ namespace { // - more attributes in tags struct JUnitReporter : public IReporter { - XmlWriter xml; - std::mutex mutex; + XmlWriter xml; + DOCTEST_DECLARE_MUTEX(mutex) Timer timer; std::vector<String> deepestSubcaseStackNames; @@ -5548,9 +5747,13 @@ namespace { // WHAT FOLLOWS ARE OVERRIDES OF THE VIRTUAL METHODS OF THE REPORTER INTERFACE // ========================================================================================= - void report_query(const QueryData&) override {} + void report_query(const QueryData&) override { + xml.writeDeclaration(); + } - void test_run_start() override {} + void test_run_start() override { + xml.writeDeclaration(); + } void test_run_end(const TestRunStats& p) override { // remove .exe extension - mainly to have the same output on UNIX and Windows @@ -5620,7 +5823,7 @@ namespace { } void test_case_exception(const TestCaseException& e) override { - std::lock_guard<std::mutex> lock(mutex); + DOCTEST_LOCK_MUTEX(mutex) testCaseData.addError("exception", e.error_string.c_str()); } @@ -5634,7 +5837,7 @@ namespace { if(!rb.m_failed) // report only failures & ignore the `success` option return; - std::lock_guard<std::mutex> lock(mutex); + DOCTEST_LOCK_MUTEX(mutex) std::ostringstream os; os << skipPathFromFilename(rb.m_file) << (opt.gnu_file_line ? ":" : "(") @@ -5685,7 +5888,7 @@ namespace { bool hasLoggedCurrentTestStart; std::vector<SubcaseSignature> subcasesStack; size_t currentSubcaseLevel; - std::mutex mutex; + DOCTEST_DECLARE_MUTEX(mutex) // caching pointers/references to objects of these types - safe to do const ContextOptions& opt; @@ -6031,7 +6234,7 @@ namespace { // log the preamble of the test case only if there is something // else to print - something other than that an assert has failed if(opt.duration || - (st.failure_flags && st.failure_flags != TestCaseFailureReason::AssertFailure)) + (st.failure_flags && st.failure_flags != static_cast<int>(TestCaseFailureReason::AssertFailure))) logTestStart(); if(opt.duration) @@ -6062,7 +6265,7 @@ namespace { } void test_case_exception(const TestCaseException& e) override { - std::lock_guard<std::mutex> lock(mutex); + DOCTEST_LOCK_MUTEX(mutex) if(tc->m_no_output) return; @@ -6101,7 +6304,7 @@ namespace { if((!rb.m_failed && !opt.success) || tc->m_no_output) return; - std::lock_guard<std::mutex> lock(mutex); + DOCTEST_LOCK_MUTEX(mutex) logTestStart(); @@ -6117,7 +6320,7 @@ namespace { if(tc->m_no_output) return; - std::lock_guard<std::mutex> lock(mutex); + DOCTEST_LOCK_MUTEX(mutex) logTestStart(); @@ -6245,8 +6448,8 @@ namespace { char character = *current++; if(seenBackslash) { seenBackslash = false; - if(character == ',') { - s.put(','); + if(character == ',' || character == '\\') { + s.put(character); continue; } s.put('\\'); @@ -6282,30 +6485,30 @@ namespace { if(!parseOption(argc, argv, pattern, &parsedValue)) return false; - if(type == 0) { + if(type) { + // integer + // TODO: change this to use std::stoi or something else! currently it uses undefined behavior - assumes '0' on failed parse... + int theInt = std::atoi(parsedValue.c_str()); + if (theInt != 0) { + res = theInt; //!OCLINT parameter reassignment + return true; + } + } else { // boolean - const char positive[][5] = {"1", "true", "on", "yes"}; // 5 - strlen("true") + 1 - const char negative[][6] = {"0", "false", "off", "no"}; // 6 - strlen("false") + 1 + const char positive[][5] = { "1", "true", "on", "yes" }; // 5 - strlen("true") + 1 + const char negative[][6] = { "0", "false", "off", "no" }; // 6 - strlen("false") + 1 // if the value matches any of the positive/negative possibilities - for(unsigned i = 0; i < 4; i++) { - if(parsedValue.compare(positive[i], true) == 0) { + for (unsigned i = 0; i < 4; i++) { + if (parsedValue.compare(positive[i], true) == 0) { res = 1; //!OCLINT parameter reassignment return true; } - if(parsedValue.compare(negative[i], true) == 0) { + if (parsedValue.compare(negative[i], true) == 0) { res = 0; //!OCLINT parameter reassignment return true; } } - } else { - // integer - // TODO: change this to use std::stoi or something else! currently it uses undefined behavior - assumes '0' on failed parse... - int theInt = std::atoi(parsedValue.c_str()); // NOLINT - if(theInt != 0) { - res = theInt; //!OCLINT parameter reassignment - return true; - } } return false; } @@ -6473,7 +6676,6 @@ void Context::setOption(const char* option, bool value) { // allows the user to override procedurally the int options from the command line void Context::setOption(const char* option, int value) { setOption(option, toString(value).c_str()); - // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks) } // allows the user to override procedurally the string options from the command line @@ -6611,7 +6813,7 @@ int Context::run() { // random_shuffle implementation const auto first = &testArray[0]; for(size_t i = testArray.size() - 1; i > 0; --i) { - int idxToSwap = std::rand() % (i + 1); // NOLINT + int idxToSwap = std::rand() % (i + 1); const auto temp = first[i]; @@ -6698,7 +6900,7 @@ int Context::run() { p->numAssertsFailedCurrentTest_atomic = 0; p->numAssertsCurrentTest_atomic = 0; - p->subcasesPassed.clear(); + p->fullyTraversedSubcases.clear(); DOCTEST_ITERATE_THROUGH_REPORTERS(test_case_start, tc); @@ -6708,9 +6910,10 @@ int Context::run() { do { // reset some of the fields for subcases (except for the set of fully passed ones) - p->should_reenter = false; - p->subcasesCurrentMaxLevel = 0; - p->subcasesStack.clear(); + p->reachedLeaf = false; + // May not be empty if previous subcase exited via exception. + p->subcaseStack.clear(); + p->currentSubcaseDepth = 0; p->shouldLogCurrentException = true; @@ -6744,9 +6947,9 @@ DOCTEST_MSVC_SUPPRESS_WARNING_POP p->failure_flags |= TestCaseFailureReason::TooManyFailedAsserts; } - if(p->should_reenter && run_test) + if(!p->nextSubcaseStack.empty() && run_test) DOCTEST_ITERATE_THROUGH_REPORTERS(test_case_reenter, tc); - if(!p->should_reenter) + if(p->nextSubcaseStack.empty()) run_test = false; } while(run_test); @@ -6775,7 +6978,7 @@ DOCTEST_MSVC_SUPPRESS_WARNING_POP return cleanup_and_return(); } -IReporter::~IReporter() = default; +DOCTEST_DEFINE_INTERFACE(IReporter) int IReporter::get_num_active_contexts() { return detail::g_infoContexts.size(); } const IContextScope* const* IReporter::get_active_contexts() { |