diff options
496 files changed, 20319 insertions, 10982 deletions
diff --git a/.travis.yml b/.travis.yml index 8d1dd1ef90..8a6f80002b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -71,10 +71,14 @@ matrix: env: PLATFORM=android TOOLS=no TARGET=release_debug CACHE_NAME=${PLATFORM}-clang EXTRA_ARGS="warnings=extra werror=yes" os: linux compiler: clang + addons: + apt: + packages: + - openjdk-8-jdk - name: macOS editor (debug, Clang) stage: build - env: PLATFORM=osx TOOLS=yes TARGET=debug CACHE_NAME=${PLATFORM}-tools-clang + env: PLATFORM=osx TOOLS=yes TARGET=debug CACHE_NAME=${PLATFORM}-tools-clang EXTRA_ARGS="warnings=extra werror=yes" os: osx compiler: clang @@ -116,14 +120,14 @@ before_install: install: - pip install --user scons; - if [ "$TRAVIS_OS_NAME" = "linux" ] && [ "$PLATFORM" = "android" ]; then + export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64; + export PATH=/usr/lib/jvm/java-8-openjdk-amd64/jre/bin:${PATH}; + java -version; misc/travis/android-tools-linux.sh; fi - if [ "$TRAVIS_OS_NAME" = "osx" ]; then export PATH=${PATH}:/Users/travis/Library/Python/2.7/bin; fi - - if [ "$TRAVIS_OS_NAME" = "osx" ] && [ "$PLATFORM" = "android" ]; then - misc/travis/android-tools-osx.sh; - fi before_script: - if [ "$PLATFORM" = "android" ]; then diff --git a/SConstruct b/SConstruct index 128c5b0e92..cdbb47faea 100644 --- a/SConstruct +++ b/SConstruct @@ -189,7 +189,7 @@ Help(opts.GenerateHelpText(env_base)) # generate help # add default include paths -env_base.Prepend(CPPPATH=['#', '#editor']) +env_base.Prepend(CPPPATH=['#']) # configure ENV for platform env_base.platform_exporters = platform_exporters diff --git a/core/SCsub b/core/SCsub index ed9a0a231d..b12c6a9e27 100644 --- a/core/SCsub +++ b/core/SCsub @@ -80,6 +80,8 @@ if env['builtin_zlib']: env_thirdparty.Prepend(CPPPATH=[thirdparty_zlib_dir]) # Needs to be available in main env too env.Prepend(CPPPATH=[thirdparty_zlib_dir]) + if (env['target'] == 'debug'): + env_thirdparty.Append(CPPDEFINES=['ZLIB_DEBUG']) env_thirdparty.add_source_files(env.core_sources, thirdparty_zlib_sources) diff --git a/core/bind/core_bind.cpp b/core/bind/core_bind.cpp index d07ba44788..c539f912aa 100644 --- a/core/bind/core_bind.cpp +++ b/core/bind/core_bind.cpp @@ -1136,6 +1136,16 @@ bool _OS::request_permission(const String &p_name) { return OS::get_singleton()->request_permission(p_name); } +bool _OS::request_permissions() { + + return OS::get_singleton()->request_permissions(); +} + +Vector<String> _OS::get_granted_permissions() const { + + return OS::get_singleton()->get_granted_permissions(); +} + _OS *_OS::singleton = NULL; void _OS::_bind_methods() { @@ -1319,6 +1329,8 @@ void _OS::_bind_methods() { ClassDB::bind_method(D_METHOD("get_power_percent_left"), &_OS::get_power_percent_left); ClassDB::bind_method(D_METHOD("request_permission", "name"), &_OS::request_permission); + ClassDB::bind_method(D_METHOD("request_permissions"), &_OS::request_permissions); + ClassDB::bind_method(D_METHOD("get_granted_permissions"), &_OS::get_granted_permissions); ADD_PROPERTY(PropertyInfo(Variant::STRING, "clipboard"), "set_clipboard", "get_clipboard"); ADD_PROPERTY(PropertyInfo(Variant::INT, "current_screen"), "set_current_screen", "get_current_screen"); @@ -3153,6 +3165,9 @@ Ref<JSONParseResult> _JSON::parse(const String &p_json) { result->error = JSON::parse(p_json, result->result, result->error_string, result->error_line); + if (result->error != OK) { + ERR_PRINTS(vformat("Error parsing JSON at line %s: %s", result->error_line, result->error_string)); + } return result; } diff --git a/core/bind/core_bind.h b/core/bind/core_bind.h index 693b85710a..1a4fd1d5cb 100644 --- a/core/bind/core_bind.h +++ b/core/bind/core_bind.h @@ -349,6 +349,8 @@ public: bool has_feature(const String &p_feature) const; bool request_permission(const String &p_name); + bool request_permissions(); + Vector<String> get_granted_permissions() const; static _OS *get_singleton() { return singleton; } diff --git a/core/compressed_translation.cpp b/core/compressed_translation.cpp index f102721470..d927b74897 100644 --- a/core/compressed_translation.cpp +++ b/core/compressed_translation.cpp @@ -136,6 +136,8 @@ void PHashTranslation::generate(const Ref<Translation> &p_from) { bucket_table_size += 2 + b.size() * 4; } + ERR_FAIL_COND(bucket_table_size == 0); + hash_table.resize(size); bucket_table.resize(bucket_table_size); diff --git a/core/cowdata.h b/core/cowdata.h index 3e40ad0f4b..c92e20920c 100644 --- a/core/cowdata.h +++ b/core/cowdata.h @@ -33,6 +33,7 @@ #include <string.h> +#include "core/error_macros.h" #include "core/os/memory.h" #include "core/safe_refcount.h" diff --git a/core/crypto/hashing_context.cpp b/core/crypto/hashing_context.cpp index bd863f546b..b5aa0ddc18 100644 --- a/core/crypto/hashing_context.cpp +++ b/core/crypto/hashing_context.cpp @@ -50,6 +50,7 @@ Error HashingContext::start(HashType p_type) { Error HashingContext::update(PoolByteArray p_chunk) { ERR_FAIL_COND_V(ctx == NULL, ERR_UNCONFIGURED); size_t len = p_chunk.size(); + ERR_FAIL_COND_V(len == 0, FAILED); PoolByteArray::Read r = p_chunk.read(); switch (type) { case HASH_MD5: diff --git a/core/dictionary.cpp b/core/dictionary.cpp index 5e4dfb9a5a..0d9945991e 100644 --- a/core/dictionary.cpp +++ b/core/dictionary.cpp @@ -192,13 +192,9 @@ uint32_t Dictionary::hash() const { uint32_t h = hash_djb2_one_32(Variant::DICTIONARY); - List<Variant> keys; - get_key_list(&keys); - - for (List<Variant>::Element *E = keys.front(); E; E = E->next()) { - - h = hash_djb2_one_32(E->get().hash(), h); - h = hash_djb2_one_32(operator[](E->get()).hash(), h); + for (OrderedHashMap<Variant, Variant, VariantHasher, VariantComparator>::Element E = _p->variant_map.front(); E; E = E.next()) { + h = hash_djb2_one_32(E.key().hash(), h); + h = hash_djb2_one_32(E.value().hash(), h); } return h; @@ -207,10 +203,11 @@ uint32_t Dictionary::hash() const { Array Dictionary::keys() const { Array varr; - varr.resize(size()); if (_p->variant_map.empty()) return varr; + varr.resize(size()); + int i = 0; for (OrderedHashMap<Variant, Variant, VariantHasher, VariantComparator>::Element E = _p->variant_map.front(); E; E = E.next()) { varr[i] = E.key(); @@ -223,10 +220,11 @@ Array Dictionary::keys() const { Array Dictionary::values() const { Array varr; - varr.resize(size()); if (_p->variant_map.empty()) return varr; + varr.resize(size()); + int i = 0; for (OrderedHashMap<Variant, Variant, VariantHasher, VariantComparator>::Element E = _p->variant_map.front(); E; E = E.next()) { varr[i] = E.get(); @@ -255,11 +253,8 @@ Dictionary Dictionary::duplicate(bool p_deep) const { Dictionary n; - List<Variant> keys; - get_key_list(&keys); - - for (List<Variant>::Element *E = keys.front(); E; E = E->next()) { - n[E->get()] = p_deep ? operator[](E->get()).duplicate(p_deep) : operator[](E->get()); + for (OrderedHashMap<Variant, Variant, VariantHasher, VariantComparator>::Element E = _p->variant_map.front(); E; E = E.next()) { + n[E.key()] = p_deep ? E.value().duplicate(true) : E.value(); } return n; diff --git a/core/hash_map.h b/core/hash_map.h index 38da1d59ab..edc67e7806 100644 --- a/core/hash_map.h +++ b/core/hash_map.h @@ -210,6 +210,7 @@ private: e->next = hash_table[index]; e->hash = hash; e->pair.key = p_key; + e->pair.data = TData(); hash_table[index] = e; elements++; diff --git a/core/image.cpp b/core/image.cpp index e0b0a1f8be..89d23b8dbd 100644 --- a/core/image.cpp +++ b/core/image.cpp @@ -885,8 +885,8 @@ void Image::resize(int p_width, int p_height, Interpolation p_interpolation) { bool mipmap_aware = p_interpolation == INTERPOLATE_TRILINEAR /* || p_interpolation == INTERPOLATE_TRICUBIC */; - ERR_FAIL_COND_MSG(p_width <= 0, "Image width cannot be greater than 0."); - ERR_FAIL_COND_MSG(p_height <= 0, "Image height cannot be greater than 0."); + ERR_FAIL_COND_MSG(p_width <= 0, "Image width must be greater than 0."); + ERR_FAIL_COND_MSG(p_height <= 0, "Image height must be greater than 0."); ERR_FAIL_COND_MSG(p_width > MAX_WIDTH, "Image width cannot be greater than " + itos(MAX_WIDTH) + "."); ERR_FAIL_COND_MSG(p_height > MAX_HEIGHT, "Image height cannot be greater than " + itos(MAX_HEIGHT) + "."); @@ -1322,6 +1322,8 @@ void Image::expand_x2_hq2x() { PoolVector<uint8_t>::Read r = data.read(); PoolVector<uint8_t>::Write w = dest.write(); + ERR_FAIL_COND(!r.ptr()); + hq2x_resize((const uint32_t *)r.ptr(), width, height, (uint32_t *)w.ptr()); } @@ -2895,6 +2897,8 @@ void Image::bumpmap_to_normalmap(float bump_scale) { PoolVector<uint8_t>::Read rp = data.read(); PoolVector<uint8_t>::Write wp = result_image.write(); + ERR_FAIL_COND(!rp.ptr()); + unsigned char *write_ptr = wp.ptr(); float *read_ptr = (float *)rp.ptr(); @@ -2930,7 +2934,7 @@ void Image::srgb_to_linear() { if (data.size() == 0) return; - static const uint8_t srgb2lin[256] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, 10, 11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 22, 22, 23, 23, 24, 24, 25, 26, 26, 27, 27, 28, 29, 29, 30, 31, 31, 32, 33, 33, 34, 35, 36, 36, 37, 38, 38, 39, 40, 41, 42, 42, 43, 44, 45, 46, 47, 47, 48, 49, 50, 51, 52, 53, 54, 55, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 70, 71, 72, 73, 74, 75, 76, 77, 78, 80, 81, 82, 83, 84, 85, 87, 88, 89, 90, 92, 93, 94, 95, 97, 98, 99, 101, 102, 103, 105, 106, 107, 109, 110, 112, 113, 114, 116, 117, 119, 120, 122, 123, 125, 126, 128, 129, 131, 132, 134, 135, 137, 139, 140, 142, 144, 145, 147, 148, 150, 152, 153, 155, 157, 159, 160, 162, 164, 166, 167, 169, 171, 173, 175, 176, 178, 180, 182, 184, 186, 188, 190, 192, 193, 195, 197, 199, 201, 203, 205, 207, 209, 211, 213, 215, 218, 220, 222, 224, 226, 228, 230, 232, 235, 237, 239, 241, 243, 245, 248, 250, 252 }; + static const uint8_t srgb2lin[256] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, 10, 11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 22, 22, 23, 23, 24, 24, 25, 26, 26, 27, 27, 28, 29, 29, 30, 31, 31, 32, 33, 33, 34, 35, 36, 36, 37, 38, 38, 39, 40, 41, 42, 42, 43, 44, 45, 46, 47, 47, 48, 49, 50, 51, 52, 53, 54, 55, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 70, 71, 72, 73, 74, 75, 76, 77, 78, 80, 81, 82, 83, 84, 85, 87, 88, 89, 90, 92, 93, 94, 95, 97, 98, 99, 101, 102, 103, 105, 106, 107, 109, 110, 112, 113, 114, 116, 117, 119, 120, 122, 123, 125, 126, 128, 129, 131, 132, 134, 135, 137, 139, 140, 142, 144, 145, 147, 148, 150, 152, 153, 155, 157, 159, 160, 162, 164, 166, 167, 169, 171, 173, 175, 176, 178, 180, 182, 184, 186, 188, 190, 192, 193, 195, 197, 199, 201, 203, 205, 207, 209, 211, 213, 215, 218, 220, 222, 224, 226, 228, 230, 232, 235, 237, 239, 241, 243, 245, 248, 250, 252, 255 }; ERR_FAIL_COND(format != FORMAT_RGB8 && format != FORMAT_RGBA8); diff --git a/core/io/config_file.cpp b/core/io/config_file.cpp index 271e5c5a0b..5684c82d1c 100644 --- a/core/io/config_file.cpp +++ b/core/io/config_file.cpp @@ -123,6 +123,13 @@ void ConfigFile::erase_section(const String &p_section) { values.erase(p_section); } +void ConfigFile::erase_section_key(const String &p_section, const String &p_key) { + + ERR_FAIL_COND_MSG(!values.has(p_section), "Cannot erase key from nonexistent section '" + p_section + "'."); + + values[p_section].erase(p_key); +} + Error ConfigFile::save(const String &p_path) { Error err; @@ -293,6 +300,7 @@ void ConfigFile::_bind_methods() { ClassDB::bind_method(D_METHOD("get_section_keys", "section"), &ConfigFile::_get_section_keys); ClassDB::bind_method(D_METHOD("erase_section", "section"), &ConfigFile::erase_section); + ClassDB::bind_method(D_METHOD("erase_section_key", "section", "key"), &ConfigFile::erase_section_key); ClassDB::bind_method(D_METHOD("load", "path"), &ConfigFile::load); ClassDB::bind_method(D_METHOD("save", "path"), &ConfigFile::save); diff --git a/core/io/config_file.h b/core/io/config_file.h index 3ab6fef868..d927779f9c 100644 --- a/core/io/config_file.h +++ b/core/io/config_file.h @@ -60,6 +60,7 @@ public: void get_section_keys(const String &p_section, List<String> *r_keys) const; void erase_section(const String &p_section); + void erase_section_key(const String &p_section, const String &p_key); Error save(const String &p_path); Error load(const String &p_path); diff --git a/core/io/multiplayer_api.cpp b/core/io/multiplayer_api.cpp index 0ba84d0c8f..1426dbbd4d 100644 --- a/core/io/multiplayer_api.cpp +++ b/core/io/multiplayer_api.cpp @@ -602,7 +602,16 @@ void MultiplayerAPI::_add_peer(int p_id) { void MultiplayerAPI::_del_peer(int p_id) { connected_peers.erase(p_id); - path_get_cache.erase(p_id); // I no longer need your cache, sorry. + // Cleanup get cache. + path_get_cache.erase(p_id); + // Cleanup sent cache. + // Some refactoring is needed to make this faster and do paths GC. + List<NodePath> keys; + path_send_cache.get_key_list(&keys); + for (List<NodePath>::Element *E = keys.front(); E; E = E->next()) { + PathSentCache *psc = path_send_cache.getptr(E->get()); + psc->confirmed_peers.erase(p_id); + } emit_signal("network_peer_disconnected", p_id); } diff --git a/core/list.h b/core/list.h index d1b528562d..c46888e01c 100644 --- a/core/list.h +++ b/core/list.h @@ -31,6 +31,7 @@ #ifndef GLOBALS_LIST_H #define GLOBALS_LIST_H +#include "core/error_macros.h" #include "core/os/memory.h" #include "core/sort_array.h" diff --git a/core/map.h b/core/map.h index c87ee42e1b..77e73d70cb 100644 --- a/core/map.h +++ b/core/map.h @@ -31,6 +31,7 @@ #ifndef MAP_H #define MAP_H +#include "core/error_macros.h" #include "core/set.h" // based on the very nice implementation of rb-trees by: diff --git a/core/math/math_funcs.cpp b/core/math/math_funcs.cpp index f04e40cb6c..50fcdb2c13 100644 --- a/core/math/math_funcs.cpp +++ b/core/math/math_funcs.cpp @@ -30,6 +30,8 @@ #include "math_funcs.h" +#include "core/error_macros.h" + RandomPCG Math::default_rand(RandomPCG::DEFAULT_SEED, RandomPCG::DEFAULT_INC); #define PHI 0x9e3779b9 diff --git a/core/math/math_funcs.h b/core/math/math_funcs.h index 9078abea68..a94b27fcc5 100644 --- a/core/math/math_funcs.h +++ b/core/math/math_funcs.h @@ -472,7 +472,7 @@ public: return p_step != 0 ? Math::stepify(p_target - p_offset, p_step) + p_offset : p_target; } - static _ALWAYS_INLINE_ float snap_scalar_seperation(float p_offset, float p_step, float p_target, float p_separation) { + static _ALWAYS_INLINE_ float snap_scalar_separation(float p_offset, float p_step, float p_target, float p_separation) { if (p_step != 0) { float a = Math::stepify(p_target - p_offset, p_step + p_separation) + p_offset; float b = a; diff --git a/core/math/plane.cpp b/core/math/plane.cpp index b01853c4ac..b6bcac4b27 100644 --- a/core/math/plane.cpp +++ b/core/math/plane.cpp @@ -91,7 +91,7 @@ bool Plane::intersect_3(const Plane &p_plane1, const Plane &p_plane2, Vector3 *r real_t denom = vec3_cross(normal0, normal1).dot(normal2); - if (ABS(denom) <= CMP_EPSILON) + if (Math::is_zero_approx(denom)) return false; if (r_result) { diff --git a/core/math/rect2.h b/core/math/rect2.h index d636aa223f..f58756ee40 100644 --- a/core/math/rect2.h +++ b/core/math/rect2.h @@ -99,8 +99,8 @@ struct Rect2 { inline bool encloses(const Rect2 &p_rect) const { return (p_rect.position.x >= position.x) && (p_rect.position.y >= position.y) && - ((p_rect.position.x + p_rect.size.x) < (position.x + size.x)) && - ((p_rect.position.y + p_rect.size.y) < (position.y + size.y)); + ((p_rect.position.x + p_rect.size.x) <= (position.x + size.x)) && + ((p_rect.position.y + p_rect.size.y) <= (position.y + size.y)); } _FORCE_INLINE_ bool has_no_area() const { diff --git a/core/node_path.cpp b/core/node_path.cpp index b43f76f680..970ed100fe 100644 --- a/core/node_path.cpp +++ b/core/node_path.cpp @@ -269,7 +269,7 @@ NodePath NodePath::rel_path_to(const NodePath &p_np) const { NodePath NodePath::get_as_property_path() const { - if (!data->path.size()) { + if (!data || !data->path.size()) { return *this; } else { Vector<StringName> new_path = data->subpath; diff --git a/core/object.cpp b/core/object.cpp index 6facf38733..ed3ae4f25d 100644 --- a/core/object.cpp +++ b/core/object.cpp @@ -436,7 +436,7 @@ void Object::set(const StringName &p_name, const Variant &p_value, bool *r_valid } else if (p_name == CoreStringNames::get_singleton()->_meta) { //set_meta(p_name,p_value); - metadata = p_value; + metadata = p_value.duplicate(); if (r_valid) *r_valid = true; return; diff --git a/core/os/input_event.cpp b/core/os/input_event.cpp index 30fca0c155..381ba9d010 100644 --- a/core/os/input_event.cpp +++ b/core/os/input_event.cpp @@ -557,10 +557,31 @@ InputEventMouseButton::InputEventMouseButton() { //////////////////////////////////////////// +void InputEventMouseMotion::set_tilt(const Vector2 &p_tilt) { + + tilt = p_tilt; +} + +Vector2 InputEventMouseMotion::get_tilt() const { + + return tilt; +} + +void InputEventMouseMotion::set_pressure(float p_pressure) { + + pressure = p_pressure; +} + +float InputEventMouseMotion::get_pressure() const { + + return pressure; +} + void InputEventMouseMotion::set_relative(const Vector2 &p_relative) { relative = p_relative; } + Vector2 InputEventMouseMotion::get_relative() const { return relative; @@ -570,6 +591,7 @@ void InputEventMouseMotion::set_speed(const Vector2 &p_speed) { speed = p_speed; } + Vector2 InputEventMouseMotion::get_speed() const { return speed; @@ -590,6 +612,8 @@ Ref<InputEvent> InputEventMouseMotion::xformed_by(const Transform2D &p_xform, co mm->set_modifiers_from_event(this); mm->set_position(l); + mm->set_pressure(get_pressure()); + mm->set_tilt(get_tilt()); mm->set_global_position(g); mm->set_button_mask(get_button_mask()); @@ -665,17 +689,27 @@ bool InputEventMouseMotion::accumulate(const Ref<InputEvent> &p_event) { void InputEventMouseMotion::_bind_methods() { + ClassDB::bind_method(D_METHOD("set_tilt", "tilt"), &InputEventMouseMotion::set_tilt); + ClassDB::bind_method(D_METHOD("get_tilt"), &InputEventMouseMotion::get_tilt); + + ClassDB::bind_method(D_METHOD("set_pressure", "pressure"), &InputEventMouseMotion::set_pressure); + ClassDB::bind_method(D_METHOD("get_pressure"), &InputEventMouseMotion::get_pressure); + ClassDB::bind_method(D_METHOD("set_relative", "relative"), &InputEventMouseMotion::set_relative); ClassDB::bind_method(D_METHOD("get_relative"), &InputEventMouseMotion::get_relative); ClassDB::bind_method(D_METHOD("set_speed", "speed"), &InputEventMouseMotion::set_speed); ClassDB::bind_method(D_METHOD("get_speed"), &InputEventMouseMotion::get_speed); + ADD_PROPERTY(PropertyInfo(Variant::VECTOR2, "tilt"), "set_tilt", "get_tilt"); + ADD_PROPERTY(PropertyInfo(Variant::REAL, "pressure"), "set_pressure", "get_pressure"); ADD_PROPERTY(PropertyInfo(Variant::VECTOR2, "relative"), "set_relative", "get_relative"); ADD_PROPERTY(PropertyInfo(Variant::VECTOR2, "speed"), "set_speed", "get_speed"); } InputEventMouseMotion::InputEventMouseMotion() { + + pressure = 0; } //////////////////////////////////////// diff --git a/core/os/input_event.h b/core/os/input_event.h index 28658e3865..14649502ee 100644 --- a/core/os/input_event.h +++ b/core/os/input_event.h @@ -351,6 +351,9 @@ public: class InputEventMouseMotion : public InputEventMouse { GDCLASS(InputEventMouseMotion, InputEventMouse); + + Vector2 tilt; + float pressure; Vector2 relative; Vector2 speed; @@ -358,6 +361,12 @@ protected: static void _bind_methods(); public: + void set_tilt(const Vector2 &p_tilt); + Vector2 get_tilt() const; + + void set_pressure(float p_pressure); + float get_pressure() const; + void set_relative(const Vector2 &p_relative); Vector2 get_relative() const; diff --git a/core/os/main_loop.cpp b/core/os/main_loop.cpp index 5587e827ba..146a301995 100644 --- a/core/os/main_loop.cpp +++ b/core/os/main_loop.cpp @@ -65,6 +65,8 @@ void MainLoop::_bind_methods() { BIND_CONSTANT(NOTIFICATION_OS_IME_UPDATE); BIND_CONSTANT(NOTIFICATION_APP_RESUMED); BIND_CONSTANT(NOTIFICATION_APP_PAUSED); + + ADD_SIGNAL(MethodInfo("on_request_permissions_result", PropertyInfo(Variant::STRING, "permission"), PropertyInfo(Variant::BOOL, "granted"))); }; void MainLoop::set_init_script(const Ref<Script> &p_init_script) { diff --git a/core/os/memory.h b/core/os/memory.h index 8778cb63ad..a68a359546 100644 --- a/core/os/memory.h +++ b/core/os/memory.h @@ -31,6 +31,7 @@ #ifndef MEMORY_H #define MEMORY_H +#include "core/error_macros.h" #include "core/safe_refcount.h" #include <stddef.h> diff --git a/core/os/os.h b/core/os/os.h index 9b46b43081..b5224c4f63 100644 --- a/core/os/os.h +++ b/core/os/os.h @@ -530,6 +530,8 @@ public: List<String> get_restart_on_exit_arguments() const; virtual bool request_permission(const String &p_name) { return true; } + virtual bool request_permissions() { return true; } + virtual Vector<String> get_granted_permissions() const { return Vector<String>(); } virtual void process_and_drop_events() {} OS(); diff --git a/core/packed_data_container.cpp b/core/packed_data_container.cpp index 003e7e7428..7afaf7f0f1 100644 --- a/core/packed_data_container.cpp +++ b/core/packed_data_container.cpp @@ -137,6 +137,7 @@ uint32_t PackedDataContainer::_type_at_ofs(uint32_t p_ofs) const { int PackedDataContainer::_size(uint32_t p_ofs) const { PoolVector<uint8_t>::Read rd = data.read(); + ERR_FAIL_COND_V(!rd.ptr(), 0); const uint8_t *r = &rd[p_ofs]; uint32_t type = decode_uint32(r); diff --git a/core/pool_vector.h b/core/pool_vector.h index fbd4d630be..a698e72e18 100644 --- a/core/pool_vector.h +++ b/core/pool_vector.h @@ -385,6 +385,7 @@ public: } inline int size() const; + inline bool empty() const; T get(int p_index) const; void set(int p_index, const T &p_val); void push_back(const T &p_val); @@ -475,6 +476,12 @@ int PoolVector<T>::size() const { } template <class T> +bool PoolVector<T>::empty() const { + + return alloc ? alloc->size == 0 : true; +} + +template <class T> T PoolVector<T>::get(int p_index) const { return operator[](p_index); diff --git a/core/ref_ptr.cpp b/core/ref_ptr.cpp index 961f143e5c..6da73ca41a 100644 --- a/core/ref_ptr.cpp +++ b/core/ref_ptr.cpp @@ -49,6 +49,14 @@ bool RefPtr::operator==(const RefPtr &p_other) const { return *ref == *ref_other; } +bool RefPtr::operator!=(const RefPtr &p_other) const { + + Ref<Reference> *ref = reinterpret_cast<Ref<Reference> *>(&data[0]); + Ref<Reference> *ref_other = reinterpret_cast<Ref<Reference> *>(const_cast<char *>(&p_other.data[0])); + + return *ref != *ref_other; +} + RefPtr::RefPtr(const RefPtr &p_other) { memnew_placement(&data[0], Ref<Reference>); diff --git a/core/ref_ptr.h b/core/ref_ptr.h index f745ababa1..320cf35609 100644 --- a/core/ref_ptr.h +++ b/core/ref_ptr.h @@ -50,6 +50,7 @@ public: bool is_null() const; void operator=(const RefPtr &p_other); bool operator==(const RefPtr &p_other) const; + bool operator!=(const RefPtr &p_other) const; RID get_rid() const; void unref(); _FORCE_INLINE_ void *get_data() const { return data; } diff --git a/core/resource.cpp b/core/resource.cpp index 87c92ca5b1..e0a40b6f3c 100644 --- a/core/resource.cpp +++ b/core/resource.cpp @@ -365,17 +365,38 @@ bool Resource::is_translation_remapped() const { //helps keep IDs same number when loading/saving scenes. -1 clears ID and it Returns -1 when no id stored void Resource::set_id_for_path(const String &p_path, int p_id) { if (p_id == -1) { - id_for_path.erase(p_path); + if (ResourceCache::path_cache_lock) { + ResourceCache::path_cache_lock->write_lock(); + } + ResourceCache::resource_path_cache[p_path].erase(get_path()); + if (ResourceCache::path_cache_lock) { + ResourceCache::path_cache_lock->write_unlock(); + } } else { - id_for_path[p_path] = p_id; + if (ResourceCache::path_cache_lock) { + ResourceCache::path_cache_lock->write_lock(); + } + ResourceCache::resource_path_cache[p_path][get_path()] = p_id; + if (ResourceCache::path_cache_lock) { + ResourceCache::path_cache_lock->write_unlock(); + } } } int Resource::get_id_for_path(const String &p_path) const { - - if (id_for_path.has(p_path)) { - return id_for_path[p_path]; + if (ResourceCache::path_cache_lock) { + ResourceCache::path_cache_lock->read_lock(); + } + if (ResourceCache::resource_path_cache[p_path].has(get_path())) { + int result = ResourceCache::resource_path_cache[p_path][get_path()]; + if (ResourceCache::path_cache_lock) { + ResourceCache::path_cache_lock->read_unlock(); + } + return result; } else { + if (ResourceCache::path_cache_lock) { + ResourceCache::path_cache_lock->read_unlock(); + } return -1; } } @@ -430,12 +451,21 @@ Resource::~Resource() { } HashMap<String, Resource *> ResourceCache::resources; +#ifdef TOOLS_ENABLED +HashMap<String, HashMap<String, int> > ResourceCache::resource_path_cache; +#endif RWLock *ResourceCache::lock = NULL; +#ifdef TOOLS_ENABLED +RWLock *ResourceCache::path_cache_lock = NULL; +#endif void ResourceCache::setup() { lock = RWLock::create(); +#ifdef TOOLS_ENABLED + path_cache_lock = RWLock::create(); +#endif } void ResourceCache::clear() { diff --git a/core/resource.h b/core/resource.h index 038b4f6278..3e1fe07137 100644 --- a/core/resource.h +++ b/core/resource.h @@ -84,9 +84,7 @@ protected: void _set_path(const String &p_path); void _take_over_path(const String &p_path); -#ifdef TOOLS_ENABLED - Map<String, int> id_for_path; -#endif + public: static Node *(*_get_local_scene_func)(); //used by editor @@ -152,6 +150,10 @@ class ResourceCache { friend class ResourceLoader; //need the lock static RWLock *lock; static HashMap<String, Resource *> resources; +#ifdef TOOLS_ENABLED + static HashMap<String, HashMap<String, int> > resource_path_cache; // each tscn has a set of resource paths and IDs + static RWLock *path_cache_lock; +#endif // TOOLS_ENABLED friend void unregister_core_types(); static void clear(); friend void register_core_types(); diff --git a/core/self_list.h b/core/self_list.h index 314d440977..07abcd1d53 100644 --- a/core/self_list.h +++ b/core/self_list.h @@ -31,6 +31,7 @@ #ifndef SELF_LIST_H #define SELF_LIST_H +#include "core/error_macros.h" #include "core/typedefs.h" template <class T> diff --git a/core/sort_array.h b/core/sort_array.h index 8660ee3333..d330e0c647 100644 --- a/core/sort_array.h +++ b/core/sort_array.h @@ -31,6 +31,7 @@ #ifndef SORT_ARRAY_H #define SORT_ARRAY_H +#include "core/error_macros.h" #include "core/typedefs.h" #define ERR_BAD_COMPARE(cond) \ diff --git a/core/translation.cpp b/core/translation.cpp index a0902d71fc..4a1ac26433 100644 --- a/core/translation.cpp +++ b/core/translation.cpp @@ -986,6 +986,7 @@ Array TranslationServer::get_loaded_locales() const { for (const Set<Ref<Translation> >::Element *E = translations.front(); E; E = E->next()) { const Ref<Translation> &t = E->get(); + ERR_FAIL_COND_V(t.is_null(), Array()); String l = t->get_locale(); locales.push_back(l); @@ -1057,6 +1058,7 @@ StringName TranslationServer::translate(const StringName &p_message) const { for (const Set<Ref<Translation> >::Element *E = translations.front(); E; E = E->next()) { const Ref<Translation> &t = E->get(); + ERR_FAIL_COND_V(t.is_null(), StringName("")); String l = t->get_locale(); if (lptr[0] != l[0] || lptr[1] != l[1]) continue; // Language code does not match. @@ -1085,6 +1087,7 @@ StringName TranslationServer::translate(const StringName &p_message) const { for (const Set<Ref<Translation> >::Element *E = translations.front(); E; E = E->next()) { const Ref<Translation> &t = E->get(); + ERR_FAIL_COND_V(t.is_null(), StringName("")); String l = t->get_locale(); if (fptr[0] != l[0] || fptr[1] != l[1]) continue; // Language code does not match. diff --git a/core/typedefs.h b/core/typedefs.h index 660139b90a..767a97ac38 100644 --- a/core/typedefs.h +++ b/core/typedefs.h @@ -108,7 +108,6 @@ T *_nullptr() { #include "core/int_types.h" #include "core/error_list.h" -#include "core/error_macros.h" /** Generic ABS function, for math uses please use Math::abs */ diff --git a/core/variant.cpp b/core/variant.cpp index 16bbf94c54..e0cc6685f4 100644 --- a/core/variant.cpp +++ b/core/variant.cpp @@ -3299,7 +3299,7 @@ String vformat(const String &p_text, const Variant &p1, const Variant &p2, const bool error = false; String fmt = p_text.sprintf(args, &error); - ERR_FAIL_COND_V(error, String()); + ERR_FAIL_COND_V_MSG(error, String(), fmt); return fmt; } diff --git a/core/variant_call.cpp b/core/variant_call.cpp index 1b5ca9d3e5..f7a3438d32 100644 --- a/core/variant_call.cpp +++ b/core/variant_call.cpp @@ -316,6 +316,10 @@ struct _VariantCall { static void _call_String_to_ascii(Variant &r_ret, Variant &p_self, const Variant **p_args) { String *s = reinterpret_cast<String *>(p_self._data._mem); + if (s->empty()) { + r_ret = PoolByteArray(); + return; + } CharString charstr = s->ascii(); PoolByteArray retval; @@ -331,6 +335,10 @@ struct _VariantCall { static void _call_String_to_utf8(Variant &r_ret, Variant &p_self, const Variant **p_args) { String *s = reinterpret_cast<String *>(p_self._data._mem); + if (s->empty()) { + r_ret = PoolByteArray(); + return; + } CharString charstr = s->utf8(); PoolByteArray retval; @@ -545,7 +553,7 @@ struct _VariantCall { PoolByteArray *ba = reinterpret_cast<PoolByteArray *>(p_self._data._mem); String s; - if (ba->size() >= 0) { + if (ba->size() > 0) { PoolByteArray::Read r = ba->read(); CharString cs; cs.resize(ba->size() + 1); @@ -561,7 +569,7 @@ struct _VariantCall { PoolByteArray *ba = reinterpret_cast<PoolByteArray *>(p_self._data._mem); String s; - if (ba->size() >= 0) { + if (ba->size() > 0) { PoolByteArray::Read r = ba->read(); s.parse_utf8((const char *)r.ptr(), ba->size()); } @@ -572,14 +580,15 @@ struct _VariantCall { PoolByteArray *ba = reinterpret_cast<PoolByteArray *>(p_self._data._mem); PoolByteArray compressed; - Compression::Mode mode = (Compression::Mode)(int)(*p_args[0]); + if (ba->size() > 0) { + Compression::Mode mode = (Compression::Mode)(int)(*p_args[0]); - compressed.resize(Compression::get_max_compressed_buffer_size(ba->size(), mode)); - int result = Compression::compress(compressed.write().ptr(), ba->read().ptr(), ba->size(), mode); - - result = result >= 0 ? result : 0; - compressed.resize(result); + compressed.resize(Compression::get_max_compressed_buffer_size(ba->size(), mode)); + int result = Compression::compress(compressed.write().ptr(), ba->read().ptr(), ba->size(), mode); + result = result >= 0 ? result : 0; + compressed.resize(result); + } r_ret = compressed; } @@ -591,9 +600,9 @@ struct _VariantCall { int buffer_size = (int)(*p_args[0]); - if (buffer_size < 0) { + if (buffer_size <= 0) { r_ret = decompressed; - ERR_FAIL_MSG("Decompression buffer size is less than zero."); + ERR_FAIL_MSG("Decompression buffer size must be greater than zero."); } decompressed.resize(buffer_size); @@ -607,12 +616,17 @@ struct _VariantCall { static void _call_PoolByteArray_hex_encode(Variant &r_ret, Variant &p_self, const Variant **p_args) { PoolByteArray *ba = reinterpret_cast<PoolByteArray *>(p_self._data._mem); + if (ba->size() == 0) { + r_ret = String(); + return; + } PoolByteArray::Read r = ba->read(); String s = String::hex_encode_buffer(&r[0], ba->size()); r_ret = s; } VCALL_LOCALMEM0R(PoolByteArray, size); + VCALL_LOCALMEM0R(PoolByteArray, empty); VCALL_LOCALMEM2(PoolByteArray, set); VCALL_LOCALMEM1R(PoolByteArray, get); VCALL_LOCALMEM1(PoolByteArray, push_back); @@ -625,6 +639,7 @@ struct _VariantCall { VCALL_LOCALMEM2R(PoolByteArray, subarray); VCALL_LOCALMEM0R(PoolIntArray, size); + VCALL_LOCALMEM0R(PoolIntArray, empty); VCALL_LOCALMEM2(PoolIntArray, set); VCALL_LOCALMEM1R(PoolIntArray, get); VCALL_LOCALMEM1(PoolIntArray, push_back); @@ -636,6 +651,7 @@ struct _VariantCall { VCALL_LOCALMEM0(PoolIntArray, invert); VCALL_LOCALMEM0R(PoolRealArray, size); + VCALL_LOCALMEM0R(PoolRealArray, empty); VCALL_LOCALMEM2(PoolRealArray, set); VCALL_LOCALMEM1R(PoolRealArray, get); VCALL_LOCALMEM1(PoolRealArray, push_back); @@ -647,6 +663,7 @@ struct _VariantCall { VCALL_LOCALMEM0(PoolRealArray, invert); VCALL_LOCALMEM0R(PoolStringArray, size); + VCALL_LOCALMEM0R(PoolStringArray, empty); VCALL_LOCALMEM2(PoolStringArray, set); VCALL_LOCALMEM1R(PoolStringArray, get); VCALL_LOCALMEM1(PoolStringArray, push_back); @@ -659,6 +676,7 @@ struct _VariantCall { VCALL_LOCALMEM1R(PoolStringArray, join); VCALL_LOCALMEM0R(PoolVector2Array, size); + VCALL_LOCALMEM0R(PoolVector2Array, empty); VCALL_LOCALMEM2(PoolVector2Array, set); VCALL_LOCALMEM1R(PoolVector2Array, get); VCALL_LOCALMEM1(PoolVector2Array, push_back); @@ -670,6 +688,7 @@ struct _VariantCall { VCALL_LOCALMEM0(PoolVector2Array, invert); VCALL_LOCALMEM0R(PoolVector3Array, size); + VCALL_LOCALMEM0R(PoolVector3Array, empty); VCALL_LOCALMEM2(PoolVector3Array, set); VCALL_LOCALMEM1R(PoolVector3Array, get); VCALL_LOCALMEM1(PoolVector3Array, push_back); @@ -681,6 +700,7 @@ struct _VariantCall { VCALL_LOCALMEM0(PoolVector3Array, invert); VCALL_LOCALMEM0R(PoolColorArray, size); + VCALL_LOCALMEM0R(PoolColorArray, empty); VCALL_LOCALMEM2(PoolColorArray, set); VCALL_LOCALMEM1R(PoolColorArray, get); VCALL_LOCALMEM1(PoolColorArray, push_back); @@ -1769,6 +1789,7 @@ void register_variant_methods() { ADDFUNC0R(ARRAY, NIL, Array, min, varray()); ADDFUNC0R(POOL_BYTE_ARRAY, INT, PoolByteArray, size, varray()); + ADDFUNC0R(POOL_BYTE_ARRAY, BOOL, PoolByteArray, empty, varray()); ADDFUNC2(POOL_BYTE_ARRAY, NIL, PoolByteArray, set, INT, "idx", INT, "byte", varray()); ADDFUNC1(POOL_BYTE_ARRAY, NIL, PoolByteArray, push_back, INT, "byte", varray()); ADDFUNC1(POOL_BYTE_ARRAY, NIL, PoolByteArray, append, INT, "byte", varray()); @@ -1786,6 +1807,7 @@ void register_variant_methods() { ADDFUNC2R(POOL_BYTE_ARRAY, POOL_BYTE_ARRAY, PoolByteArray, decompress, INT, "buffer_size", INT, "compression_mode", varray(0)); ADDFUNC0R(POOL_INT_ARRAY, INT, PoolIntArray, size, varray()); + ADDFUNC0R(POOL_INT_ARRAY, BOOL, PoolIntArray, empty, varray()); ADDFUNC2(POOL_INT_ARRAY, NIL, PoolIntArray, set, INT, "idx", INT, "integer", varray()); ADDFUNC1(POOL_INT_ARRAY, NIL, PoolIntArray, push_back, INT, "integer", varray()); ADDFUNC1(POOL_INT_ARRAY, NIL, PoolIntArray, append, INT, "integer", varray()); @@ -1796,6 +1818,7 @@ void register_variant_methods() { ADDFUNC0(POOL_INT_ARRAY, NIL, PoolIntArray, invert, varray()); ADDFUNC0R(POOL_REAL_ARRAY, INT, PoolRealArray, size, varray()); + ADDFUNC0R(POOL_REAL_ARRAY, BOOL, PoolRealArray, empty, varray()); ADDFUNC2(POOL_REAL_ARRAY, NIL, PoolRealArray, set, INT, "idx", REAL, "value", varray()); ADDFUNC1(POOL_REAL_ARRAY, NIL, PoolRealArray, push_back, REAL, "value", varray()); ADDFUNC1(POOL_REAL_ARRAY, NIL, PoolRealArray, append, REAL, "value", varray()); @@ -1806,6 +1829,7 @@ void register_variant_methods() { ADDFUNC0(POOL_REAL_ARRAY, NIL, PoolRealArray, invert, varray()); ADDFUNC0R(POOL_STRING_ARRAY, INT, PoolStringArray, size, varray()); + ADDFUNC0R(POOL_STRING_ARRAY, BOOL, PoolStringArray, empty, varray()); ADDFUNC2(POOL_STRING_ARRAY, NIL, PoolStringArray, set, INT, "idx", STRING, "string", varray()); ADDFUNC1(POOL_STRING_ARRAY, NIL, PoolStringArray, push_back, STRING, "string", varray()); ADDFUNC1(POOL_STRING_ARRAY, NIL, PoolStringArray, append, STRING, "string", varray()); @@ -1817,6 +1841,7 @@ void register_variant_methods() { ADDFUNC1(POOL_STRING_ARRAY, STRING, PoolStringArray, join, STRING, "delimiter", varray()); ADDFUNC0R(POOL_VECTOR2_ARRAY, INT, PoolVector2Array, size, varray()); + ADDFUNC0R(POOL_VECTOR2_ARRAY, BOOL, PoolVector2Array, empty, varray()); ADDFUNC2(POOL_VECTOR2_ARRAY, NIL, PoolVector2Array, set, INT, "idx", VECTOR2, "vector2", varray()); ADDFUNC1(POOL_VECTOR2_ARRAY, NIL, PoolVector2Array, push_back, VECTOR2, "vector2", varray()); ADDFUNC1(POOL_VECTOR2_ARRAY, NIL, PoolVector2Array, append, VECTOR2, "vector2", varray()); @@ -1827,6 +1852,7 @@ void register_variant_methods() { ADDFUNC0(POOL_VECTOR2_ARRAY, NIL, PoolVector2Array, invert, varray()); ADDFUNC0R(POOL_VECTOR3_ARRAY, INT, PoolVector3Array, size, varray()); + ADDFUNC0R(POOL_VECTOR3_ARRAY, BOOL, PoolVector3Array, empty, varray()); ADDFUNC2(POOL_VECTOR3_ARRAY, NIL, PoolVector3Array, set, INT, "idx", VECTOR3, "vector3", varray()); ADDFUNC1(POOL_VECTOR3_ARRAY, NIL, PoolVector3Array, push_back, VECTOR3, "vector3", varray()); ADDFUNC1(POOL_VECTOR3_ARRAY, NIL, PoolVector3Array, append, VECTOR3, "vector3", varray()); @@ -1837,6 +1863,7 @@ void register_variant_methods() { ADDFUNC0(POOL_VECTOR3_ARRAY, NIL, PoolVector3Array, invert, varray()); ADDFUNC0R(POOL_COLOR_ARRAY, INT, PoolColorArray, size, varray()); + ADDFUNC0R(POOL_COLOR_ARRAY, BOOL, PoolColorArray, empty, varray()); ADDFUNC2(POOL_COLOR_ARRAY, NIL, PoolColorArray, set, INT, "idx", COLOR, "color", varray()); ADDFUNC1(POOL_COLOR_ARRAY, NIL, PoolColorArray, push_back, COLOR, "color", varray()); ADDFUNC1(POOL_COLOR_ARRAY, NIL, PoolColorArray, append, COLOR, "color", varray()); diff --git a/core/vmap.h b/core/vmap.h index fde9723d71..ed66b46993 100644 --- a/core/vmap.h +++ b/core/vmap.h @@ -196,8 +196,7 @@ public: int pos = _find_exact(p_key); if (pos < 0) { - V val; - pos = insert(p_key, val); + pos = insert(p_key, V()); } return _cowdata.get_m(pos).value; diff --git a/doc/classes/Animation.xml b/doc/classes/Animation.xml index bc64cfbb19..97da8c9980 100644 --- a/doc/classes/Animation.xml +++ b/doc/classes/Animation.xml @@ -34,7 +34,7 @@ <method name="animation_track_get_key_animation" qualifiers="const"> <return type="String"> </return> - <argument index="0" name="idx" type="int"> + <argument index="0" name="track_idx" type="int"> </argument> <argument index="1" name="key_idx" type="int"> </argument> @@ -44,7 +44,7 @@ <method name="animation_track_insert_key"> <return type="int"> </return> - <argument index="0" name="track" type="int"> + <argument index="0" name="track_idx" type="int"> </argument> <argument index="1" name="time" type="float"> </argument> @@ -56,7 +56,7 @@ <method name="animation_track_set_key_animation"> <return type="void"> </return> - <argument index="0" name="idx" type="int"> + <argument index="0" name="track_idx" type="int"> </argument> <argument index="1" name="key_idx" type="int"> </argument> @@ -68,7 +68,7 @@ <method name="audio_track_get_key_end_offset" qualifiers="const"> <return type="float"> </return> - <argument index="0" name="idx" type="int"> + <argument index="0" name="track_idx" type="int"> </argument> <argument index="1" name="key_idx" type="int"> </argument> @@ -78,7 +78,7 @@ <method name="audio_track_get_key_start_offset" qualifiers="const"> <return type="float"> </return> - <argument index="0" name="idx" type="int"> + <argument index="0" name="track_idx" type="int"> </argument> <argument index="1" name="key_idx" type="int"> </argument> @@ -88,7 +88,7 @@ <method name="audio_track_get_key_stream" qualifiers="const"> <return type="Resource"> </return> - <argument index="0" name="idx" type="int"> + <argument index="0" name="track_idx" type="int"> </argument> <argument index="1" name="key_idx" type="int"> </argument> @@ -98,7 +98,7 @@ <method name="audio_track_insert_key"> <return type="int"> </return> - <argument index="0" name="track" type="int"> + <argument index="0" name="track_idx" type="int"> </argument> <argument index="1" name="time" type="float"> </argument> @@ -114,7 +114,7 @@ <method name="audio_track_set_key_end_offset"> <return type="void"> </return> - <argument index="0" name="idx" type="int"> + <argument index="0" name="track_idx" type="int"> </argument> <argument index="1" name="key_idx" type="int"> </argument> @@ -126,7 +126,7 @@ <method name="audio_track_set_key_start_offset"> <return type="void"> </return> - <argument index="0" name="idx" type="int"> + <argument index="0" name="track_idx" type="int"> </argument> <argument index="1" name="key_idx" type="int"> </argument> @@ -138,7 +138,7 @@ <method name="audio_track_set_key_stream"> <return type="void"> </return> - <argument index="0" name="idx" type="int"> + <argument index="0" name="track_idx" type="int"> </argument> <argument index="1" name="key_idx" type="int"> </argument> @@ -150,7 +150,7 @@ <method name="bezier_track_get_key_in_handle" qualifiers="const"> <return type="Vector2"> </return> - <argument index="0" name="idx" type="int"> + <argument index="0" name="track_idx" type="int"> </argument> <argument index="1" name="key_idx" type="int"> </argument> @@ -160,7 +160,7 @@ <method name="bezier_track_get_key_out_handle" qualifiers="const"> <return type="Vector2"> </return> - <argument index="0" name="idx" type="int"> + <argument index="0" name="track_idx" type="int"> </argument> <argument index="1" name="key_idx" type="int"> </argument> @@ -170,7 +170,7 @@ <method name="bezier_track_get_key_value" qualifiers="const"> <return type="float"> </return> - <argument index="0" name="idx" type="int"> + <argument index="0" name="track_idx" type="int"> </argument> <argument index="1" name="key_idx" type="int"> </argument> @@ -180,7 +180,7 @@ <method name="bezier_track_insert_key"> <return type="int"> </return> - <argument index="0" name="track" type="int"> + <argument index="0" name="track_idx" type="int"> </argument> <argument index="1" name="time" type="float"> </argument> @@ -196,7 +196,7 @@ <method name="bezier_track_interpolate" qualifiers="const"> <return type="float"> </return> - <argument index="0" name="track" type="int"> + <argument index="0" name="track_idx" type="int"> </argument> <argument index="1" name="time" type="float"> </argument> @@ -206,7 +206,7 @@ <method name="bezier_track_set_key_in_handle"> <return type="void"> </return> - <argument index="0" name="idx" type="int"> + <argument index="0" name="track_idx" type="int"> </argument> <argument index="1" name="key_idx" type="int"> </argument> @@ -218,7 +218,7 @@ <method name="bezier_track_set_key_out_handle"> <return type="void"> </return> - <argument index="0" name="idx" type="int"> + <argument index="0" name="track_idx" type="int"> </argument> <argument index="1" name="key_idx" type="int"> </argument> @@ -230,7 +230,7 @@ <method name="bezier_track_set_key_value"> <return type="void"> </return> - <argument index="0" name="idx" type="int"> + <argument index="0" name="track_idx" type="int"> </argument> <argument index="1" name="key_idx" type="int"> </argument> @@ -249,7 +249,7 @@ <method name="copy_track"> <return type="void"> </return> - <argument index="0" name="track" type="int"> + <argument index="0" name="track_idx" type="int"> </argument> <argument index="1" name="to_animation" type="Animation"> </argument> @@ -276,7 +276,7 @@ <method name="method_track_get_key_indices" qualifiers="const"> <return type="PoolIntArray"> </return> - <argument index="0" name="idx" type="int"> + <argument index="0" name="track_idx" type="int"> </argument> <argument index="1" name="time_sec" type="float"> </argument> @@ -289,7 +289,7 @@ <method name="method_track_get_name" qualifiers="const"> <return type="String"> </return> - <argument index="0" name="idx" type="int"> + <argument index="0" name="track_idx" type="int"> </argument> <argument index="1" name="key_idx" type="int"> </argument> @@ -300,7 +300,7 @@ <method name="method_track_get_params" qualifiers="const"> <return type="Array"> </return> - <argument index="0" name="idx" type="int"> + <argument index="0" name="track_idx" type="int"> </argument> <argument index="1" name="key_idx" type="int"> </argument> @@ -311,7 +311,7 @@ <method name="remove_track"> <return type="void"> </return> - <argument index="0" name="idx" type="int"> + <argument index="0" name="track_idx" type="int"> </argument> <description> Removes a track by specifying the track index. @@ -320,7 +320,7 @@ <method name="track_find_key" qualifiers="const"> <return type="int"> </return> - <argument index="0" name="idx" type="int"> + <argument index="0" name="track_idx" type="int"> </argument> <argument index="1" name="time" type="float"> </argument> @@ -333,7 +333,7 @@ <method name="track_get_interpolation_loop_wrap" qualifiers="const"> <return type="bool"> </return> - <argument index="0" name="idx" type="int"> + <argument index="0" name="track_idx" type="int"> </argument> <description> Returns [code]true[/code] if the track at [code]idx[/code] wraps the interpolation loop. New tracks wrap the interpolation loop by default. @@ -342,7 +342,7 @@ <method name="track_get_interpolation_type" qualifiers="const"> <return type="int" enum="Animation.InterpolationType"> </return> - <argument index="0" name="idx" type="int"> + <argument index="0" name="track_idx" type="int"> </argument> <description> Returns the interpolation type of a given track. @@ -351,7 +351,7 @@ <method name="track_get_key_count" qualifiers="const"> <return type="int"> </return> - <argument index="0" name="idx" type="int"> + <argument index="0" name="track_idx" type="int"> </argument> <description> Returns the amount of keys in a given track. @@ -360,7 +360,7 @@ <method name="track_get_key_time" qualifiers="const"> <return type="float"> </return> - <argument index="0" name="idx" type="int"> + <argument index="0" name="track_idx" type="int"> </argument> <argument index="1" name="key_idx" type="int"> </argument> @@ -371,7 +371,7 @@ <method name="track_get_key_transition" qualifiers="const"> <return type="float"> </return> - <argument index="0" name="idx" type="int"> + <argument index="0" name="track_idx" type="int"> </argument> <argument index="1" name="key_idx" type="int"> </argument> @@ -382,7 +382,7 @@ <method name="track_get_key_value" qualifiers="const"> <return type="Variant"> </return> - <argument index="0" name="idx" type="int"> + <argument index="0" name="track_idx" type="int"> </argument> <argument index="1" name="key_idx" type="int"> </argument> @@ -393,7 +393,7 @@ <method name="track_get_path" qualifiers="const"> <return type="NodePath"> </return> - <argument index="0" name="idx" type="int"> + <argument index="0" name="track_idx" type="int"> </argument> <description> Gets the path of a track. For more information on the path format, see [method track_set_path]. @@ -402,7 +402,7 @@ <method name="track_get_type" qualifiers="const"> <return type="int" enum="Animation.TrackType"> </return> - <argument index="0" name="idx" type="int"> + <argument index="0" name="track_idx" type="int"> </argument> <description> Gets the type of a track. @@ -411,7 +411,7 @@ <method name="track_insert_key"> <return type="void"> </return> - <argument index="0" name="idx" type="int"> + <argument index="0" name="track_idx" type="int"> </argument> <argument index="1" name="time" type="float"> </argument> @@ -426,7 +426,7 @@ <method name="track_is_enabled" qualifiers="const"> <return type="bool"> </return> - <argument index="0" name="idx" type="int"> + <argument index="0" name="track_idx" type="int"> </argument> <description> Returns [code]true[/code] if the track at index [code]idx[/code] is enabled. @@ -435,7 +435,7 @@ <method name="track_is_imported" qualifiers="const"> <return type="bool"> </return> - <argument index="0" name="idx" type="int"> + <argument index="0" name="track_idx" type="int"> </argument> <description> Returns [code]true[/code] if the given track is imported. Else, return [code]false[/code]. @@ -444,7 +444,7 @@ <method name="track_move_down"> <return type="void"> </return> - <argument index="0" name="idx" type="int"> + <argument index="0" name="track_idx" type="int"> </argument> <description> Moves a track down. @@ -453,7 +453,7 @@ <method name="track_move_to"> <return type="void"> </return> - <argument index="0" name="idx" type="int"> + <argument index="0" name="track_idx" type="int"> </argument> <argument index="1" name="to_idx" type="int"> </argument> @@ -464,7 +464,7 @@ <method name="track_move_up"> <return type="void"> </return> - <argument index="0" name="idx" type="int"> + <argument index="0" name="track_idx" type="int"> </argument> <description> Moves a track up. @@ -473,7 +473,7 @@ <method name="track_remove_key"> <return type="void"> </return> - <argument index="0" name="idx" type="int"> + <argument index="0" name="track_idx" type="int"> </argument> <argument index="1" name="key_idx" type="int"> </argument> @@ -484,7 +484,7 @@ <method name="track_remove_key_at_position"> <return type="void"> </return> - <argument index="0" name="idx" type="int"> + <argument index="0" name="track_idx" type="int"> </argument> <argument index="1" name="position" type="float"> </argument> @@ -495,7 +495,7 @@ <method name="track_set_enabled"> <return type="void"> </return> - <argument index="0" name="idx" type="int"> + <argument index="0" name="track_idx" type="int"> </argument> <argument index="1" name="enabled" type="bool"> </argument> @@ -506,7 +506,7 @@ <method name="track_set_imported"> <return type="void"> </return> - <argument index="0" name="idx" type="int"> + <argument index="0" name="track_idx" type="int"> </argument> <argument index="1" name="imported" type="bool"> </argument> @@ -517,7 +517,7 @@ <method name="track_set_interpolation_loop_wrap"> <return type="void"> </return> - <argument index="0" name="idx" type="int"> + <argument index="0" name="track_idx" type="int"> </argument> <argument index="1" name="interpolation" type="bool"> </argument> @@ -528,7 +528,7 @@ <method name="track_set_interpolation_type"> <return type="void"> </return> - <argument index="0" name="idx" type="int"> + <argument index="0" name="track_idx" type="int"> </argument> <argument index="1" name="interpolation" type="int" enum="Animation.InterpolationType"> </argument> @@ -539,7 +539,7 @@ <method name="track_set_key_time"> <return type="void"> </return> - <argument index="0" name="idx" type="int"> + <argument index="0" name="track_idx" type="int"> </argument> <argument index="1" name="key_idx" type="int"> </argument> @@ -552,7 +552,7 @@ <method name="track_set_key_transition"> <return type="void"> </return> - <argument index="0" name="idx" type="int"> + <argument index="0" name="track_idx" type="int"> </argument> <argument index="1" name="key_idx" type="int"> </argument> @@ -565,7 +565,7 @@ <method name="track_set_key_value"> <return type="void"> </return> - <argument index="0" name="idx" type="int"> + <argument index="0" name="track_idx" type="int"> </argument> <argument index="1" name="key" type="int"> </argument> @@ -578,7 +578,7 @@ <method name="track_set_path"> <return type="void"> </return> - <argument index="0" name="idx" type="int"> + <argument index="0" name="track_idx" type="int"> </argument> <argument index="1" name="path" type="NodePath"> </argument> @@ -590,7 +590,7 @@ <method name="track_swap"> <return type="void"> </return> - <argument index="0" name="idx" type="int"> + <argument index="0" name="track_idx" type="int"> </argument> <argument index="1" name="with_idx" type="int"> </argument> @@ -601,7 +601,7 @@ <method name="transform_track_insert_key"> <return type="int"> </return> - <argument index="0" name="idx" type="int"> + <argument index="0" name="track_idx" type="int"> </argument> <argument index="1" name="time" type="float"> </argument> @@ -618,7 +618,7 @@ <method name="transform_track_interpolate" qualifiers="const"> <return type="Array"> </return> - <argument index="0" name="idx" type="int"> + <argument index="0" name="track_idx" type="int"> </argument> <argument index="1" name="time_sec" type="float"> </argument> @@ -629,7 +629,7 @@ <method name="value_track_get_key_indices" qualifiers="const"> <return type="PoolIntArray"> </return> - <argument index="0" name="idx" type="int"> + <argument index="0" name="track_idx" type="int"> </argument> <argument index="1" name="time_sec" type="float"> </argument> @@ -642,7 +642,7 @@ <method name="value_track_get_update_mode" qualifiers="const"> <return type="int" enum="Animation.UpdateMode"> </return> - <argument index="0" name="idx" type="int"> + <argument index="0" name="track_idx" type="int"> </argument> <description> Returns the update mode of a value track. @@ -651,7 +651,7 @@ <method name="value_track_set_update_mode"> <return type="void"> </return> - <argument index="0" name="idx" type="int"> + <argument index="0" name="track_idx" type="int"> </argument> <argument index="1" name="mode" type="int" enum="Animation.UpdateMode"> </argument> diff --git a/doc/classes/AnimationPlayer.xml b/doc/classes/AnimationPlayer.xml index 5bb4a6e3c7..60d04649a8 100644 --- a/doc/classes/AnimationPlayer.xml +++ b/doc/classes/AnimationPlayer.xml @@ -5,6 +5,7 @@ </brief_description> <description> An animation player is used for general-purpose playback of [Animation] resources. It contains a dictionary of animations (referenced by name) and custom blend times between their transitions. Additionally, animations can be played and blended in different channels. + Updating the target properties of animations occurs at process time. </description> <tutorials> <link>https://docs.godotengine.org/en/latest/getting_started/step_by_step/animations.html</link> @@ -28,7 +29,7 @@ <argument index="0" name="delta" type="float"> </argument> <description> - Shifts position in the animation timeline. Delta is the time in seconds to shift. Events between the current frame and [code]delta[/code] are handled. + Shifts position in the animation timeline and immediately updates the animation. [code]delta[/code] is the time in seconds to shift. Events between the current frame and [code]delta[/code] are handled. </description> </method> <method name="animation_get_next" qualifiers="const"> @@ -145,6 +146,7 @@ <description> Plays the animation with key [code]name[/code]. Custom speed and blend times can be set. If [code]custom_speed[/code] is negative and [code]from_end[/code] is [code]true[/code], the animation will play backwards. If the animation has been paused by [method stop], it will be resumed. Calling [method play] without arguments will also resume the animation. + [b]Note:[/b] The animation will be updated the next time the AnimationPlayer is processed. If other variables are updated at the same time this is called, they may be updated too early. To perform the update immediately, call [code]advance(0)[/code]. </description> </method> <method name="play_backwards"> @@ -157,6 +159,7 @@ <description> Plays the animation with key [code]name[/code] in reverse. If the animation has been paused by [code]stop(true)[/code], it will be resumed backwards. Calling [code]play_backwards()[/code] without arguments will also resume the animation backwards. + [b]Note:[/b] This is the same as [code]play[/code] in regards to process/update behavior. </description> </method> <method name="queue"> diff --git a/doc/classes/Area2D.xml b/doc/classes/Area2D.xml index e1cb9056da..9a5870c73d 100644 --- a/doc/classes/Area2D.xml +++ b/doc/classes/Area2D.xml @@ -7,6 +7,7 @@ 2D area that detects [CollisionObject2D] nodes overlapping, entering, or exiting. Can also alter or override local physics parameters (gravity, damping). </description> <tutorials> + <link>https://docs.godotengine.org/en/latest/tutorials/physics/using_area_2d.html</link> </tutorials> <methods> <method name="get_collision_layer_bit" qualifiers="const"> diff --git a/doc/classes/CanvasItem.xml b/doc/classes/CanvasItem.xml index 87b8f5c83d..8372d15324 100644 --- a/doc/classes/CanvasItem.xml +++ b/doc/classes/CanvasItem.xml @@ -22,6 +22,28 @@ Called (if exists) to draw the canvas item. </description> </method> + <method name="draw_arc"> + <return type="void"> + </return> + <argument index="0" name="center" type="Vector2"> + </argument> + <argument index="1" name="radius" type="float"> + </argument> + <argument index="2" name="start_angle" type="float"> + </argument> + <argument index="3" name="end_angle" type="float"> + </argument> + <argument index="4" name="point_count" type="int"> + </argument> + <argument index="5" name="color" type="Color"> + </argument> + <argument index="6" name="width" type="float" default="1.0"> + </argument> + <argument index="7" name="antialiased" type="bool" default="false"> + </argument> + <description> + </description> + </method> <method name="draw_char"> <return type="float"> </return> @@ -341,6 +363,7 @@ <return type="void"> </return> <description> + Forces the transform to update. Transform changes in physics are not instant for performance reasons. Transforms are accumulated and then set. Use this if you need an up-to-date transform when doing physics operations. </description> </method> <method name="get_canvas" qualifiers="const"> diff --git a/doc/classes/ConfigFile.xml b/doc/classes/ConfigFile.xml index 775ad4c922..56f54e4434 100644 --- a/doc/classes/ConfigFile.xml +++ b/doc/classes/ConfigFile.xml @@ -39,6 +39,16 @@ Deletes the specified section along with all the key-value pairs inside. </description> </method> + <method name="erase_section_key"> + <return type="void"> + </return> + <argument index="0" name="section" type="String"> + </argument> + <argument index="1" name="key" type="String"> + </argument> + <description> + </description> + </method> <method name="get_section_keys" qualifiers="const"> <return type="PoolStringArray"> </return> diff --git a/doc/classes/EditorSpinSlider.xml b/doc/classes/EditorSpinSlider.xml new file mode 100644 index 0000000000..bf01ebfe82 --- /dev/null +++ b/doc/classes/EditorSpinSlider.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<class name="EditorSpinSlider" inherits="Range" category="Core" version="3.2"> + <brief_description> + </brief_description> + <description> + </description> + <tutorials> + </tutorials> + <methods> + </methods> + <members> + <member name="flat" type="bool" setter="set_flat" getter="is_flat" default="false"> + </member> + <member name="focus_mode" type="int" setter="set_focus_mode" getter="get_focus_mode" override="true" enum="Control.FocusMode" default="2" /> + <member name="label" type="String" setter="set_label" getter="get_label" default=""""> + </member> + <member name="read_only" type="bool" setter="set_read_only" getter="is_read_only" default="false"> + </member> + </members> + <constants> + </constants> +</class> diff --git a/doc/classes/HTTPClient.xml b/doc/classes/HTTPClient.xml index 1a2d5cab81..52e4b94051 100644 --- a/doc/classes/HTTPClient.xml +++ b/doc/classes/HTTPClient.xml @@ -44,6 +44,7 @@ </return> <description> Returns the response's body length. + [b]Note:[/b] Some Web servers may not send a body length. In this case, the value returned will be [code]-1[/code]. If using chunked transfer encoding, the body length will also be [code]-1[/code]. </description> </method> <method name="get_response_code" qualifiers="const"> @@ -175,7 +176,7 @@ <argument index="0" name="bytes" type="int"> </argument> <description> - Sets the size of the buffer used and maximum bytes to read per iteration. see [method read_response_body_chunk] + Sets the size of the buffer used and maximum bytes to read per iteration. See [method read_response_body_chunk]. </description> </method> </methods> diff --git a/doc/classes/HTTPRequest.xml b/doc/classes/HTTPRequest.xml index 53ee0b6132..3a73d44a01 100644 --- a/doc/classes/HTTPRequest.xml +++ b/doc/classes/HTTPRequest.xml @@ -23,6 +23,7 @@ </return> <description> Returns the response body length. + [b]Note:[/b] Some Web servers may not send a body length. In this case, the value returned will be [code]-1[/code]. If using chunked transfer encoding, the body length will also be [code]-1[/code]. </description> </method> <method name="get_downloaded_bytes" qualifiers="const"> diff --git a/doc/classes/InputEventMouseMotion.xml b/doc/classes/InputEventMouseMotion.xml index fab4cc0fb9..cb89a746bf 100644 --- a/doc/classes/InputEventMouseMotion.xml +++ b/doc/classes/InputEventMouseMotion.xml @@ -4,7 +4,7 @@ Input event type for mouse motion events. </brief_description> <description> - Contains mouse motion information. Supports relative, absolute positions and speed. See [method Node._input]. + Contains mouse and pen motion information. Supports relative, absolute positions and speed. See [method Node._input]. </description> <tutorials> <link>https://docs.godotengine.org/en/latest/tutorials/inputs/mouse_and_input_coordinates.html</link> @@ -18,6 +18,12 @@ <member name="speed" type="Vector2" setter="set_speed" getter="get_speed" default="Vector2( 0, 0 )"> The mouse speed in pixels per second. </member> + <member name="pressure" type="float" setter="set_pressure" getter="get_pressure"> + Represents the pressure the user puts on the pen. Ranges from [code]0.0[/code] to [code]1.0[/code]. + </member> + <member name="tilt" type="Vector2" setter="set_tilt" getter="get_tilt"> + Represents the angles of tilt of the pen. Positive X-coordinate value indicates a tilt to the right. Positive Y-coordinate value indicates a tilt toward the user. Ranges from [code]-1.0[/code] to [code]1.0[/code] for both axes. + </member> </members> <constants> </constants> diff --git a/doc/classes/MainLoop.xml b/doc/classes/MainLoop.xml index 9e65da8eea..9457800825 100644 --- a/doc/classes/MainLoop.xml +++ b/doc/classes/MainLoop.xml @@ -167,6 +167,17 @@ </description> </method> </methods> + <signals> + <signal name="on_request_permissions_result"> + <argument index="0" name="permission" type="String"> + </argument> + <argument index="1" name="granted" type="bool"> + </argument> + <description> + Emitted when an user responds to permission request. + </description> + </signal> + </signals> <constants> <constant name="NOTIFICATION_WM_MOUSE_ENTER" value="1002"> Notification received from the OS when the mouse enters the game window. diff --git a/doc/classes/NavigationMesh.xml b/doc/classes/NavigationMesh.xml index f6c7a7d1b5..6528704bb5 100644 --- a/doc/classes/NavigationMesh.xml +++ b/doc/classes/NavigationMesh.xml @@ -107,6 +107,10 @@ </member> <member name="geometry/parsed_geometry_type" type="int" setter="set_parsed_geometry_type" getter="get_parsed_geometry_type" default="0"> </member> + <member name="geometry/source_geometry_mode" type="int" setter="set_source_geometry_mode" getter="get_source_geometry_mode" default="0"> + </member> + <member name="geometry/source_group_name" type="String" setter="set_source_group_name" getter="get_source_group_name"> + </member> <member name="polygon/verts_per_poly" type="float" setter="set_verts_per_poly" getter="get_verts_per_poly" default="6.0"> </member> <member name="region/merge_size" type="float" setter="set_region_merge_size" getter="get_region_merge_size" default="20.0"> diff --git a/doc/classes/Node.xml b/doc/classes/Node.xml index b206d4a4d2..1f685aab81 100644 --- a/doc/classes/Node.xml +++ b/doc/classes/Node.xml @@ -40,8 +40,9 @@ <return type="String"> </return> <description> - The string returned from this method is displayed as a warning in the "Scene Dock" if the script that overrides it is a [code]tool[/code] script. + The string returned from this method is displayed as a warning in the Scene Dock if the script that overrides it is a [code]tool[/code] script. Returning an empty string produces no warning. + Call [method update_configuration_warning] when the warning needs to be updated for this node. </description> </method> <method name="_input" qualifiers="virtual"> @@ -818,6 +819,14 @@ Sets whether this is an instance load placeholder. See [InstancePlaceholder]. </description> </method> + <method name="update_configuration_warning"> + <return type="void"> + </return> + <description> + Updates the warning displayed for this node in the Scene Dock. + Use [method _get_configuration_warning] to setup the warning message to display. + </description> + </method> </methods> <members> <member name="custom_multiplayer" type="MultiplayerAPI" setter="set_custom_multiplayer" getter="get_custom_multiplayer"> diff --git a/doc/classes/OS.xml b/doc/classes/OS.xml index 9acddb3115..5aeeb61647 100644 --- a/doc/classes/OS.xml +++ b/doc/classes/OS.xml @@ -157,6 +157,8 @@ <return type="PoolStringArray"> </return> <description> + Returns an array of MIDI device names. + The returned array will be empty if the system MIDI driver has not previously been initialised with [method open_midi_inputs]. </description> </method> <method name="get_current_video_driver" qualifiers="const"> @@ -217,6 +219,13 @@ Returns the path to the current engine executable. </description> </method> + <method name="get_granted_permissions" qualifiers="const"> + <return type="PoolStringArray"> + </return> + <description> + With this function you can get the list of dangerous permissions that have been granted to the Android application. + </description> + </method> <method name="get_ime_selection" qualifiers="const"> <return type="Vector2"> </return> @@ -326,7 +335,7 @@ <argument index="0" name="screen" type="int" default="-1"> </argument> <description> - Returns the dots per inch density of the specified screen. + Returns the dots per inch density of the specified screen. If [code]screen[/code] is [/code]-1[/code] (the default value), the current screen will be used. On Android devices, the actual screen densities are grouped into six generalized densities: [codeblock] ldpi - 120 dpi @@ -344,7 +353,7 @@ <argument index="0" name="screen" type="int" default="-1"> </argument> <description> - Returns the position of the specified screen by index. If no screen index is provided, the current screen will be used. + Returns the position of the specified screen by index. If [code]screen[/code] is [/code]-1[/code] (the default value), the current screen will be used. </description> </method> <method name="get_screen_size" qualifiers="const"> @@ -353,7 +362,7 @@ <argument index="0" name="screen" type="int" default="-1"> </argument> <description> - Returns the dimensions in pixels of the specified screen. + Returns the dimensions in pixels of the specified screen. If [code]screen[/code] is [/code]-1[/code] (the default value), the current screen will be used. </description> </method> <method name="get_splash_tick_msec" qualifiers="const"> @@ -692,6 +701,7 @@ <return type="void"> </return> <description> + Initialises the singleton for the system MIDI driver. </description> </method> <method name="print_all_resources"> @@ -744,6 +754,13 @@ At the moment this function is only used by [code]AudioDriverOpenSL[/code] to request permission for [code]RECORD_AUDIO[/code] on Android. </description> </method> + <method name="request_permissions"> + <return type="bool"> + </return> + <description> + With this function you can request dangerous permissions since normal permissions are automatically granted at install time in Android application. + </description> + </method> <method name="set_icon"> <return type="void"> </return> diff --git a/doc/classes/Particles.xml b/doc/classes/Particles.xml index fb74c5a3d4..7bfea8bce4 100644 --- a/doc/classes/Particles.xml +++ b/doc/classes/Particles.xml @@ -24,6 +24,7 @@ <argument index="0" name="pass" type="int"> </argument> <description> + Returns the [Mesh] that is drawn at index [code]pass[/code]. </description> </method> <method name="restart"> @@ -41,6 +42,7 @@ <argument index="1" name="mesh" type="Mesh"> </argument> <description> + Sets the [Mesh] that is drawn at index [code]pass[/code]. </description> </method> </methods> diff --git a/doc/classes/PoolByteArray.xml b/doc/classes/PoolByteArray.xml index 21bf078017..867f042cd2 100644 --- a/doc/classes/PoolByteArray.xml +++ b/doc/classes/PoolByteArray.xml @@ -53,6 +53,13 @@ Returns a new [PoolByteArray] with the data decompressed. Set [code]buffer_size[/code] to the size of the uncompressed data. Set the compression mode using one of [enum File.CompressionMode]'s constants. </description> </method> + <method name="empty"> + <return type="bool"> + </return> + <description> + Returns [code]true[/code] if the array is empty. + </description> + </method> <method name="get_string_from_ascii"> <return type="String"> </return> diff --git a/doc/classes/PoolColorArray.xml b/doc/classes/PoolColorArray.xml index a1fb868ef5..34cfa0ab53 100644 --- a/doc/classes/PoolColorArray.xml +++ b/doc/classes/PoolColorArray.xml @@ -33,6 +33,13 @@ Appends a [PoolColorArray] at the end of this array. </description> </method> + <method name="empty"> + <return type="bool"> + </return> + <description> + Returns [code]true[/code] if the array is empty. + </description> + </method> <method name="insert"> <return type="int"> </return> diff --git a/doc/classes/PoolIntArray.xml b/doc/classes/PoolIntArray.xml index 28a28b2bba..25e1e718f7 100644 --- a/doc/classes/PoolIntArray.xml +++ b/doc/classes/PoolIntArray.xml @@ -34,6 +34,13 @@ Appends a [PoolIntArray] at the end of this array. </description> </method> + <method name="empty"> + <return type="bool"> + </return> + <description> + Returns [code]true[/code] if the array is empty. + </description> + </method> <method name="insert"> <return type="int"> </return> diff --git a/doc/classes/PoolRealArray.xml b/doc/classes/PoolRealArray.xml index 7eaec82338..e8afe46640 100644 --- a/doc/classes/PoolRealArray.xml +++ b/doc/classes/PoolRealArray.xml @@ -33,6 +33,13 @@ Appends a [PoolRealArray] at the end of this array. </description> </method> + <method name="empty"> + <return type="bool"> + </return> + <description> + Returns [code]true[/code] if the array is empty. + </description> + </method> <method name="insert"> <return type="int"> </return> diff --git a/doc/classes/PoolStringArray.xml b/doc/classes/PoolStringArray.xml index a408a18b19..f41a3c7a68 100644 --- a/doc/classes/PoolStringArray.xml +++ b/doc/classes/PoolStringArray.xml @@ -33,6 +33,13 @@ Appends a [PoolStringArray] at the end of this array. </description> </method> + <method name="empty"> + <return type="bool"> + </return> + <description> + Returns [code]true[/code] if the array is empty. + </description> + </method> <method name="insert"> <return type="int"> </return> diff --git a/doc/classes/PoolVector2Array.xml b/doc/classes/PoolVector2Array.xml index 623247e639..321846d08b 100644 --- a/doc/classes/PoolVector2Array.xml +++ b/doc/classes/PoolVector2Array.xml @@ -33,6 +33,13 @@ Appends a [PoolVector2Array] at the end of this array. </description> </method> + <method name="empty"> + <return type="bool"> + </return> + <description> + Returns [code]true[/code] if the array is empty. + </description> + </method> <method name="insert"> <return type="int"> </return> diff --git a/doc/classes/PoolVector3Array.xml b/doc/classes/PoolVector3Array.xml index adc28b46cb..c82bd62a11 100644 --- a/doc/classes/PoolVector3Array.xml +++ b/doc/classes/PoolVector3Array.xml @@ -33,6 +33,13 @@ Appends a [PoolVector3Array] at the end of this array. </description> </method> + <method name="empty"> + <return type="bool"> + </return> + <description> + Returns [code]true[/code] if the array is empty. + </description> + </method> <method name="insert"> <return type="int"> </return> diff --git a/doc/classes/PopupDialog.xml b/doc/classes/PopupDialog.xml index d85f568abf..939453b977 100644 --- a/doc/classes/PopupDialog.xml +++ b/doc/classes/PopupDialog.xml @@ -12,4 +12,9 @@ </methods> <constants> </constants> + <theme_items> + <theme_item name="panel" type="StyleBox"> + Sets a custom [StyleBox] for the panel of the [PopupDialog]. + </theme_item> + </theme_items> </class> diff --git a/doc/classes/PopupMenu.xml b/doc/classes/PopupMenu.xml index d9400088dd..691aec2eb1 100644 --- a/doc/classes/PopupMenu.xml +++ b/doc/classes/PopupMenu.xml @@ -89,6 +89,36 @@ An [code]id[/code] can optionally be provided, as well as an accelerator ([code]accel[/code]). If no [code]id[/code] is provided, one will be created from the index. If no [code]accel[/code] is provided then the default [code]0[/code] will be assigned to it. See [method get_item_accelerator] for more info on accelerators. </description> </method> + <method name="add_icon_radio_check_item"> + <return type="void"> + </return> + <argument index="0" name="texture" type="Texture"> + </argument> + <argument index="1" name="label" type="String"> + </argument> + <argument index="2" name="id" type="int" default="-1"> + </argument> + <argument index="3" name="accel" type="int" default="0"> + </argument> + <description> + Same as [method add_icon_check_item], but uses a radio check button. + </description> + </method> + <method name="add_icon_radio_check_shortcut"> + <return type="void"> + </return> + <argument index="0" name="texture" type="Texture"> + </argument> + <argument index="1" name="shortcut" type="ShortCut"> + </argument> + <argument index="2" name="id" type="int" default="-1"> + </argument> + <argument index="3" name="global" type="bool" default="false"> + </argument> + <description> + Same as [method add_icon_check_shortcut], but uses a radio check button. + </description> + </method> <method name="add_icon_shortcut"> <return type="void"> </return> @@ -119,6 +149,25 @@ An [code]id[/code] can optionally be provided, as well as an accelerator ([code]accel[/code]). If no [code]id[/code] is provided, one will be created from the index. If no [code]accel[/code] is provided then the default [code]0[/code] will be assigned to it. See [method get_item_accelerator] for more info on accelerators. </description> </method> + <method name="add_multistate_item"> + <return type="void"> + </return> + <argument index="0" name="label" type="String"> + </argument> + <argument index="1" name="max_states" type="int"> + </argument> + <argument index="2" name="default_state" type="int" default="0"> + </argument> + <argument index="3" name="id" type="int" default="-1"> + </argument> + <argument index="4" name="accel" type="int" default="0"> + </argument> + <description> + Adds a new multistate item with text [code]label[/code]. + Contrarily to normal binary items, multistate items can have more than two states, as defined by [code]max_states[/code]. Each press or activate of the item will increase the state by one. The default value is defined by [code]default_state[/code]. + An [code]id[/code] can optionally be provided, as well as an accelerator ([code]accel[/code]). If no [code]id[/code] is provided, one will be created from the index. If no [code]accel[/code] is provided then the default [code]0[/code] will be assigned to it. See [method get_item_accelerator] for more info on accelerators. + </description> + </method> <method name="add_radio_check_item"> <return type="void"> </return> @@ -129,7 +178,7 @@ <argument index="2" name="accel" type="int" default="0"> </argument> <description> - Adds a new radio button with text [code]label[/code]. + Adds a new radio check button with text [code]label[/code]. An [code]id[/code] can optionally be provided, as well as an accelerator ([code]accel[/code]). If no [code]id[/code] is provided, one will be created from the index. If no [code]accel[/code] is provided then the default [code]0[/code] will be assigned to it. See [method get_item_accelerator] for more info on accelerators. [b]Note:[/b] Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See [method set_item_checked] for more info on how to control it. </description> diff --git a/doc/classes/ProjectSettings.xml b/doc/classes/ProjectSettings.xml index 9657982016..eb937df286 100644 --- a/doc/classes/ProjectSettings.xml +++ b/doc/classes/ProjectSettings.xml @@ -6,6 +6,7 @@ <description> Contains global variables accessible from everywhere. Use [method get_setting], [method set_setting] or [method has_setting] to access them. Variables stored in [code]project.godot[/code] are also loaded into ProjectSettings, making this object very useful for reading custom game configuration options. When naming a Project Settings property, use the full path to the setting including the category. For example, [code]"application/config/name"[/code] for the project name. Category and property names can be viewed in the Project Settings dialog. + [b]Overriding:[/b] Any project setting can be overridden by creating a file named [code]override.cfg[/code] in the project's root directory. This can also be used in exported projects by placing this file in the same directory as the project binary. </description> <tutorials> </tutorials> @@ -144,6 +145,7 @@ <argument index="1" name="value" type="Variant"> </argument> <description> + Sets the specified property's initial value. This is the value the property reverts to. </description> </method> <method name="set_order"> @@ -165,6 +167,11 @@ <argument index="1" name="value" type="Variant"> </argument> <description> + Sets the value of a setting. + [b]Example:[/b] + [codeblock] + ProjectSettings.set_setting("application/config/name", "Example") + [/codeblock] </description> </method> </methods> @@ -201,6 +208,7 @@ </member> <member name="application/config/project_settings_override" type="String" setter="" getter="" default=""""> Specifies a file to override project settings. For example: [code]user://custom_settings.cfg[/code]. + [b]Note:[/b] Regardless of this setting's value, [code]res://override.cfg[/code] will still be read to override the project settings (see this class' description at the top). </member> <member name="application/config/use_custom_user_dir" type="bool" setter="" getter="" default="false"> If [code]true[/code], the project will save user data to its own user directory (see [member application/config/custom_user_dir_name]). This setting is only effective on desktop platforms. A name must be set in the [member application/config/custom_user_dir_name] setting for this to take effect. If [code]false[/code], the project will save user data to [code](OS user data directory)/Godot/app_userdata/(project name)[/code]. diff --git a/doc/classes/ReflectionProbe.xml b/doc/classes/ReflectionProbe.xml index 68b9110b50..0a1cf962c8 100644 --- a/doc/classes/ReflectionProbe.xml +++ b/doc/classes/ReflectionProbe.xml @@ -1,8 +1,10 @@ <?xml version="1.0" encoding="UTF-8" ?> <class name="ReflectionProbe" inherits="VisualInstance" category="Core" version="3.2"> <brief_description> + Captures its surroundings to create reflections. </brief_description> <description> + Capture its surroundings as a dual parabolid image, and stores versions of it with increasing levels of blur to simulate different material roughnesses. </description> <tutorials> <link>https://docs.godotengine.org/en/latest/tutorials/3d/reflection_probes.html</link> @@ -11,14 +13,17 @@ </methods> <members> <member name="box_projection" type="bool" setter="set_enable_box_projection" getter="is_box_projection_enabled" default="false"> + If [code]true[/code], enables box projection. This makes reflections look more correct in rectangle-shaped rooms by offsetting the reflection center depending on the camera's location. </member> <member name="cull_mask" type="int" setter="set_cull_mask" getter="get_cull_mask" default="1048575"> </member> <member name="enable_shadows" type="bool" setter="set_enable_shadows" getter="are_shadows_enabled" default="false"> + If [code]true[/code], computes shadows in the reflection probe. This makes the reflection probe slower to render; you may want to disable this if using the [constant UPDATE_ALWAYS] [member update_mode]. </member> <member name="extents" type="Vector3" setter="set_extents" getter="get_extents" default="Vector3( 1, 1, 1 )"> </member> <member name="intensity" type="float" setter="set_intensity" getter="get_intensity" default="1.0"> + Defines the reflection intensity. </member> <member name="interior_ambient_color" type="Color" setter="set_interior_ambient" getter="get_interior_ambient" default="Color( 0, 0, 0, 1 )"> </member> diff --git a/doc/classes/RichTextLabel.xml b/doc/classes/RichTextLabel.xml index faf2ac1ff9..2962391b99 100644 --- a/doc/classes/RichTextLabel.xml +++ b/doc/classes/RichTextLabel.xml @@ -16,8 +16,13 @@ </return> <argument index="0" name="image" type="Texture"> </argument> + <argument index="1" name="width" type="int" default="0"> + </argument> + <argument index="2" name="height" type="int" default="0"> + </argument> <description> - Adds an image's opening and closing tags to the tag stack. + Adds an image's opening and closing tags to the tag stack, optionally providing a [code]width[/code] and [code]height[/code] to resize the image. + If [code]width[/code] or [code]height[/code] is set to 0, the image size will be adjusted in order to keep the original aspect ratio. </description> </method> <method name="add_text"> @@ -128,6 +133,18 @@ Adds an [code][align][/code] tag based on the given [code]align[/code] value. See [enum Align] for possible values. </description> </method> + <method name="push_bold"> + <return type="void"> + </return> + <description> + </description> + </method> + <method name="push_bold_italics"> + <return type="void"> + </return> + <description> + </description> + </method> <method name="push_cell"> <return type="void"> </return> @@ -162,6 +179,12 @@ Adds an [code][indent][/code] tag to the tag stack. Multiplies "level" by current tab_size to determine new margin length. </description> </method> + <method name="push_italics"> + <return type="void"> + </return> + <description> + </description> + </method> <method name="push_list"> <return type="void"> </return> @@ -180,6 +203,18 @@ Adds a [code][meta][/code] tag to the tag stack. Similar to the BBCode [code][url=something]{text}[/url][/code], but supports non-[String] metadata types. </description> </method> + <method name="push_mono"> + <return type="void"> + </return> + <description> + </description> + </method> + <method name="push_normal"> + <return type="void"> + </return> + <description> + </description> + </method> <method name="push_strikethrough"> <return type="void"> </return> diff --git a/doc/classes/ScriptCreateDialog.xml b/doc/classes/ScriptCreateDialog.xml index 30d67d47f3..3d0fa9a0d5 100644 --- a/doc/classes/ScriptCreateDialog.xml +++ b/doc/classes/ScriptCreateDialog.xml @@ -31,9 +31,9 @@ </methods> <members> <member name="dialog_hide_on_ok" type="bool" setter="set_hide_on_ok" getter="get_hide_on_ok" override="true" default="false" /> - <member name="margin_bottom" type="float" setter="set_margin" getter="get_margin" override="true" default="76.0" /> - <member name="margin_right" type="float" setter="set_margin" getter="get_margin" override="true" default="200.0" /> - <member name="rect_size" type="Vector2" setter="_set_size" getter="get_size" override="true" default="Vector2( 200, 76 )" /> + <member name="margin_bottom" type="float" setter="set_margin" getter="get_margin" override="true" default="232.0" /> + <member name="margin_right" type="float" setter="set_margin" getter="get_margin" override="true" default="361.0" /> + <member name="rect_size" type="Vector2" setter="_set_size" getter="get_size" override="true" default="Vector2( 361, 232 )" /> <member name="window_title" type="String" setter="set_title" getter="get_title" override="true" default=""Attach Node Script"" /> </members> <signals> diff --git a/doc/classes/Skeleton2D.xml b/doc/classes/Skeleton2D.xml index 064a7266bd..886e8244a2 100644 --- a/doc/classes/Skeleton2D.xml +++ b/doc/classes/Skeleton2D.xml @@ -1,6 +1,7 @@ <?xml version="1.0" encoding="UTF-8" ?> <class name="Skeleton2D" inherits="Node2D" category="Core" version="3.2"> <brief_description> + Skeleton for 2D characters and animated objects. </brief_description> <description> </description> @@ -20,6 +21,7 @@ <return type="int"> </return> <description> + Returns the amount of bones in the skeleton. </description> </method> <method name="get_skeleton" qualifiers="const"> diff --git a/doc/classes/SoftBody.xml b/doc/classes/SoftBody.xml index 5cde31fa59..e4a5087db5 100644 --- a/doc/classes/SoftBody.xml +++ b/doc/classes/SoftBody.xml @@ -7,6 +7,7 @@ A deformable physics body. Used to create elastic or deformable objects such as cloth, rubber, or other flexible materials. </description> <tutorials> + <link>https://docs.godotengine.org/en/latest/tutorials/physics/soft_body.html</link> </tutorials> <methods> <method name="add_collision_exception_with"> @@ -43,12 +44,6 @@ Returns an individual bit on the collision mask. </description> </method> - <method name="is_ray_pickable" qualifiers="const"> - <return type="bool"> - </return> - <description> - </description> - </method> <method name="remove_collision_exception_with"> <return type="void"> </return> @@ -80,25 +75,20 @@ Sets individual bits on the collision mask. Use this if you only need to change one layer's value. </description> </method> - <method name="set_ray_pickable"> - <return type="void"> - </return> - <argument index="0" name="ray_pickable" type="bool"> - </argument> - <description> - </description> - </method> </methods> <members> + <member name="ray_pickable" type="bool" setter="set_ray_pickable" getter="is_ray_pickable" default="false"> + If true, the [SoftBody] will respond to [RayCast]s. + </member> <member name="areaAngular_stiffness" type="float" setter="set_areaAngular_stiffness" getter="get_areaAngular_stiffness" default="0.5"> </member> <member name="collision_layer" type="int" setter="set_collision_layer" getter="get_collision_layer" default="1"> - The physics layers this area is in. + The physics layers this SoftBody is in. Collidable objects can exist in any of 32 different layers. These layers work like a tagging system, and are not visual. A collidable can use these layers to select with which objects it can collide, using the collision_mask property. A contact is detected if object A is in any of the layers that object B scans, or object B is in any layer scanned by object A. </member> <member name="collision_mask" type="int" setter="set_collision_mask" getter="get_collision_mask" default="1"> - The physics layers this area scans for collisions. + The physics layers this SoftBody scans for collisions. </member> <member name="damping_coefficient" type="float" setter="set_damping_coefficient" getter="get_damping_coefficient" default="0.01"> </member> @@ -107,6 +97,7 @@ <member name="linear_stiffness" type="float" setter="set_linear_stiffness" getter="get_linear_stiffness" default="0.5"> </member> <member name="parent_collision_ignore" type="NodePath" setter="set_parent_collision_ignore" getter="get_parent_collision_ignore" default="NodePath("")"> + [NodePath] to a [CollisionObject] this SoftBody should avoid clipping. </member> <member name="pose_matching_coefficient" type="float" setter="set_pose_matching_coefficient" getter="get_pose_matching_coefficient" default="0.0"> </member> @@ -116,6 +107,7 @@ Increasing this value will improve the resulting simulation, but can affect performance. Use with care. </member> <member name="total_mass" type="float" setter="set_total_mass" getter="get_total_mass" default="1.0"> + The SoftBody's mass. </member> <member name="volume_stiffness" type="float" setter="set_volume_stiffness" getter="get_volume_stiffness" default="0.5"> </member> diff --git a/doc/classes/Spatial.xml b/doc/classes/Spatial.xml index 09a5bf3b8f..0309e73eec 100644 --- a/doc/classes/Spatial.xml +++ b/doc/classes/Spatial.xml @@ -15,6 +15,7 @@ <return type="void"> </return> <description> + Forces the transform to update. Transform changes in physics are not instant for performance reasons. Transforms are accumulated and then set. Use this if you need an up-to-date transform when doing physics operations. </description> </method> <method name="get_parent_spatial" qualifiers="const"> @@ -48,6 +49,7 @@ <argument index="0" name="scale" type="Vector3"> </argument> <description> + Scales the global (world) transformation by the given [Vector3] scale factors. </description> </method> <method name="global_translate"> @@ -77,6 +79,7 @@ <return type="bool"> </return> <description> + Returns whether this node uses a scale of [code](1, 1, 1)[/code] or its local transformation scale. </description> </method> <method name="is_set_as_toplevel" qualifiers="const"> @@ -206,6 +209,7 @@ <argument index="0" name="disable" type="bool"> </argument> <description> + Sets whether the node uses a scale of [code](1, 1, 1)[/code] or its local transformation scale. Changes to the local transformation scale are preserved. </description> </method> <method name="set_identity"> diff --git a/doc/classes/TextEdit.xml b/doc/classes/TextEdit.xml index 8a114efd34..71a949a4af 100644 --- a/doc/classes/TextEdit.xml +++ b/doc/classes/TextEdit.xml @@ -54,7 +54,7 @@ <return type="void"> </return> <description> - Clears all the syntax coloring information. + Clears all custom syntax coloring information previously added with [method add_color_region] or [method add_keyword_color]. </description> </method> <method name="clear_undo_history"> @@ -310,7 +310,15 @@ <argument index="3" name="from_column" type="int"> </argument> <description> - Perform a search inside the text. Search flags can be specified in the[code]SEARCH_*[/code] enum. + Perform a search inside the text. Search flags can be specified in the [code]SEARCH_*[/code] enum. + Returns an empty [code]PoolIntArray[/code] if no result was found. Otherwise, the result line and column can be accessed at indices specified in the [code]SEARCH_RESULT_*[/code] enum, e.g: + [codeblock] + var result = search(key, flags, line, column) + if result.size() > 0: + # result found + var res_line = result[TextEdit.SEARCH_RESULT_LINE] + var res_column = result[TextEdit.SEARCH_RESULT_COLUMN] + [/codeblock] </description> </method> <method name="select"> @@ -504,6 +512,12 @@ <constant name="SEARCH_BACKWARDS" value="4" enum="SearchFlags"> Search from end to beginning. </constant> + <constant name="SEARCH_RESULT_COLUMN" value="0" enum="SearchResult"> + Used to access the result column from [member search]. + </constant> + <constant name="SEARCH_RESULT_LINE" value="1" enum="SearchResult"> + Used to access the result line from [member search]. + </constant> <constant name="MENU_CUT" value="0" enum="MenuItems"> Cuts (Copies and clears) the selected text. </constant> @@ -530,7 +544,7 @@ </constant> </constants> <theme_items> - <theme_item name="background_color" type="Color" default="Color( 0, 0, 0, 1 )"> + <theme_item name="background_color" type="Color" default="Color( 0, 0, 0, 0 )"> Sets the background [Color] of this [TextEdit]. [member syntax_highlighting] has to be enabled. </theme_item> <theme_item name="bookmark_color" type="Color" default="Color( 0.08, 0.49, 0.98, 1 )"> diff --git a/doc/classes/Theme.xml b/doc/classes/Theme.xml index e4db9243ef..dd12c5af23 100644 --- a/doc/classes/Theme.xml +++ b/doc/classes/Theme.xml @@ -15,6 +15,7 @@ <return type="void"> </return> <description> + Clears all values on the theme. </description> </method> <method name="clear_color"> @@ -85,6 +86,7 @@ <argument index="0" name="other" type="Theme"> </argument> <description> + Sets the Theme's values to a copy of a given theme. </description> </method> <method name="get_color" qualifiers="const"> diff --git a/doc/classes/TreeItem.xml b/doc/classes/TreeItem.xml index a4c976591f..c77388e5f4 100644 --- a/doc/classes/TreeItem.xml +++ b/doc/classes/TreeItem.xml @@ -26,6 +26,15 @@ Adds a button with [Texture] [code]button[/code] at column [code]column[/code]. The [code]button_idx[/code] index is used to identify the button when calling other methods. If not specified, the next available index is used, which may be retrieved by calling [method get_button_count] immediately after this method. Optionally, the button can be [code]disabled[/code] and have a [code]tooltip[/code]. </description> </method> + <method name="call_recursive" qualifiers="vararg"> + <return type="Variant"> + </return> + <argument index="0" name="method" type="String"> + </argument> + <description> + Calls the [code]method[/code] on the actual TreeItem and its children recursively. Pass parameters as a comma separated list. + </description> + </method> <method name="clear_custom_bg_color"> <return type="void"> </return> @@ -594,15 +603,6 @@ Sets the given column's tooltip text. </description> </method> - <method name="call_recursive" qualifiers="vararg"> - <return type="Variant"> - </return> - <argument index="0" name="method" type="String"> - </argument> - <description> - Calls the [code]method[/code] on the actual TreeItem and its children recursively. Pass parameters as a comma separated list. - </description> - </method> </methods> <members> <member name="collapsed" type="bool" setter="set_collapsed" getter="is_collapsed"> diff --git a/doc/classes/VideoPlayer.xml b/doc/classes/VideoPlayer.xml index 2215f26c23..804489f7f1 100644 --- a/doc/classes/VideoPlayer.xml +++ b/doc/classes/VideoPlayer.xml @@ -16,7 +16,7 @@ Returns the video stream's name. </description> </method> - <method name="get_video_texture"> + <method name="get_video_texture" qualifiers="const"> <return type="Texture"> </return> <description> diff --git a/doc/classes/VisualShader.xml b/doc/classes/VisualShader.xml index 7d7002e752..15216948e4 100644 --- a/doc/classes/VisualShader.xml +++ b/doc/classes/VisualShader.xml @@ -1,8 +1,11 @@ <?xml version="1.0" encoding="UTF-8" ?> <class name="VisualShader" inherits="Shader" category="Core" version="3.2"> <brief_description> + A custom shader program with a visual editor. </brief_description> <description> + This class allows you to define a custom shader program that can be used for various materials to render objects. + The visual shader editor creates the shader. </description> <tutorials> </tutorials> @@ -145,12 +148,6 @@ <description> </description> </method> - <method name="rebuild"> - <return type="void"> - </return> - <description> - </description> - </method> <method name="remove_node"> <return type="void"> </return> diff --git a/doc/classes/VisualShaderNodeCubeMap.xml b/doc/classes/VisualShaderNodeCubeMap.xml index 36465a6b4d..29ebe95086 100644 --- a/doc/classes/VisualShaderNodeCubeMap.xml +++ b/doc/classes/VisualShaderNodeCubeMap.xml @@ -12,10 +12,16 @@ <member name="cube_map" type="CubeMap" setter="set_cube_map" getter="get_cube_map"> </member> <member name="default_input_values" type="Array" setter="_set_default_input_values" getter="_get_default_input_values" override="true" default="[ ]" /> + <member name="source" type="int" setter="set_source" getter="get_source" enum="VisualShaderNodeCubeMap.Source" default="0"> + </member> <member name="texture_type" type="int" setter="set_texture_type" getter="get_texture_type" enum="VisualShaderNodeCubeMap.TextureType" default="0"> </member> </members> <constants> + <constant name="SOURCE_TEXTURE" value="0" enum="Source"> + </constant> + <constant name="SOURCE_PORT" value="1" enum="Source"> + </constant> <constant name="TYPE_DATA" value="0" enum="TextureType"> </constant> <constant name="TYPE_COLOR" value="1" enum="TextureType"> diff --git a/doc/classes/VisualShaderNodeCubeMapUniform.xml b/doc/classes/VisualShaderNodeCubeMapUniform.xml index ad34e7d30c..c6b3db5a9d 100644 --- a/doc/classes/VisualShaderNodeCubeMapUniform.xml +++ b/doc/classes/VisualShaderNodeCubeMapUniform.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="VisualShaderNodeCubeMapUniform" inherits="VisualShaderNode" category="Core" version="3.2"> +<class name="VisualShaderNodeCubeMapUniform" inherits="VisualShaderNodeTextureUniform" category="Core" version="3.2"> <brief_description> </brief_description> <description> @@ -8,9 +8,6 @@ </tutorials> <methods> </methods> - <members> - <member name="default_input_values" type="Array" setter="_set_default_input_values" getter="_get_default_input_values" override="true" default="[ ]" /> - </members> <constants> </constants> </class> diff --git a/doc/tools/doc_status.py b/doc/tools/doc_status.py index 974ac2d05c..6e34cffc05 100644 --- a/doc/tools/doc_status.py +++ b/doc/tools/doc_status.py @@ -259,7 +259,8 @@ class ClassStatus: status.progresses[tag.tag].increment(len(descr.text.strip()) > 0) elif tag.tag in ['constants', 'members']: for sub_tag in list(tag): - status.progresses[tag.tag].increment(len(sub_tag.text.strip()) > 0) + if not sub_tag.text is None: + status.progresses[tag.tag].increment(len(sub_tag.text.strip()) > 0) elif tag.tag in ['tutorials']: pass # Ignore those tags for now diff --git a/doc/tools/makerst.py b/doc/tools/makerst.py index 1b27e4a35a..ef38299680 100755 --- a/doc/tools/makerst.py +++ b/doc/tools/makerst.py @@ -435,21 +435,30 @@ def make_rst_class(class_def, state, dry_run, output_dir): # type: (ClassDef, S # Signals if len(class_def.signals) > 0: f.write(make_heading('Signals', '-')) + index = 0 + for signal in class_def.signals.values(): - #f.write(".. _class_{}_{}:\n\n".format(class_name, signal.name)) + if index != 0: + f.write('----\n\n') + f.write(".. _class_{}_signal_{}:\n\n".format(class_name, signal.name)) _, signature = make_method_signature(class_def, signal, False, state) f.write("- {}\n\n".format(signature)) - if signal.description is None or signal.description.strip() == '': - continue - f.write(rstize_text(signal.description.strip(), state)) - f.write("\n\n") + if signal.description is not None and signal.description.strip() != '': + f.write(rstize_text(signal.description.strip(), state) + '\n\n') + + index += 1 # Enums if len(class_def.enums) > 0: f.write(make_heading('Enumerations', '-')) + index = 0 + for e in class_def.enums.values(): + if index != 0: + f.write('----\n\n') + f.write(".. _enum_{}_{}:\n\n".format(class_name, e.name)) # Sphinx seems to divide the bullet list into individual <ul> tags if we weave the labels into it. # As such I'll put them all above the list. Won't be perfect but better than making the list visually broken. @@ -463,8 +472,11 @@ def make_rst_class(class_def, state, dry_run, output_dir): # type: (ClassDef, S f.write("- **{}** = **{}**".format(value.name, value.value)) if value.text is not None and value.text.strip() != '': f.write(' --- ' + rstize_text(value.text.strip(), state)) + f.write('\n\n') + index += 1 + # Constants if len(class_def.constants) > 0: f.write(make_heading('Constants', '-')) @@ -477,6 +489,7 @@ def make_rst_class(class_def, state, dry_run, output_dir): # type: (ClassDef, S f.write("- **{}** = **{}**".format(constant.name, constant.value)) if constant.text is not None and constant.text.strip() != '': f.write(' --- ' + rstize_text(constant.text.strip(), state)) + f.write('\n\n') # Class description @@ -494,11 +507,15 @@ def make_rst_class(class_def, state, dry_run, output_dir): # type: (ClassDef, S # Property descriptions if any(not p.overridden for p in class_def.properties.values()) > 0: f.write(make_heading('Property Descriptions', '-')) + index = 0 + for property_def in class_def.properties.values(): if property_def.overridden: continue - #f.write(".. _class_{}_{}:\n\n".format(class_name, property_def.name)) + if index != 0: + f.write('----\n\n') + f.write(".. _class_{}_property_{}:\n\n".format(class_name, property_def.name)) f.write('- {} **{}**\n\n'.format(property_def.type_name.to_rst(state), property_def.name)) @@ -514,24 +531,30 @@ def make_rst_class(class_def, state, dry_run, output_dir): # type: (ClassDef, S format_table(f, info) if property_def.text is not None and property_def.text.strip() != '': - f.write(rstize_text(property_def.text.strip(), state)) - f.write('\n\n') + f.write(rstize_text(property_def.text.strip(), state) + '\n\n') + + index += 1 # Method descriptions if len(class_def.methods) > 0: f.write(make_heading('Method Descriptions', '-')) + index = 0 + for method_list in class_def.methods.values(): for i, m in enumerate(method_list): + if index != 0: + f.write('----\n\n') + if i == 0: - #f.write(".. _class_{}_{}:\n\n".format(class_name, m.name)) f.write(".. _class_{}_method_{}:\n\n".format(class_name, m.name)) + ret_type, signature = make_method_signature(class_def, m, False, state) f.write("- {} {}\n\n".format(ret_type, signature)) - if m.description is None or m.description.strip() == '': - continue - f.write(rstize_text(m.description.strip(), state)) - f.write("\n\n") + if m.description is not None and m.description.strip() != '': + f.write(rstize_text(m.description.strip(), state) + '\n\n') + + index += 1 def make_class_list(class_list, columns): # type: (List[str], int) -> None @@ -897,7 +920,7 @@ def rstize_text(text, state): # type: (str, State) -> str def format_table(f, data, remove_empty_columns=False): # type: (TextIO, Iterable[Tuple[str, ...]]) -> None if len(data) == 0: return - + column_sizes = [0] * len(data[0]) for row in data: for i, text in enumerate(row): @@ -912,7 +935,7 @@ def format_table(f, data, remove_empty_columns=False): # type: (TextIO, Iterabl sep += "+" + "-" * (size + 2) sep += "+\n" f.write(sep) - + for row in data: row_text = "|" for i, text in enumerate(row): diff --git a/drivers/coreaudio/audio_driver_coreaudio.cpp b/drivers/coreaudio/audio_driver_coreaudio.cpp index 3b06c47244..9081fccd3a 100644 --- a/drivers/coreaudio/audio_driver_coreaudio.cpp +++ b/drivers/coreaudio/audio_driver_coreaudio.cpp @@ -186,15 +186,15 @@ OSStatus AudioDriverCoreAudio::output_callback(void *inRefCon, for (unsigned int i = 0; i < ioData->mNumberBuffers; i++) { AudioBuffer *abuf = &ioData->mBuffers[i]; - int frames_left = inNumberFrames; + unsigned int frames_left = inNumberFrames; int16_t *out = (int16_t *)abuf->mData; while (frames_left) { - int frames = MIN(frames_left, ad->buffer_frames); + unsigned int frames = MIN(frames_left, ad->buffer_frames); ad->audio_server_process(frames, ad->samples_in.ptrw()); - for (int j = 0; j < frames * ad->channels; j++) { + for (unsigned int j = 0; j < frames * ad->channels; j++) { out[j] = ad->samples_in[j] >> 16; } @@ -231,7 +231,7 @@ OSStatus AudioDriverCoreAudio::input_callback(void *inRefCon, OSStatus result = AudioUnitRender(ad->input_unit, ioActionFlags, inTimeStamp, inBusNumber, inNumberFrames, &bufferList); if (result == noErr) { - for (int i = 0; i < inNumberFrames * ad->capture_channels; i++) { + for (unsigned int i = 0; i < inNumberFrames * ad->capture_channels; i++) { int32_t sample = ad->input_buf[i] << 16; ad->capture_buffer_write(sample); diff --git a/drivers/coremidi/midi_driver_coremidi.cpp b/drivers/coremidi/midi_driver_coremidi.cpp index 7a92ac0702..28665b5190 100644 --- a/drivers/coremidi/midi_driver_coremidi.cpp +++ b/drivers/coremidi/midi_driver_coremidi.cpp @@ -39,7 +39,7 @@ void MIDIDriverCoreMidi::read(const MIDIPacketList *packet_list, void *read_proc_ref_con, void *src_conn_ref_con) { MIDIPacket *packet = const_cast<MIDIPacket *>(packet_list->packet); - for (int i = 0; i < packet_list->numPackets; i++) { + for (UInt32 i = 0; i < packet_list->numPackets; i++) { receive_input_packet(packet->timeStamp, packet->data, packet->length); packet = MIDIPacketNext(packet); } diff --git a/drivers/gles2/rasterizer_canvas_gles2.cpp b/drivers/gles2/rasterizer_canvas_gles2.cpp index 6be48a4c58..16e5e92abd 100644 --- a/drivers/gles2/rasterizer_canvas_gles2.cpp +++ b/drivers/gles2/rasterizer_canvas_gles2.cpp @@ -494,8 +494,10 @@ void RasterizerCanvasGLES2::_canvas_item_render_commands(Item *p_item, Item *cur if (line->width <= 1) { Vector2 verts[2] = { - Vector2(line->from.x, line->from.y), - Vector2(line->to.x, line->to.y) + // Offset the line slightly to make sure we always draw the pixel at the from coordinate. + // Without this, corners of rectangles might be missing a pixel. (See diamond exit rule and #32657) + Vector2(Math::floor(line->from.x) + 0.5, Math::floor(line->from.y) + 0.5), + Vector2(Math::floor(line->to.x) + 0.5, Math::floor(line->to.y) + 0.5) }; #ifdef GLES_OVER_GL @@ -761,6 +763,14 @@ void RasterizerCanvasGLES2::_canvas_item_render_commands(Item *p_item, Item *cur source.size.y = tex->height; } + float screen_scale = 1.0; + + if (source.size.x != 0 && source.size.y != 0) { + + screen_scale = MIN(np->rect.size.x / source.size.x, np->rect.size.y / source.size.y); + screen_scale = MIN(1.0, screen_scale); + } + // prepare vertex buffer // this buffer contains [ POS POS UV UV ] * @@ -777,13 +787,13 @@ void RasterizerCanvasGLES2::_canvas_item_render_commands(Item *p_item, Item *cur buffer[(0 * 4 * 4) + 2] = source.position.x * texpixel_size.x; buffer[(0 * 4 * 4) + 3] = source.position.y * texpixel_size.y; - buffer[(0 * 4 * 4) + 4] = np->rect.position.x + np->margin[MARGIN_LEFT]; + buffer[(0 * 4 * 4) + 4] = np->rect.position.x + np->margin[MARGIN_LEFT] * screen_scale; buffer[(0 * 4 * 4) + 5] = np->rect.position.y; buffer[(0 * 4 * 4) + 6] = (source.position.x + np->margin[MARGIN_LEFT]) * texpixel_size.x; buffer[(0 * 4 * 4) + 7] = source.position.y * texpixel_size.y; - buffer[(0 * 4 * 4) + 8] = np->rect.position.x + np->rect.size.x - np->margin[MARGIN_RIGHT]; + buffer[(0 * 4 * 4) + 8] = np->rect.position.x + np->rect.size.x - np->margin[MARGIN_RIGHT] * screen_scale; buffer[(0 * 4 * 4) + 9] = np->rect.position.y; buffer[(0 * 4 * 4) + 10] = (source.position.x + source.size.x - np->margin[MARGIN_RIGHT]) * texpixel_size.x; @@ -798,25 +808,25 @@ void RasterizerCanvasGLES2::_canvas_item_render_commands(Item *p_item, Item *cur // second row buffer[(1 * 4 * 4) + 0] = np->rect.position.x; - buffer[(1 * 4 * 4) + 1] = np->rect.position.y + np->margin[MARGIN_TOP]; + buffer[(1 * 4 * 4) + 1] = np->rect.position.y + np->margin[MARGIN_TOP] * screen_scale; buffer[(1 * 4 * 4) + 2] = source.position.x * texpixel_size.x; buffer[(1 * 4 * 4) + 3] = (source.position.y + np->margin[MARGIN_TOP]) * texpixel_size.y; - buffer[(1 * 4 * 4) + 4] = np->rect.position.x + np->margin[MARGIN_LEFT]; - buffer[(1 * 4 * 4) + 5] = np->rect.position.y + np->margin[MARGIN_TOP]; + buffer[(1 * 4 * 4) + 4] = np->rect.position.x + np->margin[MARGIN_LEFT] * screen_scale; + buffer[(1 * 4 * 4) + 5] = np->rect.position.y + np->margin[MARGIN_TOP] * screen_scale; buffer[(1 * 4 * 4) + 6] = (source.position.x + np->margin[MARGIN_LEFT]) * texpixel_size.x; buffer[(1 * 4 * 4) + 7] = (source.position.y + np->margin[MARGIN_TOP]) * texpixel_size.y; - buffer[(1 * 4 * 4) + 8] = np->rect.position.x + np->rect.size.x - np->margin[MARGIN_RIGHT]; - buffer[(1 * 4 * 4) + 9] = np->rect.position.y + np->margin[MARGIN_TOP]; + buffer[(1 * 4 * 4) + 8] = np->rect.position.x + np->rect.size.x - np->margin[MARGIN_RIGHT] * screen_scale; + buffer[(1 * 4 * 4) + 9] = np->rect.position.y + np->margin[MARGIN_TOP] * screen_scale; buffer[(1 * 4 * 4) + 10] = (source.position.x + source.size.x - np->margin[MARGIN_RIGHT]) * texpixel_size.x; buffer[(1 * 4 * 4) + 11] = (source.position.y + np->margin[MARGIN_TOP]) * texpixel_size.y; buffer[(1 * 4 * 4) + 12] = np->rect.position.x + np->rect.size.x; - buffer[(1 * 4 * 4) + 13] = np->rect.position.y + np->margin[MARGIN_TOP]; + buffer[(1 * 4 * 4) + 13] = np->rect.position.y + np->margin[MARGIN_TOP] * screen_scale; buffer[(1 * 4 * 4) + 14] = (source.position.x + source.size.x) * texpixel_size.x; buffer[(1 * 4 * 4) + 15] = (source.position.y + np->margin[MARGIN_TOP]) * texpixel_size.y; @@ -824,25 +834,25 @@ void RasterizerCanvasGLES2::_canvas_item_render_commands(Item *p_item, Item *cur // third row buffer[(2 * 4 * 4) + 0] = np->rect.position.x; - buffer[(2 * 4 * 4) + 1] = np->rect.position.y + np->rect.size.y - np->margin[MARGIN_BOTTOM]; + buffer[(2 * 4 * 4) + 1] = np->rect.position.y + np->rect.size.y - np->margin[MARGIN_BOTTOM] * screen_scale; buffer[(2 * 4 * 4) + 2] = source.position.x * texpixel_size.x; buffer[(2 * 4 * 4) + 3] = (source.position.y + source.size.y - np->margin[MARGIN_BOTTOM]) * texpixel_size.y; - buffer[(2 * 4 * 4) + 4] = np->rect.position.x + np->margin[MARGIN_LEFT]; - buffer[(2 * 4 * 4) + 5] = np->rect.position.y + np->rect.size.y - np->margin[MARGIN_BOTTOM]; + buffer[(2 * 4 * 4) + 4] = np->rect.position.x + np->margin[MARGIN_LEFT] * screen_scale; + buffer[(2 * 4 * 4) + 5] = np->rect.position.y + np->rect.size.y - np->margin[MARGIN_BOTTOM] * screen_scale; buffer[(2 * 4 * 4) + 6] = (source.position.x + np->margin[MARGIN_LEFT]) * texpixel_size.x; buffer[(2 * 4 * 4) + 7] = (source.position.y + source.size.y - np->margin[MARGIN_BOTTOM]) * texpixel_size.y; - buffer[(2 * 4 * 4) + 8] = np->rect.position.x + np->rect.size.x - np->margin[MARGIN_RIGHT]; - buffer[(2 * 4 * 4) + 9] = np->rect.position.y + np->rect.size.y - np->margin[MARGIN_BOTTOM]; + buffer[(2 * 4 * 4) + 8] = np->rect.position.x + np->rect.size.x - np->margin[MARGIN_RIGHT] * screen_scale; + buffer[(2 * 4 * 4) + 9] = np->rect.position.y + np->rect.size.y - np->margin[MARGIN_BOTTOM] * screen_scale; buffer[(2 * 4 * 4) + 10] = (source.position.x + source.size.x - np->margin[MARGIN_RIGHT]) * texpixel_size.x; buffer[(2 * 4 * 4) + 11] = (source.position.y + source.size.y - np->margin[MARGIN_BOTTOM]) * texpixel_size.y; buffer[(2 * 4 * 4) + 12] = np->rect.position.x + np->rect.size.x; - buffer[(2 * 4 * 4) + 13] = np->rect.position.y + np->rect.size.y - np->margin[MARGIN_BOTTOM]; + buffer[(2 * 4 * 4) + 13] = np->rect.position.y + np->rect.size.y - np->margin[MARGIN_BOTTOM] * screen_scale; buffer[(2 * 4 * 4) + 14] = (source.position.x + source.size.x) * texpixel_size.x; buffer[(2 * 4 * 4) + 15] = (source.position.y + source.size.y - np->margin[MARGIN_BOTTOM]) * texpixel_size.y; @@ -855,13 +865,13 @@ void RasterizerCanvasGLES2::_canvas_item_render_commands(Item *p_item, Item *cur buffer[(3 * 4 * 4) + 2] = source.position.x * texpixel_size.x; buffer[(3 * 4 * 4) + 3] = (source.position.y + source.size.y) * texpixel_size.y; - buffer[(3 * 4 * 4) + 4] = np->rect.position.x + np->margin[MARGIN_LEFT]; + buffer[(3 * 4 * 4) + 4] = np->rect.position.x + np->margin[MARGIN_LEFT] * screen_scale; buffer[(3 * 4 * 4) + 5] = np->rect.position.y + np->rect.size.y; buffer[(3 * 4 * 4) + 6] = (source.position.x + np->margin[MARGIN_LEFT]) * texpixel_size.x; buffer[(3 * 4 * 4) + 7] = (source.position.y + source.size.y) * texpixel_size.y; - buffer[(3 * 4 * 4) + 8] = np->rect.position.x + np->rect.size.x - np->margin[MARGIN_RIGHT]; + buffer[(3 * 4 * 4) + 8] = np->rect.position.x + np->rect.size.x - np->margin[MARGIN_RIGHT] * screen_scale; buffer[(3 * 4 * 4) + 9] = np->rect.position.y + np->rect.size.y; buffer[(3 * 4 * 4) + 10] = (source.position.x + source.size.x - np->margin[MARGIN_RIGHT]) * texpixel_size.x; diff --git a/drivers/gles2/rasterizer_scene_gles2.cpp b/drivers/gles2/rasterizer_scene_gles2.cpp index 088ce3d198..f712219a64 100644 --- a/drivers/gles2/rasterizer_scene_gles2.cpp +++ b/drivers/gles2/rasterizer_scene_gles2.cpp @@ -131,7 +131,7 @@ void RasterizerSceneGLES2::shadow_atlas_set_size(RID p_atlas, int p_size) { //maximum compatibility, renderbuffer and RGBA shadow glGenRenderbuffers(1, &shadow_atlas->depth); - glBindRenderbuffer(GL_RENDERBUFFER, directional_shadow.depth); + glBindRenderbuffer(GL_RENDERBUFFER, shadow_atlas->depth); glRenderbufferStorage(GL_RENDERBUFFER, storage->config.depth_internalformat, shadow_atlas->size, shadow_atlas->size); glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, shadow_atlas->depth); @@ -3769,6 +3769,10 @@ void RasterizerSceneGLES2::render_shadow(RID p_light, RID p_shadow_atlas, int p_ glEnable(GL_SCISSOR_TEST); glClearDepth(1.0f); glClear(GL_DEPTH_BUFFER_BIT); + if (storage->config.use_rgba_3d_shadows) { + glClearColor(1.0, 1.0, 1.0, 1.0); + glClear(GL_COLOR_BUFFER_BIT); + } glDisable(GL_SCISSOR_TEST); if (light->reverse_cull) { diff --git a/drivers/gles2/rasterizer_storage_gles2.cpp b/drivers/gles2/rasterizer_storage_gles2.cpp index 451d6adaa9..b55b623632 100644 --- a/drivers/gles2/rasterizer_storage_gles2.cpp +++ b/drivers/gles2/rasterizer_storage_gles2.cpp @@ -114,7 +114,7 @@ void RasterizerStorageGLES2::bind_quad_array() const { glEnableVertexAttribArray(VS::ARRAY_TEX_UV); } -Ref<Image> RasterizerStorageGLES2::_get_gl_image_and_format(const Ref<Image> &p_image, Image::Format p_format, uint32_t p_flags, Image::Format &r_real_format, GLenum &r_gl_format, GLenum &r_gl_internal_format, GLenum &r_gl_type, bool &r_compressed, bool p_will_need_resize) const { +Ref<Image> RasterizerStorageGLES2::_get_gl_image_and_format(const Ref<Image> &p_image, Image::Format p_format, uint32_t p_flags, Image::Format &r_real_format, GLenum &r_gl_format, GLenum &r_gl_internal_format, GLenum &r_gl_type, bool &r_compressed, bool p_force_decompress) const { r_gl_format = 0; Ref<Image> image = p_image; @@ -261,7 +261,7 @@ Ref<Image> RasterizerStorageGLES2::_get_gl_image_and_format(const Ref<Image> &p_ } break; case Image::FORMAT_DXT1: { - if (config.s3tc_supported && !p_will_need_resize) { + if (config.s3tc_supported) { r_gl_internal_format = _EXT_COMPRESSED_RGBA_S3TC_DXT1_EXT; r_gl_format = GL_RGBA; r_gl_type = GL_UNSIGNED_BYTE; @@ -273,7 +273,7 @@ Ref<Image> RasterizerStorageGLES2::_get_gl_image_and_format(const Ref<Image> &p_ } break; case Image::FORMAT_DXT3: { - if (config.s3tc_supported && !p_will_need_resize) { + if (config.s3tc_supported) { r_gl_internal_format = _EXT_COMPRESSED_RGBA_S3TC_DXT3_EXT; r_gl_format = GL_RGBA; r_gl_type = GL_UNSIGNED_BYTE; @@ -285,7 +285,7 @@ Ref<Image> RasterizerStorageGLES2::_get_gl_image_and_format(const Ref<Image> &p_ } break; case Image::FORMAT_DXT5: { - if (config.s3tc_supported && !p_will_need_resize) { + if (config.s3tc_supported) { r_gl_internal_format = _EXT_COMPRESSED_RGBA_S3TC_DXT5_EXT; r_gl_format = GL_RGBA; r_gl_type = GL_UNSIGNED_BYTE; @@ -424,7 +424,7 @@ Ref<Image> RasterizerStorageGLES2::_get_gl_image_and_format(const Ref<Image> &p_ } break; case Image::FORMAT_ETC: { - if (config.etc1_supported && !p_will_need_resize) { + if (config.etc1_supported) { r_gl_internal_format = _EXT_ETC1_RGB8_OES; r_gl_format = GL_RGBA; r_gl_type = GL_UNSIGNED_BYTE; @@ -467,7 +467,7 @@ Ref<Image> RasterizerStorageGLES2::_get_gl_image_and_format(const Ref<Image> &p_ } } - if (need_decompress) { + if (need_decompress || p_force_decompress) { if (!image.is_null()) { @@ -638,7 +638,7 @@ void RasterizerStorageGLES2::texture_set_data(RID p_texture, const Ref<Image> &p if (texture->resize_to_po2) { if (p_image->is_compressed()) { - ERR_PRINTS("Texture '" + texture->path + "' was required to be a power of 2 (because it uses either mipmaps or repeat), so it was decompressed. This will hurt performance and memory usage."); + ERR_PRINTS("Texture '" + texture->path + "' is required to be a power of 2 because it uses either mipmaps or repeat, so it was decompressed. This will hurt performance and memory usage."); } if (img == p_image) { @@ -659,12 +659,13 @@ void RasterizerStorageGLES2::texture_set_data(RID p_texture, const Ref<Image> &p img->resize(texture->alloc_width, texture->alloc_height, Image::INTERPOLATE_BILINEAR); } - }; + } GLenum blit_target = (texture->target == GL_TEXTURE_CUBE_MAP) ? _cube_side_enum[p_layer] : GL_TEXTURE_2D; texture->data_size = img->get_data().size(); PoolVector<uint8_t>::Read read = img->get_data().read(); + ERR_FAIL_COND(!read.ptr()); glActiveTexture(GL_TEXTURE0); glBindTexture(texture->target, texture->tex_id); @@ -718,7 +719,7 @@ void RasterizerStorageGLES2::texture_set_data(RID p_texture, const Ref<Image> &p int size, ofs; img->get_mipmap_offset_and_size(i, ofs, size); - if (texture->compressed) { + if (compressed) { glPixelStorei(GL_UNPACK_ALIGNMENT, 4); int bw = w; @@ -3236,12 +3237,14 @@ Color RasterizerStorageGLES2::multimesh_instance_get_custom_data(RID p_multimesh void RasterizerStorageGLES2::multimesh_set_as_bulk_array(RID p_multimesh, const PoolVector<float> &p_array) { MultiMesh *multimesh = multimesh_owner.getornull(p_multimesh); ERR_FAIL_COND(!multimesh); + ERR_FAIL_COND(!multimesh->data.ptr()); int dsize = multimesh->data.size(); ERR_FAIL_COND(dsize != p_array.size()); PoolVector<float>::Read r = p_array.read(); + ERR_FAIL_COND(!r.ptr()); copymem(multimesh->data.ptrw(), r.ptr(), dsize * sizeof(float)); multimesh->dirty_data = true; @@ -4733,21 +4736,39 @@ void RasterizerStorageGLES2::_render_target_allocate(RenderTarget *rt) { glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); - glFramebufferTexture2DMultisample(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, rt->color, 0, msaa); + glFramebufferTexture2DMultisample(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, rt->multisample_color, 0, msaa); #endif GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER); if (status != GL_FRAMEBUFFER_COMPLETE) { + // Delete allocated resources and default to no MSAA + WARN_PRINT_ONCE("Cannot allocate back framebuffer for MSAA"); printf("err status: %x\n", status); - _render_target_clear(rt); - ERR_FAIL_COND(status != GL_FRAMEBUFFER_COMPLETE); + config.multisample_supported = false; + rt->multisample_active = false; + + glDeleteFramebuffers(1, &rt->multisample_fbo); + rt->multisample_fbo = 0; + + glDeleteRenderbuffers(1, &rt->multisample_depth); + rt->multisample_depth = 0; +#ifdef ANDROID_ENABLED + glDeleteTextures(1, &rt->multisample_color); +#else + glDeleteRenderbuffers(1, &rt->multisample_color); +#endif + rt->multisample_color = 0; } glBindRenderbuffer(GL_RENDERBUFFER, 0); + glBindFramebuffer(GL_FRAMEBUFFER, 0); +#ifdef ANDROID_ENABLED + glBindTexture(GL_TEXTURE_2D, 0); +#endif } else -#endif +#endif // JAVASCRIPT_ENABLED { rt->multisample_active = false; } @@ -4983,10 +5004,10 @@ void RasterizerStorageGLES2::_render_target_clear(RenderTarget *rt) { glDeleteRenderbuffers(1, &rt->multisample_depth); rt->multisample_depth = 0; -#ifdef GLES_OVER_GL - glDeleteRenderbuffers(1, &rt->multisample_color); -#else +#ifdef ANDROID_ENABLED glDeleteTextures(1, &rt->multisample_color); +#else + glDeleteRenderbuffers(1, &rt->multisample_color); #endif rt->multisample_color = 0; } @@ -5732,7 +5753,7 @@ void RasterizerStorageGLES2::initialize() { config.float_texture_supported = config.extensions.has("GL_ARB_texture_float") || config.extensions.has("GL_OES_texture_float"); config.s3tc_supported = config.extensions.has("GL_EXT_texture_compression_s3tc") || config.extensions.has("WEBGL_compressed_texture_s3tc"); config.etc1_supported = config.extensions.has("GL_OES_compressed_ETC1_RGB8_texture") || config.extensions.has("WEBGL_compressed_texture_etc1"); - config.pvrtc_supported = config.extensions.has("IMG_texture_compression_pvrtc"); + config.pvrtc_supported = config.extensions.has("IMG_texture_compression_pvrtc") || config.extensions.has("WEBGL_compressed_texture_pvrtc"); config.support_npot_repeat_mipmap = config.extensions.has("GL_OES_texture_npot"); #endif @@ -5771,7 +5792,7 @@ void RasterizerStorageGLES2::initialize() { config.support_depth_cubemaps = true; #else config.use_rgba_2d_shadows = !(config.float_texture_supported && config.extensions.has("GL_EXT_texture_rg")); - config.support_depth_texture = config.extensions.has("GL_OES_depth_texture"); + config.support_depth_texture = config.extensions.has("GL_OES_depth_texture") || config.extensions.has("WEBGL_depth_texture"); config.use_rgba_3d_shadows = !config.support_depth_texture; config.support_depth_cubemaps = config.extensions.has("GL_OES_depth_texture_cube_map"); #endif @@ -5798,7 +5819,7 @@ void RasterizerStorageGLES2::initialize() { #endif config.rgtc_supported = config.extensions.has("GL_EXT_texture_compression_rgtc") || config.extensions.has("GL_ARB_texture_compression_rgtc") || config.extensions.has("EXT_texture_compression_rgtc"); - config.bptc_supported = config.extensions.has("GL_ARB_texture_compression_bptc"); + config.bptc_supported = config.extensions.has("GL_ARB_texture_compression_bptc") || config.extensions.has("EXT_texture_compression_bptc"); //determine formats for depth textures (or renderbuffers) if (config.support_depth_texture) { diff --git a/drivers/gles2/rasterizer_storage_gles2.h b/drivers/gles2/rasterizer_storage_gles2.h index 2e78910614..27f06074ed 100644 --- a/drivers/gles2/rasterizer_storage_gles2.h +++ b/drivers/gles2/rasterizer_storage_gles2.h @@ -337,7 +337,7 @@ public: mutable RID_Owner<Texture> texture_owner; - Ref<Image> _get_gl_image_and_format(const Ref<Image> &p_image, Image::Format p_format, uint32_t p_flags, Image::Format &r_real_format, GLenum &r_gl_format, GLenum &r_gl_internal_format, GLenum &r_gl_type, bool &r_compressed, bool p_will_need_resize) const; + Ref<Image> _get_gl_image_and_format(const Ref<Image> &p_image, Image::Format p_format, uint32_t p_flags, Image::Format &r_real_format, GLenum &r_gl_format, GLenum &r_gl_internal_format, GLenum &r_gl_type, bool &r_compressed, bool p_force_decompress) const; virtual RID texture_create(); virtual void texture_allocate(RID p_texture, int p_width, int p_height, int p_depth_3d, Image::Format p_format, VS::TextureType p_type, uint32_t p_flags = VS::TEXTURE_FLAGS_DEFAULT); diff --git a/drivers/gles2/shaders/scene.glsl b/drivers/gles2/shaders/scene.glsl index 57c2d886b3..e36e776881 100644 --- a/drivers/gles2/shaders/scene.glsl +++ b/drivers/gles2/shaders/scene.glsl @@ -729,9 +729,6 @@ uniform highp vec2 viewport_size; uniform vec2 screen_pixel_size; #endif -// I think supporting this in GLES2 is difficult -// uniform highp sampler2D depth_buffer; - #if defined(SCREEN_TEXTURE_USED) uniform highp sampler2D screen_texture; //texunit:-4 #endif diff --git a/drivers/gles3/rasterizer_canvas_gles3.cpp b/drivers/gles3/rasterizer_canvas_gles3.cpp index edffe852a2..e09ba755ea 100644 --- a/drivers/gles3/rasterizer_canvas_gles3.cpp +++ b/drivers/gles3/rasterizer_canvas_gles3.cpp @@ -548,8 +548,10 @@ void RasterizerCanvasGLES3::_canvas_item_render_commands(Item *p_item, Item *cur if (line->width <= 1) { Vector2 verts[2] = { - Vector2(line->from.x, line->from.y), - Vector2(line->to.x, line->to.y) + // Offset the line slightly to make sure we always draw the pixel at the from coordinate. + // Without this, corners of rectangles might be missing a pixel. (See diamond exit rule and #32657) + Vector2(Math::floor(line->from.x) + 0.5, Math::floor(line->from.y) + 0.5), + Vector2(Math::floor(line->to.x) + 0.5, Math::floor(line->to.y) + 0.5) }; #ifdef GLES_OVER_GL diff --git a/drivers/gles3/rasterizer_scene_gles3.cpp b/drivers/gles3/rasterizer_scene_gles3.cpp index 35f414cf09..519fdf2b3b 100644 --- a/drivers/gles3/rasterizer_scene_gles3.cpp +++ b/drivers/gles3/rasterizer_scene_gles3.cpp @@ -1093,7 +1093,7 @@ void RasterizerSceneGLES3::gi_probe_instance_set_bounds(RID p_probe, const Vecto //////////////////////////// //////////////////////////// -bool RasterizerSceneGLES3::_setup_material(RasterizerStorageGLES3::Material *p_material, bool p_alpha_pass) { +bool RasterizerSceneGLES3::_setup_material(RasterizerStorageGLES3::Material *p_material, bool p_depth_pass, bool p_alpha_pass) { /* this is handled outside if (p_material->shader->spatial.cull_mode == RasterizerStorageGLES3::Shader::Spatial::CULL_MODE_DISABLED) { @@ -1121,7 +1121,7 @@ bool RasterizerSceneGLES3::_setup_material(RasterizerStorageGLES3::Material *p_m if (state.current_depth_draw != p_material->shader->spatial.depth_draw_mode) { switch (p_material->shader->spatial.depth_draw_mode) { case RasterizerStorageGLES3::Shader::Spatial::DEPTH_DRAW_ALPHA_PREPASS: { - glDepthMask(GL_TRUE); + glDepthMask(p_depth_pass); // If some transparent objects write to depth, we need to re-copy depth texture when we need it if (p_alpha_pass && !state.used_depth_prepass) { state.prepared_depth_texture = false; @@ -2241,7 +2241,7 @@ void RasterizerSceneGLES3::_render_list(RenderList::Element **p_elements, int p_ storage->info.render.material_switch_count++; - rebind = _setup_material(material, p_alpha_pass); + rebind = _setup_material(material, use_opaque_prepass, p_alpha_pass); if (rebind) { storage->info.render.shader_rebind_count++; diff --git a/drivers/gles3/rasterizer_scene_gles3.h b/drivers/gles3/rasterizer_scene_gles3.h index 3d09adcfeb..e6d2449653 100644 --- a/drivers/gles3/rasterizer_scene_gles3.h +++ b/drivers/gles3/rasterizer_scene_gles3.h @@ -832,7 +832,7 @@ public: _FORCE_INLINE_ void _set_cull(bool p_front, bool p_disabled, bool p_reverse_cull); - _FORCE_INLINE_ bool _setup_material(RasterizerStorageGLES3::Material *p_material, bool p_alpha_pass); + _FORCE_INLINE_ bool _setup_material(RasterizerStorageGLES3::Material *p_material, bool p_depth_pass, bool p_alpha_pass); _FORCE_INLINE_ void _setup_geometry(RenderList::Element *e, const Transform &p_view_transform); _FORCE_INLINE_ void _render_geometry(RenderList::Element *e); _FORCE_INLINE_ void _setup_light(RenderList::Element *e, const Transform &p_view_transform); diff --git a/drivers/gles3/rasterizer_storage_gles3.cpp b/drivers/gles3/rasterizer_storage_gles3.cpp index 95be67a5b7..f94020b918 100644 --- a/drivers/gles3/rasterizer_storage_gles3.cpp +++ b/drivers/gles3/rasterizer_storage_gles3.cpp @@ -135,13 +135,13 @@ void glTexStorage2DCustom(GLenum target, GLsizei levels, GLenum internalformat, GLuint RasterizerStorageGLES3::system_fbo = 0; -Ref<Image> RasterizerStorageGLES3::_get_gl_image_and_format(const Ref<Image> &p_image, Image::Format p_format, uint32_t p_flags, Image::Format &r_real_format, GLenum &r_gl_format, GLenum &r_gl_internal_format, GLenum &r_gl_type, bool &r_compressed, bool &srgb) const { +Ref<Image> RasterizerStorageGLES3::_get_gl_image_and_format(const Ref<Image> &p_image, Image::Format p_format, uint32_t p_flags, Image::Format &r_real_format, GLenum &r_gl_format, GLenum &r_gl_internal_format, GLenum &r_gl_type, bool &r_compressed, bool &r_srgb, bool p_force_decompress) const { r_compressed = false; r_gl_format = 0; r_real_format = p_format; Ref<Image> image = p_image; - srgb = false; + r_srgb = false; bool need_decompress = false; @@ -188,7 +188,7 @@ Ref<Image> RasterizerStorageGLES3::_get_gl_image_and_format(const Ref<Image> &p_ r_gl_internal_format = (config.srgb_decode_supported || (p_flags & VS::TEXTURE_FLAG_CONVERT_TO_LINEAR)) ? GL_SRGB8 : GL_RGB8; r_gl_format = GL_RGB; r_gl_type = GL_UNSIGNED_BYTE; - srgb = true; + r_srgb = true; } break; case Image::FORMAT_RGBA8: { @@ -196,7 +196,7 @@ Ref<Image> RasterizerStorageGLES3::_get_gl_image_and_format(const Ref<Image> &p_ r_gl_format = GL_RGBA; r_gl_internal_format = (config.srgb_decode_supported || (p_flags & VS::TEXTURE_FLAG_CONVERT_TO_LINEAR)) ? GL_SRGB8_ALPHA8 : GL_RGBA8; r_gl_type = GL_UNSIGNED_BYTE; - srgb = true; + r_srgb = true; } break; case Image::FORMAT_RGBA4444: { @@ -278,7 +278,7 @@ Ref<Image> RasterizerStorageGLES3::_get_gl_image_and_format(const Ref<Image> &p_ r_gl_format = GL_RGBA; r_gl_type = GL_UNSIGNED_BYTE; r_compressed = true; - srgb = true; + r_srgb = true; } else { @@ -294,7 +294,7 @@ Ref<Image> RasterizerStorageGLES3::_get_gl_image_and_format(const Ref<Image> &p_ r_gl_format = GL_RGBA; r_gl_type = GL_UNSIGNED_BYTE; r_compressed = true; - srgb = true; + r_srgb = true; } else { @@ -310,7 +310,7 @@ Ref<Image> RasterizerStorageGLES3::_get_gl_image_and_format(const Ref<Image> &p_ r_gl_format = GL_RGBA; r_gl_type = GL_UNSIGNED_BYTE; r_compressed = true; - srgb = true; + r_srgb = true; } else { @@ -355,7 +355,7 @@ Ref<Image> RasterizerStorageGLES3::_get_gl_image_and_format(const Ref<Image> &p_ r_gl_format = GL_RGBA; r_gl_type = GL_UNSIGNED_BYTE; r_compressed = true; - srgb = true; + r_srgb = true; } else { @@ -395,7 +395,7 @@ Ref<Image> RasterizerStorageGLES3::_get_gl_image_and_format(const Ref<Image> &p_ r_gl_format = GL_RGBA; r_gl_type = GL_UNSIGNED_BYTE; r_compressed = true; - srgb = true; + r_srgb = true; } else { @@ -410,7 +410,7 @@ Ref<Image> RasterizerStorageGLES3::_get_gl_image_and_format(const Ref<Image> &p_ r_gl_format = GL_RGBA; r_gl_type = GL_UNSIGNED_BYTE; r_compressed = true; - srgb = true; + r_srgb = true; } else { @@ -426,7 +426,7 @@ Ref<Image> RasterizerStorageGLES3::_get_gl_image_and_format(const Ref<Image> &p_ r_gl_format = GL_RGBA; r_gl_type = GL_UNSIGNED_BYTE; r_compressed = true; - srgb = true; + r_srgb = true; } else { @@ -442,7 +442,7 @@ Ref<Image> RasterizerStorageGLES3::_get_gl_image_and_format(const Ref<Image> &p_ r_gl_format = GL_RGBA; r_gl_type = GL_UNSIGNED_BYTE; r_compressed = true; - srgb = true; + r_srgb = true; } else { @@ -527,7 +527,7 @@ Ref<Image> RasterizerStorageGLES3::_get_gl_image_and_format(const Ref<Image> &p_ r_gl_format = GL_RGB; r_gl_type = GL_UNSIGNED_BYTE; r_compressed = true; - srgb = true; + r_srgb = true; } else { @@ -542,7 +542,7 @@ Ref<Image> RasterizerStorageGLES3::_get_gl_image_and_format(const Ref<Image> &p_ r_gl_format = GL_RGBA; r_gl_type = GL_UNSIGNED_BYTE; r_compressed = true; - srgb = true; + r_srgb = true; } else { @@ -557,7 +557,7 @@ Ref<Image> RasterizerStorageGLES3::_get_gl_image_and_format(const Ref<Image> &p_ r_gl_format = GL_RGBA; r_gl_type = GL_UNSIGNED_BYTE; r_compressed = true; - srgb = true; + r_srgb = true; } else { @@ -570,7 +570,7 @@ Ref<Image> RasterizerStorageGLES3::_get_gl_image_and_format(const Ref<Image> &p_ } } - if (need_decompress) { + if (need_decompress || p_force_decompress) { if (!image.is_null()) { image = image->duplicate(); @@ -584,7 +584,7 @@ Ref<Image> RasterizerStorageGLES3::_get_gl_image_and_format(const Ref<Image> &p_ r_gl_type = GL_UNSIGNED_BYTE; r_compressed = false; r_real_format = Image::FORMAT_RGBA8; - srgb = true; + r_srgb = true; return image; } @@ -677,8 +677,22 @@ void RasterizerStorageGLES3::texture_allocate(RID p_texture, int p_width, int p_ } break; } + texture->is_npot_repeat_mipmap = false; +#ifdef JAVASCRIPT_ENABLED + // WebGL 2.0 on browsers does not seem to properly support compressed non power-of-two (NPOT) + // textures with repeat/mipmaps, even though NPOT textures should be supported as per the spec. + // Force decompressing them to work it around on WebGL 2.0 at a performance cost (GH-33058). + int po2_width = next_power_of_2(p_width); + int po2_height = next_power_of_2(p_height); + bool is_po2 = p_width == po2_width && p_height == po2_height; + + if (!is_po2 && (p_flags & VS::TEXTURE_FLAG_REPEAT || p_flags & VS::TEXTURE_FLAG_MIPMAPS)) { + texture->is_npot_repeat_mipmap = true; + } +#endif // JAVASCRIPT_ENABLED + Image::Format real_format; - _get_gl_image_and_format(Ref<Image>(), texture->format, texture->flags, real_format, format, internal_format, type, compressed, srgb); + _get_gl_image_and_format(Ref<Image>(), texture->format, texture->flags, real_format, format, internal_format, type, compressed, srgb, texture->is_npot_repeat_mipmap); texture->alloc_width = texture->width; texture->alloc_height = texture->height; @@ -753,13 +767,9 @@ void RasterizerStorageGLES3::texture_set_data(RID p_texture, const Ref<Image> &p if (config.keep_original_textures && !(texture->flags & VS::TEXTURE_FLAG_USED_FOR_STREAMING)) { texture->images.write[p_layer] = p_image; } -#ifndef GLES_OVER_GL - if (p_image->is_compressed() && p_image->has_mipmaps() && !p_image->is_size_po2()) { - ERR_PRINTS("Texuture '" + texture->path + "' is compressed, has mipmaps but is not of powerf-of-2 size. This does not work on OpenGL ES 3.0."); - } -#endif + Image::Format real_format; - Ref<Image> img = _get_gl_image_and_format(p_image, p_image->get_format(), texture->flags, real_format, format, internal_format, type, compressed, srgb); + Ref<Image> img = _get_gl_image_and_format(p_image, p_image->get_format(), texture->flags, real_format, format, internal_format, type, compressed, srgb, texture->is_npot_repeat_mipmap); if (config.shrink_textures_x2 && (p_image->has_mipmaps() || !p_image->is_compressed()) && !(texture->flags & VS::TEXTURE_FLAG_USED_FOR_STREAMING)) { @@ -795,6 +805,7 @@ void RasterizerStorageGLES3::texture_set_data(RID p_texture, const Ref<Image> &p texture->data_size = img->get_data().size(); PoolVector<uint8_t>::Read read = img->get_data().read(); + ERR_FAIL_COND(!read.ptr()); glActiveTexture(GL_TEXTURE0); glBindTexture(texture->target, texture->tex_id); @@ -992,7 +1003,7 @@ void RasterizerStorageGLES3::texture_set_data_partial(RID p_texture, const Ref<I } Image::Format real_format; - Ref<Image> img = _get_gl_image_and_format(p_sub_img, p_sub_img->get_format(), texture->flags, real_format, format, internal_format, type, compressed, srgb); + Ref<Image> img = _get_gl_image_and_format(p_sub_img, p_sub_img->get_format(), texture->flags, real_format, format, internal_format, type, compressed, srgb, texture->is_npot_repeat_mipmap); GLenum blit_target = GL_TEXTURE_2D; @@ -1091,7 +1102,8 @@ Ref<Image> RasterizerStorageGLES3::texture_get_data(RID p_texture, int p_layer) gl_internal_format, gl_type, compressed, - srgb); + srgb, + texture->is_npot_repeat_mipmap); PoolVector<uint8_t> data; @@ -1197,7 +1209,7 @@ Ref<Image> RasterizerStorageGLES3::texture_get_data(RID p_texture, int p_layer) GLenum gl_type; bool compressed; bool srgb; - _get_gl_image_and_format(Ref<Image>(), texture->format, texture->flags, real_format, gl_format, gl_internal_format, gl_type, compressed, srgb); + _get_gl_image_and_format(Ref<Image>(), texture->format, texture->flags, real_format, gl_format, gl_internal_format, gl_type, compressed, srgb, false); PoolVector<uint8_t> data; @@ -1267,7 +1279,7 @@ Ref<Image> RasterizerStorageGLES3::texture_get_data(RID p_texture, int p_layer) GLenum gl_type; bool compressed; bool srgb; - _get_gl_image_and_format(Ref<Image>(), texture->format, texture->flags, real_format, gl_format, gl_internal_format, gl_type, compressed, srgb); + _get_gl_image_and_format(Ref<Image>(), texture->format, texture->flags, real_format, gl_format, gl_internal_format, gl_type, compressed, srgb, texture->is_npot_repeat_mipmap); PoolVector<uint8_t> data; @@ -4718,6 +4730,7 @@ void RasterizerStorageGLES3::multimesh_set_as_bulk_array(RID p_multimesh, const MultiMesh *multimesh = multimesh_owner.getornull(p_multimesh); ERR_FAIL_COND(!multimesh); + ERR_FAIL_COND(!multimesh->data.ptr()); int dsize = multimesh->data.size(); @@ -4854,15 +4867,16 @@ RID RasterizerStorageGLES3::immediate_create() { return immediate_owner.make_rid(im); } -void RasterizerStorageGLES3::immediate_begin(RID p_immediate, VS::PrimitiveType p_rimitive, RID p_texture) { +void RasterizerStorageGLES3::immediate_begin(RID p_immediate, VS::PrimitiveType p_primitive, RID p_texture) { + ERR_FAIL_INDEX(p_primitive, (int)VS::PRIMITIVE_MAX); Immediate *im = immediate_owner.get(p_immediate); ERR_FAIL_COND(!im); ERR_FAIL_COND(im->building); Immediate::Chunk ic; ic.texture = p_texture; - ic.primitive = p_rimitive; + ic.primitive = p_primitive; im->chunks.push_back(ic); im->mask = 0; im->building = true; diff --git a/drivers/gles3/rasterizer_storage_gles3.h b/drivers/gles3/rasterizer_storage_gles3.h index 84632308b4..3b1021d0e1 100644 --- a/drivers/gles3/rasterizer_storage_gles3.h +++ b/drivers/gles3/rasterizer_storage_gles3.h @@ -266,6 +266,8 @@ public: int mipmaps; + bool is_npot_repeat_mipmap; + bool active; GLuint tex_id; @@ -342,7 +344,7 @@ public: mutable RID_Owner<Texture> texture_owner; - Ref<Image> _get_gl_image_and_format(const Ref<Image> &p_image, Image::Format p_format, uint32_t p_flags, Image::Format &r_real_format, GLenum &r_gl_format, GLenum &r_gl_internal_format, GLenum &r_gl_type, bool &r_compressed, bool &srgb) const; + Ref<Image> _get_gl_image_and_format(const Ref<Image> &p_image, Image::Format p_format, uint32_t p_flags, Image::Format &r_real_format, GLenum &r_gl_format, GLenum &r_gl_internal_format, GLenum &r_gl_type, bool &r_compressed, bool &r_srgb, bool p_force_decompress) const; virtual RID texture_create(); virtual void texture_allocate(RID p_texture, int p_width, int p_height, int p_depth_3d, Image::Format p_format, VS::TextureType p_type, uint32_t p_flags = VS::TEXTURE_FLAGS_DEFAULT); @@ -869,7 +871,7 @@ public: mutable RID_Owner<Immediate> immediate_owner; virtual RID immediate_create(); - virtual void immediate_begin(RID p_immediate, VS::PrimitiveType p_rimitive, RID p_texture = RID()); + virtual void immediate_begin(RID p_immediate, VS::PrimitiveType p_primitive, RID p_texture = RID()); virtual void immediate_vertex(RID p_immediate, const Vector3 &p_vertex); virtual void immediate_normal(RID p_immediate, const Vector3 &p_normal); virtual void immediate_tangent(RID p_immediate, const Plane &p_tangent); diff --git a/drivers/gles3/shaders/canvas.glsl b/drivers/gles3/shaders/canvas.glsl index e83f53d648..7255b0425c 100644 --- a/drivers/gles3/shaders/canvas.glsl +++ b/drivers/gles3/shaders/canvas.glsl @@ -380,14 +380,16 @@ uniform bool np_draw_center; // left top right bottom in pixel coordinates uniform vec4 np_margins; -float map_ninepatch_axis(float pixel, float draw_size, float tex_pixel_size, float margin_begin, float margin_end, int np_repeat, inout int draw_center) { +float map_ninepatch_axis(float pixel, float draw_size, float tex_pixel_size, float margin_begin, float margin_end, float s_ratio, int np_repeat, inout int draw_center) { float tex_size = 1.0 / tex_pixel_size; - if (pixel < margin_begin) { - return pixel * tex_pixel_size; - } else if (pixel >= draw_size - margin_end) { - return (tex_size - (draw_size - pixel)) * tex_pixel_size; + float screen_margin_begin = margin_begin / s_ratio; + float screen_margin_end = margin_end / s_ratio; + if (pixel < screen_margin_begin) { + return pixel * s_ratio * tex_pixel_size; + } else if (pixel >= draw_size - screen_margin_end) { + return (tex_size - (draw_size - pixel) * s_ratio) * tex_pixel_size; } else { if (!np_draw_center) { draw_center--; @@ -395,22 +397,22 @@ float map_ninepatch_axis(float pixel, float draw_size, float tex_pixel_size, flo if (np_repeat == 0) { //stretch //convert to ratio - float ratio = (pixel - margin_begin) / (draw_size - margin_begin - margin_end); + float ratio = (pixel - screen_margin_begin) / (draw_size - screen_margin_begin - screen_margin_end); //scale to source texture return (margin_begin + ratio * (tex_size - margin_begin - margin_end)) * tex_pixel_size; } else if (np_repeat == 1) { //tile //convert to ratio - float ofs = mod((pixel - margin_begin), tex_size - margin_begin - margin_end); + float ofs = mod((pixel - screen_margin_begin), tex_size - margin_begin - margin_end); //scale to source texture return (margin_begin + ofs) * tex_pixel_size; } else if (np_repeat == 2) { //tile fit //convert to ratio - float src_area = draw_size - margin_begin - margin_end; + float src_area = draw_size - screen_margin_begin - screen_margin_end; float dst_area = tex_size - margin_begin - margin_end; float scale = max(1.0, floor(src_area / max(dst_area, 0.0000001) + 0.5)); //convert to ratio - float ratio = (pixel - margin_begin) / src_area; + float ratio = (pixel - screen_margin_begin) / src_area; ratio = mod(ratio * scale, 1.0); return (margin_begin + ratio * dst_area) * tex_pixel_size; } @@ -432,9 +434,11 @@ void main() { #ifdef USE_NINEPATCH int draw_center = 2; + float s_ratio = max((1.0 / color_texpixel_size.x) / abs(dst_rect.z), (1.0 / color_texpixel_size.y) / abs(dst_rect.w)); + s_ratio = max(1.0, s_ratio); uv = vec2( - map_ninepatch_axis(pixel_size_interp.x, abs(dst_rect.z), color_texpixel_size.x, np_margins.x, np_margins.z, np_repeat_h, draw_center), - map_ninepatch_axis(pixel_size_interp.y, abs(dst_rect.w), color_texpixel_size.y, np_margins.y, np_margins.w, np_repeat_v, draw_center)); + map_ninepatch_axis(pixel_size_interp.x, abs(dst_rect.z), color_texpixel_size.x, np_margins.x, np_margins.z, s_ratio, np_repeat_h, draw_center), + map_ninepatch_axis(pixel_size_interp.y, abs(dst_rect.w), color_texpixel_size.y, np_margins.y, np_margins.w, s_ratio, np_repeat_v, draw_center)); if (draw_center == 0) { color.a = 0.0; diff --git a/drivers/unix/file_access_unix.cpp b/drivers/unix/file_access_unix.cpp index 8be1d5d8f3..99425d5002 100644 --- a/drivers/unix/file_access_unix.cpp +++ b/drivers/unix/file_access_unix.cpp @@ -56,6 +56,12 @@ #define S_ISREG(m) ((m)&S_IFREG) #endif +#ifndef NO_FCNTL +#include <fcntl.h> +#else +#include <sys/ioctl.h> +#endif + void FileAccessUnix::check_errors() const { ERR_FAIL_COND_MSG(!f, "File must be opened before use."); @@ -123,11 +129,24 @@ Error FileAccessUnix::_open(const String &p_path, int p_mode_flags) { } break; } return last_error; - } else { - last_error = OK; - flags = p_mode_flags; - return OK; } + + // Set close on exec to avoid leaking it to subprocesses. + int fd = fileno(f); + + if (fd != -1) { +#if defined(NO_FCNTL) + unsigned long par = 0; + ioctl(fd, FIOCLEX, &par); +#else + int opts = fcntl(fd, F_GETFD); + fcntl(fd, F_SETFD, opts | FD_CLOEXEC); +#endif + } + + last_error = OK; + flags = p_mode_flags; + return OK; } void FileAccessUnix::close() { diff --git a/drivers/unix/net_socket_posix.cpp b/drivers/unix/net_socket_posix.cpp index da46b393c6..5f99a40c79 100644 --- a/drivers/unix/net_socket_posix.cpp +++ b/drivers/unix/net_socket_posix.cpp @@ -70,6 +70,7 @@ #define SOCK_CBUF(x) x #define SOCK_IOCTL ioctl #define SOCK_CLOSE ::close +#define SOCK_CONNECT(p_sock, p_addr, p_addr_len) ::connect(p_sock, p_addr, p_addr_len) /* Windows */ #elif defined(WINDOWS_ENABLED) @@ -83,6 +84,9 @@ #define SOCK_CBUF(x) (const char *)(x) #define SOCK_IOCTL ioctlsocket #define SOCK_CLOSE closesocket +// connect is broken on windows under certain conditions, reasons unknown: +// See https://github.com/godotengine/webrtc-native/issues/6 +#define SOCK_CONNECT(p_sock, p_addr, p_addr_len) ::WSAConnect(p_sock, p_addr, p_addr_len, NULL, NULL, NULL, NULL) // Workaround missing flag in MinGW #if defined(__MINGW32__) && !defined(SIO_UDP_NETRESET) @@ -409,7 +413,7 @@ Error NetSocketPosix::connect_to_host(IP_Address p_host, uint16_t p_port) { struct sockaddr_storage addr; size_t addr_size = _set_addr_storage(&addr, p_host, p_port, _ip_type); - if (::connect(_sock, (struct sockaddr *)&addr, addr_size) != 0) { + if (SOCK_CONNECT(_sock, (struct sockaddr *)&addr, addr_size) != 0) { NetError err = _get_socket_error(); diff --git a/drivers/unix/os_unix.cpp b/drivers/unix/os_unix.cpp index b3d98a0648..25dee6aedb 100644 --- a/drivers/unix/os_unix.cpp +++ b/drivers/unix/os_unix.cpp @@ -126,7 +126,9 @@ void OS_Unix::initialize_core() { RWLockDummy::make_default(); #else ThreadPosix::make_default(); +#if !defined(OSX_ENABLED) && !defined(IPHONE_ENABLED) SemaphorePosix::make_default(); +#endif MutexPosix::make_default(); RWLockPosix::make_default(); #endif diff --git a/drivers/unix/semaphore_posix.cpp b/drivers/unix/semaphore_posix.cpp index 5aa51d77d1..fc2d5b0dfe 100644 --- a/drivers/unix/semaphore_posix.cpp +++ b/drivers/unix/semaphore_posix.cpp @@ -30,7 +30,7 @@ #include "semaphore_posix.h" -#if defined(UNIX_ENABLED) || defined(PTHREAD_ENABLED) +#if (defined(UNIX_ENABLED) || defined(PTHREAD_ENABLED)) && !defined(OSX_ENABLED) && !defined(IPHONE_ENABLED) #include "core/os/memory.h" #include <errno.h> diff --git a/drivers/unix/semaphore_posix.h b/drivers/unix/semaphore_posix.h index 83e75c9a82..8aff01fc27 100644 --- a/drivers/unix/semaphore_posix.h +++ b/drivers/unix/semaphore_posix.h @@ -33,7 +33,7 @@ #include "core/os/semaphore.h" -#if defined(UNIX_ENABLED) || defined(PTHREAD_ENABLED) +#if (defined(UNIX_ENABLED) || defined(PTHREAD_ENABLED)) && !defined(OSX_ENABLED) && !defined(IPHONE_ENABLED) #include <semaphore.h> diff --git a/drivers/wasapi/audio_driver_wasapi.cpp b/drivers/wasapi/audio_driver_wasapi.cpp index adc3cc8d65..336d5c5814 100644 --- a/drivers/wasapi/audio_driver_wasapi.cpp +++ b/drivers/wasapi/audio_driver_wasapi.cpp @@ -76,7 +76,7 @@ public: CMMNotificationClient() : _cRef(1), _pEnumerator(NULL) {} - ~CMMNotificationClient() { + virtual ~CMMNotificationClient() { if ((_pEnumerator) != NULL) { (_pEnumerator)->Release(); (_pEnumerator) = NULL; diff --git a/editor/animation_track_editor.cpp b/editor/animation_track_editor.cpp index 74e8df60f9..7183d34d4f 100644 --- a/editor/animation_track_editor.cpp +++ b/editor/animation_track_editor.cpp @@ -5727,16 +5727,24 @@ void AnimationTrackEditor::_show_imported_anim_warning() const { } void AnimationTrackEditor::_select_all_tracks_for_copy() { + TreeItem *track = track_copy_select->get_root()->get_children(); + if (!track) + return; + + bool all_selected = true; + while (track) { + if (!track->is_checked(0)) + all_selected = false; + + track = track->get_next(); + } + + track = track_copy_select->get_root()->get_children(); while (track) { - track->set_checked(0, selected_all_tracks); + track->set_checked(0, !all_selected); track = track->get_next(); } - selected_all_tracks = !selected_all_tracks; - if (selected_all_tracks) - select_all_button->set_text(TTR("Select All")); - else - select_all_button->set_text(TTR("Select None")); } void AnimationTrackEditor::_bind_methods() { @@ -6067,25 +6075,22 @@ AnimationTrackEditor::AnimationTrackEditor() { track_copy_dialog = memnew(ConfirmationDialog); add_child(track_copy_dialog); - track_copy_dialog->set_title(TTR("Select tracks to copy:")); + track_copy_dialog->set_title(TTR("Select Tracks to Copy")); track_copy_dialog->get_ok()->set_text(TTR("Copy")); VBoxContainer *track_vbox = memnew(VBoxContainer); track_copy_dialog->add_child(track_vbox); - selected_all_tracks = true; + Button *select_all_button = memnew(Button); + select_all_button->set_text(TTR("Select All/None")); + select_all_button->connect("pressed", this, "_select_all_tracks_for_copy"); + track_vbox->add_child(select_all_button); track_copy_select = memnew(Tree); track_copy_select->set_h_size_flags(SIZE_EXPAND_FILL); track_copy_select->set_v_size_flags(SIZE_EXPAND_FILL); track_copy_select->set_hide_root(true); track_vbox->add_child(track_copy_select); - track_copy_options = memnew(HBoxContainer); - track_vbox->add_child(track_copy_options); - select_all_button = memnew(Button); - select_all_button->set_text(TTR("Select All")); - select_all_button->connect("pressed", this, "_select_all_tracks_for_copy"); - track_copy_options->add_child(select_all_button); track_copy_dialog->connect("confirmed", this, "_edit_menu_pressed", varray(EDIT_COPY_TRACKS_CONFIRM)); animation_changing_awaiting_update = false; } diff --git a/editor/animation_track_editor.h b/editor/animation_track_editor.h index 830d5b52d3..fd28d8f4d1 100644 --- a/editor/animation_track_editor.h +++ b/editor/animation_track_editor.h @@ -465,11 +465,8 @@ class AnimationTrackEditor : public VBoxContainer { void _selection_changed(); - bool selected_all_tracks; ConfirmationDialog *track_copy_dialog; Tree *track_copy_select; - HBoxContainer *track_copy_options; - Button *select_all_button; struct TrackClipboard { NodePath full_path; diff --git a/editor/animation_track_editor_plugins.cpp b/editor/animation_track_editor_plugins.cpp index 226eef9c1e..3e0b644b20 100644 --- a/editor/animation_track_editor_plugins.cpp +++ b/editor/animation_track_editor_plugins.cpp @@ -337,7 +337,7 @@ AnimationTrackEditAudio::AnimationTrackEditAudio() { AudioStreamPreviewGenerator::get_singleton()->connect("preview_updated", this, "_preview_changed"); } -/// SPRITE FRAME /// +/// SPRITE FRAME / FRAME_COORDS /// int AnimationTrackEditSpriteFrame::get_key_height() const { @@ -439,14 +439,24 @@ void AnimationTrackEditSpriteFrame::draw_key(int p_index, float p_pixels_sec, in if (Object::cast_to<Sprite>(object) || Object::cast_to<Sprite3D>(object)) { - int frame = get_animation()->track_get_key_value(get_track(), p_index); - texture = object->call("get_texture"); if (!texture.is_valid()) { AnimationTrackEdit::draw_key(p_index, p_pixels_sec, p_x, p_selected, p_clip_left, p_clip_right); return; } + int hframes = object->call("get_hframes"); + int vframes = object->call("get_vframes"); + + Vector2 coords; + if (is_coords) { + coords = get_animation()->track_get_key_value(get_track(), p_index); + } else { + int frame = get_animation()->track_get_key_value(get_track(), p_index); + coords.x = frame % hframes; + coords.y = frame / hframes; + } + region.size = texture->get_size(); if (bool(object->call("is_region"))) { @@ -454,9 +464,6 @@ void AnimationTrackEditSpriteFrame::draw_key(int p_index, float p_pixels_sec, in region = Rect2(object->call("get_region_rect")); } - int hframes = object->call("get_hframes"); - int vframes = object->call("get_vframes"); - if (hframes > 1) { region.size.x /= hframes; } @@ -464,8 +471,8 @@ void AnimationTrackEditSpriteFrame::draw_key(int p_index, float p_pixels_sec, in region.size.y /= vframes; } - region.position.x += region.size.x * (frame % hframes); - region.position.y += region.size.y * (frame / hframes); + region.position.x += region.size.x * coords.x; + region.position.y += region.size.y * coords.y; } else if (Object::cast_to<AnimatedSprite>(object) || Object::cast_to<AnimatedSprite3D>(object)) { @@ -532,6 +539,11 @@ void AnimationTrackEditSpriteFrame::set_node(Object *p_object) { id = p_object->get_instance_id(); } +void AnimationTrackEditSpriteFrame::set_as_coords() { + + is_coords = true; +} + /// SUB ANIMATION /// int AnimationTrackEditSubAnim::get_key_height() const { @@ -1297,6 +1309,14 @@ AnimationTrackEdit *AnimationTrackEditDefaultPlugin::create_value_track_edit(Obj return sprite; } + if (p_property == "frame_coords" && (p_object->is_class("Sprite") || p_object->is_class("Sprite3D"))) { + + AnimationTrackEditSpriteFrame *sprite = memnew(AnimationTrackEditSpriteFrame); + sprite->set_as_coords(); + sprite->set_node(p_object); + return sprite; + } + if (p_property == "current_animation" && (p_object->is_class("AnimationPlayer"))) { AnimationTrackEditSubAnim *player = memnew(AnimationTrackEditSubAnim); diff --git a/editor/animation_track_editor_plugins.h b/editor/animation_track_editor_plugins.h index 5f0ea6196c..1013cccf72 100644 --- a/editor/animation_track_editor_plugins.h +++ b/editor/animation_track_editor_plugins.h @@ -81,6 +81,7 @@ class AnimationTrackEditSpriteFrame : public AnimationTrackEdit { GDCLASS(AnimationTrackEditSpriteFrame, AnimationTrackEdit); ObjectID id; + bool is_coords; public: virtual int get_key_height() const; @@ -89,6 +90,9 @@ public: virtual void draw_key(int p_index, float p_pixels_sec, int p_x, bool p_selected, int p_clip_left, int p_clip_right); void set_node(Object *p_object); + void set_as_coords(); + + AnimationTrackEditSpriteFrame() { is_coords = false; } }; class AnimationTrackEditSubAnim : public AnimationTrackEdit { diff --git a/editor/array_property_edit.cpp b/editor/array_property_edit.cpp index f2471e80d4..906139e239 100644 --- a/editor/array_property_edit.cpp +++ b/editor/array_property_edit.cpp @@ -267,9 +267,9 @@ void ArrayPropertyEdit::edit(Object *p_obj, const StringName &p_prop, const Stri default_type = p_deftype; if (!p_hint_string.empty()) { - int hint_subtype_seperator = p_hint_string.find(":"); - if (hint_subtype_seperator >= 0) { - String subtype_string = p_hint_string.substr(0, hint_subtype_seperator); + int hint_subtype_separator = p_hint_string.find(":"); + if (hint_subtype_separator >= 0) { + String subtype_string = p_hint_string.substr(0, hint_subtype_separator); int slash_pos = subtype_string.find("/"); if (slash_pos >= 0) { @@ -277,7 +277,7 @@ void ArrayPropertyEdit::edit(Object *p_obj, const StringName &p_prop, const Stri subtype_string = subtype_string.substr(0, slash_pos); } - subtype_hint_string = p_hint_string.substr(hint_subtype_seperator + 1, p_hint_string.size() - hint_subtype_seperator - 1); + subtype_hint_string = p_hint_string.substr(hint_subtype_separator + 1, p_hint_string.size() - hint_subtype_separator - 1); subtype = Variant::Type(subtype_string.to_int()); } } diff --git a/editor/code_editor.cpp b/editor/code_editor.cpp index 4c31797c50..1a821ddd02 100644 --- a/editor/code_editor.cpp +++ b/editor/code_editor.cpp @@ -191,7 +191,9 @@ void FindReplaceBar::_replace() { results_count = -1; } - search_current(); + if (!search_current()) { + search_next(); + } } void FindReplaceBar::_replace_all() { diff --git a/editor/connections_dialog.cpp b/editor/connections_dialog.cpp index 1e5eabc24e..f5a01dfb04 100644 --- a/editor/connections_dialog.cpp +++ b/editor/connections_dialog.cpp @@ -417,6 +417,7 @@ ConnectDialog::ConnectDialog() { dst_method = memnew(LineEdit); dst_method->set_h_size_flags(SIZE_EXPAND_FILL); + dst_method->connect("text_entered", this, "_builtin_text_entered"); dstm_hb->add_child(dst_method); advanced = memnew(CheckButton); diff --git a/editor/dependency_editor.cpp b/editor/dependency_editor.cpp index 5f8660e108..1f58eda396 100644 --- a/editor/dependency_editor.cpp +++ b/editor/dependency_editor.cpp @@ -646,7 +646,7 @@ DependencyErrorDialog::DependencyErrorDialog() { vb->add_margin_child(TTR("Load failed due to missing dependencies:"), files, true); files->set_v_size_flags(SIZE_EXPAND_FILL); - set_custom_minimum_size(Size2(500, 220)); + set_custom_minimum_size(Size2(500, 220) * EDSCALE); get_ok()->set_text(TTR("Open Anyway")); get_cancel()->set_text(TTR("Close")); diff --git a/editor/editor_dir_dialog.cpp b/editor/editor_dir_dialog.cpp index 0636ae3aea..525c5aa62d 100644 --- a/editor/editor_dir_dialog.cpp +++ b/editor/editor_dir_dialog.cpp @@ -95,7 +95,9 @@ void EditorDirDialog::_notification(int p_what) { } if (p_what == NOTIFICATION_EXIT_TREE) { - EditorFileSystem::get_singleton()->disconnect("filesystem_changed", this, "reload"); + if (EditorFileSystem::get_singleton()->is_connected("filesystem_changed", this, "reload")) { + EditorFileSystem::get_singleton()->disconnect("filesystem_changed", this, "reload"); + } } if (p_what == NOTIFICATION_VISIBILITY_CHANGED) { diff --git a/editor/editor_export.cpp b/editor/editor_export.cpp index 90f54df485..7ae8a9e0ce 100644 --- a/editor/editor_export.cpp +++ b/editor/editor_export.cpp @@ -376,6 +376,12 @@ Error EditorExportPlatform::_save_zip_file(void *p_userdata, const String &p_pat return OK; } +Ref<ImageTexture> EditorExportPlatform::get_option_icon(int p_index) const { + Ref<Theme> theme = EditorNode::get_singleton()->get_editor_theme(); + ERR_FAIL_COND_V(theme.is_null(), Ref<ImageTexture>()); + return theme->get_icon("Play", "EditorIcons"); +} + String EditorExportPlatform::find_export_template(String template_file_name, String *err) const { String current_version = VERSION_FULL_CONFIG; @@ -1403,7 +1409,7 @@ bool EditorExport::poll_export_platforms() { bool changed = false; for (int i = 0; i < export_platforms.size(); i++) { - if (export_platforms.write[i]->poll_devices()) { + if (export_platforms.write[i]->poll_export()) { changed = true; } } @@ -1606,6 +1612,9 @@ Error EditorExportPlatformPC::export_project(const Ref<EditorExportPreset> &p_pr da = DirAccess::create(DirAccess::ACCESS_FILESYSTEM); for (int i = 0; i < so_files.size() && err == OK; i++) { err = da->copy(so_files[i].path, p_path.get_base_dir().plus_file(so_files[i].path.get_file())); + if (err == OK) { + err = sign_shared_object(p_preset, p_debug, p_path.get_base_dir().plus_file(so_files[i].path.get_file())); + } } memdelete(da); } @@ -1614,6 +1623,10 @@ Error EditorExportPlatformPC::export_project(const Ref<EditorExportPreset> &p_pr return err; } +Error EditorExportPlatformPC::sign_shared_object(const Ref<EditorExportPreset> &p_preset, bool p_debug, const String &p_path) { + return OK; +} + void EditorExportPlatformPC::set_extension(const String &p_extension, const String &p_feature_key) { extensions[p_feature_key] = p_extension; } diff --git a/editor/editor_export.h b/editor/editor_export.h index 3152e249bd..b0e27af629 100644 --- a/editor/editor_export.h +++ b/editor/editor_export.h @@ -243,10 +243,12 @@ public: Error save_pack(const Ref<EditorExportPreset> &p_preset, const String &p_path, Vector<SharedObject> *p_so_files = NULL, bool p_embed = false, int64_t *r_embedded_start = NULL, int64_t *r_embedded_size = NULL); Error save_zip(const Ref<EditorExportPreset> &p_preset, const String &p_path); - virtual bool poll_devices() { return false; } - virtual int get_device_count() const { return 0; } - virtual String get_device_name(int p_device) const { return ""; } - virtual String get_device_info(int p_device) const { return ""; } + virtual bool poll_export() { return false; } + virtual int get_options_count() const { return 0; } + virtual String get_options_tooltip() const { return ""; } + virtual Ref<ImageTexture> get_option_icon(int p_index) const; + virtual String get_option_label(int p_device) const { return ""; } + virtual String get_option_tooltip(int p_device) const { return ""; } enum DebugFlags { DEBUG_FLAG_DUMB_CLIENT = 1, @@ -423,6 +425,7 @@ public: virtual bool can_export(const Ref<EditorExportPreset> &p_preset, String &r_error, bool &r_missing_templates) const; virtual List<String> get_binary_extensions(const Ref<EditorExportPreset> &p_preset) const; virtual Error export_project(const Ref<EditorExportPreset> &p_preset, bool p_debug, const String &p_path, int p_flags = 0); + virtual Error sign_shared_object(const Ref<EditorExportPreset> &p_preset, bool p_debug, const String &p_path); void set_extension(const String &p_extension, const String &p_feature_key = "default"); void set_name(const String &p_name); diff --git a/editor/editor_file_dialog.cpp b/editor/editor_file_dialog.cpp index 02a9cc905b..2db4f03859 100644 --- a/editor/editor_file_dialog.cpp +++ b/editor/editor_file_dialog.cpp @@ -253,6 +253,12 @@ void EditorFileDialog::_post_popup() { else item_list->grab_focus(); + if (mode == MODE_OPEN_DIR) { + file_box->set_visible(false); + } else { + file_box->set_visible(true); + } + if (is_visible_in_tree() && get_current_file() != "") _request_single_thumbnail(get_current_dir().plus_file(get_current_file())); @@ -703,6 +709,9 @@ void EditorFileDialog::update_file_list() { item_list->clear(); + // Scroll back to the top after opening a directory + item_list->get_v_scroll()->set_value(0); + if (display_mode == DISPLAY_THUMBNAILS) { item_list->set_max_columns(0); @@ -1658,19 +1667,19 @@ EditorFileDialog::EditorFileDialog() { prev_cc->add_child(preview); preview_vb->hide(); - HBoxContainer *filename_hbc = memnew(HBoxContainer); - filename_hbc->add_child(memnew(Label(TTR("File:")))); + file_box = memnew(HBoxContainer); + file_box->add_child(memnew(Label(TTR("File:")))); file = memnew(LineEdit); file->set_stretch_ratio(4); file->set_h_size_flags(SIZE_EXPAND_FILL); - filename_hbc->add_child(file); + file_box->add_child(file); filter = memnew(OptionButton); filter->set_stretch_ratio(3); filter->set_h_size_flags(SIZE_EXPAND_FILL); filter->set_clip_text(true); // Too many extensions overflow it. - filename_hbc->add_child(filter); - filename_hbc->set_h_size_flags(SIZE_EXPAND_FILL); - item_vb->add_child(filename_hbc); + file_box->add_child(filter); + file_box->set_h_size_flags(SIZE_EXPAND_FILL); + item_vb->add_child(file_box); dir_access = DirAccess::create(DirAccess::ACCESS_RESOURCES); access = ACCESS_RESOURCES; diff --git a/editor/editor_file_dialog.h b/editor/editor_file_dialog.h index 2ecfa7db15..af52f6af5b 100644 --- a/editor/editor_file_dialog.h +++ b/editor/editor_file_dialog.h @@ -106,10 +106,11 @@ private: TextureRect *preview; VBoxContainer *preview_vb; HSplitContainer *list_hb; + HBoxContainer *file_box; LineEdit *file; + OptionButton *filter; AcceptDialog *mkdirerr; AcceptDialog *exterr; - OptionButton *filter; DirAccess *dir_access; ConfirmationDialog *confirm_save; DependencyRemoveDialog *remove_dialog; diff --git a/editor/editor_file_system.cpp b/editor/editor_file_system.cpp index 3663bdee27..2467e1f722 100644 --- a/editor/editor_file_system.cpp +++ b/editor/editor_file_system.cpp @@ -325,14 +325,12 @@ void EditorFileSystem::_save_filesystem_cache() { String fscache = EditorSettings::get_singleton()->get_project_settings_dir().plus_file(CACHE_FILE_NAME); FileAccess *f = FileAccess::open(fscache, FileAccess::WRITE); - if (f == NULL) { - ERR_PRINTS("Error writing fscache '" + fscache + "'."); - } else { - f->store_line(filesystem_settings_version_for_import); - _save_filesystem_cache(filesystem, f); - f->close(); - memdelete(f); - } + ERR_FAIL_COND_MSG(!f, "Cannot create file '" + fscache + "'. Check user write permissions."); + + f->store_line(filesystem_settings_version_for_import); + _save_filesystem_cache(filesystem, f); + f->close(); + memdelete(f); } void EditorFileSystem::_thread_func(void *_userdata) { @@ -1373,6 +1371,7 @@ void EditorFileSystem::_save_late_updated_files() { //files that already existed, and were modified, need re-scanning for dependencies upon project restart. This is done via saving this special file String fscache = EditorSettings::get_singleton()->get_project_settings_dir().plus_file("filesystem_update4"); FileAccessRef f = FileAccess::open(fscache, FileAccess::WRITE); + ERR_FAIL_COND_MSG(!f, "Cannot create file '" + fscache + "'. Check user write permissions."); for (Set<String>::Element *E = late_update_files.front(); E; E = E->next()) { f->store_line(E->get()); } diff --git a/editor/editor_fonts.cpp b/editor/editor_fonts.cpp index b6d27d84e0..97c796c707 100644 --- a/editor/editor_fonts.cpp +++ b/editor/editor_fonts.cpp @@ -64,7 +64,7 @@ Ref<DynamicFont> m_name; \ m_name.instance(); \ m_name->set_size(m_size); \ - if (CustomFont.is_valid()) { \ + if (CustomFontBold.is_valid()) { \ m_name->set_font_data(CustomFontBold); \ m_name->add_fallback(DefaultFontBold); \ } else { \ diff --git a/editor/editor_help.cpp b/editor/editor_help.cpp index 83434a6d9f..dd49e38d7f 100644 --- a/editor/editor_help.cpp +++ b/editor/editor_help.cpp @@ -72,9 +72,12 @@ void EditorHelp::_unhandled_key_input(const Ref<InputEvent> &p_ev) { } } -void EditorHelp::_search(const String &) { +void EditorHelp::_search(bool p_search_previous) { - find_bar->search_next(); + if (p_search_previous) + find_bar->search_prev(); + else + find_bar->search_next(); } void EditorHelp::_class_list_select(const String &p_select) { @@ -169,7 +172,9 @@ void EditorHelp::_class_desc_input(const Ref<InputEvent> &p_input) { void EditorHelp::_class_desc_resized() { // Add extra horizontal margins for better readability. // The margins increase as the width of the editor help container increases. - const int display_margin = MAX(30 * EDSCALE, get_parent_anchorable_rect().size.width - 900 * EDSCALE) * 0.5; + Ref<Font> doc_code_font = get_font("doc_source", "EditorFonts"); + real_t char_width = doc_code_font->get_char_size('x').width; + const int display_margin = MAX(30 * EDSCALE, get_parent_anchorable_rect().size.width - char_width * 120 * EDSCALE) * 0.5; Ref<StyleBox> class_desc_stylebox = EditorNode::get_singleton()->get_theme_base()->get_stylebox("normal", "RichTextLabel")->duplicate(); class_desc_stylebox->set_default_margin(MARGIN_LEFT, display_margin); @@ -1219,11 +1224,18 @@ static void _add_text_to_rt(const String &p_bbcode, RichTextLabel *p_rt) { Ref<Font> doc_font = p_rt->get_font("doc", "EditorFonts"); Ref<Font> doc_bold_font = p_rt->get_font("doc_bold", "EditorFonts"); Ref<Font> doc_code_font = p_rt->get_font("doc_source", "EditorFonts"); + Color font_color_hl = p_rt->get_color("headline_color", "EditorHelp"); - Color link_color = p_rt->get_color("accent_color", "Editor").linear_interpolate(font_color_hl, 0.8); + Color accent_color = p_rt->get_color("accent_color", "Editor"); + Color link_color = accent_color.linear_interpolate(font_color_hl, 0.8); + Color code_color = accent_color.linear_interpolate(font_color_hl, 0.6); String bbcode = p_bbcode.dedent().replace("\t", "").replace("\r", "").strip_edges(); + // remove extra new lines around code blocks + bbcode = bbcode.replace("[codeblock]\n", "[codeblock]"); + bbcode = bbcode.replace("\n[/codeblock]", "[/codeblock]"); + List<String> tag_stack; bool code_tag = false; @@ -1271,9 +1283,14 @@ static void _add_text_to_rt(const String &p_bbcode, RichTextLabel *p_rt) { tag_stack.pop_front(); pos = brk_end + 1; - code_tag = false; - if (tag != "/img") + if (tag != "/img") { p_rt->pop(); + if (code_tag) { + p_rt->pop(); + } + } + code_tag = false; + } else if (code_tag) { p_rt->add_text("["); @@ -1318,6 +1335,7 @@ static void _add_text_to_rt(const String &p_bbcode, RichTextLabel *p_rt) { //use monospace font p_rt->push_font(doc_code_font); + p_rt->push_color(code_color); code_tag = true; pos = brk_end + 1; tag_stack.push_front(tag); @@ -1464,6 +1482,11 @@ void EditorHelp::_notification(int p_what) { _update_doc(); } break; + case NOTIFICATION_THEME_CHANGED: { + if (is_visible_in_tree()) { + _class_desc_resized(); + } + } break; default: break; } } @@ -1502,8 +1525,8 @@ String EditorHelp::get_class() { return edited_class; } -void EditorHelp::search_again() { - _search(prev_search); +void EditorHelp::search_again(bool p_search_previous) { + _search(p_search_previous); } int EditorHelp::get_scroll() const { diff --git a/editor/editor_help.h b/editor/editor_help.h index 1019cafffc..23a6e005a0 100644 --- a/editor/editor_help.h +++ b/editor/editor_help.h @@ -158,7 +158,7 @@ class EditorHelp : public VBoxContainer { void _update_doc(); void _request_help(const String &p_string); - void _search(const String &p_str); + void _search(bool p_search_previous = false); void _unhandled_key_input(const Ref<InputEvent> &p_ev); @@ -179,7 +179,7 @@ public: void scroll_to_section(int p_section_index); void popup_search(); - void search_again(); + void search_again(bool p_search_previous = false); String get_class(); diff --git a/editor/editor_inspector.cpp b/editor/editor_inspector.cpp index b29417b4c3..96b6a32914 100644 --- a/editor/editor_inspector.cpp +++ b/editor/editor_inspector.cpp @@ -644,7 +644,19 @@ void EditorProperty::_gui_input(const Ref<InputEvent> &p_event) { emit_signal("property_keyed", property, use_keying_next()); if (use_keying_next()) { - call_deferred("emit_changed", property, object->get(property).operator int64_t() + 1, "", false); + if (property == "frame_coords" && (object->is_class("Sprite") || object->is_class("Sprite3D"))) { + Vector2 new_coords = object->get(property); + new_coords.x++; + if (new_coords.x >= object->get("hframes").operator int64_t()) { + new_coords.x = 0; + new_coords.y++; + } + + call_deferred("emit_changed", property, new_coords, "", false); + } else { + call_deferred("emit_changed", property, object->get(property).operator int64_t() + 1, "", false); + } + call_deferred("update_property"); } } @@ -1566,11 +1578,11 @@ void EditorInspector::update_tree() { if (dot != -1) { String ov = name.right(dot); name = name.substr(0, dot); - name = name.camelcase_to_underscore().capitalize(); + name = name.capitalize(); name += ov; } else { - name = name.camelcase_to_underscore().capitalize(); + name = name.capitalize(); } } diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index 2c3a84857a..d42345d9a2 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -33,6 +33,7 @@ #include "core/bind/core_bind.h" #include "core/class_db.h" #include "core/io/config_file.h" +#include "core/io/image_loader.h" #include "core/io/resource_loader.h" #include "core/io/resource_saver.h" #include "core/io/stream_peer_ssl.h" @@ -56,6 +57,7 @@ #include "editor/editor_help.h" #include "editor/editor_properties.h" #include "editor/editor_settings.h" +#include "editor/editor_spin_slider.h" #include "editor/editor_themes.h" #include "editor/import/editor_import_collada.h" #include "editor/import/editor_scene_importer_gltf.h" @@ -370,7 +372,7 @@ void EditorNode::_notification(int p_what) { case EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED: { scene_tabs->set_tab_close_display_policy((bool(EDITOR_GET("interface/scene_tabs/always_show_close_button")) ? Tabs::CLOSE_BUTTON_SHOW_ALWAYS : Tabs::CLOSE_BUTTON_SHOW_ACTIVE_ONLY)); - Ref<Theme> theme = create_editor_theme(theme_base->get_theme()); + theme = create_editor_theme(theme_base->get_theme()); theme_base->set_theme(theme); gui_base->set_theme(theme); @@ -1469,7 +1471,7 @@ void EditorNode::_dialog_action(String p_file) { config.instance(); Error err = config->load(EditorSettings::get_singleton()->get_editor_layouts_config()); - if (err == ERR_CANT_OPEN) { + if (err == ERR_FILE_CANT_OPEN || err == ERR_FILE_NOT_FOUND) { config.instance(); // new config } else if (err != OK) { show_warning(TTR("Error trying to save layout!")); @@ -3558,6 +3560,7 @@ void EditorNode::register_editor_types() { ClassDB::register_class<AnimationTrackEditPlugin>(); ClassDB::register_class<ScriptCreateDialog>(); ClassDB::register_class<EditorFeatureProfile>(); + ClassDB::register_class<EditorSpinSlider>(); // FIXME: Is this stuff obsolete, or should it be ported to new APIs? ClassDB::register_class<EditorScenePostImport>(); @@ -3637,6 +3640,20 @@ StringName EditorNode::get_object_custom_type_name(const Object *p_object) const return StringName(); } +Ref<ImageTexture> EditorNode::_load_custom_class_icon(const String &p_path) const { + if (p_path.length()) { + Ref<Image> img = memnew(Image); + Error err = ImageLoader::load_image(p_path, img); + if (err == OK) { + Ref<ImageTexture> icon = memnew(ImageTexture); + img->resize(16 * EDSCALE, 16 * EDSCALE, Image::INTERPOLATE_LANCZOS); + icon->create_from_image(img); + return icon; + } + } + return NULL; +} + Ref<Texture> EditorNode::get_object_icon(const Object *p_object, const String &p_fallback) const { ERR_FAIL_COND_V(!p_object || !gui_base, NULL); @@ -3650,8 +3667,10 @@ Ref<Texture> EditorNode::get_object_icon(const Object *p_object, const String &p while (base_script.is_valid()) { StringName name = EditorNode::get_editor_data().script_class_get_name(base_script->get_path()); String icon_path = EditorNode::get_editor_data().script_class_get_icon_path(name); - if (icon_path.length()) - return ResourceLoader::load(icon_path); + Ref<ImageTexture> icon = _load_custom_class_icon(icon_path); + if (icon.is_valid()) { + return icon; + } // should probably be deprecated in 4.x StringName base = base_script->get_instance_base_type(); @@ -3689,12 +3708,9 @@ Ref<Texture> EditorNode::get_class_icon(const String &p_class, const String &p_f if (ScriptServer::is_global_class(p_class)) { String icon_path = EditorNode::get_editor_data().script_class_get_icon_path(p_class); - RES icon; - - if (FileAccess::exists(icon_path)) { - icon = ResourceLoader::load(icon_path); - if (icon.is_valid()) - return icon; + Ref<ImageTexture> icon = _load_custom_class_icon(icon_path); + if (icon.is_valid()) { + return icon; } Ref<Script> script = ResourceLoader::load(ScriptServer::get_global_class_path(p_class), "Script"); @@ -3702,10 +3718,9 @@ Ref<Texture> EditorNode::get_class_icon(const String &p_class, const String &p_f while (script.is_valid()) { String current_icon_path; script->get_language()->get_global_class_name(script->get_path(), NULL, ¤t_icon_path); - if (FileAccess::exists(current_icon_path)) { - RES texture = ResourceLoader::load(current_icon_path); - if (texture.is_valid()) - return texture; + icon = _load_custom_class_icon(current_icon_path); + if (icon.is_valid()) { + return icon; } script = script->get_base_script(); } @@ -5156,14 +5171,20 @@ void EditorNode::_open_imported() { } void EditorNode::dim_editor(bool p_dimming, bool p_force_dim) { - // Dimming can be forced regardless of the editor setting, which is useful when quitting the editor + // Dimming can be forced regardless of the editor setting, which is useful when quitting the editor. if ((p_force_dim || EditorSettings::get_singleton()->get("interface/editor/dim_editor_on_dialog_popup")) && p_dimming) { + dimmed = true; gui_base->set_modulate(Color(0.5, 0.5, 0.5)); } else { + dimmed = false; gui_base->set_modulate(Color(1, 1, 1)); } } +bool EditorNode::is_editor_dimmed() const { + return dimmed; +} + void EditorNode::open_export_template_manager() { export_template_manager->popup_manager(); @@ -5472,6 +5493,7 @@ EditorNode::EditorNode() { singleton = this; exiting = false; + dimmed = false; last_checked_version = 0; changing_scene = false; _initializing_addons = false; @@ -5638,6 +5660,9 @@ EditorNode::EditorNode() { editor_export = memnew(EditorExport); add_child(editor_export); + // Exporters might need the theme + theme = create_custom_theme(); + register_exporters(); GLOBAL_DEF("editor/main_run_args", ""); @@ -5679,7 +5704,6 @@ EditorNode::EditorNode() { theme_base->add_child(gui_base); gui_base->set_anchors_and_margins_preset(Control::PRESET_WIDE); - Ref<Theme> theme = create_custom_theme(); theme_base->set_theme(theme); gui_base->set_theme(theme); gui_base->add_style_override("panel", gui_base->get_stylebox("Background", "EditorStyles")); diff --git a/editor/editor_node.h b/editor/editor_node.h index 5ecb472e64..b7775b5e83 100644 --- a/editor/editor_node.h +++ b/editor/editor_node.h @@ -260,6 +260,7 @@ private: int tab_closing; bool exiting; + bool dimmed; int old_split_ofs; VSplitContainer *top_split; @@ -655,6 +656,7 @@ private: void _feature_profile_changed(); bool _is_class_editor_disabled_by_feature_profile(const StringName &p_class); + Ref<ImageTexture> _load_custom_class_icon(const String &p_path) const; protected: void _notification(int p_what); @@ -849,6 +851,7 @@ public: void restart_editor(); void dim_editor(bool p_dimming, bool p_force_dim = false); + bool is_editor_dimmed() const; void edit_current() { _edit_current(); }; diff --git a/editor/editor_path.cpp b/editor/editor_path.cpp index f487a3048b..e4a939c379 100644 --- a/editor/editor_path.cpp +++ b/editor/editor_path.cpp @@ -132,6 +132,15 @@ void EditorPath::_id_pressed(int p_idx) { EditorNode::get_singleton()->push_item(obj); } +void EditorPath::_notification(int p_what) { + + switch (p_what) { + case NOTIFICATION_THEME_CHANGED: { + update_path(); + } break; + } +} + void EditorPath::_bind_methods() { ClassDB::bind_method("_about_to_show", &EditorPath::_about_to_show); diff --git a/editor/editor_path.h b/editor/editor_path.h index 2dc4d21f9b..a84da9f5ac 100644 --- a/editor/editor_path.h +++ b/editor/editor_path.h @@ -48,6 +48,7 @@ class EditorPath : public MenuButton { void _add_children_to_popup(Object *p_obj, int p_depth = 0); protected: + void _notification(int p_what); static void _bind_methods(); public: diff --git a/editor/editor_properties.cpp b/editor/editor_properties.cpp index 460f75eef0..d3d91e6e0d 100644 --- a/editor/editor_properties.cpp +++ b/editor/editor_properties.cpp @@ -2205,7 +2205,14 @@ void EditorPropertyResource::_menu_option(int p_which) { case OBJ_MENU_NEW_SCRIPT: { if (Object::cast_to<Node>(get_edited_object())) { - EditorNode::get_singleton()->get_scene_tree_dock()->open_script_dialog(Object::cast_to<Node>(get_edited_object())); + EditorNode::get_singleton()->get_scene_tree_dock()->open_script_dialog(Object::cast_to<Node>(get_edited_object()), false); + } + + } break; + case OBJ_MENU_EXTEND_SCRIPT: { + + if (Object::cast_to<Node>(get_edited_object())) { + EditorNode::get_singleton()->get_scene_tree_dock()->open_script_dialog(Object::cast_to<Node>(get_edited_object()), true); } } break; @@ -2338,7 +2345,8 @@ void EditorPropertyResource::_update_menu_items() { menu->clear(); if (get_edited_property() == "script" && base_type == "Script" && Object::cast_to<Node>(get_edited_object())) { - menu->add_icon_item(get_icon("Script", "EditorIcons"), TTR("New Script"), OBJ_MENU_NEW_SCRIPT); + menu->add_icon_item(get_icon("ScriptCreate", "EditorIcons"), TTR("New Script"), OBJ_MENU_NEW_SCRIPT); + menu->add_icon_item(get_icon("ScriptExtend", "EditorIcons"), TTR("Extend Script"), OBJ_MENU_EXTEND_SCRIPT); menu->add_separator(); } else if (base_type != "") { int idx = 0; @@ -2399,19 +2407,11 @@ void EditorPropertyResource::_update_menu_items() { inheritors_array.push_back(t); - int id = TYPE_BASE_ID + idx; - - if (!icon.is_valid() && has_icon(t, "EditorIcons")) { - icon = get_icon(t, "EditorIcons"); - } - - if (icon.is_valid()) { + if (!icon.is_valid()) + icon = get_icon(has_icon(t, "EditorIcons") ? t : "Object", "EditorIcons"); - menu->add_icon_item(icon, vformat(TTR("New %s"), t), id); - } else { - - menu->add_item(vformat(TTR("New %s"), t), id); - } + int id = TYPE_BASE_ID + idx; + menu->add_icon_item(icon, vformat(TTR("New %s"), t), id); idx++; } @@ -2615,14 +2615,6 @@ void EditorPropertyResource::update_property() { get_tree()->call_deferred("call_group", "_editor_resource_properties", "_fold_other_editors", this); } opened_editor = true; - /* - Button *open_in_editor = memnew(Button); - open_in_editor->set_text(TTR("Open Editor")); - open_in_editor->set_icon(get_icon("Edit", "EditorIcons")); - sub_inspector_vbox->add_child(open_in_editor); - open_in_editor->connect("pressed", this, "_open_editor_pressed"); - open_in_editor->set_h_size_flags(SIZE_SHRINK_CENTER); - */ } } @@ -2649,10 +2641,9 @@ void EditorPropertyResource::update_property() { if (res == RES()) { assign->set_icon(Ref<Texture>()); assign->set_text(TTR("[empty]")); - assign->set_tooltip(""); } else { - assign->set_icon(EditorNode::get_singleton()->get_object_icon(res.operator->(), "Node")); + assign->set_icon(EditorNode::get_singleton()->get_object_icon(res.operator->(), "Object")); if (res->get_name() != String()) { assign->set_text(res->get_name()); diff --git a/editor/editor_properties.h b/editor/editor_properties.h index b8d6aa00c2..952b0447e2 100644 --- a/editor/editor_properties.h +++ b/editor/editor_properties.h @@ -550,7 +550,8 @@ class EditorPropertyResource : public EditorProperty { OBJ_MENU_COPY = 5, OBJ_MENU_PASTE = 6, OBJ_MENU_NEW_SCRIPT = 7, - OBJ_MENU_SHOW_IN_FILE_SYSTEM = 8, + OBJ_MENU_EXTEND_SCRIPT = 8, + OBJ_MENU_SHOW_IN_FILE_SYSTEM = 9, TYPE_BASE_ID = 100, CONVERT_BASE_ID = 1000 diff --git a/editor/editor_properties_array_dict.cpp b/editor/editor_properties_array_dict.cpp index 8abe91bdc1..c75b66c601 100644 --- a/editor/editor_properties_array_dict.cpp +++ b/editor/editor_properties_array_dict.cpp @@ -475,16 +475,16 @@ void EditorPropertyArray::setup(Variant::Type p_array_type, const String &p_hint array_type = p_array_type; if (array_type == Variant::ARRAY && !p_hint_string.empty()) { - int hint_subtype_seperator = p_hint_string.find(":"); - if (hint_subtype_seperator >= 0) { - String subtype_string = p_hint_string.substr(0, hint_subtype_seperator); + int hint_subtype_separator = p_hint_string.find(":"); + if (hint_subtype_separator >= 0) { + String subtype_string = p_hint_string.substr(0, hint_subtype_separator); int slash_pos = subtype_string.find("/"); if (slash_pos >= 0) { subtype_hint = PropertyHint(subtype_string.substr(slash_pos + 1, subtype_string.size() - slash_pos - 1).to_int()); subtype_string = subtype_string.substr(0, slash_pos); } - subtype_hint_string = p_hint_string.substr(hint_subtype_seperator + 1, p_hint_string.size() - hint_subtype_seperator - 1); + subtype_hint_string = p_hint_string.substr(hint_subtype_separator + 1, p_hint_string.size() - hint_subtype_separator - 1); subtype = Variant::Type(subtype_string.to_int()); } } diff --git a/editor/editor_resource_preview.cpp b/editor/editor_resource_preview.cpp index 65a1704770..55f9347045 100644 --- a/editor/editor_resource_preview.cpp +++ b/editor/editor_resource_preview.cpp @@ -201,9 +201,8 @@ void EditorResourcePreview::_generate_preview(Ref<ImageTexture> &r_texture, Ref< if (has_small_texture) { ResourceSaver::save(cache_base + "_small.png", r_small_texture); } - Error err; - FileAccess *f = FileAccess::open(cache_base + ".txt", FileAccess::WRITE, &err); - ERR_FAIL_COND_MSG(err != OK, "Cannot create file '" + cache_base + ".txt'."); + FileAccess *f = FileAccess::open(cache_base + ".txt", FileAccess::WRITE); + ERR_FAIL_COND_MSG(!f, "Cannot create file '" + cache_base + ".txt'. Check user write permissions."); f->store_line(itos(thumbnail_size)); f->store_line(itos(has_small_texture)); f->store_line(itos(FileAccess::get_modified_time(p_item.path))); @@ -295,11 +294,17 @@ void EditorResourcePreview::_thread() { //update modified time f = FileAccess::open(file, FileAccess::WRITE); - f->store_line(itos(thumbnail_size)); - f->store_line(itos(has_small_texture)); - f->store_line(itos(modtime)); - f->store_line(md5); - memdelete(f); + if (!f) { + // Not returning as this would leave the thread hanging and would require + // some proper cleanup/disabling of resource preview generation. + ERR_PRINTS("Cannot create file '" + file + "'. Check user write permissions."); + } else { + f->store_line(itos(thumbnail_size)); + f->store_line(itos(has_small_texture)); + f->store_line(itos(modtime)); + f->store_line(md5); + memdelete(f); + } } } else { memdelete(f); diff --git a/editor/editor_run_native.cpp b/editor/editor_run_native.cpp index 585ea0ec69..64e90f2488 100644 --- a/editor/editor_run_native.cpp +++ b/editor/editor_run_native.cpp @@ -75,20 +75,18 @@ void EditorRunNative::_notification(int p_what) { Ref<EditorExportPlatform> eep = EditorExport::get_singleton()->get_export_platform(E->key()); MenuButton *mb = E->get(); - int dc = eep->get_device_count(); + int dc = eep->get_options_count(); if (dc == 0) { mb->hide(); } else { mb->get_popup()->clear(); mb->show(); - if (dc == 1) { - mb->set_tooltip(eep->get_device_name(0) + "\n\n" + eep->get_device_info(0).strip_edges()); - } else { - mb->set_tooltip("Select device from the list"); + mb->set_tooltip(eep->get_options_tooltip()); + if (dc > 1) { for (int i = 0; i < dc; i++) { - mb->get_popup()->add_icon_item(get_icon("Play", "EditorIcons"), eep->get_device_name(i)); - mb->get_popup()->set_item_tooltip(mb->get_popup()->get_item_count() - 1, eep->get_device_info(i).strip_edges()); + mb->get_popup()->add_icon_item(eep->get_option_icon(i), eep->get_option_label(i)); + mb->get_popup()->set_item_tooltip(mb->get_popup()->get_item_count() - 1, eep->get_option_tooltip(i)); } } } @@ -111,7 +109,7 @@ void EditorRunNative::_run_native(int p_idx, int p_platform) { ERR_FAIL_COND(eep.is_null()); if (p_idx == -1) { - if (eep->get_device_count() == 1) { + if (eep->get_options_count() == 1) { menus[p_platform]->get_popup()->hide(); p_idx = 0; } else { diff --git a/editor/editor_settings.cpp b/editor/editor_settings.cpp index 3ea59115b0..a3a02dbd4c 100644 --- a/editor/editor_settings.cpp +++ b/editor/editor_settings.cpp @@ -436,7 +436,7 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) { _initial_set("text_editor/indent/size", 4); hints["text_editor/indent/size"] = PropertyInfo(Variant::INT, "text_editor/indent/size", PROPERTY_HINT_RANGE, "1, 64, 1"); // size of 0 crashes. _initial_set("text_editor/indent/auto_indent", true); - _initial_set("text_editor/indent/convert_indent_on_save", false); + _initial_set("text_editor/indent/convert_indent_on_save", true); _initial_set("text_editor/indent/draw_tabs", true); _initial_set("text_editor/indent/draw_spaces", false); @@ -559,8 +559,6 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) { hints["editors/3d/freelook/freelook_base_speed"] = PropertyInfo(Variant::REAL, "editors/3d/freelook/freelook_base_speed", PROPERTY_HINT_RANGE, "0.0, 10, 0.01"); _initial_set("editors/3d/freelook/freelook_activation_modifier", 0); hints["editors/3d/freelook/freelook_activation_modifier"] = PropertyInfo(Variant::INT, "editors/3d/freelook/freelook_activation_modifier", PROPERTY_HINT_ENUM, "None,Shift,Alt,Meta,Ctrl"); - _initial_set("editors/3d/freelook/freelook_modifier_speed_factor", 3.0); - hints["editors/3d/freelook/freelook_modifier_speed_factor"] = PropertyInfo(Variant::REAL, "editors/3d/freelook/freelook_modifier_speed_factor", PROPERTY_HINT_RANGE, "0.0, 10.0, 0.1"); _initial_set("editors/3d/freelook/freelook_speed_zoom_link", false); // 2D diff --git a/editor/editor_spin_slider.cpp b/editor/editor_spin_slider.cpp index 918b0ef96d..d80176f00d 100644 --- a/editor/editor_spin_slider.cpp +++ b/editor/editor_spin_slider.cpp @@ -228,9 +228,9 @@ void EditorSpinSlider::_notification(int p_what) { draw_style_box(focus, Rect2(Vector2(), get_size())); } - draw_string(font, Vector2(sb->get_offset().x, vofs), label, lc * Color(1, 1, 1, 0.5)); + draw_string(font, Vector2(Math::round(sb->get_offset().x), vofs), label, lc * Color(1, 1, 1, 0.5)); - draw_string(font, Vector2(sb->get_offset().x + string_width + sep, vofs), numstr, fc, number_width); + draw_string(font, Vector2(Math::round(sb->get_offset().x + string_width + sep), vofs), numstr, fc, number_width); if (get_step() == 1) { Ref<Texture> updown2 = get_icon("updown", "SpinBox"); diff --git a/editor/editor_sub_scene.cpp b/editor/editor_sub_scene.cpp index 987033b123..a77051c80b 100644 --- a/editor/editor_sub_scene.cpp +++ b/editor/editor_sub_scene.cpp @@ -97,8 +97,14 @@ void EditorSubScene::_fill_tree(Node *p_node, TreeItem *p_parent) { } void EditorSubScene::_selected_changed() { - selection.clear(); - is_root = false; + TreeItem *item = tree->get_selected(); + ERR_FAIL_COND(!item); + Node *n = item->get_metadata(0); + + if (!n || !selection.find(n)) { + selection.clear(); + is_root = false; + } } void EditorSubScene::_item_multi_selected(Object *p_object, int p_cell, bool p_selected) { @@ -116,6 +122,11 @@ void EditorSubScene::_item_multi_selected(Object *p_object, int p_cell, bool p_s selection.clear(); } selection.push_back(n); + } else { + List<Node *>::Element *E = selection.find(n); + + if (E) + selection.erase(E); } } } diff --git a/editor/editor_themes.cpp b/editor/editor_themes.cpp index 0c7c2c6cc3..f05c7709d4 100644 --- a/editor/editor_themes.cpp +++ b/editor/editor_themes.cpp @@ -648,9 +648,11 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) { theme->set_constant("hseparation", "CheckBox", 4 * EDSCALE); theme->set_constant("check_vadjust", "CheckBox", 0 * EDSCALE); + // PopupDialog + theme->set_stylebox("panel", "PopupDialog", style_popup); + // PopupMenu - Ref<StyleBoxFlat> style_popup_menu = style_popup; - theme->set_stylebox("panel", "PopupMenu", style_popup_menu); + theme->set_stylebox("panel", "PopupMenu", style_popup); theme->set_stylebox("separator", "PopupMenu", style_popup_separator); theme->set_stylebox("labeled_separator_left", "PopupMenu", style_popup_labeled_separator_left); theme->set_stylebox("labeled_separator_right", "PopupMenu", style_popup_labeled_separator_right); @@ -1087,7 +1089,7 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) { theme->set_icon("port", "GraphNode", theme->get_icon("GuiGraphNodePort", "EditorIcons")); // GridContainer - theme->set_constant("vseperation", "GridContainer", (extra_spacing + default_margin_size) * EDSCALE); + theme->set_constant("vseparation", "GridContainer", (extra_spacing + default_margin_size) * EDSCALE); // FileDialog theme->set_icon("folder", "FileDialog", theme->get_icon("Folder", "EditorIcons")); diff --git a/editor/export_template_manager.cpp b/editor/export_template_manager.cpp index 1cdf9848ef..f47f9b8b92 100644 --- a/editor/export_template_manager.cpp +++ b/editor/export_template_manager.cpp @@ -69,9 +69,15 @@ void ExportTemplateManager::_update_template_list() { memdelete(d); String current_version = VERSION_FULL_CONFIG; - // Downloadable export templates are only available for stable, alpha, beta and RC versions. + // Downloadable export templates are only available for stable and official alpha/beta/RC builds + // (which always have a number following their status, e.g. "alpha1"). // Therefore, don't display download-related features when using a development version - const bool downloads_available = String(VERSION_STATUS) != String("dev"); + // (whose builds aren't numbered). + const bool downloads_available = + String(VERSION_STATUS) != String("dev") && + String(VERSION_STATUS) != String("alpha") && + String(VERSION_STATUS) != String("beta") && + String(VERSION_STATUS) != String("rc"); Label *current = memnew(Label); current->set_h_size_flags(SIZE_EXPAND_FILL); @@ -155,38 +161,27 @@ void ExportTemplateManager::_uninstall_template(const String &p_version) { void ExportTemplateManager::_uninstall_template_confirm() { - DirAccess *d = DirAccess::create(DirAccess::ACCESS_FILESYSTEM); - Error err = d->change_dir(EditorSettings::get_singleton()->get_templates_dir()); - - ERR_FAIL_COND(err != OK); - - err = d->change_dir(to_remove); - - ERR_FAIL_COND(err != OK); - - Vector<String> files; - d->list_dir_begin(); - String c = d->get_next(); - while (c != String()) { - if (!d->current_is_dir()) { - files.push_back(c); - } - c = d->get_next(); - } - d->list_dir_end(); + DirAccessRef da = DirAccess::create(DirAccess::ACCESS_FILESYSTEM); + const String &templates_dir = EditorSettings::get_singleton()->get_templates_dir(); + Error err = da->change_dir(templates_dir); + ERR_FAIL_COND_MSG(err != OK, "Could not access templates directory at '" + templates_dir + "'."); + err = da->change_dir(to_remove); + ERR_FAIL_COND_MSG(err != OK, "Could not access templates directory at '" + templates_dir.plus_file(to_remove) + "'."); - for (int i = 0; i < files.size(); i++) { - d->remove(files[i]); - } + err = da->erase_contents_recursive(); + ERR_FAIL_COND_MSG(err != OK, "Could not remove all templates in '" + templates_dir.plus_file(to_remove) + "'."); - d->change_dir(".."); - d->remove(to_remove); + da->change_dir(".."); + da->remove(to_remove); + ERR_FAIL_COND_MSG(err != OK, "Could not remove templates directory at '" + templates_dir.plus_file(to_remove) + "'."); _update_template_list(); } bool ExportTemplateManager::_install_from_file(const String &p_file, bool p_use_progress) { + // unzClose() will take care of closing the file stored in the unzFile, + // so we don't need to `memdelete(fa)` in this method. FileAccess *fa = NULL; zlib_filefunc_def io = zipio_create_io_from_file(&fa); @@ -251,7 +246,7 @@ bool ExportTemplateManager::_install_from_file(const String &p_file, bool p_use_ String template_path = EditorSettings::get_singleton()->get_templates_dir().plus_file(version); - DirAccess *d = DirAccess::create(DirAccess::ACCESS_FILESYSTEM); + DirAccessRef d = DirAccess::create(DirAccess::ACCESS_FILESYSTEM); Error err = d->make_dir_recursive(template_path); if (err != OK) { EditorNode::get_singleton()->show_warning(TTR("Error creating path for templates:") + "\n" + template_path); @@ -259,8 +254,6 @@ bool ExportTemplateManager::_install_from_file(const String &p_file, bool p_use_ return false; } - memdelete(d); - ret = unzGoToFirstFile(pkg); EditorProgress *p = NULL; @@ -316,7 +309,7 @@ bool ExportTemplateManager::_install_from_file(const String &p_file, bool p_use_ } String to_write = template_path.plus_file(file); - FileAccess *f = FileAccess::open(to_write, FileAccess::WRITE); + FileAccessRef f = FileAccess::open(to_write, FileAccess::WRITE); if (!f) { ret = unzGoToNextFile(pkg); @@ -326,8 +319,6 @@ bool ExportTemplateManager::_install_from_file(const String &p_file, bool p_use_ f->store_buffer(data.ptr(), data.size()); - memdelete(f); - #ifndef WINDOWS_ENABLED FileAccess::set_unix_permissions(to_write, (info.external_fa >> 16) & 0x01FF); #endif @@ -343,7 +334,6 @@ bool ExportTemplateManager::_install_from_file(const String &p_file, bool p_use_ unzClose(pkg); _update_template_list(); - return true; } diff --git a/editor/filesystem_dock.cpp b/editor/filesystem_dock.cpp index e3f0021fbc..fa171ddb0c 100644 --- a/editor/filesystem_dock.cpp +++ b/editor/filesystem_dock.cpp @@ -115,6 +115,10 @@ bool FileSystemDock::_create_tree(TreeItem *p_parent, EditorFileSystemDirectory file_item->select(0); file_item->set_as_cursor(0); } + String main_scene = ProjectSettings::get_singleton()->get("application/run/main_scene"); + if (main_scene == file_metadata) { + file_item->set_custom_color(0, get_color("accent_color", "Editor")); + } Array udata; udata.push_back(tree_update_id); udata.push_back(file_item); @@ -333,10 +337,11 @@ void FileSystemDock::_notification(int p_what) { case NOTIFICATION_DRAG_BEGIN: { Dictionary dd = get_viewport()->gui_get_drag_data(); if (tree->is_visible_in_tree() && dd.has("type")) { - if ((String(dd["type"]) == "files") || (String(dd["type"]) == "files_and_dirs") || (String(dd["type"]) == "resource")) { + if (dd.has("favorite")) { + if ((String(dd["favorite"]) == "all")) + tree->set_drop_mode_flags(Tree::DROP_MODE_INBETWEEN); + } else if ((String(dd["type"]) == "files") || (String(dd["type"]) == "files_and_dirs") || (String(dd["type"]) == "resource")) { tree->set_drop_mode_flags(Tree::DROP_MODE_ON_ITEM | Tree::DROP_MODE_INBETWEEN); - } else if ((String(dd["type"]) == "favorite")) { - tree->set_drop_mode_flags(Tree::DROP_MODE_INBETWEEN); } } } break; @@ -1564,6 +1569,15 @@ void FileSystemDock::_file_option(int p_option, const Vector<String> &p_selected } } break; + case FILE_MAIN_SCENE: { + // Set as main scene with selected scene file. + if (p_selected.size() == 1) { + ProjectSettings::get_singleton()->set("application/run/main_scene", p_selected[0]); + ProjectSettings::get_singleton()->save(); + _update_tree(_compute_uncollapsed_paths()); + } + } break; + case FILE_INSTANCE: { // Instance all selected scenes. Vector<String> paths; @@ -1839,7 +1853,7 @@ Variant FileSystemDock::get_drag_data_fw(const Point2 &p_point, Control *p_from) all_not_favorites &= !is_favorite; selected = tree->get_next_selected(selected); } - if (all_favorites) { + if (!all_not_favorites) { paths = _tree_get_selected(false); } else { paths = _tree_get_selected(); @@ -1857,12 +1871,9 @@ Variant FileSystemDock::get_drag_data_fw(const Point2 &p_point, Control *p_from) if (paths.empty()) return Variant(); - if (!all_favorites && !all_not_favorites) - return Variant(); - Dictionary drag_data = EditorNode::get_singleton()->drag_files_and_dirs(paths, p_from); - if (all_favorites) { - drag_data["type"] = "favorite"; + if (!all_not_favorites) { + drag_data["favorite"] = all_favorites ? "all" : "mixed"; } return drag_data; } @@ -1870,7 +1881,11 @@ Variant FileSystemDock::get_drag_data_fw(const Point2 &p_point, Control *p_from) bool FileSystemDock::can_drop_data_fw(const Point2 &p_point, const Variant &p_data, Control *p_from) const { Dictionary drag_data = p_data; - if (drag_data.has("type") && String(drag_data["type"]) == "favorite") { + if (drag_data.has("favorite")) { + + if (String(drag_data["favorite"]) != "all") { + return false; + } // Moving favorite around. TreeItem *ti = tree->get_item_at_position(p_point); @@ -1937,7 +1952,11 @@ void FileSystemDock::drop_data_fw(const Point2 &p_point, const Variant &p_data, Vector<String> dirs = EditorSettings::get_singleton()->get_favorites(); - if (drag_data.has("type") && String(drag_data["type"]) == "favorite") { + if (drag_data.has("favorite")) { + + if (String(drag_data["favorite"]) != "all") { + return; + } // Moving favorite around. TreeItem *ti = tree->get_item_at_position(p_point); if (!ti) @@ -2132,6 +2151,7 @@ void FileSystemDock::_file_and_folders_fill_popup(PopupMenu *p_popup, Vector<Str if (filenames.size() == 1) { p_popup->add_icon_item(get_icon("Load", "EditorIcons"), TTR("Open Scene"), FILE_OPEN); p_popup->add_icon_item(get_icon("CreateNewSceneFrom", "EditorIcons"), TTR("New Inherited Scene"), FILE_INHERIT); + p_popup->add_item(TTR("Set As Main Scene"), FILE_MAIN_SCENE); } else { p_popup->add_icon_item(get_icon("Load", "EditorIcons"), TTR("Open Scenes"), FILE_OPEN); } diff --git a/editor/filesystem_dock.h b/editor/filesystem_dock.h index 49eb31e330..099f4ad273 100644 --- a/editor/filesystem_dock.h +++ b/editor/filesystem_dock.h @@ -74,6 +74,7 @@ private: enum FileMenu { FILE_OPEN, FILE_INHERIT, + FILE_MAIN_SCENE, FILE_INSTANCE, FILE_ADD_FAVORITE, FILE_REMOVE_FAVORITE, diff --git a/editor/icons/icon_crypto_key.svg b/editor/icons/icon_crypto_key.svg new file mode 100644 index 0000000000..45b53c815d --- /dev/null +++ b/editor/icons/icon_crypto_key.svg @@ -0,0 +1 @@ +<svg height="16" viewBox="0 0 4.233 4.233" width="16" xmlns="http://www.w3.org/2000/svg"><path d="m2.397.34-.374.373-.375.374v.375l.188.187-1.497 1.496v.375l.374.374h.374l.187-.188.282-.092.092-.282.282-.093.093-.28.094-.28.28-.095.187-.187.187.187h.374l.375-.375.373-.373.001-.374-1.122-1.122zm.374.858a.264.264 0 1 1 .002.528.264.264 0 0 1 -.002-.528z" fill="#e0e0e0"/></svg>
\ No newline at end of file diff --git a/editor/icons/icon_x509_certificate.svg b/editor/icons/icon_x509_certificate.svg new file mode 100644 index 0000000000..e175fa3234 --- /dev/null +++ b/editor/icons/icon_x509_certificate.svg @@ -0,0 +1 @@ +<svg height="16" viewBox="0 0 4.233 4.233" width="16" xmlns="http://www.w3.org/2000/svg"><path d="m3.967.263-3.704.001v2.646h1.427a.993.993 0 0 1 -.022-.096.993.993 0 0 1 -.012-.099.993.993 0 0 1 -.002-.07.993.993 0 0 1 .005-.1.993.993 0 0 1 .014-.097.993.993 0 0 1 .025-.096.993.993 0 0 1 .034-.093.993.993 0 0 1 .043-.09.993.993 0 0 1 .052-.085.993.993 0 0 1 .06-.079.993.993 0 0 1 .068-.072.993.993 0 0 1 .074-.066.993.993 0 0 1 .08-.057.993.993 0 0 1 .087-.05.993.993 0 0 1 .09-.04.993.993 0 0 1 .095-.031.993.993 0 0 1 .096-.022.993.993 0 0 1 .099-.012.993.993 0 0 1 .07-.003.993.993 0 0 1 .099.006.993.993 0 0 1 .098.014.993.993 0 0 1 .096.025.993.993 0 0 1 .094.034.993.993 0 0 1 .089.043.993.993 0 0 1 .084.052.993.993 0 0 1 .08.06.993.993 0 0 1 .072.068.993.993 0 0 1 .065.074.993.993 0 0 1 .058.08.993.993 0 0 1 .05.087.993.993 0 0 1 .04.09.993.993 0 0 1 .031.095.993.993 0 0 1 .022.096.993.993 0 0 1 .012.099.993.993 0 0 1 .002.07.993.993 0 0 1 -.004.1.993.993 0 0 1 -.015.097.993.993 0 0 1 -.017.068h.365z" fill="#e0e0e0"/><g fill="#ff8484"><path d="m2.116 3.175v.793l.53-.253.529.253v-.793z"/><circle cx="2.646" cy="2.645" r=".794"/></g></svg>
\ No newline at end of file diff --git a/editor/import/editor_scene_importer_gltf.cpp b/editor/import/editor_scene_importer_gltf.cpp index 49091dc812..fcf0e4af6f 100644 --- a/editor/import/editor_scene_importer_gltf.cpp +++ b/editor/import/editor_scene_importer_gltf.cpp @@ -1973,7 +1973,7 @@ Error EditorSceneImporterGLTF::_reparent_to_fake_joint(GLTFState &state, GLTFSke state.nodes.push_back(fake_joint); // We better not be a joint, or we messed up in our logic - if (node->joint == true) + if (node->joint) return FAILED; fake_joint->translation = node->translation; diff --git a/editor/import/resource_importer_obj.h b/editor/import/resource_importer_obj.h index b96bc1b656..adad21da61 100644 --- a/editor/import/resource_importer_obj.h +++ b/editor/import/resource_importer_obj.h @@ -31,7 +31,7 @@ #ifndef RESOURCEIMPORTEROBJ_H #define RESOURCEIMPORTEROBJ_H -#include "import/resource_importer_scene.h" +#include "resource_importer_scene.h" class EditorOBJImporter : public EditorSceneImporter { diff --git a/editor/node_dock.cpp b/editor/node_dock.cpp index d6df3bd369..7ba1796600 100644 --- a/editor/node_dock.cpp +++ b/editor/node_dock.cpp @@ -129,6 +129,7 @@ NodeDock::NodeDock() { select_a_node = memnew(Label); select_a_node->set_text(TTR("Select a single node to edit its signals and groups.")); + select_a_node->set_custom_minimum_size(Size2(100 * EDSCALE, 0)); select_a_node->set_v_size_flags(SIZE_EXPAND_FILL); select_a_node->set_valign(Label::VALIGN_CENTER); select_a_node->set_align(Label::ALIGN_CENTER); diff --git a/editor/output_strings.cpp b/editor/output_strings.cpp deleted file mode 100644 index baabaff9a8..0000000000 --- a/editor/output_strings.cpp +++ /dev/null @@ -1,208 +0,0 @@ -/*************************************************************************/ -/* output_strings.cpp */ -/*************************************************************************/ -/* This file is part of: */ -/* GODOT ENGINE */ -/* https://godotengine.org */ -/*************************************************************************/ -/* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */ -/* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */ -/* */ -/* Permission is hereby granted, free of charge, to any person obtaining */ -/* a copy of this software and associated documentation files (the */ -/* "Software"), to deal in the Software without restriction, including */ -/* without limitation the rights to use, copy, modify, merge, publish, */ -/* distribute, sublicense, and/or sell copies of the Software, and to */ -/* permit persons to whom the Software is furnished to do so, subject to */ -/* the following conditions: */ -/* */ -/* The above copyright notice and this permission notice shall be */ -/* included in all copies or substantial portions of the Software. */ -/* */ -/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ -/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ -/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ -/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ -/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ -/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ -/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -/*************************************************************************/ - -#include "output_strings.h" - -void OutputStrings::update_scrollbars() { - - Size2 hmin = h_scroll->get_combined_minimum_size(); - Size2 vmin = v_scroll->get_combined_minimum_size(); - - v_scroll->set_anchor(MARGIN_LEFT, ANCHOR_END); - v_scroll->set_anchor(MARGIN_RIGHT, ANCHOR_END); - v_scroll->set_anchor(MARGIN_BOTTOM, ANCHOR_END); - - v_scroll->set_begin(Point2(-vmin.width, 0)); - v_scroll->set_end(Point2(0, 0)); - - h_scroll->set_anchor(MARGIN_RIGHT, ANCHOR_END); - h_scroll->set_anchor(MARGIN_TOP, ANCHOR_END); - h_scroll->set_anchor(MARGIN_BOTTOM, ANCHOR_END); - - h_scroll->set_begin(Point2(0, -hmin.y)); - h_scroll->set_end(Point2(-vmin.x, 0)); - - margin.y = hmin.y; - margin.x = vmin.x; - - Ref<StyleBox> tree_st = get_stylebox("bg", "Tree"); - int page = ((size_height - (int)margin.y - tree_st->get_margin(MARGIN_TOP)) / font_height); - v_scroll->set_page(page); -} - -void OutputStrings::_notification(int p_what) { - - switch (p_what) { - - case NOTIFICATION_DRAW: { - - if (following) { - - updating = true; - v_scroll->set_value(v_scroll->get_max() - v_scroll->get_page()); - updating = false; - } - - RID ci = get_canvas_item(); - Size2 size = get_size(); - - Ref<Font> font = get_font("font", "Tree"); - Ref<StyleBox> tree_st = get_stylebox("bg", "Tree"); - tree_st->draw(ci, Rect2(Point2(), size)); - Color color = get_color("font_color", "Tree"); - Ref<Texture> icon_error = get_icon("Error", "EditorIcons"); - Ref<Texture> icon_warning = get_icon("Warning", "EditorIcons"); - - //int lines = (size_height-(int)margin.y) / font_height; - Point2 ofs = tree_st->get_offset(); - - LineMap::Element *E = line_map.find(v_scroll->get_value()); - float h_ofs = (int)h_scroll->get_value(); - Point2 icon_ofs = Point2(0, (font_height - (int)icon_error->get_height()) / 2); - - FontDrawer drawer(font, Color(1, 1, 1)); - while (E && ofs.y < (size_height - (int)margin.y)) { - - String str = E->get().text; - Point2 line_ofs = ofs; - - switch (E->get().type) { - - case LINE_WARNING: { - icon_warning->draw(ci, line_ofs + icon_ofs); - - } break; - case LINE_ERROR: { - icon_error->draw(ci, line_ofs + icon_ofs); - } break; - case LINE_LINK: { - - } break; - default: { - } - } - - line_ofs.y += font->get_ascent(); - line_ofs.x += icon_error->get_width() + 4; - - for (int i = 0; i < str.length(); i++) { - if (line_ofs.x - h_ofs < 0) { - line_ofs.x += font->get_char_size(str[i], str[i + 1]).width; - } else if (line_ofs.x - h_ofs > size.width - margin.width) { - break; - } else { - line_ofs.x += font->draw_char(ci, Point2(line_ofs.x - h_ofs, line_ofs.y), str[i], str[i + 1], color); - } - } - - ofs.y += font_height; - E = E->next(); - } - - } break; - - case NOTIFICATION_ENTER_TREE: - case NOTIFICATION_RESIZED: { - - font_height = get_font("font", "Tree")->get_height(); - size_height = get_size().height; - update_scrollbars(); - } break; - } -} - -void OutputStrings::_hscroll_changed(float p_value) { - - if (updating) - return; - - update(); -} -void OutputStrings::_vscroll_changed(float p_value) { - - if (updating) - return; - //user changed scroll - following = (p_value + v_scroll->get_page()) >= v_scroll->get_max(); - update(); -} - -void OutputStrings::add_line(const String &p_text, const Variant &p_meta, const LineType p_type) { - - Vector<String> strings = p_text.split("\n"); - - for (int i = 0; i < strings.size(); i++) { - - if (strings[i].length() == 0) - continue; - - int last = line_map.empty() ? 0 : (line_map.back()->key() + 1); - - Line l; - l.text = strings[i]; - l.meta = p_meta; - l.type = p_type; - line_map.insert(last, l); - - updating = true; - v_scroll->set_max(last + 1); - v_scroll->set_min(line_map.front()->key()); - updating = false; - } - - while (line_map.size() > line_max_count) { - - line_map.erase(line_map.front()); - } - - update(); -} - -void OutputStrings::_bind_methods() { - - ClassDB::bind_method("_vscroll_changed", &OutputStrings::_vscroll_changed); - ClassDB::bind_method("_hscroll_changed", &OutputStrings::_hscroll_changed); -} - -OutputStrings::OutputStrings() { - - following = true; - updating = false; - line_max_count = 4096; - h_scroll = memnew(HScrollBar); - v_scroll = memnew(VScrollBar); - add_child(h_scroll); - add_child(v_scroll); - size_height = 1; - font_height = 1; - update_scrollbars(); - h_scroll->connect("value_changed", this, "_hscroll_changed"); - v_scroll->connect("value_changed", this, "_vscroll_changed"); -} diff --git a/editor/output_strings.h b/editor/output_strings.h deleted file mode 100644 index 4fd3f7d836..0000000000 --- a/editor/output_strings.h +++ /dev/null @@ -1,87 +0,0 @@ -/*************************************************************************/ -/* output_strings.h */ -/*************************************************************************/ -/* This file is part of: */ -/* GODOT ENGINE */ -/* https://godotengine.org */ -/*************************************************************************/ -/* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */ -/* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */ -/* */ -/* Permission is hereby granted, free of charge, to any person obtaining */ -/* a copy of this software and associated documentation files (the */ -/* "Software"), to deal in the Software without restriction, including */ -/* without limitation the rights to use, copy, modify, merge, publish, */ -/* distribute, sublicense, and/or sell copies of the Software, and to */ -/* permit persons to whom the Software is furnished to do so, subject to */ -/* the following conditions: */ -/* */ -/* The above copyright notice and this permission notice shall be */ -/* included in all copies or substantial portions of the Software. */ -/* */ -/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ -/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ -/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ -/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ -/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ -/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ -/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -/*************************************************************************/ - -#ifndef OUTPUT_STRINGS_H -#define OUTPUT_STRINGS_H - -#include "core/map.h" -#include "scene/gui/control.h" -#include "scene/gui/scroll_bar.h" - -class OutputStrings : public Control { - - GDCLASS(OutputStrings, Control); - -public: - enum LineType { - - LINE_NORMAL, - LINE_WARNING, - LINE_ERROR, - LINE_LINK - }; - -private: - struct Line { - - LineType type; - Variant meta; - String text; - }; - - int font_height; - int size_height; - - Size2 margin; - typedef Map<int, Line> LineMap; - Map<int, Line> line_map; - - VScrollBar *v_scroll; - HScrollBar *h_scroll; - - bool following; - int line_max_count; - bool updating; - - void _vscroll_changed(float p_value); - void _hscroll_changed(float p_value); - void update_scrollbars(); - -protected: - static void _bind_methods(); - void _notification(int p_what); - -public: - void add_line(const String &p_text, const Variant &p_meta = Variant(), const LineType p_type = LINE_NORMAL); - - OutputStrings(); -}; - -#endif // OUTPUT_STRINGS_H diff --git a/editor/plugins/asset_library_editor_plugin.cpp b/editor/plugins/asset_library_editor_plugin.cpp index 3d161dc5b9..95767a96d8 100644 --- a/editor/plugins/asset_library_editor_plugin.cpp +++ b/editor/plugins/asset_library_editor_plugin.cpp @@ -32,8 +32,8 @@ #include "core/io/json.h" #include "core/version.h" -#include "editor_node.h" -#include "editor_settings.h" +#include "editor/editor_node.h" +#include "editor/editor_settings.h" void EditorAssetLibraryItem::configure(const String &p_title, int p_asset_id, const String &p_category, int p_category_id, const String &p_author, int p_author_id, const String &p_cost) { @@ -1137,9 +1137,12 @@ void EditorAssetLibrary::_http_request_completed(int p_status, int p_code, const initial_loading = false; - // The loading text only needs to be displayed before the first page is loaded + // The loading text only needs to be displayed before the first page is loaded. + // Therefore, we don't need to show it again. library_loading->hide(); + library_error->hide(); + if (asset_items) { memdelete(asset_items); } @@ -1187,6 +1190,11 @@ void EditorAssetLibrary::_http_request_completed(int p_status, int p_code, const asset_bottom_page = _make_pages(page, pages, page_len, total_items, result.size()); library_vb->add_child(asset_bottom_page); + if (result.empty()) { + library_error->set_text(vformat(TTR("No results for \"%s\"."), filter->get_text())); + library_error->show(); + } + for (int i = 0; i < result.size(); i++) { Dictionary r = result[i]; @@ -1453,6 +1461,11 @@ EditorAssetLibrary::EditorAssetLibrary(bool p_templates_only) { library_loading->set_align(Label::ALIGN_CENTER); library_vb->add_child(library_loading); + library_error = memnew(Label); + library_error->set_align(Label::ALIGN_CENTER); + library_error->hide(); + library_vb->add_child(library_error); + asset_top_page = memnew(HBoxContainer); library_vb->add_child(asset_top_page); diff --git a/editor/plugins/asset_library_editor_plugin.h b/editor/plugins/asset_library_editor_plugin.h index 7e934ac6cb..70ffbd9eed 100644 --- a/editor/plugins/asset_library_editor_plugin.h +++ b/editor/plugins/asset_library_editor_plugin.h @@ -31,24 +31,22 @@ #ifndef ASSET_LIBRARY_EDITOR_PLUGIN_H #define ASSET_LIBRARY_EDITOR_PLUGIN_H -#include "editor_plugin.h" +#include "editor/editor_asset_installer.h" +#include "editor/editor_plugin.h" +#include "editor/editor_plugin_settings.h" #include "scene/gui/box_container.h" #include "scene/gui/check_box.h" +#include "scene/gui/grid_container.h" #include "scene/gui/line_edit.h" #include "scene/gui/link_button.h" #include "scene/gui/option_button.h" #include "scene/gui/panel_container.h" #include "scene/gui/progress_bar.h" -#include "scene/gui/separator.h" -#include "scene/gui/tab_container.h" - -#include "editor_plugin_settings.h" -#include "scene/gui/grid_container.h" #include "scene/gui/rich_text_label.h" #include "scene/gui/scroll_container.h" +#include "scene/gui/separator.h" +#include "scene/gui/tab_container.h" #include "scene/gui/texture_button.h" - -#include "editor_asset_installer.h" #include "scene/main/http_request.h" class EditorAssetLibraryItem : public PanelContainer { @@ -186,6 +184,7 @@ class EditorAssetLibrary : public PanelContainer { ScrollContainer *library_scroll; VBoxContainer *library_vb; Label *library_loading; + Label *library_error; LineEdit *filter; OptionButton *categories; OptionButton *repository; diff --git a/editor/plugins/canvas_item_editor_plugin.cpp b/editor/plugins/canvas_item_editor_plugin.cpp index 0d388512f4..2d9a713cad 100644 --- a/editor/plugins/canvas_item_editor_plugin.cpp +++ b/editor/plugins/canvas_item_editor_plugin.cpp @@ -67,6 +67,7 @@ class SnapDialog : public ConfirmationDialog { SpinBox *grid_offset_y; SpinBox *grid_step_x; SpinBox *grid_step_y; + SpinBox *primary_grid_steps; SpinBox *rotation_offset; SpinBox *rotation_step; @@ -132,8 +133,28 @@ public: grid_step_y->set_h_size_flags(SIZE_EXPAND_FILL); child_container->add_child(grid_step_y); + child_container = memnew(GridContainer); + child_container->set_columns(2); + container->add_child(child_container); + + label = memnew(Label); + label->set_text(TTR("Primary Line Every:")); + label->set_h_size_flags(SIZE_EXPAND_FILL); + child_container->add_child(label); + + primary_grid_steps = memnew(SpinBox); + primary_grid_steps->set_min(0); + primary_grid_steps->set_step(1); + primary_grid_steps->set_max(100); + primary_grid_steps->set_allow_greater(true); + primary_grid_steps->set_suffix(TTR("steps")); + primary_grid_steps->set_h_size_flags(SIZE_EXPAND_FILL); + child_container->add_child(primary_grid_steps); + container->add_child(memnew(HSeparator)); + // We need to create another GridContainer with the same column count, + // so we can put an HSeparator above child_container = memnew(GridContainer); child_container->set_columns(2); container->add_child(child_container); @@ -163,18 +184,20 @@ public: child_container->add_child(rotation_step); } - void set_fields(const Point2 p_grid_offset, const Point2 p_grid_step, const float p_rotation_offset, const float p_rotation_step) { + void set_fields(const Point2 p_grid_offset, const Point2 p_grid_step, const int p_primary_grid_steps, const float p_rotation_offset, const float p_rotation_step) { grid_offset_x->set_value(p_grid_offset.x); grid_offset_y->set_value(p_grid_offset.y); grid_step_x->set_value(p_grid_step.x); grid_step_y->set_value(p_grid_step.y); + primary_grid_steps->set_value(p_primary_grid_steps); rotation_offset->set_value(p_rotation_offset * (180 / Math_PI)); rotation_step->set_value(p_rotation_step * (180 / Math_PI)); } - void get_fields(Point2 &p_grid_offset, Point2 &p_grid_step, float &p_rotation_offset, float &p_rotation_step) { + void get_fields(Point2 &p_grid_offset, Point2 &p_grid_step, int &p_primary_grid_steps, float &p_rotation_offset, float &p_rotation_step) { p_grid_offset = Point2(grid_offset_x->get_value(), grid_offset_y->get_value()); p_grid_step = Point2(grid_step_x->get_value(), grid_step_y->get_value()); + p_primary_grid_steps = int(primary_grid_steps->get_value()); p_rotation_offset = rotation_offset->get_value() / (180 / Math_PI); p_rotation_step = rotation_step->get_value() / (180 / Math_PI); } @@ -284,7 +307,7 @@ Point2 CanvasItemEditor::snap_point(Point2 p_target, unsigned int p_modes, unsig snap_target[0] = SNAP_TARGET_NONE; snap_target[1] = SNAP_TARGET_NONE; - bool is_snap_active = snap_active ^ Input::get_singleton()->is_key_pressed(KEY_CONTROL); + bool is_snap_active = smart_snap_active ^ Input::get_singleton()->is_key_pressed(KEY_CONTROL); // Smart snap using the canvas position Vector2 output = p_target; @@ -384,7 +407,7 @@ Point2 CanvasItemEditor::snap_point(Point2 p_target, unsigned int p_modes, unsig } } - if (((is_snap_active && snap_grid && (p_modes & SNAP_GRID)) || (p_forced_modes & SNAP_GRID)) && fmod(rotation, (real_t)360.0) == 0.0) { + if (((grid_snap_active && (p_modes & SNAP_GRID)) || (p_forced_modes & SNAP_GRID)) && fmod(rotation, (real_t)360.0) == 0.0) { // Grid Point2 offset = grid_offset; if (snap_relative) { @@ -412,7 +435,7 @@ Point2 CanvasItemEditor::snap_point(Point2 p_target, unsigned int p_modes, unsig } float CanvasItemEditor::snap_angle(float p_target, float p_start) const { - return (((snap_active || snap_rotation) ^ Input::get_singleton()->is_key_pressed(KEY_CONTROL)) && snap_rotation_step != 0) ? Math::stepify(p_target - snap_rotation_offset, snap_rotation_step) + snap_rotation_offset : p_target; + return (((smart_snap_active || snap_rotation) ^ Input::get_singleton()->is_key_pressed(KEY_CONTROL)) && snap_rotation_step != 0) ? Math::stepify(p_target - snap_rotation_offset, snap_rotation_step) + snap_rotation_offset : p_target; } void CanvasItemEditor::_unhandled_key_input(const Ref<InputEvent> &p_ev) { @@ -427,11 +450,11 @@ void CanvasItemEditor::_unhandled_key_input(const Ref<InputEvent> &p_ev) { } if (k->is_pressed() && !k->get_control() && !k->is_echo()) { - if ((snap_grid || show_grid) && multiply_grid_step_shortcut.is_valid() && multiply_grid_step_shortcut->is_shortcut(p_ev)) { + if ((grid_snap_active || show_grid) && multiply_grid_step_shortcut.is_valid() && multiply_grid_step_shortcut->is_shortcut(p_ev)) { // Multiply the grid size grid_step_multiplier = MIN(grid_step_multiplier + 1, 12); viewport->update(); - } else if ((snap_grid || show_grid) && divide_grid_step_shortcut.is_valid() && divide_grid_step_shortcut->is_shortcut(p_ev)) { + } else if ((grid_snap_active || show_grid) && divide_grid_step_shortcut.is_valid() && divide_grid_step_shortcut->is_shortcut(p_ev)) { // Divide the grid size Point2 new_grid_step = grid_step * Math::pow(2.0, grid_step_multiplier - 1); if (new_grid_step.x >= 1.0 && new_grid_step.y >= 1.0) @@ -898,7 +921,7 @@ void CanvasItemEditor::_commit_canvas_item_state(List<CanvasItem *> p_canvas_ite } void CanvasItemEditor::_snap_changed() { - ((SnapDialog *)snap_dialog)->get_fields(grid_offset, grid_step, snap_rotation_offset, snap_rotation_step); + ((SnapDialog *)snap_dialog)->get_fields(grid_offset, grid_step, primary_grid_steps, snap_rotation_offset, snap_rotation_step); grid_step_multiplier = 0; viewport->update(); } @@ -1197,7 +1220,7 @@ bool CanvasItemEditor::_gui_input_zoom_or_pan(const Ref<InputEvent> &p_event, bo //Pan the viewport panning = true; } - } else if (panning) { + } else { if (!k->is_pressed()) { // Stop panning the viewport (for any mouse button press) panning = false; @@ -1791,7 +1814,7 @@ bool CanvasItemEditor::_gui_input_scale(const Ref<InputEvent> &p_event) { if (_is_node_movable(canvas_item)) { Transform2D xform = transform * canvas_item->get_global_transform_with_canvas(); - Transform2D unscaled_transform = (xform * canvas_item->get_transform().affine_inverse() * Transform2D(canvas_item->_edit_get_rotation(), canvas_item->_edit_get_position())).orthonormalized(); + Transform2D unscaled_transform = (xform * canvas_item->get_transform().affine_inverse() * canvas_item->_edit_get_transform()).orthonormalized(); Transform2D simple_xform = viewport->get_transform() * unscaled_transform; drag_type = DRAG_SCALE_BOTH; @@ -1825,7 +1848,7 @@ bool CanvasItemEditor::_gui_input_scale(const Ref<InputEvent> &p_event) { drag_to = transform.affine_inverse().xform(m->get_position()); Transform2D parent_xform = canvas_item->get_global_transform_with_canvas() * canvas_item->get_transform().affine_inverse(); - Transform2D unscaled_transform = (transform * parent_xform * Transform2D(canvas_item->_edit_get_rotation(), canvas_item->_edit_get_position())).orthonormalized(); + Transform2D unscaled_transform = (transform * parent_xform * canvas_item->_edit_get_transform()).orthonormalized(); Transform2D simple_xform = (viewport->get_transform() * unscaled_transform).affine_inverse() * transform; bool uniform = m->get_shift(); @@ -2274,7 +2297,7 @@ bool CanvasItemEditor::_gui_input_ruler_tool(const Ref<InputEvent> &p_event) { Point2 previous_origin = ruler_tool_origin; if (!ruler_tool_active) - ruler_tool_origin = snap_point(viewport->get_local_mouse_position() / zoom + view_offset) * zoom; + ruler_tool_origin = snap_point(viewport->get_local_mouse_position() / zoom + view_offset); if (b.is_valid() && b->get_button_index() == BUTTON_LEFT) { if (b->is_pressed()) { @@ -2287,9 +2310,7 @@ bool CanvasItemEditor::_gui_input_ruler_tool(const Ref<InputEvent> &p_event) { return true; } - bool is_snap_active = snap_active ^ Input::get_singleton()->is_key_pressed(KEY_CONTROL); - - if (m.is_valid() && (ruler_tool_active || (is_snap_active && previous_origin != ruler_tool_origin))) { + if (m.is_valid() && (ruler_tool_active || (grid_snap_active && previous_origin != ruler_tool_origin))) { viewport->update(); return true; @@ -2558,11 +2579,10 @@ void CanvasItemEditor::_draw_rulers() { Color font_color = get_color("font_color", "Editor"); font_color.a = 0.8; Ref<Font> font = get_font("rulers", "EditorFonts"); - bool is_snap_active = snap_active ^ Input::get_singleton()->is_key_pressed(KEY_CONTROL); // The rule transform Transform2D ruler_transform = Transform2D(); - if (show_grid || (is_snap_active && snap_grid)) { + if (show_grid || grid_snap_active) { List<CanvasItem *> selection = _get_edited_canvas_items(); if (snap_relative && selection.size() > 0) { ruler_transform.translate(_get_encompassing_rect_from_list(selection).position); @@ -2642,41 +2662,72 @@ void CanvasItemEditor::_draw_rulers() { } void CanvasItemEditor::_draw_grid() { - if (show_grid) { - //Draw the grid - Size2 s = viewport->get_size(); - int last_cell = 0; - Transform2D xform = transform.affine_inverse(); + if (show_grid || grid_snap_active) { + // Draw the grid Vector2 real_grid_offset; - List<CanvasItem *> selection = _get_edited_canvas_items(); + const List<CanvasItem *> selection = _get_edited_canvas_items(); + if (snap_relative && selection.size() > 0) { - Vector2 topleft = _get_encompassing_rect_from_list(selection).position; + const Vector2 topleft = _get_encompassing_rect_from_list(selection).position; real_grid_offset.x = fmod(topleft.x, grid_step.x * (real_t)Math::pow(2.0, grid_step_multiplier)); real_grid_offset.y = fmod(topleft.y, grid_step.y * (real_t)Math::pow(2.0, grid_step_multiplier)); } else { real_grid_offset = grid_offset; } - const Color grid_color = EditorSettings::get_singleton()->get("editors/2d/grid_color"); + // Draw a "primary" line every several lines to make measurements easier. + // The step is configurable in the Configure Snap dialog. + const Color secondary_grid_color = EditorSettings::get_singleton()->get("editors/2d/grid_color"); + const Color primary_grid_color = + Color(secondary_grid_color.r, secondary_grid_color.g, secondary_grid_color.b, secondary_grid_color.a * 2.5); + + const Size2 viewport_size = viewport->get_size(); + const Transform2D xform = transform.affine_inverse(); + int last_cell = 0; + if (grid_step.x != 0) { - for (int i = 0; i < s.width; i++) { - int cell = Math::fast_ftoi(Math::floor((xform.xform(Vector2(i, 0)).x - real_grid_offset.x) / (grid_step.x * Math::pow(2.0, grid_step_multiplier)))); - if (i == 0) + for (int i = 0; i < viewport_size.width; i++) { + const int cell = + Math::fast_ftoi(Math::floor((xform.xform(Vector2(i, 0)).x - real_grid_offset.x) / (grid_step.x * Math::pow(2.0, grid_step_multiplier)))); + + if (i == 0) { last_cell = cell; - if (last_cell != cell) - viewport->draw_line(Point2(i, 0), Point2(i, s.height), grid_color, Math::round(EDSCALE)); + } + + if (last_cell != cell) { + Color grid_color; + if (primary_grid_steps == 0) { + grid_color = secondary_grid_color; + } else { + grid_color = cell % primary_grid_steps == 0 ? primary_grid_color : secondary_grid_color; + } + + viewport->draw_line(Point2(i, 0), Point2(i, viewport_size.height), grid_color, Math::round(EDSCALE)); + } last_cell = cell; } } if (grid_step.y != 0) { - for (int i = 0; i < s.height; i++) { - int cell = Math::fast_ftoi(Math::floor((xform.xform(Vector2(0, i)).y - real_grid_offset.y) / (grid_step.y * Math::pow(2.0, grid_step_multiplier)))); - if (i == 0) + for (int i = 0; i < viewport_size.height; i++) { + const int cell = + Math::fast_ftoi(Math::floor((xform.xform(Vector2(0, i)).y - real_grid_offset.y) / (grid_step.y * Math::pow(2.0, grid_step_multiplier)))); + + if (i == 0) { last_cell = cell; - if (last_cell != cell) - viewport->draw_line(Point2(0, i), Point2(s.width, i), grid_color, Math::round(EDSCALE)); + } + + if (last_cell != cell) { + Color grid_color; + if (primary_grid_steps == 0) { + grid_color = secondary_grid_color; + } else { + grid_color = cell % primary_grid_steps == 0 ? primary_grid_color : secondary_grid_color; + } + + viewport->draw_line(Point2(0, i), Point2(viewport_size.width, i), grid_color, Math::round(EDSCALE)); + } last_cell = cell; } } @@ -2688,19 +2739,17 @@ void CanvasItemEditor::_draw_ruler_tool() { if (tool != TOOL_RULER) return; - bool is_snap_active = snap_active ^ Input::get_singleton()->is_key_pressed(KEY_CONTROL); - if (ruler_tool_active) { Color ruler_primary_color = get_color("accent_color", "Editor"); Color ruler_secondary_color = ruler_primary_color; ruler_secondary_color.a = 0.5; - Point2 begin = ruler_tool_origin - view_offset * zoom; + Point2 begin = (ruler_tool_origin - view_offset) * zoom; Point2 end = snap_point(viewport->get_local_mouse_position() / zoom + view_offset) * zoom - view_offset * zoom; Point2 corner = Point2(begin.x, end.y); Vector2 length_vector = (begin - end).abs() / zoom; - bool draw_secondary_lines = (begin.y != corner.y && end.x != corner.x); + bool draw_secondary_lines = !(Math::is_equal_approx(begin.y, corner.y) || Math::is_equal_approx(end.x, corner.x)); viewport->draw_line(begin, end, ruler_primary_color, Math::round(EDSCALE * 3), true); if (draw_secondary_lines) { @@ -2722,8 +2771,10 @@ void CanvasItemEditor::_draw_ruler_tool() { viewport->draw_string(font, text_pos, vformat("%.2f px", length_vector.length()), font_color); if (draw_secondary_lines) { - int horizontal_axis_angle = round(180 * atan2(length_vector.y, length_vector.x) / Math_PI); - int vertictal_axis_angle = 90 - horizontal_axis_angle; + const float horizontal_angle_rad = atan2(length_vector.y, length_vector.x); + const float vertical_angle_rad = Math_PI / 2.0 - horizontal_angle_rad; + const int horizontal_angle = round(180 * horizontal_angle_rad / Math_PI); + const int vertical_angle = round(180 * vertical_angle_rad / Math_PI); Point2 text_pos2 = text_pos; text_pos2.x = begin.x < text_pos.x ? MIN(text_pos.x - text_width, begin.x - text_width / 2) : MAX(text_pos.x + text_width, begin.x - text_width / 2); @@ -2732,7 +2783,7 @@ void CanvasItemEditor::_draw_ruler_tool() { Point2 v_angle_text_pos = Point2(); v_angle_text_pos.x = CLAMP(begin.x - angle_text_width / 2, angle_text_width / 2, viewport->get_rect().size.x - angle_text_width); v_angle_text_pos.y = begin.y < end.y ? MIN(text_pos2.y - 2 * text_height, begin.y - text_height * 0.5) : MAX(text_pos2.y + text_height * 3, begin.y + text_height * 1.5); - viewport->draw_string(font, v_angle_text_pos, vformat("%d deg", vertictal_axis_angle), font_secondary_color); + viewport->draw_string(font, v_angle_text_pos, vformat("%d deg", vertical_angle), font_secondary_color); text_pos2 = text_pos; text_pos2.y = end.y < text_pos.y ? MIN(text_pos.y - text_height * 2, end.y - text_height / 2) : MAX(text_pos.y + text_height * 2, end.y - text_height / 2); @@ -2743,20 +2794,48 @@ void CanvasItemEditor::_draw_ruler_tool() { if (begin.y < end.y) { h_angle_text_pos.y = end.y + text_height * 1.5; if (ABS(text_pos2.x - h_angle_text_pos.x) < text_width) { - int height_multiplier = 1.5 + (int)is_snap_active; + int height_multiplier = 1.5 + (int)grid_snap_active; h_angle_text_pos.y = MAX(text_pos.y + height_multiplier * text_height, MAX(end.y + text_height * 1.5, text_pos2.y + height_multiplier * text_height)); } } else { h_angle_text_pos.y = end.y - text_height * 0.5; if (ABS(text_pos2.x - h_angle_text_pos.x) < text_width) { - int height_multiplier = 1 + (int)is_snap_active; + int height_multiplier = 1 + (int)grid_snap_active; h_angle_text_pos.y = MIN(text_pos.y - height_multiplier * text_height, MIN(end.y - text_height * 0.5, text_pos2.y - height_multiplier * text_height)); } } - viewport->draw_string(font, h_angle_text_pos, vformat("%d deg", horizontal_axis_angle), font_secondary_color); + viewport->draw_string(font, h_angle_text_pos, vformat("%d deg", horizontal_angle), font_secondary_color); + + // Angle arcs + int arc_point_count = 8; + float arc_radius_max_length_percent = 0.1; + float ruler_length = length_vector.length() * zoom; + float arc_max_radius = 50.0; + float arc_line_width = 2.0; + + const Vector2 end_to_begin = (end - begin); + + float arc_1_start_angle = + end_to_begin.x < 0 ? + (end_to_begin.y < 0 ? 3.0 * Math_PI / 2.0 - vertical_angle_rad : Math_PI / 2.0) : + (end_to_begin.y < 0 ? 3.0 * Math_PI / 2.0 : Math_PI / 2.0 - vertical_angle_rad); + float arc_1_end_angle = arc_1_start_angle + vertical_angle_rad; + // Constrain arc to triangle height & max size + float arc_1_radius = MIN(MIN(arc_radius_max_length_percent * ruler_length, ABS(end_to_begin.y)), arc_max_radius); + + float arc_2_start_angle = + end_to_begin.x < 0 ? + (end_to_begin.y < 0 ? 0.0 : -horizontal_angle_rad) : + (end_to_begin.y < 0 ? Math_PI - horizontal_angle_rad : Math_PI); + float arc_2_end_angle = arc_2_start_angle + horizontal_angle_rad; + // Constrain arc to triangle width & max size + float arc_2_radius = MIN(MIN(arc_radius_max_length_percent * ruler_length, ABS(end_to_begin.x)), arc_max_radius); + + viewport->draw_arc(begin, arc_1_radius, arc_1_start_angle, arc_1_end_angle, arc_point_count, ruler_primary_color, Math::round(EDSCALE * arc_line_width)); + viewport->draw_arc(end, arc_2_radius, arc_2_start_angle, arc_2_end_angle, arc_point_count, ruler_primary_color, Math::round(EDSCALE * arc_line_width)); } - if (is_snap_active) { + if (grid_snap_active) { text_pos = (begin + end) / 2 + Vector2(-text_width / 2, text_height / 2); text_pos.x = CLAMP(text_pos.x, text_width / 2, viewport->get_rect().size.x - text_width * 1.5); @@ -2767,20 +2846,20 @@ void CanvasItemEditor::_draw_ruler_tool() { Point2 text_pos2 = text_pos; text_pos2.x = begin.x < text_pos.x ? MIN(text_pos.x - text_width, begin.x - text_width / 2) : MAX(text_pos.x + text_width, begin.x - text_width / 2); - viewport->draw_string(font, text_pos2, vformat("%d units", (int)(length_vector.y / grid_step.y)), font_secondary_color); + viewport->draw_string(font, text_pos2, vformat("%d units", roundf(length_vector.y / grid_step.y)), font_secondary_color); text_pos2 = text_pos; text_pos2.y = end.y < text_pos.y ? MIN(text_pos.y - text_height * 2, end.y + text_height / 2) : MAX(text_pos.y + text_height * 2, end.y + text_height / 2); - viewport->draw_string(font, text_pos2, vformat("%d units", (int)(length_vector.x / grid_step.x)), font_secondary_color); + viewport->draw_string(font, text_pos2, vformat("%d units", roundf(length_vector.x / grid_step.x)), font_secondary_color); } else { viewport->draw_string(font, text_pos, vformat("%d units", roundf((length_vector / grid_step).length())), font_color); } } } else { - if (is_snap_active) { + if (grid_snap_active) { Ref<Texture> position_icon = get_icon("EditorPosition", "EditorIcons"); - viewport->draw_texture(get_icon("EditorPosition", "EditorIcons"), ruler_tool_origin - view_offset * zoom - position_icon->get_size() / 2); + viewport->draw_texture(get_icon("EditorPosition", "EditorIcons"), (ruler_tool_origin - view_offset) * zoom - position_icon->get_size() / 2); } } } @@ -3049,7 +3128,7 @@ void CanvasItemEditor::_draw_selection() { } } else { - Transform2D unscaled_transform = (xform * canvas_item->get_transform().affine_inverse() * Transform2D(canvas_item->_edit_get_rotation(), canvas_item->_edit_get_position())).orthonormalized(); + Transform2D unscaled_transform = (xform * canvas_item->get_transform().affine_inverse() * canvas_item->_edit_get_transform()).orthonormalized(); Transform2D simple_xform = viewport->get_transform() * unscaled_transform; viewport->draw_set_transform_matrix(simple_xform); viewport->draw_texture(position_icon, -(position_icon->get_size() / 2)); @@ -3061,7 +3140,7 @@ void CanvasItemEditor::_draw_selection() { if (canvas_item->_edit_use_pivot()) { // Draw the node's pivot - Transform2D unscaled_transform = (xform * canvas_item->get_transform().affine_inverse() * Transform2D(canvas_item->_edit_get_rotation(), canvas_item->_edit_get_position() + canvas_item->_edit_get_pivot())).orthonormalized(); + Transform2D unscaled_transform = (xform * canvas_item->get_transform().affine_inverse() * canvas_item->_edit_get_transform()).orthonormalized(); Transform2D simple_xform = viewport->get_transform() * unscaled_transform; viewport->draw_set_transform_matrix(simple_xform); @@ -3106,7 +3185,7 @@ void CanvasItemEditor::_draw_selection() { bool is_alt = Input::get_singleton()->is_key_pressed(KEY_ALT); if ((is_alt && is_ctrl) || tool == TOOL_SCALE || drag_type == DRAG_SCALE_X || drag_type == DRAG_SCALE_Y) { if (_is_node_movable(canvas_item)) { - Transform2D unscaled_transform = (xform * canvas_item->get_transform().affine_inverse() * Transform2D(canvas_item->_edit_get_rotation(), canvas_item->_edit_get_position())).orthonormalized(); + Transform2D unscaled_transform = (xform * canvas_item->get_transform().affine_inverse() * canvas_item->_edit_get_transform()).orthonormalized(); Transform2D simple_xform = viewport->get_transform() * unscaled_transform; Size2 scale_factor = Size2(SCALE_HANDLE_DISTANCE, SCALE_HANDLE_DISTANCE); @@ -3325,7 +3404,7 @@ void CanvasItemEditor::_draw_invisible_nodes_positions(Node *p_node, const Trans // Draw the node's position Ref<Texture> position_icon = get_icon("EditorPositionUnselected", "EditorIcons"); - Transform2D unscaled_transform = (xform * canvas_item->get_transform().affine_inverse() * Transform2D(canvas_item->_edit_get_rotation(), canvas_item->_edit_get_position())).orthonormalized(); + Transform2D unscaled_transform = (xform * canvas_item->get_transform().affine_inverse() * canvas_item->_edit_get_transform()).orthonormalized(); Transform2D simple_xform = viewport->get_transform() * unscaled_transform; viewport->draw_set_transform_matrix(simple_xform); viewport->draw_texture(position_icon, -position_icon->get_size() / 2, Color(1.0, 1.0, 1.0, 0.5)); @@ -3697,7 +3776,8 @@ void CanvasItemEditor::_notification(int p_what) { move_button->set_icon(get_icon("ToolMove", "EditorIcons")); scale_button->set_icon(get_icon("ToolScale", "EditorIcons")); rotate_button->set_icon(get_icon("ToolRotate", "EditorIcons")); - snap_button->set_icon(get_icon("Snap", "EditorIcons")); + smart_snap_button->set_icon(get_icon("Snap", "EditorIcons")); + grid_snap_button->set_icon(get_icon("SnapGrid", "EditorIcons")); snap_config_menu->set_icon(get_icon("GuiTabMenu", "EditorIcons")); skeleton_menu->set_icon(get_icon("Bone", "EditorIcons")); pan_button->set_icon(get_icon("ToolPan", "EditorIcons")); @@ -4101,8 +4181,13 @@ void CanvasItemEditor::_button_zoom_plus() { _zoom_on_position(zoom * Math_SQRT2, viewport_scrollable->get_size() / 2.0); } -void CanvasItemEditor::_button_toggle_snap(bool p_status) { - snap_active = p_status; +void CanvasItemEditor::_button_toggle_smart_snap(bool p_status) { + smart_snap_active = p_status; + viewport->update(); +} + +void CanvasItemEditor::_button_toggle_grid_snap(bool p_status) { + grid_snap_active = p_status; viewport->update(); } @@ -4261,11 +4346,6 @@ void CanvasItemEditor::_popup_callback(int p_op) { int idx = smartsnap_config_popup->get_item_index(SNAP_USE_GUIDES); smartsnap_config_popup->set_item_checked(idx, snap_guides); } break; - case SNAP_USE_GRID: { - snap_grid = !snap_grid; - int idx = snap_config_menu->get_popup()->get_item_index(SNAP_USE_GRID); - snap_config_menu->get_popup()->set_item_checked(idx, snap_grid); - } break; case SNAP_USE_ROTATION: { snap_rotation = !snap_rotation; int idx = snap_config_menu->get_popup()->get_item_index(SNAP_USE_ROTATION); @@ -4283,8 +4363,8 @@ void CanvasItemEditor::_popup_callback(int p_op) { snap_config_menu->get_popup()->set_item_checked(idx, snap_pixel); } break; case SNAP_CONFIGURE: { - ((SnapDialog *)snap_dialog)->set_fields(grid_offset, grid_step, snap_rotation_offset, snap_rotation_step); - snap_dialog->popup_centered(Size2(220, 160)); + ((SnapDialog *)snap_dialog)->set_fields(grid_offset, grid_step, primary_grid_steps, snap_rotation_offset, snap_rotation_step); + snap_dialog->popup_centered(Size2(220, 160) * EDSCALE); } break; case SKELETON_SHOW_BONES: { skeleton_show_bones = !skeleton_show_bones; @@ -4797,7 +4877,8 @@ void CanvasItemEditor::_bind_methods() { ClassDB::bind_method("_button_zoom_minus", &CanvasItemEditor::_button_zoom_minus); ClassDB::bind_method("_button_zoom_reset", &CanvasItemEditor::_button_zoom_reset); ClassDB::bind_method("_button_zoom_plus", &CanvasItemEditor::_button_zoom_plus); - ClassDB::bind_method("_button_toggle_snap", &CanvasItemEditor::_button_toggle_snap); + ClassDB::bind_method("_button_toggle_smart_snap", &CanvasItemEditor::_button_toggle_smart_snap); + ClassDB::bind_method("_button_toggle_grid_snap", &CanvasItemEditor::_button_toggle_grid_snap); ClassDB::bind_method("_button_toggle_anchor_mode", &CanvasItemEditor::_button_toggle_anchor_mode); ClassDB::bind_method("_update_scroll", &CanvasItemEditor::_update_scroll); ClassDB::bind_method("_update_scrollbars", &CanvasItemEditor::_update_scrollbars); @@ -4830,15 +4911,16 @@ Dictionary CanvasItemEditor::get_state() const { state["ofs"] = view_offset; state["grid_offset"] = grid_offset; state["grid_step"] = grid_step; + state["primary_grid_steps"] = primary_grid_steps; state["snap_rotation_offset"] = snap_rotation_offset; state["snap_rotation_step"] = snap_rotation_step; - state["snap_active"] = snap_active; + state["smart_snap_active"] = smart_snap_active; + state["grid_snap_active"] = grid_snap_active; state["snap_node_parent"] = snap_node_parent; state["snap_node_anchors"] = snap_node_anchors; state["snap_node_sides"] = snap_node_sides; state["snap_node_center"] = snap_node_center; state["snap_other_nodes"] = snap_other_nodes; - state["snap_grid"] = snap_grid; state["snap_guides"] = snap_guides; state["show_grid"] = show_grid; state["show_origin"] = show_origin; @@ -4878,6 +4960,10 @@ void CanvasItemEditor::set_state(const Dictionary &p_state) { grid_step = state["grid_step"]; } + if (state.has("primary_grid_steps")) { + primary_grid_steps = state["primary_grid_steps"]; + } + if (state.has("snap_rotation_step")) { snap_rotation_step = state["snap_rotation_step"]; } @@ -4886,9 +4972,14 @@ void CanvasItemEditor::set_state(const Dictionary &p_state) { snap_rotation_offset = state["snap_rotation_offset"]; } - if (state.has("snap_active")) { - snap_active = state["snap_active"]; - snap_button->set_pressed(snap_active); + if (state.has("smart_snap_active")) { + smart_snap_active = state["smart_snap_active"]; + smart_snap_button->set_pressed(smart_snap_active); + } + + if (state.has("grid_snap_active")) { + grid_snap_active = state["grid_snap_active"]; + grid_snap_button->set_pressed(grid_snap_active); } if (state.has("snap_node_parent")) { @@ -4927,12 +5018,6 @@ void CanvasItemEditor::set_state(const Dictionary &p_state) { smartsnap_config_popup->set_item_checked(idx, snap_guides); } - if (state.has("snap_grid")) { - snap_grid = state["snap_grid"]; - int idx = snap_config_menu->get_popup()->get_item_index(SNAP_USE_GRID); - snap_config_menu->get_popup()->set_item_checked(idx, snap_grid); - } - if (state.has("show_grid")) { show_grid = state["show_grid"]; int idx = view_menu->get_popup()->get_item_index(SHOW_GRID); @@ -5068,16 +5153,17 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) { previous_update_view_offset = view_offset; // Moves the view a little bit to the left so that (0,0) is visible. The values a relative to a 16/10 screen grid_offset = Point2(); grid_step = Point2(10, 10); + primary_grid_steps = 8; // A power-of-two value works better as a default grid_step_multiplier = 0; snap_rotation_offset = 0; snap_rotation_step = 15 / (180 / Math_PI); - snap_active = false; + smart_snap_active = false; + grid_snap_active = false; snap_node_parent = true; snap_node_anchors = true; snap_node_sides = true; snap_node_center = true; snap_other_nodes = true; - snap_grid = true; snap_guides = true; snap_rotation = false; snap_relative = false; @@ -5269,12 +5355,19 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) { hb->add_child(memnew(VSeparator)); - snap_button = memnew(ToolButton); - hb->add_child(snap_button); - snap_button->set_toggle_mode(true); - snap_button->connect("toggled", this, "_button_toggle_snap"); - snap_button->set_tooltip(TTR("Toggle snapping.")); - snap_button->set_shortcut(ED_SHORTCUT("canvas_item_editor/use_snap", TTR("Use Snap"), KEY_MASK_SHIFT | KEY_S)); + smart_snap_button = memnew(ToolButton); + hb->add_child(smart_snap_button); + smart_snap_button->set_toggle_mode(true); + smart_snap_button->connect("toggled", this, "_button_toggle_smart_snap"); + smart_snap_button->set_tooltip(TTR("Toggle smart snapping.")); + smart_snap_button->set_shortcut(ED_SHORTCUT("canvas_item_editor/use_smart_snap", TTR("Use Smart Snap"), KEY_MASK_SHIFT | KEY_S)); + + grid_snap_button = memnew(ToolButton); + hb->add_child(grid_snap_button); + grid_snap_button->set_toggle_mode(true); + grid_snap_button->connect("toggled", this, "_button_toggle_grid_snap"); + grid_snap_button->set_tooltip(TTR("Toggle grid snapping.")); + grid_snap_button->set_shortcut(ED_SHORTCUT("canvas_item_editor/use_grid_snap", TTR("Use Grid Snap"), KEY_MASK_SHIFT | KEY_G)); snap_config_menu = memnew(MenuButton); hb->add_child(snap_config_menu); @@ -5285,7 +5378,6 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) { PopupMenu *p = snap_config_menu->get_popup(); p->connect("id_pressed", this, "_popup_callback"); p->set_hide_on_checkable_item_selection(false); - p->add_check_shortcut(ED_SHORTCUT("canvas_item_editor/snap_grid", TTR("Snap to Grid")), SNAP_USE_GRID); p->add_check_shortcut(ED_SHORTCUT("canvas_item_editor/use_rotation_snap", TTR("Use Rotation Snap")), SNAP_USE_ROTATION); p->add_check_shortcut(ED_SHORTCUT("canvas_item_editor/snap_relative", TTR("Snap Relative")), SNAP_RELATIVE); p->add_check_shortcut(ED_SHORTCUT("canvas_item_editor/use_pixel_snap", TTR("Use Pixel Snap")), SNAP_USE_PIXEL); @@ -5357,9 +5449,9 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) { p = view_menu->get_popup(); p->set_hide_on_checkable_item_selection(false); - p->add_check_shortcut(ED_SHORTCUT("canvas_item_editor/show_grid", TTR("Show Grid"), KEY_G), SHOW_GRID); + p->add_check_shortcut(ED_SHORTCUT("canvas_item_editor/show_grid", TTR("Always Show Grid"), KEY_G), SHOW_GRID); p->add_check_shortcut(ED_SHORTCUT("canvas_item_editor/show_helpers", TTR("Show Helpers"), KEY_H), SHOW_HELPERS); - p->add_check_shortcut(ED_SHORTCUT("canvas_item_editor/show_rulers", TTR("Show Rulers"), KEY_MASK_CMD | KEY_R), SHOW_RULERS); + p->add_check_shortcut(ED_SHORTCUT("canvas_item_editor/show_rulers", TTR("Show Rulers")), SHOW_RULERS); p->add_check_shortcut(ED_SHORTCUT("canvas_item_editor/show_guides", TTR("Show Guides"), KEY_Y), SHOW_GUIDES); p->add_check_shortcut(ED_SHORTCUT("canvas_item_editor/show_origin", TTR("Show Origin")), SHOW_ORIGIN); p->add_check_shortcut(ED_SHORTCUT("canvas_item_editor/show_viewport", TTR("Show Viewport")), SHOW_VIEWPORT); diff --git a/editor/plugins/canvas_item_editor_plugin.h b/editor/plugins/canvas_item_editor_plugin.h index 6cce1ca10e..35efc14b5e 100644 --- a/editor/plugins/canvas_item_editor_plugin.h +++ b/editor/plugins/canvas_item_editor_plugin.h @@ -255,17 +255,19 @@ private: Point2 grid_offset; Point2 grid_step; + int primary_grid_steps; int grid_step_multiplier; float snap_rotation_step; float snap_rotation_offset; - bool snap_active; + bool smart_snap_active; + bool grid_snap_active; + bool snap_node_parent; bool snap_node_anchors; bool snap_node_sides; bool snap_node_center; bool snap_other_nodes; - bool snap_grid; bool snap_guides; bool snap_rotation; bool snap_relative; @@ -347,7 +349,8 @@ private: ToolButton *ruler_button; - ToolButton *snap_button; + ToolButton *smart_snap_button; + ToolButton *grid_snap_button; MenuButton *snap_config_menu; PopupMenu *smartsnap_config_popup; @@ -529,7 +532,8 @@ private: void _button_zoom_minus(); void _button_zoom_reset(); void _button_zoom_plus(); - void _button_toggle_snap(bool p_status); + void _button_toggle_smart_snap(bool p_status); + void _button_toggle_grid_snap(bool p_status); void _button_tool_select(int p_index); HSplitContainer *palette_split; diff --git a/editor/plugins/curve_editor_plugin.cpp b/editor/plugins/curve_editor_plugin.cpp index 9160920c50..727d92ba05 100644 --- a/editor/plugins/curve_editor_plugin.cpp +++ b/editor/plugins/curve_editor_plugin.cpp @@ -736,6 +736,9 @@ void CurveEditor::_draw() { if (_selected_point > 0 && _selected_point + 1 < curve.get_point_count()) { text_color.a *= 0.4; draw_string(font, Vector2(50, font_height), TTR("Hold Shift to edit tangents individually"), text_color); + } else if (curve.get_point_count() == 0) { + text_color.a *= 0.4; + draw_string(font, Vector2(50, font_height), TTR("Right click to add point"), text_color); } } diff --git a/editor/plugins/script_editor_plugin.cpp b/editor/plugins/script_editor_plugin.cpp index 80b0f0738a..f7e997a269 100644 --- a/editor/plugins/script_editor_plugin.cpp +++ b/editor/plugins/script_editor_plugin.cpp @@ -43,6 +43,7 @@ #include "editor/plugins/shader_editor_plugin.h" #include "editor/script_editor_debugger.h" #include "scene/main/viewport.h" +#include "scene/scene_string_names.h" #include "script_text_editor.h" #include "text_editor.h" @@ -1325,6 +1326,9 @@ void ScriptEditor::_menu_option(int p_option) { case HELP_SEARCH_FIND_NEXT: { help->search_again(); } break; + case HELP_SEARCH_FIND_PREVIOUS: { + help->search_again(true); + } break; case FILE_CLOSE: { _close_current_tab(); } break; @@ -1417,16 +1421,6 @@ void ScriptEditor::_notification(int p_what) { members_overview->connect("item_selected", this, "_members_overview_selected"); help_overview->connect("item_selected", this, "_help_overview_selected"); script_split->connect("dragged", this, "_script_split_dragged"); - autosave_timer->connect("timeout", this, "_autosave_scripts"); - { - float autosave_time = EditorSettings::get_singleton()->get("text_editor/files/autosave_interval_secs"); - if (autosave_time > 0) { - autosave_timer->set_wait_time(autosave_time); - autosave_timer->start(); - } else { - autosave_timer->stop(); - } - } EditorSettings::get_singleton()->connect("settings_changed", this, "_editor_settings_changed"); FALLTHROUGH; @@ -2332,13 +2326,7 @@ void ScriptEditor::_editor_settings_changed() { _update_members_overview_visibility(); _update_help_overview_visibility(); - float autosave_time = EditorSettings::get_singleton()->get("text_editor/files/autosave_interval_secs"); - if (autosave_time > 0) { - autosave_timer->set_wait_time(autosave_time); - autosave_timer->start(); - } else { - autosave_timer->stop(); - } + _update_autosave_timer(); if (current_theme == "") { current_theme = EditorSettings::get_singleton()->get("text_editor/theme/color_theme"); @@ -2366,6 +2354,21 @@ void ScriptEditor::_autosave_scripts() { save_all_scripts(); } +void ScriptEditor::_update_autosave_timer() { + + if (!autosave_timer->is_inside_tree()) { + return; + } + + float autosave_time = EditorSettings::get_singleton()->get("text_editor/files/autosave_interval_secs"); + if (autosave_time > 0) { + autosave_timer->set_wait_time(autosave_time); + autosave_timer->start(); + } else { + autosave_timer->stop(); + } +} + void ScriptEditor::_tree_changed() { if (waiting_update_names) @@ -2827,6 +2830,7 @@ void ScriptEditor::_update_selected_editor_menu() { script_search_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/find", TTR("Find..."), KEY_MASK_CMD | KEY_F), HELP_SEARCH_FIND); script_search_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/find_next", TTR("Find Next"), KEY_F3), HELP_SEARCH_FIND_NEXT); + script_search_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/find_previous", TTR("Find Previous"), KEY_MASK_SHIFT | KEY_F3), HELP_SEARCH_FIND_PREVIOUS); script_search_menu->get_popup()->add_separator(); script_search_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/find_in_files", TTR("Find in Files"), KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_F), SEARCH_IN_FILES); script_search_menu->show(); @@ -3088,6 +3092,7 @@ void ScriptEditor::_bind_methods() { ClassDB::bind_method("_show_debugger", &ScriptEditor::_show_debugger); ClassDB::bind_method("_get_debug_tooltip", &ScriptEditor::_get_debug_tooltip); ClassDB::bind_method("_autosave_scripts", &ScriptEditor::_autosave_scripts); + ClassDB::bind_method("_update_autosave_timer", &ScriptEditor::_update_autosave_timer); ClassDB::bind_method("_editor_settings_changed", &ScriptEditor::_editor_settings_changed); ClassDB::bind_method("_update_script_names", &ScriptEditor::_update_script_names); ClassDB::bind_method("_update_script_connections", &ScriptEditor::_update_script_connections); @@ -3424,6 +3429,8 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) { autosave_timer = memnew(Timer); autosave_timer->set_one_shot(false); + autosave_timer->connect(SceneStringNames::get_singleton()->tree_entered, this, "_update_autosave_timer"); + autosave_timer->connect("timeout", this, "_autosave_scripts"); add_child(autosave_timer); grab_focus_block = false; diff --git a/editor/plugins/script_editor_plugin.h b/editor/plugins/script_editor_plugin.h index 0c876108a5..294294fc56 100644 --- a/editor/plugins/script_editor_plugin.h +++ b/editor/plugins/script_editor_plugin.h @@ -168,6 +168,7 @@ class ScriptEditor : public PanelContainer { REQUEST_DOCS, HELP_SEARCH_FIND, HELP_SEARCH_FIND_NEXT, + HELP_SEARCH_FIND_PREVIOUS, WINDOW_MOVE_UP, WINDOW_MOVE_DOWN, WINDOW_NEXT, @@ -342,6 +343,7 @@ class ScriptEditor : public PanelContainer { void _save_layout(); void _editor_settings_changed(); void _autosave_scripts(); + void _update_autosave_timer(); void _update_members_overview_visibility(); void _update_members_overview(); diff --git a/editor/plugins/script_text_editor.cpp b/editor/plugins/script_text_editor.cpp index ecb2354aa1..603a2365c1 100644 --- a/editor/plugins/script_text_editor.cpp +++ b/editor/plugins/script_text_editor.cpp @@ -967,12 +967,17 @@ void ScriptTextEditor::_update_connected_methods() { text_edit->clear_info_icons(); missing_connections.clear(); + if (!script->is_valid()) { + return; + } + Node *base = get_tree()->get_edited_scene_root(); if (!base) { return; } Vector<Node *> nodes = _find_all_node_for_script(base, base, script); + Set<StringName> methods_found; for (int i = 0; i < nodes.size(); i++) { List<Connection> connections; nodes[i]->get_signals_connected_to_this(&connections); @@ -989,28 +994,33 @@ void ScriptTextEditor::_update_connected_methods() { continue; } + if (methods_found.has(connection.method)) { + continue; + } + if (!ClassDB::has_method(script->get_instance_base_type(), connection.method)) { + int line = -1; + if (script->has_method(connection.method)) { + line = script->get_member_line(connection.method); + text_edit->set_line_info_icon(line - 1, get_parent_control()->get_icon("Slot", "EditorIcons"), connection.method); + methods_found.insert(connection.method); + continue; + } - int line = script->get_language()->find_function(connection.method, text_edit->get_text()); - if (line < 0) { - // There is a chance that the method is inherited from another script. - bool found_inherited_function = false; - Ref<Script> inherited_script = script->get_base_script(); - while (!inherited_script.is_null()) { - line = inherited_script->get_language()->find_function(connection.method, inherited_script->get_source_code()); - if (line != -1) { - found_inherited_function = true; - break; - } - - inherited_script = inherited_script->get_base_script(); + // There is a chance that the method is inherited from another script. + bool found_inherited_function = false; + Ref<Script> inherited_script = script->get_base_script(); + while (!inherited_script.is_null()) { + if (inherited_script->has_method(connection.method)) { + found_inherited_function = true; + break; } - if (!found_inherited_function) { - missing_connections.push_back(connection); - } - } else { - text_edit->set_line_info_icon(line - 1, get_parent_control()->get_icon("Slot", "EditorIcons"), connection.method); + inherited_script = inherited_script->get_base_script(); + } + + if (!found_inherited_function) { + missing_connections.push_back(connection); } } } @@ -1186,7 +1196,7 @@ void ScriptTextEditor::_edit_option(int p_op) { if (expression.parse(line) == OK) { Variant result = expression.execute(Array(), Variant(), false); if (expression.get_error_text() == "") { - results.append(whitespace + (String)result); + results.append(whitespace + result.get_construct_string()); } else { results.append(line); } diff --git a/editor/plugins/spatial_editor_plugin.cpp b/editor/plugins/spatial_editor_plugin.cpp index 095350d0e1..eb39496106 100644 --- a/editor/plugins/spatial_editor_plugin.cpp +++ b/editor/plugins/spatial_editor_plugin.cpp @@ -2049,12 +2049,11 @@ void SpatialEditorViewport::_update_freelook(real_t delta) { return; } - Vector3 forward = camera->get_transform().basis.xform(Vector3(0, 0, -1)); - Vector3 right = camera->get_transform().basis.xform(Vector3(1, 0, 0)); - Vector3 up = camera->get_transform().basis.xform(Vector3(0, 1, 0)); + const Vector3 forward = camera->get_transform().basis.xform(Vector3(0, 0, -1)); + const Vector3 right = camera->get_transform().basis.xform(Vector3(1, 0, 0)); + const Vector3 up = camera->get_transform().basis.xform(Vector3(0, 1, 0)); Vector3 direction; - bool speed_modifier = false; if (is_shortcut_pressed("spatial_editor/freelook_left")) { direction -= right; @@ -2074,17 +2073,17 @@ void SpatialEditorViewport::_update_freelook(real_t delta) { if (is_shortcut_pressed("spatial_editor/freelook_down")) { direction -= up; } - if (is_shortcut_pressed("spatial_editor/freelook_speed_modifier")) { - speed_modifier = true; - } real_t speed = freelook_speed; - if (speed_modifier) { - real_t modifier_speed_factor = EditorSettings::get_singleton()->get("editors/3d/freelook/freelook_modifier_speed_factor"); - speed *= modifier_speed_factor; + + if (is_shortcut_pressed("spatial_editor/freelook_speed_modifier")) { + speed *= 3.0; + } + if (is_shortcut_pressed("spatial_editor/freelook_slow_modifier")) { + speed *= 0.333333; } - Vector3 motion = direction * speed * delta; + const Vector3 motion = direction * speed * delta; cursor.pos += motion; cursor.eye_pos += motion; } @@ -2761,6 +2760,7 @@ void SpatialEditorViewport::_menu_option(int p_option) { void SpatialEditorViewport::_preview_exited_scene() { + preview_camera->disconnect("toggled", this, "_toggle_camera_preview"); preview_camera->set_pressed(false); _toggle_camera_preview(false); view_menu->show(); @@ -3032,6 +3032,9 @@ void SpatialEditorViewport::set_state(const Dictionary &p_state) { view_menu->get_popup()->set_item_checked(idx, previewing_cinema); } + if (preview_camera->is_connected("toggled", this, "_toggle_camera_preview")) { + preview_camera->disconnect("toggled", this, "_toggle_camera_preview"); + } if (p_state.has("previewing")) { Node *pv = EditorNode::get_singleton()->get_edited_scene()->get_node(p_state["previewing"]); if (Object::cast_to<Camera>(pv)) { @@ -3044,6 +3047,7 @@ void SpatialEditorViewport::set_state(const Dictionary &p_state) { preview_camera->show(); } } + preview_camera->connect("toggled", this, "_toggle_camera_preview"); } Dictionary SpatialEditorViewport::get_state() const { @@ -3588,13 +3592,13 @@ SpatialEditorViewport::SpatialEditorViewport(SpatialEditor *p_spatial_editor, Ed ED_SHORTCUT("spatial_editor/freelook_up", TTR("Freelook Up"), KEY_E); ED_SHORTCUT("spatial_editor/freelook_down", TTR("Freelook Down"), KEY_Q); ED_SHORTCUT("spatial_editor/freelook_speed_modifier", TTR("Freelook Speed Modifier"), KEY_SHIFT); + ED_SHORTCUT("spatial_editor/freelook_slow_modifier", TTR("Freelook Slow Modifier"), KEY_ALT); preview_camera = memnew(CheckBox); preview_camera->set_text(TTR("Preview")); vbox->add_child(preview_camera); preview_camera->set_h_size_flags(0); preview_camera->hide(); - preview_camera->connect("toggled", this, "_toggle_camera_preview"); previewing = NULL; gizmo_scale = 1.0; diff --git a/editor/plugins/sprite_editor_plugin.cpp b/editor/plugins/sprite_editor_plugin.cpp index 69fd592652..40734cffc4 100644 --- a/editor/plugins/sprite_editor_plugin.cpp +++ b/editor/plugins/sprite_editor_plugin.cpp @@ -178,6 +178,7 @@ void SpriteEditor::_update_mesh_data() { err_dialog->popup_centered_minsize(); return; } + Ref<Image> image = texture->get_data(); ERR_FAIL_COND(image.is_null()); Rect2 rect; @@ -190,7 +191,12 @@ void SpriteEditor::_update_mesh_data() { bm.instance(); bm->create_from_image_alpha(image); - int grow = island_merging->get_value(); + int shrink = shrink_pixels->get_value(); + if (shrink > 0) { + bm->shrink_mask(shrink, rect); + } + + int grow = grow_pixels->get_value(); if (grow > 0) { bm->grow_mask(grow, rect); } @@ -338,6 +344,13 @@ void SpriteEditor::_convert_to_mesh_2d_node() { } void SpriteEditor::_convert_to_polygon_2d_node() { + + if (computed_outline_lines.empty()) { + err_dialog->set_text(TTR("Invalid geometry, can't create polygon.")); + err_dialog->popup_centered_minsize(); + return; + } + Polygon2D *polygon_2d_instance = memnew(Polygon2D); int total_point_count = 0; @@ -362,12 +375,6 @@ void SpriteEditor::_convert_to_polygon_2d_node() { Vector<Vector2> outline = computed_outline_lines[i]; Vector<Vector2> uv_outline = outline_lines[i]; - if (outline.size() < 3) { - err_dialog->set_text(TTR("Invalid geometry, can't create polygon.")); - err_dialog->popup_centered_minsize(); - return; - } - PoolIntArray pia; pia.resize(outline.size()); PoolIntArray::Write pia_write = pia.write(); @@ -396,16 +403,17 @@ void SpriteEditor::_convert_to_polygon_2d_node() { } void SpriteEditor::_create_collision_polygon_2d_node() { + + if (computed_outline_lines.empty()) { + err_dialog->set_text(TTR("Invalid geometry, can't create collision polygon.")); + err_dialog->popup_centered_minsize(); + return; + } + for (int i = 0; i < computed_outline_lines.size(); i++) { Vector<Vector2> outline = computed_outline_lines[i]; - if (outline.size() < 3) { - err_dialog->set_text(TTR("Invalid geometry, can't create collision polygon.")); - err_dialog->popup_centered_minsize(); - continue; - } - CollisionPolygon2D *collision_polygon_2d_instance = memnew(CollisionPolygon2D); collision_polygon_2d_instance->set_polygon(outline); @@ -419,16 +427,17 @@ void SpriteEditor::_create_collision_polygon_2d_node() { } void SpriteEditor::_create_light_occluder_2d_node() { + + if (computed_outline_lines.empty()) { + err_dialog->set_text(TTR("Invalid geometry, can't create light occluder.")); + err_dialog->popup_centered_minsize(); + return; + } + for (int i = 0; i < computed_outline_lines.size(); i++) { Vector<Vector2> outline = computed_outline_lines[i]; - if (outline.size() < 3) { - err_dialog->set_text(TTR("Invalid geometry, can't create light occluder.")); - err_dialog->popup_centered_minsize(); - continue; - } - Ref<OccluderPolygon2D> polygon; polygon.instance(); @@ -531,10 +540,14 @@ void SpriteEditor::_debug_uv_draw() { Ref<Texture> tex = node->get_texture(); ERR_FAIL_COND(!tex.is_valid()); + + Point2 draw_pos_offset = Point2(1.0, 1.0); + Size2 draw_size_offset = Size2(2.0, 2.0); + debug_uv->set_clip_contents(true); - debug_uv->draw_texture(tex, Point2()); - debug_uv->set_custom_minimum_size(tex->get_size()); - //debug_uv->draw_set_transform(Vector2(), 0, debug_uv->get_size()); + debug_uv->draw_texture(tex, draw_pos_offset); + debug_uv->set_custom_minimum_size(tex->get_size() + draw_size_offset); + debug_uv->draw_set_transform(draw_pos_offset, 0, Size2(1.0, 1.0)); Color color = Color(1.0, 0.8, 0.7); @@ -604,13 +617,21 @@ SpriteEditor::SpriteEditor() { simplification->set_value(2); hb->add_child(simplification); hb->add_spacer(); + hb->add_child(memnew(Label(TTR("Shrink (Pixels): ")))); + shrink_pixels = memnew(SpinBox); + shrink_pixels->set_min(0); + shrink_pixels->set_max(10); + shrink_pixels->set_step(1); + shrink_pixels->set_value(0); + hb->add_child(shrink_pixels); + hb->add_spacer(); hb->add_child(memnew(Label(TTR("Grow (Pixels): ")))); - island_merging = memnew(SpinBox); - island_merging->set_min(0); - island_merging->set_max(10); - island_merging->set_step(1); - island_merging->set_value(2); - hb->add_child(island_merging); + grow_pixels = memnew(SpinBox); + grow_pixels->set_min(0); + grow_pixels->set_max(10); + grow_pixels->set_step(1); + grow_pixels->set_value(2); + hb->add_child(grow_pixels); hb->add_spacer(); update_preview = memnew(Button); update_preview->set_text(TTR("Update Preview")); diff --git a/editor/plugins/sprite_editor_plugin.h b/editor/plugins/sprite_editor_plugin.h index 81be4a19e9..4ca7bca1a8 100644 --- a/editor/plugins/sprite_editor_plugin.h +++ b/editor/plugins/sprite_editor_plugin.h @@ -67,7 +67,8 @@ class SpriteEditor : public Control { Vector<int> computed_indices; SpinBox *simplification; - SpinBox *island_merging; + SpinBox *grow_pixels; + SpinBox *shrink_pixels; Button *update_preview; void _menu_option(int p_option); diff --git a/editor/plugins/style_box_editor_plugin.cpp b/editor/plugins/style_box_editor_plugin.cpp index defc0a40ea..c4a9803ff4 100644 --- a/editor/plugins/style_box_editor_plugin.cpp +++ b/editor/plugins/style_box_editor_plugin.cpp @@ -64,21 +64,24 @@ void StyleBoxPreview::edit(const Ref<StyleBox> &p_stylebox) { void StyleBoxPreview::_sb_changed() { preview->update(); +} + +void StyleBoxPreview::_redraw() { if (stylebox.is_valid()) { - Size2 ms = stylebox->get_minimum_size() * 4 / 3; - ms.height = MAX(ms.height, 150 * EDSCALE); - preview->set_custom_minimum_size(ms); + preview->draw_style_box(stylebox, preview->get_rect()); } } void StyleBoxPreview::_bind_methods() { ClassDB::bind_method("_sb_changed", &StyleBoxPreview::_sb_changed); + ClassDB::bind_method("_redraw", &StyleBoxPreview::_redraw); } StyleBoxPreview::StyleBoxPreview() { - - preview = memnew(Panel); + preview = memnew(Control); + preview->set_custom_minimum_size(Size2(0, 150 * EDSCALE)); + preview->connect("draw", this, "_redraw"); add_margin_child(TTR("Preview:"), preview); } diff --git a/editor/plugins/style_box_editor_plugin.h b/editor/plugins/style_box_editor_plugin.h index d31a28b3e4..fead8e0de8 100644 --- a/editor/plugins/style_box_editor_plugin.h +++ b/editor/plugins/style_box_editor_plugin.h @@ -41,10 +41,11 @@ class StyleBoxPreview : public VBoxContainer { GDCLASS(StyleBoxPreview, VBoxContainer); - Panel *preview; + Control *preview; Ref<StyleBox> stylebox; void _sb_changed(); + void _redraw(); protected: static void _bind_methods(); diff --git a/editor/plugins/text_editor.cpp b/editor/plugins/text_editor.cpp index d0320bcd8b..0cef5a8b6f 100644 --- a/editor/plugins/text_editor.cpp +++ b/editor/plugins/text_editor.cpp @@ -31,7 +31,7 @@ #include "text_editor.h" #include "core/os/keyboard.h" -#include "editor_node.h" +#include "editor/editor_node.h" void TextEditor::add_syntax_highlighter(SyntaxHighlighter *p_highlighter) { highlighters[p_highlighter->get_name()] = p_highlighter; diff --git a/editor/plugins/texture_region_editor_plugin.cpp b/editor/plugins/texture_region_editor_plugin.cpp index 21eebf9ca2..bda3d142fa 100644 --- a/editor/plugins/texture_region_editor_plugin.cpp +++ b/editor/plugins/texture_region_editor_plugin.cpp @@ -866,8 +866,8 @@ void TextureRegionEditor::_edit_region() { Vector2 TextureRegionEditor::snap_point(Vector2 p_target) const { if (snap_mode == SNAP_GRID) { - p_target.x = Math::snap_scalar_seperation(snap_offset.x, snap_step.x, p_target.x, snap_separation.x); - p_target.y = Math::snap_scalar_seperation(snap_offset.y, snap_step.y, p_target.y, snap_separation.y); + p_target.x = Math::snap_scalar_separation(snap_offset.x, snap_step.x, p_target.x, snap_separation.x); + p_target.y = Math::snap_scalar_separation(snap_offset.y, snap_step.y, p_target.y, snap_separation.y); } return p_target; diff --git a/editor/plugins/tile_set_editor_plugin.cpp b/editor/plugins/tile_set_editor_plugin.cpp index e0bf8dfdb2..d81c6d3f96 100644 --- a/editor/plugins/tile_set_editor_plugin.cpp +++ b/editor/plugins/tile_set_editor_plugin.cpp @@ -3038,8 +3038,8 @@ Vector2 TileSetEditor::snap_point(const Vector2 &point) { } if (tools[TOOL_GRID_SNAP]->is_pressed()) { - p.x = Math::snap_scalar_seperation(snap_offset.x, snap_step.x, p.x, snap_separation.x); - p.y = Math::snap_scalar_seperation(snap_offset.y, snap_step.y, p.y, snap_separation.y); + p.x = Math::snap_scalar_separation(snap_offset.x, snap_step.x, p.x, snap_separation.x); + p.y = Math::snap_scalar_separation(snap_offset.y, snap_step.y, p.y, snap_separation.y); } if (tools[SHAPE_KEEP_INSIDE_TILE]->is_pressed()) { if (p.x < region.position.x) diff --git a/editor/plugins/version_control_editor_plugin.cpp b/editor/plugins/version_control_editor_plugin.cpp index d4f985e1de..66b16b82a0 100644 --- a/editor/plugins/version_control_editor_plugin.cpp +++ b/editor/plugins/version_control_editor_plugin.cpp @@ -397,8 +397,9 @@ void VersionControlEditorPlugin::clear_stage_area() { void VersionControlEditorPlugin::shut_down() { if (EditorVCSInterface::get_singleton()) { - - EditorFileSystem::get_singleton()->disconnect("filesystem_changed", this, "_refresh_stage_area"); + if (EditorFileSystem::get_singleton()->is_connected("filesystem_changed", this, "_refresh_stage_area")) { + EditorFileSystem::get_singleton()->disconnect("filesystem_changed", this, "_refresh_stage_area"); + } EditorVCSInterface::get_singleton()->shut_down(); memdelete(EditorVCSInterface::get_singleton()); EditorVCSInterface::set_singleton(NULL); diff --git a/editor/plugins/visual_shader_editor_plugin.cpp b/editor/plugins/visual_shader_editor_plugin.cpp index c962751c7a..3a9e48cfdb 100644 --- a/editor/plugins/visual_shader_editor_plugin.cpp +++ b/editor/plugins/visual_shader_editor_plugin.cpp @@ -178,6 +178,9 @@ bool VisualShaderEditor::_is_available(int p_mode) { } void VisualShaderEditor::update_custom_nodes() { + if (members_dialog->is_visible()) { + return; + } clear_custom_types(); List<StringName> class_list; ScriptServer::get_global_class_list(&class_list); diff --git a/editor/project_export.cpp b/editor/project_export.cpp index 7456396460..adcbddfb04 100644 --- a/editor/project_export.cpp +++ b/editor/project_export.cpp @@ -286,11 +286,13 @@ void ProjectExportDialog::_edit_preset(int p_index) { export_templates_error->hide(); export_button->set_disabled(true); + get_ok()->set_disabled(true); } else { export_error->hide(); export_templates_error->hide(); export_button->set_disabled(false); + get_ok()->set_disabled(false); } custom_features->set_text(current->get_custom_features()); @@ -623,6 +625,7 @@ void ProjectExportDialog::_delete_preset_confirm() { int idx = presets->get_current(); _edit_preset(-1); export_button->set_disabled(true); + get_ok()->set_disabled(true); EditorExport::get_singleton()->remove_export_preset(idx); _update_presets(); } @@ -1249,6 +1252,7 @@ ProjectExportDialog::ProjectExportDialog() { export_button->connect("pressed", this, "_export_project"); // Disable initially before we select a valid preset export_button->set_disabled(true); + get_ok()->set_disabled(true); export_all_dialog = memnew(ConfirmationDialog); add_child(export_all_dialog); diff --git a/editor/project_manager.cpp b/editor/project_manager.cpp index f70dcab931..ab62a59be1 100644 --- a/editor/project_manager.cpp +++ b/editor/project_manager.cpp @@ -1023,6 +1023,7 @@ public: ProjectList(); ~ProjectList(); + void update_dock_menu(); void load_projects(); void set_search_term(String p_search_term); void set_order_option(ProjectListFilter::FilterOption p_option); @@ -1210,7 +1211,6 @@ void ProjectList::load_projects() { _projects.clear(); _last_clicked = ""; _selected_project_keys.clear(); - OS::get_singleton()->global_menu_clear("_dock"); // Load data // TODO Would be nice to change how projects and favourites are stored... it complicates things a bit. @@ -1248,14 +1248,38 @@ void ProjectList::load_projects() { create_project_item_control(i); } - OS::get_singleton()->global_menu_add_separator("_dock"); - OS::get_singleton()->global_menu_add_item("_dock", TTR("New Window"), GLOBAL_NEW_WINDOW, Variant()); - sort_projects(); set_v_scroll(0); update_icons_async(); + + update_dock_menu(); +} + +void ProjectList::update_dock_menu() { + OS::get_singleton()->global_menu_clear("_dock"); + + int favs_added = 0; + int total_added = 0; + for (int i = 0; i < _projects.size(); ++i) { + if (!_projects[i].grayed && !_projects[i].missing) { + if (_projects[i].favorite) { + favs_added++; + } else { + if (favs_added != 0) { + OS::get_singleton()->global_menu_add_separator("_dock"); + } + favs_added = 0; + } + OS::get_singleton()->global_menu_add_item("_dock", _projects[i].project_name + " ( " + _projects[i].path + " )", GLOBAL_OPEN_PROJECT, Variant(_projects[i].path.plus_file("project.godot"))); + total_added++; + } + } + if (total_added != 0) { + OS::get_singleton()->global_menu_add_separator("_dock"); + } + OS::get_singleton()->global_menu_add_item("_dock", TTR("New Window"), GLOBAL_NEW_WINDOW, Variant()); } void ProjectList::create_project_item_control(int p_index) { @@ -1341,7 +1365,6 @@ void ProjectList::create_project_item_control(int p_index) { fpath->set_clip_text(true); _scroll_children->add_child(hb); - OS::get_singleton()->global_menu_add_item("_dock", item.project_name + " ( " + item.path + " )", GLOBAL_OPEN_PROJECT, Variant(item.path.plus_file("project.godot"))); item.control = hb; } @@ -1394,6 +1417,8 @@ void ProjectList::sort_projects() { // Rewind the coroutine because order of projects changed update_icons_async(); + + update_dock_menu(); } const Set<String> &ProjectList::get_selected_project_keys() const { @@ -1470,6 +1495,8 @@ void ProjectList::remove_project(int p_index, bool p_update_settings) { EditorSettings::get_singleton()->erase("favorite_projects/" + item.project_key); // Not actually saving the file, in case you are doing more changes to settings } + + update_dock_menu(); } bool ProjectList::is_any_project_missing() const { @@ -1568,6 +1595,7 @@ int ProjectList::refresh_project(const String &dir_path) { ensure_project_visible(i); } load_project_icon(i); + index = i; break; } @@ -1642,6 +1670,8 @@ void ProjectList::erase_selected_projects() { _selected_project_keys.clear(); _last_clicked = ""; + + update_dock_menu(); } // Draws selected project highlight @@ -1725,6 +1755,8 @@ void ProjectList::_favorite_pressed(Node *p_hb) { } } } + + update_dock_menu(); } void ProjectList::_show_project(const String &p_path) { @@ -1753,6 +1785,12 @@ void ProjectManager::_notification(int p_what) { Engine::get_singleton()->set_editor_hint(false); } break; + case NOTIFICATION_RESIZED: { + + if (open_templates->is_visible()) { + open_templates->popup_centered_minsize(); + } + } break; case NOTIFICATION_READY: { if (_project_list->get_project_count() == 0 && StreamPeerSSL::is_available()) @@ -1923,6 +1961,8 @@ void ProjectManager::_on_projects_updated() { if (index != -1) { _project_list->ensure_project_visible(index); } + + _project_list->update_dock_menu(); } void ProjectManager::_on_project_created(const String &dir) { @@ -1931,6 +1971,8 @@ void ProjectManager::_on_project_created(const String &dir) { _project_list->select_project(i); _project_list->ensure_project_visible(i); _open_selected_projects_ask(); + + _project_list->update_dock_menu(); } void ProjectManager::_confirm_update_settings() { diff --git a/editor/project_settings_editor.cpp b/editor/project_settings_editor.cpp index f177e634a6..f56f7ef7ca 100644 --- a/editor/project_settings_editor.cpp +++ b/editor/project_settings_editor.cpp @@ -845,13 +845,10 @@ void ProjectSettingsEditor::_item_adds(String) { void ProjectSettingsEditor::_item_add() { - Variant value; - switch (type->get_selected()) { - case 0: value = false; break; - case 1: value = 0; break; - case 2: value = 0.0; break; - case 3: value = ""; break; - } + // Initialize the property with the default value for the given type. + // The type list starts at 1 (as we exclude Nil), so add 1 to the selected value. + Variant::CallError ce; + const Variant value = Variant::construct(Variant::Type(type->get_selected() + 1), NULL, 0, ce); String catname = category->get_text().strip_edges(); String propname = property->get_text().strip_edges(); @@ -1113,6 +1110,8 @@ void ProjectSettingsEditor::drop_data_fw(const Point2 &p_point, const Variant &p TreeItem *selected = input_editor->get_selected(); TreeItem *item = input_editor->get_item_at_position(p_point); + if (!item) + return; TreeItem *target = item->get_parent() == input_editor->get_root() ? item : item->get_parent(); String selected_name = "input/" + selected->get_text(0); @@ -1834,10 +1833,11 @@ ProjectSettingsEditor::ProjectSettingsEditor(EditorData *p_data) { type = memnew(OptionButton); type->set_h_size_flags(Control::SIZE_EXPAND_FILL); add_prop_bar->add_child(type); - type->add_item("bool"); - type->add_item("int"); - type->add_item("float"); - type->add_item("string"); + + // Start at 1 to avoid adding "Nil" as an option + for (int i = 1; i < Variant::VARIANT_MAX; i++) { + type->add_item(Variant::get_type_name(Variant::Type(i))); + } Button *add = memnew(Button); add_prop_bar->add_child(add); diff --git a/editor/property_editor.cpp b/editor/property_editor.cpp index ecb272876d..ce82d44164 100644 --- a/editor/property_editor.cpp +++ b/editor/property_editor.cpp @@ -246,7 +246,13 @@ void CustomPropertyEditor::_menu_option(int p_which) { case OBJ_MENU_NEW_SCRIPT: { if (Object::cast_to<Node>(owner)) - EditorNode::get_singleton()->get_scene_tree_dock()->open_script_dialog(Object::cast_to<Node>(owner)); + EditorNode::get_singleton()->get_scene_tree_dock()->open_script_dialog(Object::cast_to<Node>(owner), false); + + } break; + case OBJ_MENU_EXTEND_SCRIPT: { + + if (Object::cast_to<Node>(owner)) + EditorNode::get_singleton()->get_scene_tree_dock()->open_script_dialog(Object::cast_to<Node>(owner), true); } break; case OBJ_MENU_SHOW_IN_FILE_SYSTEM: { diff --git a/editor/property_editor.h b/editor/property_editor.h index 029c2211d5..b1c61c5e25 100644 --- a/editor/property_editor.h +++ b/editor/property_editor.h @@ -77,7 +77,8 @@ class CustomPropertyEditor : public Popup { OBJ_MENU_COPY = 4, OBJ_MENU_PASTE = 5, OBJ_MENU_NEW_SCRIPT = 6, - OBJ_MENU_SHOW_IN_FILE_SYSTEM = 7, + OBJ_MENU_EXTEND_SCRIPT = 7, + OBJ_MENU_SHOW_IN_FILE_SYSTEM = 8, TYPE_BASE_ID = 100, CONVERT_BASE_ID = 1000 }; diff --git a/editor/scene_tree_dock.cpp b/editor/scene_tree_dock.cpp index 98ab1bfb54..beead9e7f1 100644 --- a/editor/scene_tree_dock.cpp +++ b/editor/scene_tree_dock.cpp @@ -340,8 +340,7 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) { if (!profile_allow_editing) { break; } - Tree *tree = scene_tree->get_scene_tree(); - if (tree->is_anything_selected()) { + if (editor_selection->get_selected_node_list().size() > 1) { rename_dialog->popup_centered(); } } break; @@ -421,53 +420,11 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) { create_dialog->popup_create(false, true, selected->get_class()); } break; + case TOOL_EXTEND_SCRIPT: { + attach_script_to_selected(true); + } break; case TOOL_ATTACH_SCRIPT: { - - if (!profile_allow_script_editing) { - break; - } - - List<Node *> selection = editor_selection->get_selected_node_list(); - if (selection.empty()) - break; - - Node *selected = scene_tree->get_selected(); - if (!selected) - selected = selection.front()->get(); - - Ref<Script> existing = selected->get_script(); - - String path = selected->get_filename(); - if (path == "") { - String root_path = editor_data->get_edited_scene_root()->get_filename(); - if (root_path == "") { - path = String("res://").plus_file(selected->get_name()); - } else { - path = root_path.get_base_dir().plus_file(selected->get_name()); - } - } - - String inherits = selected->get_class(); - if (existing.is_valid()) { - for (int i = 0; i < ScriptServer::get_language_count(); i++) { - ScriptLanguage *l = ScriptServer::get_language(i); - if (l->get_type() == existing->get_class()) { - String name = l->get_global_class_name(existing->get_path()); - if (ScriptServer::is_global_class(name) && EDITOR_GET("interface/editors/derive_script_globals_by_name").operator bool()) { - inherits = name; - } else if (l->can_inherit_from_file()) { - inherits = "\"" + existing->get_path() + "\""; - } - break; - } - } - } - script_create_dialog->connect("script_created", this, "_script_created"); - script_create_dialog->connect("popup_hide", this, "_script_creation_closed"); - script_create_dialog->set_inheritance_base_type("Node"); - script_create_dialog->config(inherits, path); - script_create_dialog->popup_centered(); - + attach_script_to_selected(false); } break; case TOOL_CLEAR_SCRIPT: { @@ -2482,10 +2439,9 @@ void SceneTreeDock::_tree_rmb(const Vector2 &p_menu_pos) { if (profile_allow_script_editing) { if (selection.size() == 1) { - if (!existing_script.is_valid()) { - menu->add_icon_shortcut(get_icon("ScriptCreate", "EditorIcons"), ED_GET_SHORTCUT("scene_tree/attach_script"), TOOL_ATTACH_SCRIPT); - } else { - menu->add_icon_shortcut(get_icon("ScriptExtend", "EditorIcons"), ED_GET_SHORTCUT("scene_tree/extend_script"), TOOL_ATTACH_SCRIPT); + menu->add_icon_shortcut(get_icon("ScriptCreate", "EditorIcons"), ED_GET_SHORTCUT("scene_tree/attach_script"), TOOL_ATTACH_SCRIPT); + if (existing_script.is_valid()) { + menu->add_icon_shortcut(get_icon("ScriptExtend", "EditorIcons"), ED_GET_SHORTCUT("scene_tree/extend_script"), TOOL_EXTEND_SCRIPT); } } if (selection.size() > 1 || (existing_script.is_valid() && exisiting_script_removable)) { @@ -2595,10 +2551,64 @@ void SceneTreeDock::_focus_node() { } } -void SceneTreeDock::open_script_dialog(Node *p_for_node) { +void SceneTreeDock::attach_script_to_selected(bool p_extend) { + if (!profile_allow_script_editing) { + return; + } + + List<Node *> selection = editor_selection->get_selected_node_list(); + if (selection.empty()) + return; + + Node *selected = scene_tree->get_selected(); + if (!selected) + selected = selection.front()->get(); + + Ref<Script> existing = selected->get_script(); + + String path = selected->get_filename(); + if (path == "") { + String root_path = editor_data->get_edited_scene_root()->get_filename(); + if (root_path == "") { + path = String("res://").plus_file(selected->get_name()); + } else { + path = root_path.get_base_dir().plus_file(selected->get_name()); + } + } + + String inherits = selected->get_class(); + + if (p_extend && existing.is_valid()) { + for (int i = 0; i < ScriptServer::get_language_count(); i++) { + ScriptLanguage *l = ScriptServer::get_language(i); + if (l->get_type() == existing->get_class()) { + String name = l->get_global_class_name(existing->get_path()); + if (ScriptServer::is_global_class(name) && EDITOR_GET("interface/editors/derive_script_globals_by_name").operator bool()) { + inherits = name; + } else if (l->can_inherit_from_file()) { + inherits = "\"" + existing->get_path() + "\""; + } + break; + } + } + } + + script_create_dialog->connect("script_created", this, "_script_created"); + script_create_dialog->connect("popup_hide", this, "_script_creation_closed"); + script_create_dialog->set_inheritance_base_type("Node"); + script_create_dialog->config(inherits, path); + script_create_dialog->popup_centered(); +} + +void SceneTreeDock::open_script_dialog(Node *p_for_node, bool p_extend) { scene_tree->set_selected(p_for_node, false); - _tool_selected(TOOL_ATTACH_SCRIPT); + + if (p_extend) { + _tool_selected(TOOL_EXTEND_SCRIPT); + } else { + _tool_selected(TOOL_ATTACH_SCRIPT); + } } void SceneTreeDock::add_remote_tree_editor(Control *p_remote) { diff --git a/editor/scene_tree_dock.h b/editor/scene_tree_dock.h index 014ce58e88..4e78b84c53 100644 --- a/editor/scene_tree_dock.h +++ b/editor/scene_tree_dock.h @@ -64,6 +64,7 @@ class SceneTreeDock : public VBoxContainer { TOOL_RENAME, TOOL_BATCH_RENAME, TOOL_REPLACE, + TOOL_EXTEND_SCRIPT, TOOL_ATTACH_SCRIPT, TOOL_CLEAR_SCRIPT, TOOL_MOVE_UP, @@ -259,7 +260,8 @@ public: void replace_node(Node *p_node, Node *p_by_node, bool p_keep_properties = true, bool p_remove_old = true); - void open_script_dialog(Node *p_for_node); + void attach_script_to_selected(bool p_extend); + void open_script_dialog(Node *p_for_node, bool p_extend); ScriptCreateDialog *get_script_create_dialog() { return script_create_dialog; } diff --git a/editor/script_editor_debugger.cpp b/editor/script_editor_debugger.cpp index 89d275a90b..c1899b2bde 100644 --- a/editor/script_editor_debugger.cpp +++ b/editor/script_editor_debugger.cpp @@ -597,10 +597,30 @@ void ScriptEditorDebugger::_parse_message(const String &p_msg, const Array &p_da if (var.is_zero()) { var = RES(); } else if (var.get_type() == Variant::STRING) { - var = ResourceLoader::load(var); - - if (pinfo.hint_string == "Script") - debugObj->set_script(var); + String path = var; + if (path.find("::") != -1) { + // built-in resource + String base_path = path.get_slice("::", 0); + if (ResourceLoader::get_resource_type(base_path) == "PackedScene") { + if (!EditorNode::get_singleton()->is_scene_open(base_path)) { + EditorNode::get_singleton()->load_scene(base_path); + } + } else { + EditorNode::get_singleton()->load_resource(base_path); + } + } + var = ResourceLoader::load(path); + + if (pinfo.hint_string == "Script") { + if (debugObj->get_script() != var) { + debugObj->set_script(RefPtr()); + Ref<Script> script(var); + if (!script.is_null()) { + ScriptInstance *script_instance = script->placeholder_instance_create(debugObj); + debugObj->set_script_and_instance(var, script_instance); + } + } + } } else if (var.get_type() == Variant::OBJECT) { if (((Object *)var)->is_class("EncodedObjectAsID")) { var = Object::cast_to<EncodedObjectAsID>(var)->get_object_id(); diff --git a/editor/spatial_editor_gizmos.cpp b/editor/spatial_editor_gizmos.cpp index 489049c543..16da2771b9 100644 --- a/editor/spatial_editor_gizmos.cpp +++ b/editor/spatial_editor_gizmos.cpp @@ -3730,6 +3730,7 @@ void CollisionShapeSpatialGizmoPlugin::redraw(EditorSpatialGizmo *p_gizmo) { Ref<ConcavePolygonShape> cs2 = s; Ref<ArrayMesh> mesh = cs2->get_debug_mesh(); p_gizmo->add_mesh(mesh, false, Ref<SkinReference>(), material); + p_gizmo->add_collision_segments(cs2->get_debug_mesh_lines()); } if (Object::cast_to<RayShape>(*s)) { diff --git a/editor/translations/af.po b/editor/translations/af.po index 0fa3736468..131ecd5c0d 100644 --- a/editor/translations/af.po +++ b/editor/translations/af.po @@ -376,6 +376,7 @@ msgstr "Skep %d NUWE bane en voeg sleutels by?" #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "Skep" @@ -507,16 +508,6 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "" - -#: editor/animation_track_editor.cpp -#, fuzzy -msgid "Select None" -msgstr "Dupliseer Seleksie" - #: editor/animation_track_editor.cpp #, fuzzy msgid "Select an AnimationPlayer node to create and edit animations." @@ -659,8 +650,9 @@ msgid "Scale Ratio:" msgstr "Skaal Verhouding:" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" -msgstr "" +#, fuzzy +msgid "Select Tracks to Copy" +msgstr "Stel Oorgange na:" #: editor/animation_track_editor.cpp editor/editor_log.cpp #: editor/editor_properties.cpp @@ -671,6 +663,11 @@ msgstr "" msgid "Copy" msgstr "" +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Select All/None" +msgstr "Dupliseer Seleksie" + #: editor/animation_track_editor_plugins.cpp #, fuzzy msgid "Add Audio Track Clip" @@ -1012,7 +1009,7 @@ msgid "Resource" msgstr "Hulpbron" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "Pad" @@ -1493,7 +1490,8 @@ msgstr "Voeg AutoLaai By" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "Pad:" @@ -1548,7 +1546,7 @@ msgstr "Skep Vouer" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "Naam:" @@ -1960,6 +1958,7 @@ msgid "Class:" msgstr "Klas:" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "Erf:" @@ -2985,7 +2984,7 @@ msgstr "" msgid "Expand Bottom Panel" msgstr "" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "" @@ -3225,6 +3224,10 @@ msgstr "" msgid "New Script" msgstr "" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +msgid "Extend Script" +msgstr "" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "" @@ -3251,14 +3254,6 @@ msgstr "" msgid "Convert To %s" msgstr "" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy -msgid "Open Editor" -msgstr "Afhanklikheid Bewerker" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "" @@ -4074,7 +4069,7 @@ msgstr "" msgid "Subfolder:" msgstr "" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "" @@ -4216,6 +4211,13 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +#, fuzzy +msgid "Open Editor" +msgstr "Afhanklikheid Bewerker" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp #, fuzzy msgid "Open Animation Node" @@ -4578,7 +4580,6 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "" @@ -4756,6 +4757,8 @@ msgid "Current:" msgstr "" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "" @@ -4963,6 +4966,10 @@ msgid "All" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy msgid "Import..." msgstr "Ek sien..." @@ -5255,20 +5262,23 @@ msgid "Ruler Mode" msgstr "Wissel Modus" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Toggle snapping." +msgid "Toggle smart snapping." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +msgid "Use Smart Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snapping Options" +msgid "Toggle grid snapping." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to Grid" +msgid "Use Grid Snap" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snapping Options" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5359,8 +5369,7 @@ msgid "View" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +msgid "Always Show Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5629,6 +5638,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/curve_editor_plugin.cpp +msgid "Right click to add point" +msgstr "" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "" @@ -6268,6 +6281,10 @@ msgid "Grid" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Configure Grid:" msgstr "" @@ -6324,6 +6341,7 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "" @@ -6432,6 +6450,11 @@ msgid "Find Next" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Filter scripts" msgstr "Eienskappe" @@ -6712,6 +6735,11 @@ msgstr "Skep" msgid "Cut" msgstr "" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "" @@ -6770,10 +6798,6 @@ msgid "Auto Indent" msgstr "" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "" - -#: editor/plugins/script_text_editor.cpp #, fuzzy msgid "Find in Files..." msgstr "Vind" @@ -7106,6 +7130,10 @@ msgid "Freelook Speed Modifier" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Slow Modifier" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -7139,6 +7167,10 @@ msgid "Use Local Space" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "" @@ -7371,6 +7403,10 @@ msgid "Simplification: " msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Shrink (Pixels): " +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "" @@ -8177,12 +8213,9 @@ msgid "(GLES3 only)" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add input +" -msgstr "" - -#: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add output +" -msgstr "" +#, fuzzy +msgid "Add Output" +msgstr "Afvoer:" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Scalar" @@ -8197,6 +8230,10 @@ msgid "Boolean" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sampler" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy msgid "Add input port" msgstr "Gunstelinge:" @@ -9073,12 +9110,14 @@ msgstr "" #: editor/project_export.cpp msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp @@ -10078,11 +10117,9 @@ msgid "" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." msgstr "" #: editor/scene_tree_dock.cpp @@ -10159,6 +10196,14 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "" + +#: editor/scene_tree_dock.cpp #, fuzzy msgid "Open Documentation" msgstr "Opnoemings" @@ -10177,10 +10222,6 @@ msgid "Change Type" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Extend Script" -msgstr "" - -#: editor/scene_tree_dock.cpp #, fuzzy msgid "Reparent to New Node" msgstr "Skep Nuwe" @@ -10418,24 +10459,18 @@ msgid "Will load an existing script file." msgstr "Laai 'n bestaande Bus Uitleg." #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Inherits" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Class Name" -msgstr "" +#, fuzzy +msgid "Class Name:" +msgstr "Klas:" #: editor/script_create_dialog.cpp -msgid "Template" +msgid "Template:" msgstr "" #: editor/script_create_dialog.cpp -msgid "Built-in Script" -msgstr "" +#, fuzzy +msgid "Built-in Script:" +msgstr "Afhanklikheid Bewerker" #: editor/script_create_dialog.cpp msgid "Attach Node Script" @@ -11085,6 +11120,11 @@ msgid "Add Function" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Delete input port" +msgstr "Hernoem AutoLaai" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "" @@ -11093,6 +11133,26 @@ msgid "Add Signal" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Input Port" +msgstr "Gunstelinge:" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Output Port" +msgstr "Gunstelinge:" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Input Port" +msgstr "Hernoem AutoLaai" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Output Port" +msgstr "Verwyder Seleksie" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "" @@ -11133,10 +11193,20 @@ msgid "Add Preload Node" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "" @@ -11162,6 +11232,11 @@ msgstr "" #: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Disconnect Nodes" +msgstr "Ontkoppel" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Connect Node Data" msgstr "Koppel aan Nodus:" @@ -11195,6 +11270,27 @@ msgid "Paste VisualScript Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function with a function node." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Create Function" +msgstr "Skep Nuwe" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "" @@ -11219,15 +11315,11 @@ msgid "Make Tool:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "Lede:" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" +msgid "function_name" msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -11252,6 +11344,16 @@ msgstr "" #: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Make Function" +msgstr "Maak Funksie" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Refresh Graph" +msgstr "Verfris" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Edit Member" msgstr "Lede" @@ -11347,6 +11449,10 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "" @@ -11448,6 +11554,10 @@ msgid "Required icon is not specified in the preset." msgstr "" #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "" @@ -11996,10 +12106,6 @@ msgid "" "texture to some node for display." msgstr "" -#: scene/resources/visual_shader.cpp -msgid "Input" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for preview." msgstr "" @@ -12157,9 +12263,6 @@ msgstr "" #~ msgid "Move Anim Track Down" #~ msgstr "Skuif Anim Baan Af" -#~ msgid "Set Transitions to:" -#~ msgstr "Stel Oorgange na:" - #~ msgid "Anim Track Rename" #~ msgstr "Anim Baan Hernoem" diff --git a/editor/translations/ar.po b/editor/translations/ar.po index 5d6e0bd606..a4133403a1 100644 --- a/editor/translations/ar.po +++ b/editor/translations/ar.po @@ -34,7 +34,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-09-07 13:51+0000\n" +"PO-Revision-Date: 2019-10-04 03:15+0000\n" "Last-Translator: Omar Aglan <omar.aglan91@yahoo.com>\n" "Language-Team: Arabic <https://hosted.weblate.org/projects/godot-engine/" "godot/ar/>\n" @@ -49,7 +49,7 @@ msgstr "" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Invalid type argument to convert(), use TYPE_* constants." -msgstr "نوع برهان خاطئ خاص بconvert()ØŒ إستخدم ثوابت TYPE_*." +msgstr "نوع معامل خاطئ للدالة convert()ØŒ إستخدم ثوابت TYPE_*." #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/mono/glue/gd_glue.cpp @@ -59,72 +59,71 @@ msgstr "لا يوجد ما يكÙÙŠ من البايتات من أجل ÙÙƒ Ø§Ù„Ø #: core/math/expression.cpp msgid "Invalid input %i (not passed) in expression" -msgstr "إدخال خاطيء i% (لم يتم تمريره) ÙÙŠ التصريØ" +msgstr "مدخلات خاطئة i% (لم يتم تمريره) ÙÙŠ التعبير" #: core/math/expression.cpp msgid "self can't be used because instance is null (not passed)" -msgstr "لا يمكن استخدام الØالة لأن Ù„Øظة التشغيل عدم (لم بتم ارسالها)" +msgstr "لا يمكن إستخدامه Ù†Ùسه لأن الØالة Ùارغة (لم ÙŠÙمرر)" #: core/math/expression.cpp msgid "Invalid operands to operator %s, %s and %s." -msgstr "معاملات غير صالØØ© للتشغل s,%s% Ùˆ s%." +msgstr "معاملات غير صالØØ© للمشغل sØŒ%s% Ùˆ s%." #: core/math/expression.cpp msgid "Invalid index of type %s for base type %s" -msgstr "الرمز غير Ù…ØªØ§Ø Ù„Ù„Ù†ÙˆØ¹ %s للنوع %s" +msgstr "Ùهرس غير صØÙŠØ Ù„Ù„Ù†ÙˆØ¹ %s التابع للنوع الأساسي %s" #: core/math/expression.cpp msgid "Invalid named index '%s' for base type %s" -msgstr "أسم غير صØÙŠØ Ù„Ù„Ùهرس '%s' للنوع الأساسي %s" +msgstr "أسم Ùهرس غير صØÙŠØ '%s' للنوع الأساسي %s" #: core/math/expression.cpp msgid "Invalid arguments to construct '%s'" -msgstr "نقاش غير صالØØ© للبناء '%s'" +msgstr "معامل غير ØµØ§Ù„Ø Ù„Ù„Ø¥Ù†Ø´Ø§Ø¡ '%s'" #: core/math/expression.cpp msgid "On call to '%s':" -msgstr "عند الأستدعاء إلى '%s':" +msgstr "عند استدعاء '%s':" #: core/ustring.cpp msgid "B" -msgstr "" +msgstr "بايت" #: core/ustring.cpp msgid "KiB" -msgstr "" +msgstr "كيلوبايت" #: core/ustring.cpp -#, fuzzy msgid "MiB" -msgstr "خلط" +msgstr "ميجابايت" #: core/ustring.cpp msgid "GiB" -msgstr "" +msgstr "جيجابايت" #: core/ustring.cpp msgid "TiB" -msgstr "" +msgstr "تيرابايت" #: core/ustring.cpp msgid "PiB" -msgstr "" +msgstr "بيتابايت" #: core/ustring.cpp msgid "EiB" -msgstr "" +msgstr "إكسابايت" #: editor/animation_bezier_editor.cpp msgid "Free" -msgstr "مجاني/Ùارغ" +msgstr "Ùارغ" #: editor/animation_bezier_editor.cpp msgid "Balanced" -msgstr "متوازن / متعادل" +msgstr "متعادل" #: editor/animation_bezier_editor.cpp msgid "Mirror" -msgstr "عكس / الإنعكاس" +msgstr "انعكاس" #: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp msgid "Time:" @@ -136,23 +135,23 @@ msgstr "القيمة:" #: editor/animation_bezier_editor.cpp msgid "Insert Key Here" -msgstr "أدخل الرمز هنا" +msgstr "أدخل المÙØªØ§Ø Ù‡Ù†Ø§" #: editor/animation_bezier_editor.cpp msgid "Duplicate Selected Key(s)" -msgstr "تكرار المÙØ§ØªÙŠØ Ø§Ù„Ù…Øدد(Ø©)" +msgstr "استنساخ المÙØ§ØªÙŠØ Ø§Ù„Ù…Øدد(Ø©)" #: editor/animation_bezier_editor.cpp msgid "Delete Selected Key(s)" -msgstr "Ø¥Ù…Ø³Ø Ø§Ù„Ø²Ù…ÙˆØ² المØدد(Ø©)" +msgstr "Ø¥Ù…Ø³Ø Ø§Ù„Ù…ÙØ§ØªÙŠØ Ø§Ù„Ù…Øدد(Ø©)" #: editor/animation_bezier_editor.cpp msgid "Add Bezier Point" -msgstr "إضاÙØ© نقطة Bezier" +msgstr "إضاÙØ© نقطة بيزية" #: editor/animation_bezier_editor.cpp msgid "Move Bezier Points" -msgstr "تØريك نقطة الBezier" +msgstr "تØريك نقاط بيزية" #: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp msgid "Anim Duplicate Keys" @@ -168,7 +167,7 @@ msgstr "تغيير وقت الإطار الرئيسي للØركة" #: editor/animation_track_editor.cpp msgid "Anim Change Transition" -msgstr "تغيير المقطع الإنتقالي" +msgstr "تغيير إنتقالية التØريك" #: editor/animation_track_editor.cpp msgid "Anim Change Transform" @@ -383,6 +382,7 @@ msgstr "أنشئ %d مسارات جديدة Ùˆ أدخل Ù…ÙاتيØØŸ" #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "أنشئ" @@ -519,16 +519,6 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "تØديد الكل" - -#: editor/animation_track_editor.cpp -#, fuzzy -msgid "Select None" -msgstr "تØديد الوضع" - #: editor/animation_track_editor.cpp #, fuzzy msgid "Select an AnimationPlayer node to create and edit animations." @@ -665,7 +655,8 @@ msgid "Scale Ratio:" msgstr "نسبة التكبير:" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" +#, fuzzy +msgid "Select Tracks to Copy" msgstr "Øدد مقاطع لنسخ:" #: editor/animation_track_editor.cpp editor/editor_log.cpp @@ -677,6 +668,11 @@ msgstr "Øدد مقاطع لنسخ:" msgid "Copy" msgstr "أنسخ" +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Select All/None" +msgstr "تØديد الوضع" + #: editor/animation_track_editor_plugins.cpp msgid "Add Audio Track Clip" msgstr "أض٠مقطع صوت" @@ -1011,7 +1007,7 @@ msgid "Resource" msgstr "مورد" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "المسار" @@ -1482,7 +1478,8 @@ msgstr "إضاÙØ© للتØميل التلقائي" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "المسار:" @@ -1537,7 +1534,7 @@ msgstr "أنشئ مجلد" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "الأسم:" @@ -1960,6 +1957,7 @@ msgid "Class:" msgstr "صنÙ:" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "يرث:" @@ -3048,7 +3046,7 @@ msgstr "Ù…Ùراقب" msgid "Expand Bottom Panel" msgstr "توسيع الكل" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "الخرج" @@ -3291,6 +3289,11 @@ msgstr "" msgid "New Script" msgstr "" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +#, fuzzy +msgid "Extend Script" +msgstr "ÙØªØ Ø§Ù„ÙƒÙˆØ¯" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "" @@ -3317,14 +3320,6 @@ msgstr "" msgid "Convert To %s" msgstr "تØويل إلي %s" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy -msgid "Open Editor" -msgstr "ÙØªØ Ø§Ù„Ù…Ùعدل 2D" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "" @@ -4155,7 +4150,7 @@ msgstr "إضاÙات" msgid "Subfolder:" msgstr "" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "" @@ -4308,6 +4303,13 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +#, fuzzy +msgid "Open Editor" +msgstr "ÙØªØ Ø§Ù„Ù…Ùعدل 2D" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp #, fuzzy msgid "Open Animation Node" @@ -4676,7 +4678,6 @@ msgstr "إسم الØركة:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "خطأ!" @@ -4853,6 +4854,8 @@ msgid "Current:" msgstr "الØالي:" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "أض٠مدخله" @@ -5067,6 +5070,10 @@ msgid "All" msgstr "الكل" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy msgid "Import..." msgstr "إستيراد" @@ -5372,23 +5379,28 @@ msgstr "تØديد الوضع" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Toggle snapping." +msgid "Toggle smart snapping." msgstr "إلغاء/تÙعيل الكبس" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +#, fuzzy +msgid "Use Smart Snap" msgstr "إستخدم الكبس" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Snapping Options" -msgstr "إعدادات الكبس" +msgid "Toggle grid snapping." +msgstr "إلغاء/تÙعيل الكبس" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Snap to Grid" -msgstr "الكبس إلي الشبكة" +msgid "Use Grid Snap" +msgstr "إستخدم الكبس" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Snapping Options" +msgstr "إعدادات الكبس" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Rotation Snap" @@ -5486,8 +5498,8 @@ msgid "View" msgstr "أظهر" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +#, fuzzy +msgid "Always Show Grid" msgstr "إظهار الشبكة" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5675,7 +5687,7 @@ msgstr "التقط من البيكسل" #: editor/plugins/cpu_particles_2d_editor_plugin.cpp #: editor/plugins/particles_2d_editor_plugin.cpp msgid "Emission Colors" -msgstr "الوان الانبعاث" +msgstr "الوان الإنبعاث" #: editor/plugins/cpu_particles_editor_plugin.cpp #, fuzzy @@ -5763,6 +5775,11 @@ msgstr "إلغاء/تÙعيل مماس خط المنØني" msgid "Hold Shift to edit tangents individually" msgstr "إبقي ضاغطاً علي Shift لتعديل المماس Ùردياً" +#: editor/plugins/curve_editor_plugin.cpp +#, fuzzy +msgid "Right click to add point" +msgstr "إظغط: أض٠نقطة" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "طبخ مجس GI" @@ -6184,9 +6201,8 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp -#, fuzzy msgid "Options" -msgstr "الخيارات" +msgstr "الإعدادات" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp @@ -6416,6 +6432,10 @@ msgid "Grid" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "إظهار الشبكة" + +#: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy msgid "Configure Grid:" msgstr "تعديل اللقطة" @@ -6477,6 +6497,7 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "" @@ -6587,6 +6608,11 @@ msgid "Find Next" msgstr "بØØ« عن التالي" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Filter scripts" msgstr "خصائص العنصر." @@ -6869,6 +6895,11 @@ msgstr "Ù…Ø³Ø Ø§Ù„Ù†Ù‚Ø§Ø·" msgid "Cut" msgstr "" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "تØديد الكل" + #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "" @@ -6929,10 +6960,6 @@ msgid "Auto Indent" msgstr "" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "" - -#: editor/plugins/script_text_editor.cpp #, fuzzy msgid "Find in Files..." msgstr "Ùلتر الملÙات..." @@ -7268,6 +7295,10 @@ msgid "Freelook Speed Modifier" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Slow Modifier" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -7302,6 +7333,10 @@ msgid "Use Local Space" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "إستخدم الكبس" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "" @@ -7539,6 +7574,10 @@ msgid "Simplification: " msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Shrink (Pixels): " +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "" @@ -7769,7 +7808,6 @@ msgid "Disabled Button" msgstr "معطّل" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Item" msgstr "عنصر" @@ -7779,24 +7817,20 @@ msgid "Disabled Item" msgstr "معطّل" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Check Item" -msgstr "اختار العنصر" +msgstr "Ùَعل العنصر" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Checked Item" -msgstr "عنصر مَضْبÙوط" +msgstr "عنصر Ù…ÙÙعل" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Radio Item" -msgstr "عنصر انتقاء" +msgstr "عنصر Ø®Ùيار" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Checked Radio Item" -msgstr "عنصر انتقاء مَضْبÙوط" +msgstr "عنصر Ù…ÙÙعل اختياري" #: editor/plugins/theme_editor_plugin.cpp msgid "Named Sep." @@ -8380,12 +8414,7 @@ msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy -msgid "Add input +" -msgstr "أض٠مدخله" - -#: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy -msgid "Add output +" +msgid "Add Output" msgstr "أض٠مدخله" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -8403,6 +8432,11 @@ msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy +msgid "Sampler" +msgstr "عينات (صوتية)" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy msgid "Add input port" msgstr "أض٠مدخله" @@ -9289,12 +9323,14 @@ msgstr "" #: editor/project_export.cpp msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp @@ -10304,11 +10340,9 @@ msgid "" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." msgstr "" #: editor/scene_tree_dock.cpp @@ -10388,6 +10422,14 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "" + +#: editor/scene_tree_dock.cpp #, fuzzy msgid "Open Documentation" msgstr "ÙÙØªØ Ù…Ø¤Ø®Ø±Ø§Ù‹" @@ -10407,11 +10449,6 @@ msgstr "" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Extend Script" -msgstr "ÙØªØ Ø§Ù„ÙƒÙˆØ¯" - -#: editor/scene_tree_dock.cpp -#, fuzzy msgid "Reparent to New Node" msgstr "إنشاء %s جديد" @@ -10658,24 +10695,19 @@ msgid "Will load an existing script file." msgstr "تØميل نسق بيوس موجود مسبقاً." #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Inherits" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Class Name" +#, fuzzy +msgid "Class Name:" msgstr "إسم صنÙ" #: editor/script_create_dialog.cpp -msgid "Template" -msgstr "" +#, fuzzy +msgid "Template:" +msgstr "Ù…Ø³Ø Ø§Ù„Ù‚Ø§Ù„Ø¨" #: editor/script_create_dialog.cpp -msgid "Built-in Script" -msgstr "" +#, fuzzy +msgid "Built-in Script:" +msgstr "ÙØªØ Ø§Ù„ÙƒÙˆØ¯" #: editor/script_create_dialog.cpp msgid "Attach Node Script" @@ -11340,6 +11372,11 @@ msgid "Add Function" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Delete input port" +msgstr "Ù…Ø³Ø Ø§Ù„Ù†Ù‚Ø·Ø©" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "" @@ -11348,6 +11385,26 @@ msgid "Add Signal" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Input Port" +msgstr "أض٠مدخله" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Output Port" +msgstr "أض٠مدخله" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Input Port" +msgstr "Ù…Ø³Ø Ø§Ù„Ù†Ù‚Ø·Ø©" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Output Port" +msgstr "Ù…Ø³Ø Ø§Ù„Ù†Ù‚Ø·Ø©" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "" @@ -11388,10 +11445,20 @@ msgid "Add Preload Node" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "" @@ -11417,6 +11484,11 @@ msgstr "" #: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Disconnect Nodes" +msgstr "غير متصل" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Connect Node Data" msgstr "صلها بالعقدة:" @@ -11451,6 +11523,27 @@ msgid "Paste VisualScript Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function with a function node." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Create Function" +msgstr "عمل اشتراك" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "Ù…Ø³Ø Ø§Ù„Ù…Ù‡Ù…Ø©" @@ -11476,16 +11569,13 @@ msgid "Make Tool:" msgstr "أنشئ عظام" #: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "الأعضاء:" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" -msgstr "" +#, fuzzy +msgid "function_name" +msgstr "الإعدادات:" #: modules/visual_script/visual_script_editor.cpp msgid "Select or create a function to edit its graph." @@ -11509,6 +11599,16 @@ msgstr "" #: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Make Function" +msgstr "Ù…Ø³Ø Ø§Ù„Ù…Ù‡Ù…Ø©" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Refresh Graph" +msgstr "تØديث" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Edit Member" msgstr "الأعضاء" @@ -11604,6 +11704,10 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "اختار جهاز من القائمة" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "" @@ -11705,6 +11809,10 @@ msgid "Required icon is not specified in the preset." msgstr "" #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "تشغيل ÙÙŠ المتصÙØ" @@ -12263,10 +12371,6 @@ msgid "" "texture to some node for display." msgstr "" -#: scene/resources/visual_shader.cpp -msgid "Input" -msgstr "إدخال" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for preview." msgstr "مصدر غير ØµØ§Ù„Ø Ù„Ù„Ù…Ø¹Ø§ÙŠÙ†Ø©." @@ -12295,6 +12399,17 @@ msgstr "يمكن تعيين المتغيرات Ùقط ÙÙŠ الذروة ." msgid "Constants cannot be modified." msgstr "" +#, fuzzy +#~ msgid "Snap to Grid" +#~ msgstr "الكبس إلي الشبكة" + +#, fuzzy +#~ msgid "Add input +" +#~ msgstr "أض٠مدخله" + +#~ msgid "Input" +#~ msgstr "إدخال" + #~ msgid "Properties:" #~ msgstr "خصائص:" @@ -12431,9 +12546,6 @@ msgstr "" #~ msgid "Go to parent folder" #~ msgstr "إذهب إلي المجلد السابق" -#~ msgid "Select device from the list" -#~ msgstr "اختار جهاز من القائمة" - #~ msgid "Open Scene(s)" #~ msgstr "ÙØªØ Ù…Ø´Ù‡Ø¯ (مشاهد)" @@ -12772,9 +12884,6 @@ msgstr "" #~ msgid "Move Add Key" #~ msgstr "Ù…ÙØªØ§Ø Ø¥Ø¶Ø§ÙØ© الØركة" -#~ msgid "Create Subscription" -#~ msgstr "عمل اشتراك" - #~ msgid "List:" #~ msgstr "القائمة:" @@ -12792,6 +12901,3 @@ msgstr "" #~ msgid "The quick brown fox jumps over the lazy dog." #~ msgstr "أبجد هوز Øطي كلمن صعÙص قرشت ثخذ ضظغ." - -#~ msgid "Samples" -#~ msgstr "عينات (صوتية)" diff --git a/editor/translations/bg.po b/editor/translations/bg.po index 56196b743f..880682ab7c 100644 --- a/editor/translations/bg.po +++ b/editor/translations/bg.po @@ -373,6 +373,7 @@ msgstr "" #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "Създаване" @@ -504,16 +505,6 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "Избиране на вÑичко" - -#: editor/animation_track_editor.cpp -#, fuzzy -msgid "Select None" -msgstr "Избиране на вÑичко" - #: editor/animation_track_editor.cpp msgid "Select an AnimationPlayer node to create and edit animations." msgstr "" @@ -652,8 +643,9 @@ msgid "Scale Ratio:" msgstr "" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" -msgstr "" +#, fuzzy +msgid "Select Tracks to Copy" +msgstr "Изберете ÑвойÑтво" #: editor/animation_track_editor.cpp editor/editor_log.cpp #: editor/editor_properties.cpp @@ -664,6 +656,11 @@ msgstr "" msgid "Copy" msgstr "Копиране" +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Select All/None" +msgstr "Избиране на вÑичко" + #: editor/animation_track_editor_plugins.cpp #, fuzzy msgid "Add Audio Track Clip" @@ -993,7 +990,7 @@ msgid "Resource" msgstr "" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "" @@ -1454,7 +1451,8 @@ msgstr "" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "Път:" @@ -1509,7 +1507,7 @@ msgstr "Създаване на папка" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "Име:" @@ -1922,6 +1920,7 @@ msgid "Class:" msgstr "КлаÑ:" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "ÐаÑледÑва:" @@ -2955,7 +2954,7 @@ msgstr "ИнÑпектор" msgid "Expand Bottom Panel" msgstr "Разшири Ð”Ð¾Ð»Ð½Ð¸Ñ ÐŸÐ°Ð½ÐµÐ»" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "" @@ -3196,6 +3195,11 @@ msgstr "" msgid "New Script" msgstr "Ðов Ñкрипт" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +#, fuzzy +msgid "Extend Script" +msgstr "Ðова Ñцена" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "" @@ -3222,14 +3226,6 @@ msgstr "ПоÑтавÑне" msgid "Convert To %s" msgstr "" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy -msgid "Open Editor" -msgstr "Ðова Ñцена" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "" @@ -4068,7 +4064,7 @@ msgstr "ПриÑтавки" msgid "Subfolder:" msgstr "Подпапка:" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp #, fuzzy msgid "Language:" msgstr "ВнаÑÑне на езици:" @@ -4219,6 +4215,13 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +#, fuzzy +msgid "Open Editor" +msgstr "Ðова Ñцена" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp #, fuzzy msgid "Open Animation Node" @@ -4582,7 +4585,6 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "Грешка!" @@ -4761,6 +4763,8 @@ msgid "Current:" msgstr "" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "" @@ -4970,6 +4974,10 @@ msgid "All" msgstr "Ð’Ñички" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy msgid "Import..." msgstr "Повторно внаÑÑне..." @@ -5271,20 +5279,25 @@ msgid "Ruler Mode" msgstr "Режим на Селектиране" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Toggle snapping." -msgstr "" +#, fuzzy +msgid "Toggle smart snapping." +msgstr "Добави Breakpoint" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +msgid "Use Smart Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snapping Options" +#, fuzzy +msgid "Toggle grid snapping." +msgstr "Добави Breakpoint" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Use Grid Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to Grid" +msgid "Snapping Options" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5381,8 +5394,7 @@ msgid "View" msgstr "Изглед" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +msgid "Always Show Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5650,6 +5662,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/curve_editor_plugin.cpp +msgid "Right click to add point" +msgstr "" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "" @@ -6295,6 +6311,10 @@ msgid "Grid" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Configure Grid:" msgstr "" @@ -6351,6 +6371,7 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "Тип:" @@ -6455,6 +6476,11 @@ msgid "Find Next" msgstr "Ðамери Ðапред" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Filter scripts" msgstr "ПоÑтавÑне на възелите" @@ -6737,6 +6763,11 @@ msgstr "Създай точки." msgid "Cut" msgstr "ИзрÑзване" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "Избиране на вÑичко" + #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "Изтрий Ред" @@ -6796,10 +6827,6 @@ msgid "Auto Indent" msgstr "" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "" - -#: editor/plugins/script_text_editor.cpp #, fuzzy msgid "Find in Files..." msgstr "Ðамери във файлове" @@ -7136,6 +7163,11 @@ msgid "Freelook Speed Modifier" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Freelook Slow Modifier" +msgstr "Свободен Изглед Отпред" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -7169,6 +7201,10 @@ msgid "Use Local Space" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "" @@ -7402,6 +7438,10 @@ msgid "Simplification: " msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Shrink (Pixels): " +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "" @@ -8234,12 +8274,9 @@ msgid "(GLES3 only)" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add input +" -msgstr "" - -#: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add output +" -msgstr "" +#, fuzzy +msgid "Add Output" +msgstr "Любими:" #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy @@ -8256,6 +8293,10 @@ msgid "Boolean" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sampler" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy msgid "Add input port" msgstr "Любими:" @@ -9135,12 +9176,14 @@ msgstr "РеÑурÑи за изнаÑÑне:" #: editor/project_export.cpp msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp @@ -10161,11 +10204,9 @@ msgid "" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." msgstr "" #: editor/scene_tree_dock.cpp @@ -10245,6 +10286,14 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "" + +#: editor/scene_tree_dock.cpp #, fuzzy msgid "Open Documentation" msgstr "Отвори документациÑта на Godot онлайн" @@ -10264,11 +10313,6 @@ msgstr "" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Extend Script" -msgstr "Ðова Ñцена" - -#: editor/scene_tree_dock.cpp -#, fuzzy msgid "Reparent to New Node" msgstr "Създай нови възли." @@ -10513,24 +10557,19 @@ msgid "Will load an existing script file." msgstr "" #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Inherits" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Class Name" -msgstr "" +#, fuzzy +msgid "Class Name:" +msgstr "КлаÑ:" #: editor/script_create_dialog.cpp -msgid "Template" -msgstr "" +#, fuzzy +msgid "Template:" +msgstr "Шаблони" #: editor/script_create_dialog.cpp -msgid "Built-in Script" -msgstr "" +#, fuzzy +msgid "Built-in Script:" +msgstr "Ðова Ñцена" #: editor/script_create_dialog.cpp #, fuzzy @@ -11201,6 +11240,11 @@ msgid "Add Function" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Delete input port" +msgstr "ЗатварÑне на вÑичко" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "" @@ -11209,6 +11253,26 @@ msgid "Add Signal" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Input Port" +msgstr "Любими:" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Output Port" +msgstr "Любими:" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Input Port" +msgstr "ЗатварÑне на вÑичко" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Output Port" +msgstr "ВнаÑÑне на текÑтури" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "" @@ -11249,10 +11313,20 @@ msgid "Add Preload Node" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "" @@ -11280,6 +11354,11 @@ msgstr "ИзрÑзване на възелите" #: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Disconnect Nodes" +msgstr "ИзрÑзване на възелите" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Connect Node Data" msgstr "ИзрÑзване на възелите" @@ -11315,6 +11394,27 @@ msgid "Paste VisualScript Nodes" msgstr "ПоÑтавÑне на възелите" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function with a function node." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Create Function" +msgstr "Създай Очертание" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "" @@ -11339,15 +11439,11 @@ msgid "Make Tool:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" +msgid "function_name" msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -11372,6 +11468,15 @@ msgstr "ИзрÑзване на възелите" #: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Make Function" +msgstr "Отиди на Ред" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Refresh Graph" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Edit Member" msgstr "Файл:" @@ -11467,6 +11572,10 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "" @@ -11567,6 +11676,10 @@ msgid "Required icon is not specified in the preset." msgstr "" #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "" @@ -12153,10 +12266,6 @@ msgid "" "texture to some node for display." msgstr "" -#: scene/resources/visual_shader.cpp -msgid "Input" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for preview." msgstr "" diff --git a/editor/translations/bn.po b/editor/translations/bn.po index 8e009dc63c..fa1842f3a2 100644 --- a/editor/translations/bn.po +++ b/editor/translations/bn.po @@ -393,6 +393,7 @@ msgstr "%d à¦à¦° জনà§à¦¯ নতà§à¦¨ টà§à¦°à§à¦¯à¦¾à¦•/পথ-সমà #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "তৈরি করà§à¦¨" @@ -527,15 +528,6 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "সবগà§à¦²à¦¿ বাছাই করà§à¦¨" - -#: editor/animation_track_editor.cpp -msgid "Select None" -msgstr "কোনোটাই নিরà§à¦¬à¦¾à¦šà¦¨ করবেন না" - #: editor/animation_track_editor.cpp #, fuzzy msgid "Select an AnimationPlayer node to create and edit animations." @@ -679,8 +671,9 @@ msgid "Scale Ratio:" msgstr "সà§à¦•à§‡à¦²/মাপের অনà§à¦ªà¦¾à¦¤:" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" -msgstr "" +#, fuzzy +msgid "Select Tracks to Copy" +msgstr "গà§à¦£à¦¾à¦—à§à¦£/বৈশিষà§à¦Ÿà§à¦¯ বাছাই করà§à¦¨" #: editor/animation_track_editor.cpp editor/editor_log.cpp #: editor/editor_properties.cpp @@ -691,6 +684,11 @@ msgstr "" msgid "Copy" msgstr "পà§à¦°à¦¤à¦¿à¦²à¦¿à¦ªà¦¿/কপি করà§à¦¨" +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Select All/None" +msgstr "কোনোটাই নিরà§à¦¬à¦¾à¦šà¦¨ করবেন না" + #: editor/animation_track_editor_plugins.cpp #, fuzzy msgid "Add Audio Track Clip" @@ -1037,7 +1035,7 @@ msgid "Resource" msgstr "রিসোরà§à¦¸" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "পথ" @@ -1521,7 +1519,8 @@ msgstr "AutoLoad সংযà§à¦•à§à¦¤ করà§à¦¨" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "পথ:" @@ -1577,7 +1576,7 @@ msgstr "ফোলà§à¦¡à¦¾à¦° তৈরি করà§à¦¨" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "নাম:" @@ -2007,6 +2006,7 @@ msgid "Class:" msgstr "কà§à¦²à¦¾à¦¸:" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "গà§à¦°à¦¹à¦£ করে:" @@ -3140,7 +3140,7 @@ msgstr "পরিদরà§à¦¶à¦•/পরীকà§à¦·à¦•" msgid "Expand Bottom Panel" msgstr "ধারক/বাহক পরà§à¦¯à¦¨à§à¦¤ বিসà§à¦¤à§ƒà¦¤ করà§à¦¨" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "আউটপà§à¦Ÿ/ফলাফল" @@ -3398,6 +3398,11 @@ msgstr "১ টি Viewport" msgid "New Script" msgstr "নতà§à¦¨ সà§à¦•à§à¦°à¦¿à¦ªà§à¦Ÿ" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +#, fuzzy +msgid "Extend Script" +msgstr "পরবরà§à¦¤à§€ সà§à¦•à§à¦°à¦¿à¦ªà§à¦Ÿ" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "" @@ -3426,14 +3431,6 @@ msgstr "পà§à¦°à¦¤à¦¿à¦²à§‡à¦ªà¦¨/পেসà§à¦Ÿ করà§à¦¨" msgid "Convert To %s" msgstr "à¦à¦¤à§‡ রূপানà§à¦¤à¦° করà§à¦¨..." -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy -msgid "Open Editor" -msgstr "à¦à¦¡à¦¿à¦Ÿà¦°à§‡ খà§à¦²à§à¦¨" - #: editor/editor_properties.cpp editor/property_editor.cpp #, fuzzy msgid "Selected node is not a Viewport!" @@ -4319,7 +4316,7 @@ msgstr "পà§à¦²à¦¾à¦—ইন-সমূহ" msgid "Subfolder:" msgstr "" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp #, fuzzy msgid "Language:" msgstr "à¦à¦¾à¦·à¦¾" @@ -4476,6 +4473,13 @@ msgstr "বিনà§à¦¦à§ সরান" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +#, fuzzy +msgid "Open Editor" +msgstr "à¦à¦¡à¦¿à¦Ÿà¦°à§‡ খà§à¦²à§à¦¨" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp #, fuzzy msgid "Open Animation Node" @@ -4853,7 +4857,6 @@ msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨à§‡à¦° নাম:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "à¦à§à¦²/সমসà§à¦¯à¦¾!" @@ -5032,6 +5035,8 @@ msgid "Current:" msgstr "বরà§à¦¤à¦®à¦¾à¦¨:" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "ইনপà§à¦Ÿ যোগ করà§à¦¨" @@ -5253,6 +5258,10 @@ msgid "All" msgstr "সকল" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy msgid "Import..." msgstr "পà§à¦¨-ইমà§à¦ªà§‹à¦°à§à¦Ÿ..." @@ -5564,23 +5573,28 @@ msgstr "চালানোর মোড:" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Toggle snapping." +msgid "Toggle smart snapping." msgstr "ছেদবিনà§à¦¦à§ অদলবদল করà§à¦¨ (টগল বà§à¦°à§‡à¦•à¦ªà§Ÿà§‡à¦¨à§à¦Ÿ)" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +#, fuzzy +msgid "Use Smart Snap" msgstr "সà§à¦¨à§à¦¯à¦¾à¦ª বà§à¦¯à¦¬à¦¹à¦¾à¦° করà§à¦¨" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Snapping Options" -msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨à§‡à¦° সিদà§à¦§à¦¾à¦¨à§à¦¤à¦¸à¦®à§‚হ" +msgid "Toggle grid snapping." +msgstr "ছেদবিনà§à¦¦à§ অদলবদল করà§à¦¨ (টগল বà§à¦°à§‡à¦•à¦ªà§Ÿà§‡à¦¨à§à¦Ÿ)" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Snap to Grid" -msgstr "সà§à¦¨à§à¦¯à¦¾à¦ª মোড:" +msgid "Use Grid Snap" +msgstr "গà§à¦°à¦¿à¦¡ সà§à¦¨à§à¦¯à¦¾à¦ª" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Snapping Options" +msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨à§‡à¦° সিদà§à¦§à¦¾à¦¨à§à¦¤à¦¸à¦®à§‚হ" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Rotation Snap" @@ -5679,8 +5693,8 @@ msgid "View" msgstr "দৃশà§à¦¯/পরিদরà§à¦¶à¦¨" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +#, fuzzy +msgid "Always Show Grid" msgstr "গà§à¦°à¦¿à¦¡ দেখান" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5972,6 +5986,11 @@ msgstr "বকà§à¦°à¦°à§‡à¦–ার লিনিয়ার টà§à¦¯à¦¾à¦¨à¦œà msgid "Hold Shift to edit tangents individually" msgstr "টà§à¦¯à¦¾à¦¨à¦œà§‡à¦¨à§à¦Ÿà¦—à§à¦²à¦¿ আলাদা আলাদা à¦à¦¾à¦¬à§‡ সমà§à¦ªà¦¾à¦¦à¦¨à¦¾ করার জনà§à¦¯ Shift ধরে রাখà§à¦¨à§" +#: editor/plugins/curve_editor_plugin.cpp +#, fuzzy +msgid "Right click to add point" +msgstr "ডান কà§à¦²à¦¿à¦•: বিনà§à¦¦à§ অপসারণ করà§à¦¨" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "জি আই পà§à¦°à§‹à¦¬ বেক করà§à¦¨" @@ -6640,6 +6659,10 @@ msgid "Grid" msgstr "গà§à¦°à¦¿à¦¡" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "গà§à¦°à¦¿à¦¡ দেখান" + +#: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy msgid "Configure Grid:" msgstr "সà§à¦¨à§à¦¯à¦¾à¦ª কনফিগার করà§à¦¨" @@ -6702,6 +6725,7 @@ msgstr "ইনà§à¦¸à¦Ÿà§à¦¯à¦¾à¦¨à§à¦¸:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "ধরণ:" @@ -6817,6 +6841,11 @@ msgid "Find Next" msgstr "পরবরà§à¦¤à§€ খà§à¦à¦œà§à¦¨" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "পূরà§à¦¬à§‡ খà§à¦à¦œà§à¦¨" + +#: editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Filter scripts" msgstr "ফিলà§à¦Ÿà¦¾à¦°à¦¸à¦®à§‚হ" @@ -7107,6 +7136,11 @@ msgstr "বিনà§à¦¦à§ অপসারণ করà§à¦¨" msgid "Cut" msgstr "করà§à¦¤à¦¨/কাট করà§à¦¨" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "সবগà§à¦²à¦¿ বাছাই করà§à¦¨" + #: editor/plugins/script_text_editor.cpp #, fuzzy msgid "Delete Line" @@ -7169,10 +7203,6 @@ msgid "Auto Indent" msgstr "সà§à¦¬à§Ÿà¦‚কà§à¦°à¦¿à§Ÿà¦à¦¾à¦¬à§‡ মাতà§à¦°à¦¾ দিন" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "পূরà§à¦¬à§‡ খà§à¦à¦œà§à¦¨" - -#: editor/plugins/script_text_editor.cpp #, fuzzy msgid "Find in Files..." msgstr "দà§à¦°à§à¦¤ ফাইলসমূহ ফিলà§à¦Ÿà¦¾à¦° করà§à¦¨..." @@ -7529,6 +7559,11 @@ msgid "Freelook Speed Modifier" msgstr "ফà§à¦°à¦¿ লà§à¦• সà§à¦ªà¦¿à¦¡ মডিফায়ার" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Freelook Slow Modifier" +msgstr "ফà§à¦°à¦¿ লà§à¦• সà§à¦ªà¦¿à¦¡ মডিফায়ার" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -7566,6 +7601,10 @@ msgid "Use Local Space" msgstr "মাপের মোড করà§à¦¨ (R)" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "সà§à¦¨à§à¦¯à¦¾à¦ª বà§à¦¯à¦¬à¦¹à¦¾à¦° করà§à¦¨" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "নিমà§à¦¨ দরà§à¦¶à¦¨" @@ -7808,6 +7847,11 @@ msgstr "" #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy +msgid "Shrink (Pixels): " +msgstr "সà§à¦¨à§à¦¯à¦¾à¦ª (পিকà§à¦¸à§‡à¦²à¦¸à¦®à§‚হ):" + +#: editor/plugins/sprite_editor_plugin.cpp +#, fuzzy msgid "Grow (Pixels): " msgstr "সà§à¦¨à§à¦¯à¦¾à¦ª (পিকà§à¦¸à§‡à¦²à¦¸à¦®à§‚হ):" @@ -8671,12 +8715,7 @@ msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy -msgid "Add input +" -msgstr "ইনপà§à¦Ÿ যোগ করà§à¦¨" - -#: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy -msgid "Add output +" +msgid "Add Output" msgstr "ইনপà§à¦Ÿ যোগ করà§à¦¨" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -8695,6 +8734,11 @@ msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy +msgid "Sampler" +msgstr "নমà§à¦¨à¦¾à¦¸à¦®à§‚হ" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy msgid "Add input port" msgstr "ইনপà§à¦Ÿ যোগ করà§à¦¨" @@ -9606,14 +9650,16 @@ msgstr "à¦à¦•à§à¦¸à¦ªà§‹à¦°à§à¦Ÿà§‡à¦° জনà§à¦¯ রিসোরà§à¦¸:" #: editor/project_export.cpp #, fuzzy msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" "রিসোরà§à¦¸-নয় à¦à¦®à¦¨ ফাইল à¦à¦•à§à¦¸à¦ªà§‹à¦°à§à¦Ÿ করার ফিলà§à¦Ÿà¦¾à¦°à¦¸à¦®à§‚হ (কমা-বিà¦à¦•à§à¦¤, যেমন: *.json, *.txt):" #: editor/project_export.cpp #, fuzzy msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" "à¦à¦•à§à¦¸à¦ªà§‹à¦°à§à¦Ÿ (export) হতে বরà§à¦œà¦¨à¦•à§ƒà¦¤ ফিলà§à¦Ÿà¦¾à¦°à¦¸à¦®à§‚হ (filter) (কমা-বিà¦à¦•à§à¦¤, যেমন: *.json, *." "txt):" @@ -10687,12 +10733,10 @@ msgid "" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "সমà§à¦ªà¦¾à¦¦à¦¨à¦¯à§‹à¦—à§à¦¯ অংশীদারীসমূহ" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" -msgstr "পà§à¦²à§‡à¦¸à¦¹à§‹à¦²à§à¦¡à¦¾à¦° হিসেবে লোড করà§à¦¨" +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." +msgstr "" #: editor/scene_tree_dock.cpp msgid "Make Local" @@ -10775,6 +10819,14 @@ msgid "Clear Inheritance" msgstr "উতà§à¦¤à¦°à¦¾à¦§à¦¿à¦•à¦¾à¦°à¦¤à§à¦¬ পরিসà§à¦•à¦¾à¦° করà§à¦¨" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "সমà§à¦ªà¦¾à¦¦à¦¨à¦¯à§‹à¦—à§à¦¯ অংশীদারীসমূহ" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "পà§à¦²à§‡à¦¸à¦¹à§‹à¦²à§à¦¡à¦¾à¦° হিসেবে লোড করà§à¦¨" + +#: editor/scene_tree_dock.cpp #, fuzzy msgid "Open Documentation" msgstr "রেফারেনà§à¦¸à§‡à¦° ডকà§à¦®à§‡à¦¨à§à¦Ÿà§‡à¦¶à¦¨à§‡ খà§à¦à¦œà§à¦¨à¥¤" @@ -10794,11 +10846,6 @@ msgstr "ধরণ পরিবরà§à¦¤à¦¨ করà§à¦¨" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Extend Script" -msgstr "পরবরà§à¦¤à§€ সà§à¦•à§à¦°à¦¿à¦ªà§à¦Ÿ" - -#: editor/scene_tree_dock.cpp -#, fuzzy msgid "Reparent to New Node" msgstr "নোডের নতà§à¦¨ অà¦à¦¿à¦à¦¾à¦¬à¦• দান করà§à¦¨" @@ -11073,27 +11120,18 @@ msgid "Will load an existing script file." msgstr "বিদà§à¦¯à¦®à¦¾à¦¨ সà§à¦•à§à¦°à¦¿à¦ªà§à¦Ÿ লোড করà§à¦¨" #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "à¦à¦¾à¦·à¦¾" - -#: editor/script_create_dialog.cpp -#, fuzzy -msgid "Inherits" -msgstr "গà§à¦°à¦¹à¦£ করে:" - -#: editor/script_create_dialog.cpp #, fuzzy -msgid "Class Name" +msgid "Class Name:" msgstr "কà§à¦²à¦¾à¦¸ নাম:" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Template" +msgid "Template:" msgstr "বসà§à¦¤à§ অপসারণ করà§à¦¨" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Built-in Script" +msgid "Built-in Script:" msgstr "পূরà§à¦¬à¦¨à¦¿à¦°à§à¦®à¦¿à¦¤ সà§à¦•à§à¦°à¦¿à¦ªà§à¦Ÿ" #: editor/script_create_dialog.cpp @@ -11799,6 +11837,11 @@ msgid "Add Function" msgstr "ফাংশন সংযোজন করà§à¦¨" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Delete input port" +msgstr "পথের বিনà§à¦¦à§ অপসারণ করà§à¦¨" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "চলক/à¦à§‡à¦°à¦¿à§Ÿà§‡à¦¬à¦² সংযোজন করà§à¦¨" @@ -11807,6 +11850,26 @@ msgid "Add Signal" msgstr "সংকেত/সিগনà§à¦¯à¦¾à¦² সংযোজন করà§à¦¨" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Input Port" +msgstr "ইনপà§à¦Ÿ যোগ করà§à¦¨" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Output Port" +msgstr "ইনপà§à¦Ÿ যোগ করà§à¦¨" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Input Port" +msgstr "পথের বিনà§à¦¦à§ অপসারণ করà§à¦¨" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Output Port" +msgstr "পথের বিনà§à¦¦à§ অপসারণ করà§à¦¨" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "অà¦à¦¿à¦¬à§à¦¯à¦•à§à¦¤à¦¿ (Expression) পরিবরà§à¦¤à¦¨ করà§à¦¨" @@ -11859,10 +11922,20 @@ msgid "Add Preload Node" msgstr "পà§à¦°à¦¿à¦²à§‹à¦¡ নোড যà§à¦•à§à¦¤ করà§à¦¨" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "শাখা (tree) হতে নোড (সমূহ) যà§à¦•à§à¦¤ করà§à¦¨" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "গেটার (Getter) à¦à¦° বৈশিষà§à¦Ÿà§à¦¯à§‡ যà§à¦•à§à¦¤ করà§à¦¨" @@ -11892,6 +11965,11 @@ msgstr "নোডের সাথে সংযà§à¦•à§à¦¤ করà§à¦¨:" #: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Disconnect Nodes" +msgstr "গà§à¦°à¦¾à¦«à§‡à¦° নোডসমূহ বিচà§à¦›à¦¿à¦¨à§à¦¨ করà§à¦¨" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Connect Node Data" msgstr "নোডের সাথে সংযà§à¦•à§à¦¤ করà§à¦¨:" @@ -11930,6 +12008,28 @@ msgid "Paste VisualScript Nodes" msgstr "নোড-সমূহ পà§à¦°à¦¤à¦¿à¦²à§‡à¦ªà¦¨/পেসà§à¦Ÿ করà§à¦¨" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Can't create function with a function node." +msgstr "'..' তে পরিচালনা করা সমà§à¦à¦¬ নয়" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Create Function" +msgstr "ফাংশনের (Function) নতà§à¦¨ নামকরণ করà§à¦¨" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "ফাংশন (Function) অপসারণ করà§à¦¨" @@ -11955,16 +12055,13 @@ msgid "Make Tool:" msgstr "সà§à¦¥à¦¾à¦¨à§€à§Ÿ করà§à¦¨" #: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "তলের ধরণ (Base Type):" - -#: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "সদসà§à¦¯à¦—ণ (Members):" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" -msgstr "উপসà§à¦¥à¦¿à¦¤ নোডসমূহ:" +#, fuzzy +msgid "function_name" +msgstr "ফাংশন:" #: modules/visual_script/visual_script_editor.cpp #, fuzzy @@ -11989,6 +12086,16 @@ msgstr "নোড-সমূহ করà§à¦¤à¦¨/কাট করà§à¦¨" #: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Make Function" +msgstr "ফাংশনের (Function) নতà§à¦¨ নামকরণ করà§à¦¨" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Refresh Graph" +msgstr "রিফà§à¦°à§‡à¦¸ করà§à¦¨" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Edit Member" msgstr "সদসà§à¦¯à¦—ণ (Members):" @@ -12086,6 +12193,10 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "লিসà§à¦Ÿ থেকে ডিà¦à¦¾à¦‡à¦¸ সিলেকà§à¦Ÿ করà§à¦¨" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "" @@ -12188,6 +12299,10 @@ msgid "Required icon is not specified in the preset." msgstr "" #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp #, fuzzy msgid "Run in Browser" msgstr "বà§à¦°à¦¾à¦‰à¦¸" @@ -12800,11 +12915,6 @@ msgstr "" "আকার ধারণ করতে পারে। অনà§à¦¯à¦¥à¦¾à§Ÿ, à¦à¦Ÿà¦¿à¦•à§‡ à¦à¦•à¦Ÿà¦¿ RenderTarget করà§à¦¨ à¦à¦¬à¦‚ à¦à¦° অà¦à§à¦¯à¦¨à§à¦¤à¦°à§€à¦£ " "দৃশà§à¦¯à¦¾à¦¬à¦²à¦¿à¦•à§‡ (texture) দৃশà§à¦¯à¦®à¦¾à¦¨ করতে কোনো নোডে হসà§à¦¤à¦¾à¦¨à§à¦¤à¦° করà§à¦¨à¥¤" -#: scene/resources/visual_shader.cpp -#, fuzzy -msgid "Input" -msgstr "ইনপà§à¦Ÿ যোগ করà§à¦¨" - #: scene/resources/visual_shader_nodes.cpp #, fuzzy msgid "Invalid source for preview." @@ -12836,6 +12946,31 @@ msgstr "" msgid "Constants cannot be modified." msgstr "" +#, fuzzy +#~ msgid "Snap to Grid" +#~ msgstr "সà§à¦¨à§à¦¯à¦¾à¦ª মোড:" + +#, fuzzy +#~ msgid "Add input +" +#~ msgstr "ইনপà§à¦Ÿ যোগ করà§à¦¨" + +#~ msgid "Language" +#~ msgstr "à¦à¦¾à¦·à¦¾" + +#, fuzzy +#~ msgid "Inherits" +#~ msgstr "গà§à¦°à¦¹à¦£ করে:" + +#~ msgid "Base Type:" +#~ msgstr "তলের ধরণ (Base Type):" + +#~ msgid "Available Nodes:" +#~ msgstr "উপসà§à¦¥à¦¿à¦¤ নোডসমূহ:" + +#, fuzzy +#~ msgid "Input" +#~ msgstr "ইনপà§à¦Ÿ যোগ করà§à¦¨" + #~ msgid "Properties:" #~ msgstr "পà§à¦°à§‹à¦ªà¦¾à¦°à§à¦Ÿà¦¿-সমূহ:" @@ -13058,9 +13193,6 @@ msgstr "" #~ msgid "Go to parent folder" #~ msgstr "ফোলà§à¦¡à¦¾à¦° তৈরী করা সমà§à¦à¦¬ হয়নি।" -#~ msgid "Select device from the list" -#~ msgstr "লিসà§à¦Ÿ থেকে ডিà¦à¦¾à¦‡à¦¸ সিলেকà§à¦Ÿ করà§à¦¨" - #, fuzzy #~ msgid "Open Scene(s)" #~ msgstr "দৃশà§à¦¯ খà§à¦²à§à¦¨" @@ -13314,9 +13446,6 @@ msgstr "" #~ msgid "Warning" #~ msgstr "সতরà§à¦•à¦¤à¦¾" -#~ msgid "Function:" -#~ msgstr "ফাংশন:" - #~ msgid "Variable" #~ msgstr "চলক/à¦à§‡à¦°à¦¿à§Ÿà§‡à¦¬à¦²" @@ -13381,9 +13510,6 @@ msgstr "" #~ msgid "Connect Graph Nodes" #~ msgstr "গà§à¦°à¦¾à¦«à§‡à¦° নোডসমূহ সংযà§à¦•à§à¦¤ করà§à¦¨" -#~ msgid "Disconnect Graph Nodes" -#~ msgstr "গà§à¦°à¦¾à¦«à§‡à¦° নোডসমূহ বিচà§à¦›à¦¿à¦¨à§à¦¨ করà§à¦¨" - #~ msgid "Remove Shader Graph Node" #~ msgstr "Shader Graph Node অপসারণ করà§à¦¨" @@ -14509,9 +14635,6 @@ msgstr "" #~ msgid "Group" #~ msgstr "গà§à¦°à§à¦ª" -#~ msgid "Samples" -#~ msgstr "নমà§à¦¨à¦¾à¦¸à¦®à§‚হ" - #~ msgid "Sample Conversion Mode: (.wav files):" #~ msgstr "নমà§à¦¨à¦¾ রূপানà§à¦¤à¦° মোড: (.wav ফাইল):" diff --git a/editor/translations/ca.po b/editor/translations/ca.po index 36548b1f29..3c105cd75c 100644 --- a/editor/translations/ca.po +++ b/editor/translations/ca.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-09-11 03:10+0000\n" +"PO-Revision-Date: 2019-10-04 03:15+0000\n" "Last-Translator: roger <616steam@gmail.com>\n" "Language-Team: Catalan <https://hosted.weblate.org/projects/godot-engine/" "godot/ca/>\n" @@ -63,12 +63,13 @@ msgid "On call to '%s':" msgstr "En la crida a '%s':" #: core/ustring.cpp +#, fuzzy msgid "B" -msgstr "" +msgstr "B" #: core/ustring.cpp msgid "KiB" -msgstr "" +msgstr "KiB" #: core/ustring.cpp #, fuzzy @@ -77,19 +78,19 @@ msgstr "Mesclar" #: core/ustring.cpp msgid "GiB" -msgstr "" +msgstr "GiB" #: core/ustring.cpp msgid "TiB" -msgstr "" +msgstr "TiB" #: core/ustring.cpp msgid "PiB" -msgstr "" +msgstr "PiB" #: core/ustring.cpp msgid "EiB" -msgstr "" +msgstr "EiB" #: editor/animation_bezier_editor.cpp msgid "Free" @@ -360,6 +361,7 @@ msgstr "Voleu crear %d NOVES pistes i inserir-hi claus?" #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "Crea" @@ -495,16 +497,6 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "Advertiment: Edició d'animació importada" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "Selecciona-ho Tot" - -#: editor/animation_track_editor.cpp -#, fuzzy -msgid "Select None" -msgstr "No seleccionar-ne cap" - #: editor/animation_track_editor.cpp #, fuzzy msgid "Select an AnimationPlayer node to create and edit animations." @@ -641,7 +633,8 @@ msgid "Scale Ratio:" msgstr "Relació d'Escala:" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" +#, fuzzy +msgid "Select Tracks to Copy" msgstr "Tria les Pistes per copiar:" #: editor/animation_track_editor.cpp editor/editor_log.cpp @@ -653,6 +646,11 @@ msgstr "Tria les Pistes per copiar:" msgid "Copy" msgstr "Copia" +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Select All/None" +msgstr "No seleccionar-ne cap" + #: editor/animation_track_editor_plugins.cpp msgid "Add Audio Track Clip" msgstr "Afegir Clip de Pista d'Àudio" @@ -980,7 +978,7 @@ msgid "Resource" msgstr "Recurs" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "CamÃ" @@ -1453,7 +1451,8 @@ msgstr "Afegeix AutoCà rrega" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "CamÃ:" @@ -1507,7 +1506,7 @@ msgstr "Crea un Directori" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "Nom:" @@ -1906,6 +1905,7 @@ msgid "Class:" msgstr "Classe:" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "Hereta:" @@ -2072,7 +2072,7 @@ msgstr "Inicia" #: editor/editor_network_profiler.cpp msgid "%s/s" -msgstr "" +msgstr "%s/s" #: editor/editor_network_profiler.cpp #, fuzzy @@ -2081,27 +2081,31 @@ msgstr "Baixa" #: editor/editor_network_profiler.cpp msgid "Up" -msgstr "" +msgstr "Amunt" #: editor/editor_network_profiler.cpp editor/editor_node.cpp msgid "Node" msgstr "Node" #: editor/editor_network_profiler.cpp +#, fuzzy msgid "Incoming RPC" -msgstr "" +msgstr "RPC Entrant" #: editor/editor_network_profiler.cpp +#, fuzzy msgid "Incoming RSET" -msgstr "" +msgstr "RSET Entrant" #: editor/editor_network_profiler.cpp +#, fuzzy msgid "Outgoing RPC" -msgstr "" +msgstr "RPC Sortint" #: editor/editor_network_profiler.cpp +#, fuzzy msgid "Outgoing RSET" -msgstr "" +msgstr "RSET Sortint" #: editor/editor_node.cpp editor/project_manager.cpp msgid "New Window" @@ -2701,12 +2705,14 @@ msgid "Version Control" msgstr "Versió:" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +#, fuzzy msgid "Set Up Version Control" -msgstr "" +msgstr "Configurar Control de Versions" #: editor/editor_node.cpp +#, fuzzy msgid "Shut Down Version Control" -msgstr "" +msgstr "Desactivar el control de versions" #: editor/editor_node.cpp #, fuzzy @@ -2989,7 +2995,7 @@ msgstr "Inspector" msgid "Expand Bottom Panel" msgstr "Expandeix el Quadre inferior" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "Sortida" @@ -3236,6 +3242,10 @@ msgstr "Selecciona una Vista" msgid "New Script" msgstr "Script Nou" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +msgid "Extend Script" +msgstr "Estendre el script" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "Nou %s" @@ -3262,13 +3272,6 @@ msgstr "Enganxa" msgid "Convert To %s" msgstr "Converteix a %s" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Open Editor" -msgstr "Obre l'Editor" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "El Node seleccionat no és una Vista!" @@ -4065,7 +4068,7 @@ msgstr "Nom del Connector:" msgid "Subfolder:" msgstr "Subcarpeta:" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "Llengua:" @@ -4207,6 +4210,12 @@ msgstr "Punt" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Open Editor" +msgstr "Obre l'Editor" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp msgid "Open Animation Node" msgstr "Obre un Node d'Animació" @@ -4558,7 +4567,6 @@ msgstr "Nom de l'Animació:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "Error !" @@ -4733,6 +4741,8 @@ msgid "Current:" msgstr "Actual:" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "Afegeix una Entrada" @@ -4942,6 +4952,10 @@ msgid "All" msgstr "Tot" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy msgid "Import..." msgstr "ReImporta..." @@ -5251,21 +5265,28 @@ msgid "Ruler Mode" msgstr "Mode d'Execució:" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Toggle snapping." +#, fuzzy +msgid "Toggle smart snapping." msgstr "Commutar Ajustament." #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +#, fuzzy +msgid "Use Smart Snap" msgstr "Utilitzar Ajustament" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snapping Options" -msgstr "Opcions d'Ajustament" +#, fuzzy +msgid "Toggle grid snapping." +msgstr "Commutar Ajustament." #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to Grid" -msgstr "Ajustar a la QuadrÃcula" +#, fuzzy +msgid "Use Grid Snap" +msgstr "Ajustar a la quadrÃcula" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snapping Options" +msgstr "Opcions d'Ajustament" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy @@ -5361,8 +5382,8 @@ msgid "View" msgstr "Vista" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +#, fuzzy +msgid "Always Show Grid" msgstr "Mostra la graella" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5637,6 +5658,11 @@ msgstr "Tangent Lineal" msgid "Hold Shift to edit tangents individually" msgstr "Prem Maj. per editar les tangents individualment" +#: editor/plugins/curve_editor_plugin.cpp +#, fuzzy +msgid "Right click to add point" +msgstr "Clic Dret: Elimina el Punt" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "Precalcula la Sonda d'IG" @@ -6284,6 +6310,10 @@ msgid "Grid" msgstr "QuadrÃcula" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "Mostra la graella" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Configure Grid:" msgstr "Configurar QuadrÃcula:" @@ -6340,6 +6370,7 @@ msgstr "Instà ncia:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "Tipus:" @@ -6441,6 +6472,11 @@ msgid "Find Next" msgstr "Cerca el Següent" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "Cerca l'Anterior" + +#: editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Filter scripts" msgstr "Filtra les propietats" @@ -6717,6 +6753,11 @@ msgstr "Crea punts." msgid "Cut" msgstr "Talla" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "Selecciona-ho Tot" + #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "Esborra la LÃnia" @@ -6775,10 +6816,6 @@ msgid "Auto Indent" msgstr "Sagnat Automà tic" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "Cerca l'Anterior" - -#: editor/plugins/script_text_editor.cpp msgid "Find in Files..." msgstr "Cercar en Fitxers..." @@ -7113,6 +7150,11 @@ msgstr "Modificador de la Velocitat de la Vista Lliure" #: editor/plugins/spatial_editor_plugin.cpp #, fuzzy +msgid "Freelook Slow Modifier" +msgstr "Modificador de la Velocitat de la Vista Lliure" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -7153,6 +7195,10 @@ msgid "Use Local Space" msgstr "Mode Espai Local (%s)" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "Utilitzar Ajustament" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "Vista Inferior" @@ -7392,6 +7438,10 @@ msgid "Simplification: " msgstr "Simplificació: " #: editor/plugins/sprite_editor_plugin.cpp +msgid "Shrink (Pixels): " +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "" @@ -8225,12 +8275,7 @@ msgstr "(Només GLES3)" #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy -msgid "Add input +" -msgstr "Afegeix una Entrada" - -#: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy -msgid "Add output +" +msgid "Add Output" msgstr "Afegeix una Entrada" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -8248,6 +8293,11 @@ msgstr "Booleà " #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy +msgid "Sampler" +msgstr "Mostra d'Àudio" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy msgid "Add input port" msgstr "Afegeix una Entrada" @@ -9194,15 +9244,19 @@ msgid "Resources to export:" msgstr "Recursos per exportar:" #: editor/project_export.cpp +#, fuzzy msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" "Filtres per a l'exportació fitxers no-recurs (separats per comes, ex: *." "json, *. txt)" #: editor/project_export.cpp +#, fuzzy msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" "Filtres per excloure fitxers del projecte (separats per comes, ex:*.json, *." "txt)" @@ -10272,12 +10326,13 @@ msgstr "" "node tornin al seu valor per defecte." #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "Fills Editables" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" -msgstr "Carrega com a Contenidor Temporal" +#, fuzzy +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." +msgstr "" +"Deshabilitar \"editable_instance\" provocarà que totes les propietats del " +"node tornin al seu valor per defecte." #: editor/scene_tree_dock.cpp #, fuzzy @@ -10354,6 +10409,14 @@ msgid "Clear Inheritance" msgstr "Elimina l'Herència" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "Fills Editables" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "Carrega com a Contenidor Temporal" + +#: editor/scene_tree_dock.cpp msgid "Open Documentation" msgstr "Obrir documentació" @@ -10371,10 +10434,6 @@ msgid "Change Type" msgstr "Modifica el Tipus" #: editor/scene_tree_dock.cpp -msgid "Extend Script" -msgstr "Estendre el script" - -#: editor/scene_tree_dock.cpp #, fuzzy msgid "Reparent to New Node" msgstr "Torna a Parentar el Node" @@ -10624,23 +10683,18 @@ msgid "Will load an existing script file." msgstr "Es carregarà un fitxer de script existent." #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "Llengua" - -#: editor/script_create_dialog.cpp -msgid "Inherits" -msgstr "Hereta" - -#: editor/script_create_dialog.cpp -msgid "Class Name" +#, fuzzy +msgid "Class Name:" msgstr "Nom de Classe" #: editor/script_create_dialog.cpp -msgid "Template" +#, fuzzy +msgid "Template:" msgstr "Plantilla" #: editor/script_create_dialog.cpp -msgid "Built-in Script" +#, fuzzy +msgid "Built-in Script:" msgstr "Script Integrat" #: editor/script_create_dialog.cpp @@ -11314,6 +11368,11 @@ msgid "Add Function" msgstr "Afegeix una Funció" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Delete input port" +msgstr "Elimina el punt" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "Afegeix una Variable" @@ -11322,6 +11381,26 @@ msgid "Add Signal" msgstr "Afegeix un Senyal" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Input Port" +msgstr "Afegeix una Entrada" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Output Port" +msgstr "Afegir port de sortida" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Input Port" +msgstr "Elimina el punt" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Output Port" +msgstr "Elimina el punt" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "Canviar Expressió" @@ -11366,10 +11445,20 @@ msgid "Add Preload Node" msgstr "Afegeix un Node de Precà rrega" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "Afegeix Nodes des d'Arbre" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "Afegeix una Propietat d'Accés (Getter)" @@ -11395,6 +11484,11 @@ msgstr "Connecta els Nodes" #: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Disconnect Nodes" +msgstr "Desconnecta el Nodes de Graf" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Connect Node Data" msgstr "Connecta els Nodes" @@ -11428,6 +11522,28 @@ msgid "Paste VisualScript Nodes" msgstr "Enganxa els Nodes de VisualScript" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Can't create function with a function node." +msgstr "No es pot copiar el node de funció." + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Create Function" +msgstr "Reanomena Funció" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "Elimina la Funció" @@ -11453,16 +11569,13 @@ msgid "Make Tool:" msgstr "Fer Local" #: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "Tipus Base:" - -#: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "Membres:" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" -msgstr "Nodes disponibles:" +#, fuzzy +msgid "function_name" +msgstr "Funció:" #: modules/visual_script/visual_script_editor.cpp #, fuzzy @@ -11486,6 +11599,16 @@ msgid "Cut Nodes" msgstr "Talla els Nodes" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Make Function" +msgstr "Reanomena Funció" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Refresh Graph" +msgstr "Refresca" + +#: modules/visual_script/visual_script_editor.cpp msgid "Edit Member" msgstr "Editar Membre" @@ -11589,6 +11712,10 @@ msgid "The package must have at least one '.' separator." msgstr "El paquet ha de tenir com a mÃnim un separador '. '." #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "Selecciona un dispositiu de la llista" + +#: platform/android/export/export.cpp #, fuzzy msgid "ADB executable not configured in the Editor Settings." msgstr "L'executable ADB no està configurat a la configuració de l'editor." @@ -11716,6 +11843,10 @@ msgid "Required icon is not specified in the preset." msgstr "" #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "Executa-ho en el Navegador" @@ -12380,10 +12511,6 @@ msgstr "" "forma per tal d'obtenir-ne la mida. Altrament, establiu-la com a Destinació " "de Renderització i assigneu-ne la textura interna a algun node." -#: scene/resources/visual_shader.cpp -msgid "Input" -msgstr "Entrada" - #: scene/resources/visual_shader_nodes.cpp #, fuzzy msgid "Invalid source for preview." @@ -12414,6 +12541,28 @@ msgstr "" msgid "Constants cannot be modified." msgstr "Les constants no es poden modificar." +#~ msgid "Snap to Grid" +#~ msgstr "Ajustar a la QuadrÃcula" + +#, fuzzy +#~ msgid "Add input +" +#~ msgstr "Afegeix una Entrada" + +#~ msgid "Language" +#~ msgstr "Llengua" + +#~ msgid "Inherits" +#~ msgstr "Hereta" + +#~ msgid "Base Type:" +#~ msgstr "Tipus Base:" + +#~ msgid "Available Nodes:" +#~ msgstr "Nodes disponibles:" + +#~ msgid "Input" +#~ msgstr "Entrada" + #~ msgid "Properties:" #~ msgstr "Propietats:" @@ -12659,9 +12808,6 @@ msgstr "Les constants no es poden modificar." #~ msgid "Go to parent folder" #~ msgstr "Vés al directori principal" -#~ msgid "Select device from the list" -#~ msgstr "Selecciona un dispositiu de la llista" - #~ msgid "Open Scene(s)" #~ msgstr "Obre Escenes" @@ -12907,9 +13053,6 @@ msgstr "Les constants no es poden modificar." #~ msgid "Warning" #~ msgstr "AvÃs" -#~ msgid "Function:" -#~ msgstr "Funció:" - #~ msgid "Variable" #~ msgstr "Variable" @@ -12973,9 +13116,6 @@ msgstr "Les constants no es poden modificar." #~ msgid "Connect Graph Nodes" #~ msgstr "Connecta els Nodes de Graf" -#~ msgid "Disconnect Graph Nodes" -#~ msgstr "Desconnecta el Nodes de Graf" - #~ msgid "Remove Shader Graph Node" #~ msgstr "Elimina el Node de Graf d'Ombreig" @@ -13498,9 +13638,6 @@ msgstr "Les constants no es poden modificar." #~ msgid "Source Sample(s):" #~ msgstr "Mostra/es d'Origen:" -#~ msgid "Audio Sample" -#~ msgstr "Mostra d'Àudio" - #~ msgid "New Clip" #~ msgstr "Nou Clip" diff --git a/editor/translations/cs.po b/editor/translations/cs.po index 3b805043f5..dc6e69bc0c 100644 --- a/editor/translations/cs.po +++ b/editor/translations/cs.po @@ -363,6 +363,7 @@ msgstr "VytvoÅ™it %d NOVÃCH stop a vložit klÃÄe?" #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "VytvoÅ™it" @@ -503,15 +504,6 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "UpozornÄ›nÃ: Upravuje se importovaná animace" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "Vybrat vÅ¡e" - -#: editor/animation_track_editor.cpp -msgid "Select None" -msgstr "Nevybrat nic" - #: editor/animation_track_editor.cpp #, fuzzy msgid "Select an AnimationPlayer node to create and edit animations." @@ -647,7 +639,8 @@ msgid "Scale Ratio:" msgstr "PomÄ›r zvÄ›tÅ¡enÃ:" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" +#, fuzzy +msgid "Select Tracks to Copy" msgstr "Zvolte stopy ke zkopÃrovánÃ:" #: editor/animation_track_editor.cpp editor/editor_log.cpp @@ -659,6 +652,11 @@ msgstr "Zvolte stopy ke zkopÃrovánÃ:" msgid "Copy" msgstr "KopÃrovat" +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Select All/None" +msgstr "Nevybrat nic" + #: editor/animation_track_editor_plugins.cpp msgid "Add Audio Track Clip" msgstr "PÅ™idat klip audio stopy" @@ -989,7 +987,7 @@ msgid "Resource" msgstr "Zdroj" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "Cesta" @@ -1464,7 +1462,8 @@ msgstr "PÅ™idat AutoLoad" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "Cesta:" @@ -1519,7 +1518,7 @@ msgstr "VytvoÅ™it složku" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "Jméno:" @@ -1940,6 +1939,7 @@ msgid "Class:" msgstr "TÅ™Ãda:" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "DÄ›dà z:" @@ -3015,7 +3015,7 @@ msgstr "Inspektor" msgid "Expand Bottom Panel" msgstr "" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "Výstup" @@ -3259,6 +3259,11 @@ msgstr "Vyberte Viewport" msgid "New Script" msgstr "Nový skript" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +#, fuzzy +msgid "Extend Script" +msgstr "OtevÅ™Ãt skript" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "Nový %s" @@ -3285,13 +3290,6 @@ msgstr "Vložit" msgid "Convert To %s" msgstr "Konvertovat na %s" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Open Editor" -msgstr "OtevÅ™Ãt editor" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "Vybraný uzel nenà Viewport!" @@ -4097,7 +4095,7 @@ msgstr "Název pluginu:" msgid "Subfolder:" msgstr "Podsložka:" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "Jazyk:" @@ -4239,6 +4237,12 @@ msgstr "Bod" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Open Editor" +msgstr "OtevÅ™Ãt editor" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp msgid "Open Animation Node" msgstr "OtevÅ™Ãt uzel animace" @@ -4588,7 +4592,6 @@ msgstr "Jméno animace:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "Chyba!" @@ -4758,6 +4761,8 @@ msgid "Current:" msgstr "AktuálnÃ:" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "PÅ™idat vstup" @@ -4968,6 +4973,10 @@ msgid "All" msgstr "VÅ¡echny" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy msgid "Import..." msgstr "Importovat" @@ -5267,22 +5276,28 @@ msgid "Ruler Mode" msgstr "Režim Å¡kálovánÃ" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Toggle snapping." +#, fuzzy +msgid "Toggle smart snapping." msgstr "PÅ™epnout pÅ™ichycovánÃ." #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +#, fuzzy +msgid "Use Smart Snap" msgstr "PoužÃt pÅ™ichycovánÃ" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snapping Options" -msgstr "Možnosti pÅ™ichytávánÃ" +#, fuzzy +msgid "Toggle grid snapping." +msgstr "PÅ™epnout pÅ™ichycovánÃ." #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Snap to Grid" -msgstr "PÅ™ichytit k mřÞce" +msgid "Use Grid Snap" +msgstr "PoužÃt pÅ™ichycovánÃ" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snapping Options" +msgstr "Možnosti pÅ™ichytávánÃ" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Rotation Snap" @@ -5379,8 +5394,8 @@ msgid "View" msgstr "ZobrazenÃ" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +#, fuzzy +msgid "Always Show Grid" msgstr "Zobrazit mřÞku" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5652,6 +5667,11 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/curve_editor_plugin.cpp +#, fuzzy +msgid "Right click to add point" +msgstr "Pravý klik: Smazat bod" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "" @@ -6295,6 +6315,10 @@ msgid "Grid" msgstr "MřÞka" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "Zobrazit mřÞku" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Configure Grid:" msgstr "Nastavit mřÞku:" @@ -6352,6 +6376,7 @@ msgstr "Instance:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "Typ:" @@ -6453,6 +6478,11 @@ msgid "Find Next" msgstr "NajÃt dalÅ¡Ã" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "NajÃt pÅ™edchozÃ" + +#: editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Filter scripts" msgstr "Filtrovat vlastnosti" @@ -6732,6 +6762,11 @@ msgstr "VytvoÅ™it body." msgid "Cut" msgstr "Vyjmout" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "Vybrat vÅ¡e" + #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "Odstranit řádek" @@ -6790,10 +6825,6 @@ msgid "Auto Indent" msgstr "Automatické odsazenÃ" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "NajÃt pÅ™edchozÃ" - -#: editor/plugins/script_text_editor.cpp msgid "Find in Files..." msgstr "NajÃt v souborech..." @@ -7125,6 +7156,11 @@ msgid "Freelook Speed Modifier" msgstr "Rychlost volného pohledu" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Freelook Slow Modifier" +msgstr "Rychlost volného pohledu" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -7163,6 +7199,10 @@ msgid "Use Local Space" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "PoužÃt pÅ™ichycovánÃ" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "Pohled zdola" @@ -7401,6 +7441,10 @@ msgid "Simplification: " msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Shrink (Pixels): " +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "" @@ -8233,12 +8277,7 @@ msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy -msgid "Add input +" -msgstr "PÅ™idat vstup" - -#: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy -msgid "Add output +" +msgid "Add Output" msgstr "PÅ™idat vstup" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -8256,6 +8295,10 @@ msgid "Boolean" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sampler" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy msgid "Add input port" msgstr "PÅ™idat vstup" @@ -9158,12 +9201,14 @@ msgstr "Zdroje k exportu:" #: editor/project_export.cpp msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp @@ -10179,11 +10224,9 @@ msgid "" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." msgstr "" #: editor/scene_tree_dock.cpp @@ -10260,6 +10303,14 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "" + +#: editor/scene_tree_dock.cpp #, fuzzy msgid "Open Documentation" msgstr "OtevÅ™Ãt dokumentaci" @@ -10279,11 +10330,6 @@ msgstr "ZmÄ›nit typ" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Extend Script" -msgstr "OtevÅ™Ãt skript" - -#: editor/scene_tree_dock.cpp -#, fuzzy msgid "Reparent to New Node" msgstr "PÅ™idat/VytvoÅ™it nový uzel" @@ -10534,23 +10580,18 @@ msgid "Will load an existing script file." msgstr "NaÄÃst existujÃcà soubor skriptu" #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "Jazyk" - -#: editor/script_create_dialog.cpp -msgid "Inherits" -msgstr "DÄ›dÃ" - -#: editor/script_create_dialog.cpp -msgid "Class Name" +#, fuzzy +msgid "Class Name:" msgstr "Jméno tÅ™Ãdy" #: editor/script_create_dialog.cpp -msgid "Template" +#, fuzzy +msgid "Template:" msgstr "Å ablona" #: editor/script_create_dialog.cpp -msgid "Built-in Script" +#, fuzzy +msgid "Built-in Script:" msgstr "VestavÄ›ný skript" #: editor/script_create_dialog.cpp @@ -11224,6 +11265,11 @@ msgid "Add Function" msgstr "PÅ™idat funkci" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Delete input port" +msgstr "Odstranit bod" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "PÅ™idat promÄ›nnou" @@ -11232,6 +11278,26 @@ msgid "Add Signal" msgstr "PÅ™idat signál" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Input Port" +msgstr "PÅ™idat vstup" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Output Port" +msgstr "PÅ™idat vstup" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Input Port" +msgstr "Odstranit bod" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Output Port" +msgstr "Odstranit bod" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "ZmÄ›nit výraz" @@ -11278,10 +11344,20 @@ msgid "Add Preload Node" msgstr "PÅ™idat pÅ™edem naÄtený uzel" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "PÅ™idat uzel(y) ze stromu" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "PÅ™idat vlastnost getter" @@ -11307,6 +11383,11 @@ msgstr "PÅ™ipojit uzly" #: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Disconnect Nodes" +msgstr "Odpojit uzly grafu" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Connect Node Data" msgstr "PÅ™ipojit uzly" @@ -11341,6 +11422,27 @@ msgid "Paste VisualScript Nodes" msgstr "Vložit VisualScript uzly" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function with a function node." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Create Function" +msgstr "PÅ™ejmenovat funkci" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "Odstranit funkci" @@ -11366,16 +11468,13 @@ msgid "Make Tool:" msgstr "MÃstnÃ" #: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "Základnà typ:" - -#: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "ÄŒlenové:" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" -msgstr "Dostupné uzly:" +#, fuzzy +msgid "function_name" +msgstr "Funkce:" #: modules/visual_script/visual_script_editor.cpp #, fuzzy @@ -11400,6 +11499,16 @@ msgstr "Vyjmout uzly" #: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Make Function" +msgstr "PÅ™ejmenovat funkci" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Refresh Graph" +msgstr "Obnovit" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Edit Member" msgstr "ÄŒlenové" @@ -11497,6 +11606,10 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "Vyberte zaÅ™Ãzenà ze seznamu" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "" @@ -11599,6 +11712,10 @@ msgid "Required icon is not specified in the preset." msgstr "" #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "Spustit v prohlÞeÄi" @@ -12220,10 +12337,6 @@ msgstr "" "mohl zÃskat velikost. Jinak ho nastavte jako render target a pÅ™iÅ™aÄte jeho " "vnitÅ™nà texturu nÄ›jakému uzlu k zobrazenÃ." -#: scene/resources/visual_shader.cpp -msgid "Input" -msgstr "Vstup" - #: scene/resources/visual_shader_nodes.cpp #, fuzzy msgid "Invalid source for preview." @@ -12254,6 +12367,29 @@ msgstr "" msgid "Constants cannot be modified." msgstr "Konstanty nenà možné upravovat." +#, fuzzy +#~ msgid "Snap to Grid" +#~ msgstr "PÅ™ichytit k mřÞce" + +#, fuzzy +#~ msgid "Add input +" +#~ msgstr "PÅ™idat vstup" + +#~ msgid "Language" +#~ msgstr "Jazyk" + +#~ msgid "Inherits" +#~ msgstr "DÄ›dÃ" + +#~ msgid "Base Type:" +#~ msgstr "Základnà typ:" + +#~ msgid "Available Nodes:" +#~ msgstr "Dostupné uzly:" + +#~ msgid "Input" +#~ msgstr "Vstup" + #~ msgid "Properties:" #~ msgstr "Vlastnosti:" @@ -12438,9 +12574,6 @@ msgstr "Konstanty nenà možné upravovat." #~ msgid "Go to parent folder" #~ msgstr "JÃt na nadÅ™azenou složku" -#~ msgid "Select device from the list" -#~ msgstr "Vyberte zaÅ™Ãzenà ze seznamu" - #~ msgid "Open Scene(s)" #~ msgstr "OtevÅ™Ãt scénu(y)" @@ -12640,9 +12773,6 @@ msgstr "Konstanty nenà možné upravovat." #~ msgid "Warning" #~ msgstr "VarovánÃ" -#~ msgid "Function:" -#~ msgstr "Funkce:" - #~ msgid "Variable" #~ msgstr "PromÄ›nná" @@ -12673,9 +12803,6 @@ msgstr "Konstanty nenà možné upravovat." #~ msgid "Connect Graph Nodes" #~ msgstr "Propojit uzly grafu" -#~ msgid "Disconnect Graph Nodes" -#~ msgstr "Odpojit uzly grafu" - #~ msgid "Move Anim Track Up" #~ msgstr "Posun stopy animace nahoru" diff --git a/editor/translations/da.po b/editor/translations/da.po index 3dc3b082aa..b91eec6954 100644 --- a/editor/translations/da.po +++ b/editor/translations/da.po @@ -13,12 +13,13 @@ # Peter G. Laursen <GhostReven@gmail.com>, 2018. # Rémi Verschelde <akien@godotengine.org>, 2019. # Mads K. Bredager <mbredager@gmail.com>, 2019. +# Kristoffer Andersen <kjaa@google.com>, 2019. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-09-07 13:51+0000\n" -"Last-Translator: Mads K. Bredager <mbredager@gmail.com>\n" +"PO-Revision-Date: 2019-10-04 09:55+0000\n" +"Last-Translator: Kristoffer Andersen <kjaa@google.com>\n" "Language-Team: Danish <https://hosted.weblate.org/projects/godot-engine/" "godot/da/>\n" "Language: da\n" @@ -49,7 +50,7 @@ msgstr "self kan ikke bruges fordi instansen er null (mislykket)" #: core/math/expression.cpp msgid "Invalid operands to operator %s, %s and %s." -msgstr "Ugyldigt operandere til operator %s, %s og %s." +msgstr "Ugyldige operander til operator %s, %s og %s." #: core/math/expression.cpp msgid "Invalid index of type %s for base type %s" @@ -69,35 +70,35 @@ msgstr "Ved kald til '%s':" #: core/ustring.cpp msgid "B" -msgstr "" +msgstr "B" #: core/ustring.cpp msgid "KiB" -msgstr "" +msgstr "KiB" #: core/ustring.cpp msgid "MiB" -msgstr "" +msgstr "MiB" #: core/ustring.cpp msgid "GiB" -msgstr "" +msgstr "GiB" #: core/ustring.cpp msgid "TiB" -msgstr "" +msgstr "TiB" #: core/ustring.cpp msgid "PiB" -msgstr "" +msgstr "PiB" #: core/ustring.cpp msgid "EiB" -msgstr "" +msgstr "EiB" #: editor/animation_bezier_editor.cpp msgid "Free" -msgstr "Gratis" +msgstr "Fri" #: editor/animation_bezier_editor.cpp msgid "Balanced" @@ -372,6 +373,7 @@ msgstr "Opret %d NYE spor og indsæt nøgler?" #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "Opret" @@ -520,16 +522,6 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "Advarsel: Redigerer importeret animation" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "Vælg alle" - -#: editor/animation_track_editor.cpp -#, fuzzy -msgid "Select None" -msgstr "Vælg Node" - #: editor/animation_track_editor.cpp #, fuzzy msgid "Select an AnimationPlayer node to create and edit animations." @@ -667,7 +659,8 @@ msgid "Scale Ratio:" msgstr "Skalaforhold:" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" +#, fuzzy +msgid "Select Tracks to Copy" msgstr "Vælg spor til kopiering:" #: editor/animation_track_editor.cpp editor/editor_log.cpp @@ -679,6 +672,11 @@ msgstr "Vælg spor til kopiering:" msgid "Copy" msgstr "Kopier" +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Select All/None" +msgstr "Vælg Node" + #: editor/animation_track_editor_plugins.cpp #, fuzzy msgid "Add Audio Track Clip" @@ -1016,7 +1014,7 @@ msgid "Resource" msgstr "Ressource" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "Sti" @@ -1493,7 +1491,8 @@ msgstr "Tilføj AutoLoad" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "Sti:" @@ -1548,7 +1547,7 @@ msgstr "Opret Mappe" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "Navn:" @@ -1966,6 +1965,7 @@ msgid "Class:" msgstr "Klasse:" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "Arver:" @@ -3049,7 +3049,7 @@ msgstr "Inspektør" msgid "Expand Bottom Panel" msgstr "Udvid nederste panel" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "Output" @@ -3290,6 +3290,11 @@ msgstr "" msgid "New Script" msgstr "" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +#, fuzzy +msgid "Extend Script" +msgstr "Ã…ben script" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "" @@ -3316,13 +3321,6 @@ msgstr "Indsæt" msgid "Convert To %s" msgstr "Konverter Til %s" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Open Editor" -msgstr "Ã…bn redaktør" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "" @@ -4158,7 +4156,7 @@ msgstr "" msgid "Subfolder:" msgstr "" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "" @@ -4309,6 +4307,12 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Open Editor" +msgstr "Ã…bn redaktør" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp #, fuzzy msgid "Open Animation Node" @@ -4679,7 +4683,6 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "" @@ -4857,6 +4860,8 @@ msgid "Current:" msgstr "" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "" @@ -5070,6 +5075,10 @@ msgid "All" msgstr "Alle" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy msgid "Import..." msgstr "Importer" @@ -5370,20 +5379,24 @@ msgstr "Skifter Modus" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Toggle snapping." +msgid "Toggle smart snapping." msgstr "Skift snapping mode" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +msgid "Use Smart Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snapping Options" +#, fuzzy +msgid "Toggle grid snapping." +msgstr "Skift snapping mode" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Use Grid Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to Grid" +msgid "Snapping Options" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5478,8 +5491,7 @@ msgid "View" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +msgid "Always Show Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5749,6 +5761,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/curve_editor_plugin.cpp +msgid "Right click to add point" +msgstr "" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "" @@ -6400,6 +6416,10 @@ msgid "Grid" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Configure Grid:" msgstr "" @@ -6456,6 +6476,7 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "" @@ -6565,6 +6586,11 @@ msgid "Find Next" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Filter scripts" msgstr "Filtrer noder" @@ -6848,6 +6874,11 @@ msgstr "Slet points" msgid "Cut" msgstr "Cut" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "Vælg alle" + #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "Fjern Line" @@ -6909,10 +6940,6 @@ msgid "Auto Indent" msgstr "" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "" - -#: editor/plugins/script_text_editor.cpp #, fuzzy msgid "Find in Files..." msgstr "Filtrer filer..." @@ -7248,6 +7275,10 @@ msgid "Freelook Speed Modifier" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Slow Modifier" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -7281,6 +7312,10 @@ msgid "Use Local Space" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "" @@ -7515,6 +7550,10 @@ msgid "Simplification: " msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Shrink (Pixels): " +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "" @@ -8345,12 +8384,8 @@ msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy -msgid "Add input +" -msgstr "Tilføj punkt" - -#: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add output +" -msgstr "" +msgid "Add Output" +msgstr "Output" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Scalar" @@ -8366,6 +8401,10 @@ msgid "Boolean" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sampler" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy msgid "Add input port" msgstr "Tilføj punkt" @@ -9252,12 +9291,14 @@ msgstr "" #: editor/project_export.cpp msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp @@ -10279,11 +10320,9 @@ msgid "" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." msgstr "" #: editor/scene_tree_dock.cpp @@ -10364,6 +10403,14 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "" + +#: editor/scene_tree_dock.cpp #, fuzzy msgid "Open Documentation" msgstr "Ã…ben Seneste" @@ -10383,11 +10430,6 @@ msgstr "" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Extend Script" -msgstr "Ã…ben script" - -#: editor/scene_tree_dock.cpp -#, fuzzy msgid "Reparent to New Node" msgstr "Opret Ny %s" @@ -10636,24 +10678,19 @@ msgid "Will load an existing script file." msgstr "Indlæs et eksisterende Bus Layout." #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Inherits" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Class Name" -msgstr "" +#, fuzzy +msgid "Class Name:" +msgstr "Klasse:" #: editor/script_create_dialog.cpp -msgid "Template" +#, fuzzy +msgid "Template:" msgstr "Skabelon" #: editor/script_create_dialog.cpp -msgid "Built-in Script" -msgstr "" +#, fuzzy +msgid "Built-in Script:" +msgstr "Ã…ben script" #: editor/script_create_dialog.cpp msgid "Attach Node Script" @@ -11321,6 +11358,11 @@ msgid "Add Function" msgstr "Tilføj Funktion" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Delete input port" +msgstr "Fjern punkt" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "Tilføj variabel" @@ -11330,6 +11372,26 @@ msgstr "Tilføj Signal" #: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Add Input Port" +msgstr "Tilføj punkt" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Output Port" +msgstr "Tilføj punkt" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Input Port" +msgstr "Fjern punkt" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Output Port" +msgstr "Fjern punkt" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Change Expression" msgstr "Skift udtryk" @@ -11370,10 +11432,20 @@ msgid "Add Preload Node" msgstr "Tilføj Preload Node" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "Tilføj Node(r) fra Tree" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "Tilføj Getter Egenskab" @@ -11399,6 +11471,11 @@ msgstr "Forbind Nodes" #: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Disconnect Nodes" +msgstr "Forbind Nodes" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Connect Node Data" msgstr "Forbind Nodes" @@ -11432,6 +11509,27 @@ msgid "Paste VisualScript Nodes" msgstr "Indsæt VisualScript Nodes" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function with a function node." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Create Function" +msgstr "Omdøb Funktion" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "Fjern Funktion" @@ -11456,16 +11554,13 @@ msgid "Make Tool:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "Basis Type:" - -#: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "Medlemmer:" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" -msgstr "Tilgængelige Noder:" +#, fuzzy +msgid "function_name" +msgstr "Funktioner:" #: modules/visual_script/visual_script_editor.cpp #, fuzzy @@ -11491,6 +11586,16 @@ msgstr "" #: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Make Function" +msgstr "Omdøb Funktion" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Refresh Graph" +msgstr "Opdater" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Edit Member" msgstr "Medlemmer" @@ -11589,6 +11694,10 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "Vælg enhed fra listen" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "" @@ -11691,6 +11800,10 @@ msgid "Required icon is not specified in the preset." msgstr "" #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "" @@ -12304,10 +12417,6 @@ msgstr "" "den kan opnÃ¥ en størrelse. Ellers gør den til en RenderTarget og tildel dens " "indre textur til en node sÃ¥ den kan vises." -#: scene/resources/visual_shader.cpp -msgid "Input" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp #, fuzzy msgid "Invalid source for preview." @@ -12339,6 +12448,16 @@ msgstr "" msgid "Constants cannot be modified." msgstr "Konstanter kan ikke ændres." +#, fuzzy +#~ msgid "Add input +" +#~ msgstr "Tilføj punkt" + +#~ msgid "Base Type:" +#~ msgstr "Basis Type:" + +#~ msgid "Available Nodes:" +#~ msgstr "Tilgængelige Noder:" + #~ msgid "Methods:" #~ msgstr "Metoder:" @@ -12453,9 +12572,6 @@ msgstr "Konstanter kan ikke ændres." #~ msgid "Go to parent folder" #~ msgstr "GÃ¥ til overliggende mappe" -#~ msgid "Select device from the list" -#~ msgstr "Vælg enhed fra listen" - #, fuzzy #~ msgid "Open Scene(s)" #~ msgstr "Ã…bn Scene" diff --git a/editor/translations/de.po b/editor/translations/de.po index bab1cae627..8c4a29f571 100644 --- a/editor/translations/de.po +++ b/editor/translations/de.po @@ -50,7 +50,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-09-07 13:51+0000\n" +"PO-Revision-Date: 2019-10-04 03:14+0000\n" "Last-Translator: So Wieso <sowieso@dukun.de>\n" "Language-Team: German <https://hosted.weblate.org/projects/godot-engine/" "godot/de/>\n" @@ -104,32 +104,31 @@ msgstr "Im Aufruf von ‚%s‘:" #: core/ustring.cpp msgid "B" -msgstr "" +msgstr "B" #: core/ustring.cpp msgid "KiB" -msgstr "" +msgstr "KiB" #: core/ustring.cpp -#, fuzzy msgid "MiB" -msgstr "Mischen" +msgstr "MiB" #: core/ustring.cpp msgid "GiB" -msgstr "" +msgstr "GiB" #: core/ustring.cpp msgid "TiB" -msgstr "" +msgstr "TiB" #: core/ustring.cpp msgid "PiB" -msgstr "" +msgstr "PiB" #: core/ustring.cpp msgid "EiB" -msgstr "" +msgstr "EiB" #: editor/animation_bezier_editor.cpp msgid "Free" @@ -395,6 +394,7 @@ msgstr "%d NEUE Spuren erstellen und Schlüsselbilder hinzufügen?" #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "Erstellen" @@ -538,21 +538,11 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "Achtung: Es wird eine importierte Animation bearbeitet" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "Alles auswählen" - -#: editor/animation_track_editor.cpp -msgid "Select None" -msgstr "Nichts auswählen" - #: editor/animation_track_editor.cpp -#, fuzzy msgid "Select an AnimationPlayer node to create and edit animations." msgstr "" -"Es ist kein Pfad zu einem Animationsspieler mit Animationen festgelegt " -"worden." +"Ein AnimationPlayer-Node auswählen um Animationen zu erzeugen oder zu " +"bearbeiten." #: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." @@ -684,7 +674,8 @@ msgid "Scale Ratio:" msgstr "Skalierungsverhältnis:" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" +#, fuzzy +msgid "Select Tracks to Copy" msgstr "Zu kopierende Spuren auswählen:" #: editor/animation_track_editor.cpp editor/editor_log.cpp @@ -696,6 +687,11 @@ msgstr "Zu kopierende Spuren auswählen:" msgid "Copy" msgstr "Kopieren" +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Select All/None" +msgstr "Nichts auswählen" + #: editor/animation_track_editor_plugins.cpp msgid "Add Audio Track Clip" msgstr "Tonspurclip hinzufügen" @@ -1020,7 +1016,7 @@ msgid "Resource" msgstr "Ressource" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "Pfad" @@ -1294,9 +1290,8 @@ msgid "Delete Bus Effect" msgstr "Audiobuseffekt löschen" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Drag & drop to rearrange." -msgstr "Audiobus, Drag & Drop zum Umsortieren." +msgstr "Mittels Drag&Drop umordnen." #: editor/editor_audio_buses.cpp msgid "Solo" @@ -1487,7 +1482,8 @@ msgstr "Autoload hinzufügen" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "Pfad:" @@ -1541,7 +1537,7 @@ msgstr "Ordner erstellen" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "Name:" @@ -1938,6 +1934,7 @@ msgid "Class:" msgstr "Klasse:" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "Erbt von:" @@ -1946,9 +1943,8 @@ msgid "Inherited by:" msgstr "Vererbt an:" #: editor/editor_help.cpp -#, fuzzy msgid "Brief Description" -msgstr "Kurze Beschreibung:" +msgstr "Kurze Beschreibung" #: editor/editor_help.cpp msgid "Properties" @@ -1979,9 +1975,8 @@ msgid "Class Description" msgstr "Klassenbeschreibung" #: editor/editor_help.cpp -#, fuzzy msgid "Online Tutorials" -msgstr "Anleitungen im Netz:" +msgstr "Anleitungen im Netz" #: editor/editor_help.cpp msgid "" @@ -2104,7 +2099,7 @@ msgstr "Start" #: editor/editor_network_profiler.cpp msgid "%s/s" -msgstr "" +msgstr "%s/s" #: editor/editor_network_profiler.cpp msgid "Down" @@ -2120,19 +2115,19 @@ msgstr "Node" #: editor/editor_network_profiler.cpp msgid "Incoming RPC" -msgstr "" +msgstr "Eingehender RPC" #: editor/editor_network_profiler.cpp msgid "Incoming RSET" -msgstr "" +msgstr "Eingehender RSET" #: editor/editor_network_profiler.cpp msgid "Outgoing RPC" -msgstr "" +msgstr "Ausgehender RPC" #: editor/editor_network_profiler.cpp msgid "Outgoing RSET" -msgstr "" +msgstr "Ausgehender RSET" #: editor/editor_node.cpp editor/project_manager.cpp msgid "New Window" @@ -2731,17 +2726,16 @@ msgid "Project Settings..." msgstr "Projekteinstellungen..." #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Version Control" -msgstr "Version:" +msgstr "Versionsverwaltung" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Set Up Version Control" -msgstr "" +msgstr "Versionsverwaltung einrichten" #: editor/editor_node.cpp msgid "Shut Down Version Control" -msgstr "" +msgstr "Versionsverwaltung beenden" #: editor/editor_node.cpp msgid "Export..." @@ -2806,7 +2800,7 @@ msgstr "" #: editor/editor_node.cpp msgid "Visible Collision Shapes" -msgstr "Collision Shapes sichtbar" +msgstr "Collision-Shapes sichtbar" #: editor/editor_node.cpp msgid "" @@ -3016,7 +3010,7 @@ msgstr "Inspektor" msgid "Expand Bottom Panel" msgstr "Unteres Panel vergrößern" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "Ausgabe" @@ -3043,19 +3037,25 @@ msgid "" "the \"Use Custom Build\" option should be enabled in the Android export " "preset." msgstr "" +"Hiermit wird der Projektordner für beliebige Android-Builds eingerichtet in " +"dem das Quell-Template nach „res://android/build“ installiert wird.\n" +"Danach können eigene Modifikationen vorgenommen und ein eigens APK " +"exportiert werden (Module hinzufügen, AndroidManifest.xml ändern, usw.).\n" +"Achtung: Um eigene Builds, statt den vorgefertigten zu generieren, muss die " +"„Use Custom Build“-Option in den Android-Export-Voreinstellungen aktiviert " +"sein." #: editor/editor_node.cpp -#, fuzzy msgid "" "The Android build template is already installed in this project and it won't " "be overwritten.\n" "Remove the \"res://android/build\" directory manually before attempting this " "operation again." msgstr "" -"Android-Build-Vorlage wurde bereits installiert und wird nicht " -"überschrieben.\n" -"Zur Ausführung dieses Befehls muss das „build“-Verzeichnis manuell gelöscht " -"werden." +"Die Android-Build-Vorlage wurde bereits für dieses Projekt installiert und " +"wird nicht überschrieben.\n" +"Zur Ausführung dieses Befehls muss das „res://android/build“-Verzeichnis " +"manuell gelöscht werden." #: editor/editor_node.cpp msgid "Import Templates From ZIP File" @@ -3118,9 +3118,8 @@ msgid "Open the previous Editor" msgstr "Vorigen Editor öffnen" #: editor/editor_path.cpp -#, fuzzy msgid "No sub-resources found." -msgstr "Keine Quelle für Oberfläche angegeben." +msgstr "Keine Unter-Ressourcen gefunden." #: editor/editor_plugin.cpp msgid "Creating Mesh Previews" @@ -3131,9 +3130,8 @@ msgid "Thumbnail..." msgstr "Vorschau..." #: editor/editor_plugin_settings.cpp -#, fuzzy msgid "Main Script:" -msgstr "Offenes Skript:" +msgstr "Haupt-Skript:" #: editor/editor_plugin_settings.cpp msgid "Edit Plugin" @@ -3269,6 +3267,10 @@ msgstr "Viewport auswählen" msgid "New Script" msgstr "Neues Skript" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +msgid "Extend Script" +msgstr "Skript erweitern" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "Neues %s" @@ -3295,13 +3297,6 @@ msgstr "Einfügen" msgid "Convert To %s" msgstr "Umwandeln zu %s" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Open Editor" -msgstr "Editor öffnen" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "Ausgewähltes Node ist kein Viewport!" @@ -3964,9 +3959,8 @@ msgid "Import As:" msgstr "Importiere als:" #: editor/import_dock.cpp -#, fuzzy msgid "Preset" -msgstr "Vorlagen" +msgstr "Vorlage" #: editor/import_dock.cpp msgid "Reimport" @@ -4095,7 +4089,7 @@ msgstr "Pluginname:" msgid "Subfolder:" msgstr "Unterverzeichnis:" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "Sprache:" @@ -4237,6 +4231,12 @@ msgstr "Punkt" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Open Editor" +msgstr "Editor öffnen" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp msgid "Open Animation Node" msgstr "Animations-Node öffnen" @@ -4584,7 +4584,6 @@ msgstr "Animationsname:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "Fehler!" @@ -4757,6 +4756,8 @@ msgid "Current:" msgstr "Laufend:" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "Eingang hinzufügen" @@ -4961,6 +4962,10 @@ msgid "All" msgstr "Alle" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp msgid "Import..." msgstr "Importieren…" @@ -5254,26 +5259,32 @@ msgid "Pan Mode" msgstr "Schwenkmodus" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Ruler Mode" -msgstr "Ausführungsmodus:" +msgstr "Linealmodus" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Toggle snapping." +#, fuzzy +msgid "Toggle smart snapping." msgstr "Einrasten umschalten." #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +#, fuzzy +msgid "Use Smart Snap" msgstr "Einrasten aktivieren" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snapping Options" -msgstr "Einrasteinstellungen" +#, fuzzy +msgid "Toggle grid snapping." +msgstr "Einrasten umschalten." #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to Grid" -msgstr "Am Gitter einrasten" +#, fuzzy +msgid "Use Grid Snap" +msgstr "Gitter-Einrasten" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snapping Options" +msgstr "Einrasteinstellungen" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Rotation Snap" @@ -5363,8 +5374,8 @@ msgid "View" msgstr "Ansicht" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +#, fuzzy +msgid "Always Show Grid" msgstr "Raster anzeigen" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5631,6 +5642,11 @@ msgstr "Lineare Kurventangente umschalten" msgid "Hold Shift to edit tangents individually" msgstr "Umsch halten um Tangenten einzeln zu bearbeiten" +#: editor/plugins/curve_editor_plugin.cpp +#, fuzzy +msgid "Right click to add point" +msgstr "Rechtsklick: Punkt löschen" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "GI Sonde vorrendern" @@ -6271,6 +6287,10 @@ msgid "Grid" msgstr "Gitter" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "Raster anzeigen" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Configure Grid:" msgstr "Gitter einstellen:" @@ -6327,6 +6347,7 @@ msgstr "Instanz:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "Typ:" @@ -6426,6 +6447,11 @@ msgid "Find Next" msgstr "Finde Nächstes" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "Finde Vorheriges" + +#: editor/plugins/script_editor_plugin.cpp msgid "Filter scripts" msgstr "Skripte filtern" @@ -6695,6 +6721,11 @@ msgstr "Haltepunkte" msgid "Cut" msgstr "Ausschneiden" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "Alles auswählen" + #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "Zeile löschen" @@ -6752,10 +6783,6 @@ msgid "Auto Indent" msgstr "Automatische Einrückung" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "Finde Vorheriges" - -#: editor/plugins/script_text_editor.cpp msgid "Find in Files..." msgstr "In Dateien suchen..." @@ -7080,6 +7107,11 @@ msgid "Freelook Speed Modifier" msgstr "Freisicht Geschwindigkeitsregler" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Freelook Slow Modifier" +msgstr "Freisicht Geschwindigkeitsregler" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -7120,6 +7152,10 @@ msgid "Use Local Space" msgstr "Lokalkoordinaten verwenden" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "Einrasten aktivieren" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "Sicht von unten" @@ -7348,6 +7384,11 @@ msgid "Simplification: " msgstr "Vereinfachung: " #: editor/plugins/sprite_editor_plugin.cpp +#, fuzzy +msgid "Shrink (Pixels): " +msgstr "Wachsen (Pixel): " + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "Wachsen (Pixel): " @@ -7396,9 +7437,8 @@ msgid "(empty)" msgstr "(leer)" #: editor/plugins/sprite_frames_editor_plugin.cpp -#, fuzzy msgid "Move Frame" -msgstr "Frame einfügen" +msgstr "Frame verschieben" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Animations:" @@ -7715,13 +7755,13 @@ msgid "Enable Priority" msgstr "Priorität aktivieren" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Filter tiles" -msgstr "Dateien filtern..." +msgstr "Kacheln filtern" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Give a TileSet resource to this TileMap to use its tiles." msgstr "" +"Dieses TileMap benötigt eine TileSet-Ressource um benutzt werden zu können." #: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" @@ -7860,6 +7900,8 @@ msgstr "Kachelnamen anzeigen (Alt-Taste halten)" msgid "" "Add or select a texture on the left panel to edit the tiles bound to it." msgstr "" +"Eine Textur in der rechten Leiste hinzufügen oder auswählen um die ihr " +"zugeordneten Kacheln zu bearbeiten." #: editor/plugins/tile_set_editor_plugin.cpp msgid "Remove selected texture? This will remove all tiles which use it." @@ -8035,92 +8077,80 @@ msgid "TileSet" msgstr "TileSet" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "No VCS addons are available." -msgstr "Name des Eltern-Nodes, falls vorhanden" +msgstr "Keine Versionsverwaltungserweiterungen verfügbar." #: editor/plugins/version_control_editor_plugin.cpp editor/rename_dialog.cpp msgid "Error" msgstr "Fehler" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "No commit message was provided" -msgstr "Kein Name angegeben" +msgstr "Es wurde keine Protokollnachricht angegeben" #: editor/plugins/version_control_editor_plugin.cpp msgid "No files added to stage" -msgstr "" +msgstr "Es wurden keine Dateien zum protokollieren vorgemerkt" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Commit" -msgstr "Community (Gemeinschaft)" +msgstr "Speicherpunkt" #: editor/plugins/version_control_editor_plugin.cpp msgid "VCS Addon is not initialized" -msgstr "" +msgstr "Versionsverwaltungserweiterung ist nicht initialisiert" #: editor/plugins/version_control_editor_plugin.cpp msgid "Version Control System" -msgstr "" +msgstr "Versionsverwaltungssystem" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Initialize" -msgstr "Kapitalisiere" +msgstr "Initialisieren" #: editor/plugins/version_control_editor_plugin.cpp msgid "Staging area" -msgstr "" +msgstr "Speicherauswahlbereich" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Detect new changes" -msgstr "Neues Rechteck erstellen." +msgstr "Neue Veränderungen beachten" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Changes" -msgstr "Ändern" +msgstr "Veränderungen" #: editor/plugins/version_control_editor_plugin.cpp msgid "Modified" -msgstr "" +msgstr "Bearbeitet" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Renamed" -msgstr "Umbenennen" +msgstr "Umbenannt" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Deleted" -msgstr "Löschen" +msgstr "Gelöscht" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Typechange" -msgstr "Ändern" +msgstr "Dateitypänderung" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Stage Selected" -msgstr "Ausgewähltes löschen" +msgstr "Ausgewähltes zum speichern vormerken" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Stage All" -msgstr "Alle speichern" +msgstr "Alles zum speichern vormerken" #: editor/plugins/version_control_editor_plugin.cpp msgid "Add a commit message" -msgstr "" +msgstr "Protokollnachricht hinzufügen" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Commit Changes" -msgstr "Skriptänderungen synchronisieren" +msgstr "Änderungen als Speicherpunkt sichern" #: editor/plugins/version_control_editor_plugin.cpp #: modules/gdnative/gdnative_library_singleton_editor.cpp @@ -8130,26 +8160,24 @@ msgstr "Status" #: editor/plugins/version_control_editor_plugin.cpp msgid "View file diffs before committing them to the latest version" msgstr "" +"Dateiänderungen anzeigen bevor sie nach der aktuellsten Version gespeichert " +"werden" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "No file diff is active" -msgstr "Keine Dateien ausgewählt!" +msgstr "Kein Dateiunterschied ist aktiv" #: editor/plugins/version_control_editor_plugin.cpp msgid "Detect changes in file diff" -msgstr "" +msgstr "Änderungen in Dateiänderung verfolgen" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "(GLES3 only)" msgstr "(Nur GLES3)" #: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add input +" -msgstr "Eingang hinzufügen +" - -#: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add output +" +#, fuzzy +msgid "Add Output" msgstr "Ausgang hinzufügen +" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -8165,6 +8193,11 @@ msgid "Boolean" msgstr "Boolean" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Sampler" +msgstr "Samples" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add input port" msgstr "Eingangsschnittstelle hinzufügen" @@ -8381,12 +8414,11 @@ msgstr "" "oder falsch ist." #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "" "Returns an associated scalar if the provided boolean value is true or false." msgstr "" -"Gibt einen geeigneten Vektor zurück je nach dem ob der übergebene Wert wahr " -"oder falsch ist." +"Gibt ein entsprechendes Skalar zurück je nach dem ob der übergebene Wert " +"wahr oder falsch ist." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the boolean result of the comparison between two parameters." @@ -9099,15 +9131,19 @@ msgid "Resources to export:" msgstr "Zu exportierende Ressourcen:" #: editor/project_export.cpp +#, fuzzy msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" "Filter um Nicht-Ressourcendateien zu exportieren (durch Kommata getrennt, z." "B.: *.json, *.txt)" #: editor/project_export.cpp +#, fuzzy msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" "Filter um vom Export auszuschließen (durch Kommata getrennt, z.B.: *.json, *." "txt)" @@ -9708,9 +9744,8 @@ msgid "Settings saved OK." msgstr "Einstellungen gespeichert OK." #: editor/project_settings_editor.cpp -#, fuzzy msgid "Moved Input Action Event" -msgstr "Eingabeaktionsereignis hinzufügen" +msgstr "Eingabeaktionsereignis verschoben" #: editor/project_settings_editor.cpp msgid "Override for Feature" @@ -10080,9 +10115,8 @@ msgid "Instance Scene(s)" msgstr "Instanz-Szene(n)" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Replace with Branch Scene" -msgstr "Speichere Verzweigung als Szene" +msgstr "Mit verzweigter Szene ersetzen" #: editor/scene_tree_dock.cpp msgid "Instance Child Scene" @@ -10127,23 +10161,20 @@ msgid "Make node as Root" msgstr "Node zur Szenenwurzel machen" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete %d nodes?" -msgstr "Nodes löschen" +msgstr "%d Nodes löschen?" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete the root node \"%s\"?" -msgstr "Entferne Shade-Graph-Node(s)" +msgstr "Das Wurzelnode „%s“ löschen?" #: editor/scene_tree_dock.cpp msgid "Delete node \"%s\" and its children?" -msgstr "" +msgstr "Node „%s“ und Unterobjekte löschen?" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete node \"%s\"?" -msgstr "Nodes löschen" +msgstr "Node „%s“ löschen?" #: editor/scene_tree_dock.cpp msgid "Can not perform with the root node." @@ -10166,12 +10197,13 @@ msgstr "" "dieses Nodes wieder in ihren Ausgangszustand zurückgesetzt." #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "bearbeitbare Unterobjekte" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" -msgstr "Als Platzhalter laden" +#, fuzzy +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." +msgstr "" +"Wenn „Editierbare Instanz“ deaktiviert wird, werden alle Eigenschaften " +"dieses Nodes wieder in ihren Ausgangszustand zurückgesetzt." #: editor/scene_tree_dock.cpp msgid "Make Local" @@ -10246,6 +10278,14 @@ msgid "Clear Inheritance" msgstr "Leere Vererbung" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "bearbeitbare Unterobjekte" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "Als Platzhalter laden" + +#: editor/scene_tree_dock.cpp msgid "Open Documentation" msgstr "Dokumentation öffnen" @@ -10262,10 +10302,6 @@ msgid "Change Type" msgstr "Typ ändern" #: editor/scene_tree_dock.cpp -msgid "Extend Script" -msgstr "Skript erweitern" - -#: editor/scene_tree_dock.cpp msgid "Reparent to New Node" msgstr "Node unter neues Node hängen" @@ -10507,23 +10543,18 @@ msgid "Will load an existing script file." msgstr "Dies wird eine bestehende Skriptdatei laden." #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "Sprache" - -#: editor/script_create_dialog.cpp -msgid "Inherits" -msgstr "Erbt von" - -#: editor/script_create_dialog.cpp -msgid "Class Name" +#, fuzzy +msgid "Class Name:" msgstr "Klassenname" #: editor/script_create_dialog.cpp -msgid "Template" +#, fuzzy +msgid "Template:" msgstr "Vorlage" #: editor/script_create_dialog.cpp -msgid "Built-in Script" +#, fuzzy +msgid "Built-in Script:" msgstr "Eingebettetes Skript" #: editor/script_create_dialog.cpp @@ -10539,38 +10570,32 @@ msgid "Bytes:" msgstr "Bytes:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Warning:" -msgstr "Warnungen:" +msgstr "Warnung:" #: editor/script_editor_debugger.cpp msgid "Error:" msgstr "Fehler:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Error" -msgstr "Fehlermeldung kopieren" +msgstr "C++-Fehler" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Error:" -msgstr "Fehler:" +msgstr "C++-Fehler:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Source" -msgstr "Quelle" +msgstr "C++-Quellcode" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Source:" -msgstr "Quelle" +msgstr "Quelle:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Source:" -msgstr "Quelle" +msgstr "C++-Quellcode:" #: editor/script_editor_debugger.cpp msgid "Stack Trace" @@ -10581,18 +10606,16 @@ msgid "Errors" msgstr "Fehler" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Child process connected." -msgstr "Unterprozess verbunden" +msgstr "Unterprozess verbunden." #: editor/script_editor_debugger.cpp msgid "Copy Error" msgstr "Fehlermeldung kopieren" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Skip Breakpoints" -msgstr "Haltepunkte" +msgstr "Haltepunkte auslassen" #: editor/script_editor_debugger.cpp msgid "Inspect Previous Instance" @@ -10611,9 +10634,8 @@ msgid "Profiler" msgstr "Profiler" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Network Profiler" -msgstr "Profil exportieren" +msgstr "Netzwerk-Profiler" #: editor/script_editor_debugger.cpp msgid "Monitor" @@ -10837,7 +10859,7 @@ msgstr "GDNative" #: modules/gdscript/gdscript_functions.cpp msgid "Expected a string of length 1 (a character)." -msgstr "" +msgstr "Zeichenkette der Länge 1 erwartet (ein Zeichen)." #: modules/gdscript/gdscript_functions.cpp msgid "Step argument is zero!" @@ -10994,13 +11016,12 @@ msgid "Pick Distance:" msgstr "Auswahlradius:" #: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "Filter meshes" -msgstr "Methoden filtern" +msgstr "Meshes filtern" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Give a MeshLibrary resource to this GridMap to use its meshes." -msgstr "" +msgstr "GridMap zu MeshLibrary hinzufügen um ihre Meshes benutzen zu können." #: modules/mono/csharp_script.cpp msgid "Class name can't be a reserved keyword" @@ -11177,6 +11198,11 @@ msgid "Add Function" msgstr "Funktion hinzufügen" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Delete input port" +msgstr "Eingangsschnittstelle entfernen" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "Variable hinzufügen" @@ -11185,6 +11211,26 @@ msgid "Add Signal" msgstr "Signal hinzufügen" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Input Port" +msgstr "Eingangsschnittstelle hinzufügen" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Output Port" +msgstr "Ausgangsschnittstelle hinzufügen" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Input Port" +msgstr "Eingangsschnittstelle entfernen" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Output Port" +msgstr "Ausgangsschnittstelle entfernen" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "Ausdruck ändern" @@ -11229,10 +11275,20 @@ msgid "Add Preload Node" msgstr "Preload-Node hinzufügen" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "Node(s) aus Szenenbaum hinzufügen" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "Getter-Eigenschaft hinzufügen" @@ -11257,6 +11313,11 @@ msgid "Connect Nodes" msgstr "Nodes verbinden" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Disconnect Nodes" +msgstr "Trenne Graph-Nodes" + +#: modules/visual_script/visual_script_editor.cpp msgid "Connect Node Data" msgstr "Node-Daten verbinden" @@ -11289,6 +11350,28 @@ msgid "Paste VisualScript Nodes" msgstr "VisualScript-Nodes einfügen" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Can't create function with a function node." +msgstr "Das Function-Node kann nicht kopiert werden." + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Create Function" +msgstr "Funktion umbenennen" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "Funktion entfernen" @@ -11309,21 +11392,17 @@ msgid "Editing Signal:" msgstr "bearbeite Signal:" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Make Tool:" -msgstr "Lokal machen" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "Basistyp:" +msgstr "Make-Werkzeug:" #: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "Mitglieder:" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" -msgstr "Verfügbare Nodes:" +#, fuzzy +msgid "function_name" +msgstr "Funktion:" #: modules/visual_script/visual_script_editor.cpp msgid "Select or create a function to edit its graph." @@ -11347,6 +11426,16 @@ msgid "Cut Nodes" msgstr "Nodes trennen" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Make Function" +msgstr "Funktion umbenennen" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Refresh Graph" +msgstr "Aktualisieren" + +#: modules/visual_script/visual_script_editor.cpp msgid "Edit Member" msgstr "Mitglied bearbeiten" @@ -11446,6 +11535,10 @@ msgid "The package must have at least one '.' separator." msgstr "Das Paket muss mindestens einen Punkt-Unterteiler ‚.‘ haben." #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "Gerät aus Liste auswählen" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "Das ADB-Programm wurde nicht in den Editoreinstellungen konfiguriert." @@ -11470,13 +11563,12 @@ msgstr "" "Ungültiger Android-SDK-Pfad für eigene Builds in den Editoreinstellungen." #: platform/android/export/export.cpp -#, fuzzy msgid "" "Android build template not installed in the project. Install it from the " "Project menu." msgstr "" -"Es ist kein Android-Projekt zum Kompilieren installiert worden. Es kann im " -"Editormenü installiert werden." +"Es wurde keine Android-Buildvorlage für dieses Projekt installiert. Es kann " +"im Projektmenü installiert werden." #: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." @@ -11567,6 +11659,10 @@ msgid "Required icon is not specified in the preset." msgstr "Benötigtes Icon wurde nicht in der Vorlage festgelegt." #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "Im Browser ausführen" @@ -12253,10 +12349,6 @@ msgstr "" "Eigenschaft ‚Render Target‘ des Viewports aktiviert und seine Textur " "irgendeinem Node zum Anzeigen zugewiesen werden." -#: scene/resources/visual_shader.cpp -msgid "Input" -msgstr "Eingang" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for preview." msgstr "Ungültige Quelle für Vorschau." @@ -12285,6 +12377,27 @@ msgstr "Varyings können nur in Vertex-Funktion zugewiesen werden." msgid "Constants cannot be modified." msgstr "Konstanten können nicht verändert werden." +#~ msgid "Snap to Grid" +#~ msgstr "Am Gitter einrasten" + +#~ msgid "Add input +" +#~ msgstr "Eingang hinzufügen +" + +#~ msgid "Language" +#~ msgstr "Sprache" + +#~ msgid "Inherits" +#~ msgstr "Erbt von" + +#~ msgid "Base Type:" +#~ msgstr "Basistyp:" + +#~ msgid "Available Nodes:" +#~ msgstr "Verfügbare Nodes:" + +#~ msgid "Input" +#~ msgstr "Eingang" + #~ msgid "Properties:" #~ msgstr "Eigenschaften:" @@ -12677,9 +12790,6 @@ msgstr "Konstanten können nicht verändert werden." #~ msgid "Go to parent folder" #~ msgstr "Gehe zu übergeordnetem Ordner" -#~ msgid "Select device from the list" -#~ msgstr "Gerät aus Liste auswählen" - #~ msgid "Open Scene(s)" #~ msgstr "Szene(n) öffnen" @@ -12920,9 +13030,6 @@ msgstr "Konstanten können nicht verändert werden." #~ msgid "Warning" #~ msgstr "Warnung" -#~ msgid "Function:" -#~ msgstr "Funktion:" - #~ msgid "Variable" #~ msgstr "Variable" @@ -12989,9 +13096,6 @@ msgstr "Konstanten können nicht verändert werden." #~ msgid "Connect Graph Nodes" #~ msgstr "Verbinde Graph-Nodes" -#~ msgid "Disconnect Graph Nodes" -#~ msgstr "Trenne Graph-Nodes" - #~ msgid "Remove Shader Graph Node" #~ msgstr "Entferne Shader-Graph-Node" @@ -14130,9 +14234,6 @@ msgstr "Konstanten können nicht verändert werden." #~ msgid "Group" #~ msgstr "Gruppe" -#~ msgid "Samples" -#~ msgstr "Samples" - #~ msgid "Sample Conversion Mode: (.wav files):" #~ msgstr "Audio-Umwandlungs-Modus: (.wav-Dateien):" diff --git a/editor/translations/de_CH.po b/editor/translations/de_CH.po index e61cbeec84..8498847001 100644 --- a/editor/translations/de_CH.po +++ b/editor/translations/de_CH.po @@ -369,6 +369,7 @@ msgstr "Erstelle %d in neuer Ebene inklusiv Bild?" #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "" @@ -500,16 +501,6 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "" - -#: editor/animation_track_editor.cpp -#, fuzzy -msgid "Select None" -msgstr "Node(s) löschen" - #: editor/animation_track_editor.cpp msgid "Select an AnimationPlayer node to create and edit animations." msgstr "" @@ -648,7 +639,7 @@ msgid "Scale Ratio:" msgstr "" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" +msgid "Select Tracks to Copy" msgstr "" #: editor/animation_track_editor.cpp editor/editor_log.cpp @@ -660,6 +651,11 @@ msgstr "" msgid "Copy" msgstr "" +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Select All/None" +msgstr "Node(s) löschen" + #: editor/animation_track_editor_plugins.cpp msgid "Add Audio Track Clip" msgstr "" @@ -988,7 +984,7 @@ msgid "Resource" msgstr "" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "" @@ -1453,7 +1449,8 @@ msgstr "" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "" @@ -1507,7 +1504,7 @@ msgstr "" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "" @@ -1913,6 +1910,7 @@ msgid "Class:" msgstr "" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "" @@ -2939,7 +2937,7 @@ msgstr "" msgid "Expand Bottom Panel" msgstr "" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "" @@ -3184,6 +3182,11 @@ msgstr "" msgid "New Script" msgstr "Script hinzufügen" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +#, fuzzy +msgid "Extend Script" +msgstr "Script hinzufügen" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "" @@ -3211,14 +3214,6 @@ msgstr "" msgid "Convert To %s" msgstr "Verbindung zu Node:" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy -msgid "Open Editor" -msgstr "Verzeichnis öffnen" - #: editor/editor_properties.cpp editor/property_editor.cpp #, fuzzy msgid "Selected node is not a Viewport!" @@ -4032,7 +4027,7 @@ msgstr "" msgid "Subfolder:" msgstr "" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "" @@ -4178,6 +4173,13 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +#, fuzzy +msgid "Open Editor" +msgstr "Verzeichnis öffnen" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp #, fuzzy msgid "Open Animation Node" @@ -4547,7 +4549,6 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "" @@ -4725,6 +4726,8 @@ msgid "Current:" msgstr "" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "" @@ -4932,6 +4935,10 @@ msgid "All" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy msgid "Import..." msgstr "Importierte Projekte" @@ -5230,20 +5237,23 @@ msgid "Ruler Mode" msgstr "TimeScale-Node" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Toggle snapping." +msgid "Toggle smart snapping." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +msgid "Use Smart Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snapping Options" +msgid "Toggle grid snapping." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Use Grid Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to Grid" +msgid "Snapping Options" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5338,8 +5348,7 @@ msgid "View" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +msgid "Always Show Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5611,6 +5620,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/curve_editor_plugin.cpp +msgid "Right click to add point" +msgstr "" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "" @@ -6266,6 +6279,10 @@ msgid "Grid" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Configure Grid:" msgstr "" @@ -6322,6 +6339,7 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "" @@ -6430,6 +6448,11 @@ msgid "Find Next" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Filter scripts" msgstr "Node erstellen" @@ -6704,6 +6727,11 @@ msgstr "Bild einfügen" msgid "Cut" msgstr "" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "" + #: editor/plugins/script_text_editor.cpp #, fuzzy msgid "Delete Line" @@ -6766,10 +6794,6 @@ msgid "Auto Indent" msgstr "" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "" - -#: editor/plugins/script_text_editor.cpp msgid "Find in Files..." msgstr "" @@ -7098,6 +7122,10 @@ msgid "Freelook Speed Modifier" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Slow Modifier" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -7131,6 +7159,10 @@ msgid "Use Local Space" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "" @@ -7366,6 +7398,10 @@ msgid "Simplification: " msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Shrink (Pixels): " +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "" @@ -8192,14 +8228,10 @@ msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy -msgid "Add input +" +msgid "Add Output" msgstr "Script hinzufügen" #: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add output +" -msgstr "" - -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Scalar" msgstr "" @@ -8212,6 +8244,10 @@ msgid "Boolean" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sampler" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy msgid "Add input port" msgstr "Script hinzufügen" @@ -9091,12 +9127,14 @@ msgstr "" #: editor/project_export.cpp msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp @@ -10114,11 +10152,9 @@ msgid "" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." msgstr "" #: editor/scene_tree_dock.cpp @@ -10198,6 +10234,14 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "" + +#: editor/scene_tree_dock.cpp msgid "Open Documentation" msgstr "" @@ -10215,11 +10259,6 @@ msgstr "Typ ändern" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Extend Script" -msgstr "Script hinzufügen" - -#: editor/scene_tree_dock.cpp -#, fuzzy msgid "Reparent to New Node" msgstr "Node erstellen" @@ -10460,25 +10499,18 @@ msgid "Will load an existing script file." msgstr "" #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Inherits" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Class Name" +msgid "Class Name:" msgstr "" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Template" +msgid "Template:" msgstr "Ungültige Bilder löschen" #: editor/script_create_dialog.cpp -msgid "Built-in Script" -msgstr "" +#, fuzzy +msgid "Built-in Script:" +msgstr "Script hinzufügen" #: editor/script_create_dialog.cpp #, fuzzy @@ -11133,6 +11165,11 @@ msgid "Add Function" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Delete input port" +msgstr "Ungültige Bilder löschen" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "" @@ -11143,6 +11180,26 @@ msgstr "Script hinzufügen" #: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Add Input Port" +msgstr "Script hinzufügen" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Output Port" +msgstr "Script hinzufügen" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Input Port" +msgstr "Ungültige Bilder löschen" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Output Port" +msgstr "Ungültige Bilder löschen" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Change Expression" msgstr "Typ ändern" @@ -11186,11 +11243,21 @@ msgid "Add Preload Node" msgstr "Node" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp #, fuzzy msgid "Add Node(s) From Tree" msgstr "Node von Szene" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "" @@ -11220,6 +11287,11 @@ msgstr "Verbindung zu Node:" #: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Disconnect Nodes" +msgstr "Verbindung zu Node:" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Connect Node Data" msgstr "Verbindung zu Node:" @@ -11255,6 +11327,27 @@ msgid "Paste VisualScript Nodes" msgstr "Node erstellen" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function with a function node." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Create Function" +msgstr "Node erstellen" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "" @@ -11281,18 +11374,12 @@ msgid "Make Tool:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy -msgid "Base Type:" -msgstr "Typ ändern" - -#: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy -msgid "Available Nodes:" -msgstr "TimeScale-Node" +msgid "function_name" +msgstr "" #: modules/visual_script/visual_script_editor.cpp msgid "Select or create a function to edit its graph." @@ -11316,6 +11403,14 @@ msgid "Cut Nodes" msgstr "Node erstellen" #: modules/visual_script/visual_script_editor.cpp +msgid "Make Function" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Refresh Graph" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp #, fuzzy msgid "Edit Member" msgstr "Node Filter editieren" @@ -11412,6 +11507,10 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "" @@ -11512,6 +11611,10 @@ msgid "Required icon is not specified in the preset." msgstr "" #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "" @@ -12084,10 +12187,6 @@ msgid "" "texture to some node for display." msgstr "" -#: scene/resources/visual_shader.cpp -msgid "Input" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for preview." msgstr "" @@ -12117,6 +12216,14 @@ msgid "Constants cannot be modified." msgstr "" #, fuzzy +#~ msgid "Base Type:" +#~ msgstr "Typ ändern" + +#, fuzzy +#~ msgid "Available Nodes:" +#~ msgstr "TimeScale-Node" + +#, fuzzy #~ msgid "Theme Properties:" #~ msgstr "Node erstellen" diff --git a/editor/translations/editor.pot b/editor/translations/editor.pot index ca6da01f4c..47ac024f4d 100644 --- a/editor/translations/editor.pot +++ b/editor/translations/editor.pot @@ -343,6 +343,7 @@ msgstr "" #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "" @@ -468,15 +469,6 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "" - -#: editor/animation_track_editor.cpp -msgid "Select None" -msgstr "" - #: editor/animation_track_editor.cpp msgid "Select an AnimationPlayer node to create and edit animations." msgstr "" @@ -611,7 +603,7 @@ msgid "Scale Ratio:" msgstr "" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" +msgid "Select Tracks to Copy" msgstr "" #: editor/animation_track_editor.cpp editor/editor_log.cpp @@ -623,6 +615,10 @@ msgstr "" msgid "Copy" msgstr "" +#: editor/animation_track_editor.cpp +msgid "Select All/None" +msgstr "" + #: editor/animation_track_editor_plugins.cpp msgid "Add Audio Track Clip" msgstr "" @@ -939,7 +935,7 @@ msgid "Resource" msgstr "" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "" @@ -1394,7 +1390,8 @@ msgstr "" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "" @@ -1448,7 +1445,7 @@ msgstr "" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "" @@ -1832,6 +1829,7 @@ msgid "Class:" msgstr "" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "" @@ -2822,7 +2820,7 @@ msgstr "" msgid "Expand Bottom Panel" msgstr "" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "" @@ -3058,6 +3056,10 @@ msgstr "" msgid "New Script" msgstr "" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +msgid "Extend Script" +msgstr "" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "" @@ -3084,13 +3086,6 @@ msgstr "" msgid "Convert To %s" msgstr "" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Open Editor" -msgstr "" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "" @@ -3863,7 +3858,7 @@ msgstr "" msgid "Subfolder:" msgstr "" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "" @@ -3998,6 +3993,12 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Open Editor" +msgstr "" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp msgid "Open Animation Node" msgstr "" @@ -4339,7 +4340,6 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "" @@ -4507,6 +4507,8 @@ msgid "Current:" msgstr "" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "" @@ -4711,6 +4713,10 @@ msgid "All" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp msgid "Import..." msgstr "" @@ -4989,20 +4995,23 @@ msgid "Ruler Mode" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Toggle snapping." +msgid "Toggle smart snapping." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +msgid "Use Smart Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snapping Options" +msgid "Toggle grid snapping." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to Grid" +msgid "Use Grid Snap" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snapping Options" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5092,8 +5101,7 @@ msgid "View" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +msgid "Always Show Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5353,6 +5361,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/curve_editor_plugin.cpp +msgid "Right click to add point" +msgstr "" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "" @@ -5982,6 +5994,10 @@ msgid "Grid" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Configure Grid:" msgstr "" @@ -6038,6 +6054,7 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "" @@ -6136,6 +6153,11 @@ msgid "Find Next" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Filter scripts" msgstr "" @@ -6401,6 +6423,11 @@ msgstr "" msgid "Cut" msgstr "" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "" @@ -6458,10 +6485,6 @@ msgid "Auto Indent" msgstr "" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "" - -#: editor/plugins/script_text_editor.cpp msgid "Find in Files..." msgstr "" @@ -6781,6 +6804,10 @@ msgid "Freelook Speed Modifier" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Slow Modifier" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -6814,6 +6841,10 @@ msgid "Use Local Space" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "" @@ -7040,6 +7071,10 @@ msgid "Simplification: " msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Shrink (Pixels): " +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "" @@ -7801,11 +7836,7 @@ msgid "(GLES3 only)" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add input +" -msgstr "" - -#: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add output +" +msgid "Add Output" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -7821,6 +7852,10 @@ msgid "Boolean" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sampler" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add input port" msgstr "" @@ -8677,12 +8712,14 @@ msgstr "" #: editor/project_export.cpp msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp @@ -9664,11 +9701,9 @@ msgid "" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." msgstr "" #: editor/scene_tree_dock.cpp @@ -9742,6 +9777,14 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "" + +#: editor/scene_tree_dock.cpp msgid "Open Documentation" msgstr "" @@ -9758,10 +9801,6 @@ msgid "Change Type" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Extend Script" -msgstr "" - -#: editor/scene_tree_dock.cpp msgid "Reparent to New Node" msgstr "" @@ -9988,23 +10027,15 @@ msgid "Will load an existing script file." msgstr "" #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Inherits" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Class Name" +msgid "Class Name:" msgstr "" #: editor/script_create_dialog.cpp -msgid "Template" +msgid "Template:" msgstr "" #: editor/script_create_dialog.cpp -msgid "Built-in Script" +msgid "Built-in Script:" msgstr "" #: editor/script_create_dialog.cpp @@ -10638,6 +10669,10 @@ msgid "Add Function" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Delete input port" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "" @@ -10646,6 +10681,22 @@ msgid "Add Signal" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Add Input Port" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Add Output Port" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Remove Input Port" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Remove Output Port" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "" @@ -10686,10 +10737,20 @@ msgid "Add Preload Node" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "" @@ -10714,6 +10775,10 @@ msgid "Connect Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Disconnect Nodes" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Connect Node Data" msgstr "" @@ -10746,6 +10811,26 @@ msgid "Paste VisualScript Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function with a function node." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Create Function" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "" @@ -10770,15 +10855,11 @@ msgid "Make Tool:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" +msgid "function_name" msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -10802,6 +10883,14 @@ msgid "Cut Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Make Function" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Refresh Graph" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Edit Member" msgstr "" @@ -10896,6 +10985,10 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "" @@ -10995,6 +11088,10 @@ msgid "Required icon is not specified in the preset." msgstr "" #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "" @@ -11532,10 +11629,6 @@ msgid "" "texture to some node for display." msgstr "" -#: scene/resources/visual_shader.cpp -msgid "Input" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for preview." msgstr "" diff --git a/editor/translations/el.po b/editor/translations/el.po index 9dbb9c49e6..451a24bb00 100644 --- a/editor/translations/el.po +++ b/editor/translations/el.po @@ -355,6 +355,7 @@ msgstr "ΔημιουÏγία %d νÎων κομματιών και εισαγωΠ#: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "ΔημιουÏγία" @@ -498,15 +499,6 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "Î Ïοσοχή: ΕπεξεÏγασία εισαγμÎνης κίνησης" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "Επιλογή όλων" - -#: editor/animation_track_editor.cpp -msgid "Select None" -msgstr "Αποεπιλογή Όλων" - #: editor/animation_track_editor.cpp #, fuzzy msgid "Select an AnimationPlayer node to create and edit animations." @@ -644,7 +636,8 @@ msgid "Scale Ratio:" msgstr "Λόγος μεγÎθυνσης:" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" +#, fuzzy +msgid "Select Tracks to Copy" msgstr "Επιλογή κομματιών για αντιγÏαφή:" #: editor/animation_track_editor.cpp editor/editor_log.cpp @@ -656,6 +649,11 @@ msgstr "Επιλογή κομματιών για αντιγÏαφή:" msgid "Copy" msgstr "ΑντιγÏαφή" +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Select All/None" +msgstr "Αποεπιλογή Όλων" + #: editor/animation_track_editor_plugins.cpp msgid "Add Audio Track Clip" msgstr "Î Ïοσθήκη αποσπάσματος ήχου" @@ -984,7 +982,7 @@ msgid "Resource" msgstr "Î ÏŒÏος" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "ΔιαδÏομή" @@ -1449,7 +1447,8 @@ msgstr "Î Ïοσθήκη AutoLoad" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "ΔιαδÏομή:" @@ -1503,7 +1502,7 @@ msgstr "ΔημιουÏγία φακÎλου" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "Όνομα:" @@ -1899,6 +1898,7 @@ msgid "Class:" msgstr "Κλάση:" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "ΚληÏονομεί:" @@ -2987,7 +2987,7 @@ msgstr "ΕπιθεωÏητής" msgid "Expand Bottom Panel" msgstr "Ανάπτυξη κάτω πλαισίου" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "Έξοδος" @@ -3239,6 +3239,10 @@ msgstr "ΕπιλÎξτε Îνα Viewport" msgid "New Script" msgstr "ÎÎα ΔÎσμη ΕνεÏγειών" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +msgid "Extend Script" +msgstr "ΕπÎκταση ΔÎσμης ΕνεÏγειών" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "ÎÎο %s" @@ -3265,13 +3269,6 @@ msgstr "Επικόλληση" msgid "Convert To %s" msgstr "ΜετατÏοπή σε %s" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Open Editor" -msgstr "Άνοιγμα επεξεÏγαστή" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "Ο επιλεγμÎνος κόμβος δεν είναι Viewport!" @@ -4075,7 +4072,7 @@ msgstr "Όνομα Ï€ÏοσθÎτου:" msgid "Subfolder:" msgstr "Υποφάκελος:" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "Γλώσσα:" @@ -4216,6 +4213,12 @@ msgstr "Σημείο" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Open Editor" +msgstr "Άνοιγμα επεξεÏγαστή" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp msgid "Open Animation Node" msgstr "Άνοιγμα κόμβου κίνησης" @@ -4565,7 +4568,6 @@ msgstr "Όνομα κίνησης:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "Σφάλμα!" @@ -4738,6 +4740,8 @@ msgid "Current:" msgstr "ΤÏÎχων:" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "Î Ïοσθήκη εισόδου" @@ -4948,6 +4952,10 @@ msgid "All" msgstr "Όλα" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy msgid "Import..." msgstr "Εκ νÎου εισαγωγή..." @@ -5250,21 +5258,28 @@ msgid "Ruler Mode" msgstr "ΛειτουÏγία εκτÎλεσης:" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Toggle snapping." +#, fuzzy +msgid "Toggle smart snapping." msgstr "Εναλλαγή κουμπώματος." #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +#, fuzzy +msgid "Use Smart Snap" msgstr "ΧÏήση κουμπώματος" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snapping Options" -msgstr "ΕπιλογÎÏ‚ κουμπώματος" +#, fuzzy +msgid "Toggle grid snapping." +msgstr "Εναλλαγή κουμπώματος." + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Use Grid Snap" +msgstr "ΚοÏμπωμα στο πλÎγμα" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to Grid" -msgstr "ΚοÏμπωμα στο ΠλÎγμα" +msgid "Snapping Options" +msgstr "ΕπιλογÎÏ‚ κουμπώματος" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Rotation Snap" @@ -5353,8 +5368,8 @@ msgid "View" msgstr "ΚάμεÏα" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +#, fuzzy +msgid "Always Show Grid" msgstr "Εμφάνιση πλÎγματος" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5621,6 +5636,11 @@ msgstr "Εναλλαγή γÏαμμικής εφαπτομÎνης καμπÏλΠmsgid "Hold Shift to edit tangents individually" msgstr "Πατήστε το Shift για να επεξεÏγαστείτε εφαπτομÎνες μεμονωμÎνα" +#: editor/plugins/curve_editor_plugin.cpp +#, fuzzy +msgid "Right click to add point" +msgstr "Δεξί κλικ: ΔιαγÏαφή σημείου" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "Î Ïοετοιμασία διεÏεÏνησης GI" @@ -6267,6 +6287,10 @@ msgid "Grid" msgstr "ΠλÎγμα" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "Εμφάνιση πλÎγματος" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Configure Grid:" msgstr "Î ÏοσαÏμογή ΠλÎγματος:" @@ -6323,6 +6347,7 @@ msgstr "Στιγμιότυπο:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "ΤÏπος:" @@ -6423,6 +6448,11 @@ msgid "Find Next" msgstr "ΕÏÏεση επόμενου" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "ΈυÏεση Ï€ÏοηγοÏμενου" + +#: editor/plugins/script_editor_plugin.cpp msgid "Filter scripts" msgstr "ΦιλτÏάÏισμα δεσμών ενεÏγειών" @@ -6694,6 +6724,11 @@ msgstr "Σημεία Διακοπής" msgid "Cut" msgstr "Αποκοπή" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "Επιλογή όλων" + #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "ΔιαγÏαφή γÏαμμής" @@ -6752,10 +6787,6 @@ msgid "Auto Indent" msgstr "Αυτόματη στοιχειοθÎτηση" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "ΈυÏεση Ï€ÏοηγοÏμενου" - -#: editor/plugins/script_text_editor.cpp msgid "Find in Files..." msgstr "ΕÏÏεση σε ΑÏχεία..." @@ -7081,6 +7112,11 @@ msgid "Freelook Speed Modifier" msgstr "ΤαχÏτητα ελεÏθεÏου κοιτάγματος" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Freelook Slow Modifier" +msgstr "ΤαχÏτητα ελεÏθεÏου κοιτάγματος" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -7121,6 +7157,10 @@ msgid "Use Local Space" msgstr "ΛειτουÏγία Ï„Î¿Ï€Î¹ÎºÎ¿Ï Ï‡ÏŽÏου (%s)" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "ΧÏήση κουμπώματος" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "Κάτω όψη" @@ -7348,6 +7388,11 @@ msgid "Simplification: " msgstr "Απλοποίηση: " #: editor/plugins/sprite_editor_plugin.cpp +#, fuzzy +msgid "Shrink (Pixels): " +msgstr "ΑÏξηση (Εικονοστοιχεία): " + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "ΑÏξηση (Εικονοστοιχεία): " @@ -8146,11 +8191,8 @@ msgid "(GLES3 only)" msgstr "(Μόνο GLES3)" #: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add input +" -msgstr "Î Ïοσθήκη εισόδου +" - -#: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add output +" +#, fuzzy +msgid "Add Output" msgstr "Î Ïοσθήκη εξόδου +" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -8166,6 +8208,11 @@ msgid "Boolean" msgstr "Λογική Τιμή" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Sampler" +msgstr "Î Ïοσθήκη δείγματος" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add input port" msgstr "Î Ïοσθήκη θÏÏας εισόδου" @@ -9099,15 +9146,19 @@ msgid "Resources to export:" msgstr "Î ÏŒÏοι για εξαγωγή:" #: editor/project_export.cpp +#, fuzzy msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" "ΦίλτÏα για εξαγωγή για αÏχεία που δεν είναι πόÏοι (χωÏισμÎνα με κόμμα Ï€.χ. *." "json, *.txt)" #: editor/project_export.cpp +#, fuzzy msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" "ΦίλτÏα για την εξαίÏεση αÏχείων από το ÎÏγο (χωÏισμÎνα με κόμμα Ï€.χ. *.json, " "*.txt)" @@ -10166,12 +10217,13 @@ msgstr "" "του κόμβου στις Ï€ÏοεπιλογÎÏ‚ τους." #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "ΕπεξεÏγάσιμα παιδιά" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" -msgstr "ΦόÏτωση ως μÎσο κÏάτησης θÎσης" +#, fuzzy +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." +msgstr "" +"Η απενεÏγοποίηση του «editable_instance» θα επαναφÎÏει όλες τις ιδιότητες " +"του κόμβου στις Ï€ÏοεπιλογÎÏ‚ τους." #: editor/scene_tree_dock.cpp msgid "Make Local" @@ -10249,6 +10301,14 @@ msgid "Clear Inheritance" msgstr "ΕκκαθάÏιση κληÏονομικότητας" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "ΕπεξεÏγάσιμα παιδιά" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "ΦόÏτωση ως μÎσο κÏάτησης θÎσης" + +#: editor/scene_tree_dock.cpp msgid "Open Documentation" msgstr "Άνοιγμα ΤεκμηÏίωσης" @@ -10265,10 +10325,6 @@ msgid "Change Type" msgstr "Αλλαγή Ï„Ïπου" #: editor/scene_tree_dock.cpp -msgid "Extend Script" -msgstr "ΕπÎκταση ΔÎσμης ΕνεÏγειών" - -#: editor/scene_tree_dock.cpp msgid "Reparent to New Node" msgstr "ΕπαναπÏοσδιοÏισμός ΓονÎα" @@ -10513,23 +10569,18 @@ msgid "Will load an existing script file." msgstr "Θα φοÏτώσει υπαÏκτό αÏχείο δÎσμης ενεÏγειών." #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "Γλώσσα" - -#: editor/script_create_dialog.cpp -msgid "Inherits" -msgstr "ΚληÏονομεί" - -#: editor/script_create_dialog.cpp -msgid "Class Name" +#, fuzzy +msgid "Class Name:" msgstr "Όνομα κλάσης" #: editor/script_create_dialog.cpp -msgid "Template" +#, fuzzy +msgid "Template:" msgstr "Î Ïότυπο" #: editor/script_create_dialog.cpp -msgid "Built-in Script" +#, fuzzy +msgid "Built-in Script:" msgstr "Ενσωμάτωση" #: editor/script_create_dialog.cpp @@ -11204,6 +11255,11 @@ msgid "Add Function" msgstr "Î Ïοσθήκη συνάÏτησης" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Delete input port" +msgstr "ΑφαίÏεση θÏÏας εισόδου" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "Î Ïοσθήκη μεταβλητής" @@ -11212,6 +11268,26 @@ msgid "Add Signal" msgstr "Î Ïοσθήκη σήματος" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Input Port" +msgstr "Î Ïοσθήκη θÏÏας εισόδου" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Output Port" +msgstr "Î Ïοσθήκη θÏÏας εξόδου" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Input Port" +msgstr "ΑφαίÏεση θÏÏας εισόδου" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Output Port" +msgstr "ΑφαίÏεση θÏÏας εξόδου" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "Αλλαγή ÎκφÏασης" @@ -11258,10 +11334,20 @@ msgid "Add Preload Node" msgstr "Î ÏοσθÎστε Îναν κόμβο preload" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "Î ÏοσθÎστε κόμβο/-ους από δÎντÏο" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "Î ÏοσθÎστε ιδιότητα Getter" @@ -11287,6 +11373,11 @@ msgstr "ΣÏνδεση κόμβων" #: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Disconnect Nodes" +msgstr "ΑποσÏνδεση κόμβων γÏαφήματος" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Connect Node Data" msgstr "ΣÏνδεση κόμβων" @@ -11321,6 +11412,28 @@ msgid "Paste VisualScript Nodes" msgstr "Επικόλληση κόμβων VisualScript" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Can't create function with a function node." +msgstr "ΑδÏνατη η αντιγÏαφή του κόμβου συνάÏτησης." + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Create Function" +msgstr "Μετονομασία συνάÏτησης" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "ΑφαίÏεση συνάÏτησης" @@ -11346,16 +11459,13 @@ msgid "Make Tool:" msgstr "Κάνε τοπικό" #: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "ΤÏπος βάσης:" - -#: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "ÎœÎλη:" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" -msgstr "ΔιαθÎσιμοι κόμβοι:" +#, fuzzy +msgid "function_name" +msgstr "ΣυνάÏτηση:" #: modules/visual_script/visual_script_editor.cpp #, fuzzy @@ -11380,6 +11490,16 @@ msgstr "Αποκοπή κόμβων" #: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Make Function" +msgstr "Μετονομασία συνάÏτησης" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Refresh Graph" +msgstr "Αναναίωση" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Edit Member" msgstr "ÎœÎλη" @@ -11483,6 +11603,10 @@ msgid "The package must have at least one '.' separator." msgstr "Το πακÎτο Ï€ÏÎπει να Îχει τουλάχιστον Îναν '.' διαχωÏιστή." #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "ΕπιλÎξτε συσκευή από την λίστα" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "" "Το εκτελÎσιμο αÏχείο ADB δεν Îχει Ïυθμιστεί στις Ρυθμίσεις ΕπεξεÏγαστή." @@ -11612,6 +11736,10 @@ msgid "Required icon is not specified in the preset." msgstr "Το απαιτοÏμενο εικονίδιο δεν Îχει καθοÏιστεί στην Ï€Ïοεπιλογή." #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "ΕκτÎλεση στον πεÏιηγητή" @@ -12289,10 +12417,6 @@ msgstr "" "μÎγεθος. Αλλιώς, κάντε το Îνα RenderTarget και οÏίστε το internal texture σε " "Îναν κόμβο για απεικόνιση." -#: scene/resources/visual_shader.cpp -msgid "Input" -msgstr "Είσοδος" - #: scene/resources/visual_shader_nodes.cpp #, fuzzy msgid "Invalid source for preview." @@ -12324,6 +12448,27 @@ msgstr "" msgid "Constants cannot be modified." msgstr "Οι σταθεÏÎÏ‚ δεν μποÏοÏν να Ï„ÏοποποιηθοÏν." +#~ msgid "Snap to Grid" +#~ msgstr "ΚοÏμπωμα στο ΠλÎγμα" + +#~ msgid "Add input +" +#~ msgstr "Î Ïοσθήκη εισόδου +" + +#~ msgid "Language" +#~ msgstr "Γλώσσα" + +#~ msgid "Inherits" +#~ msgstr "ΚληÏονομεί" + +#~ msgid "Base Type:" +#~ msgstr "ΤÏπος βάσης:" + +#~ msgid "Available Nodes:" +#~ msgstr "ΔιαθÎσιμοι κόμβοι:" + +#~ msgid "Input" +#~ msgstr "Είσοδος" + #~ msgid "Properties:" #~ msgstr "Ιδιότητες:" @@ -12718,9 +12863,6 @@ msgstr "Οι σταθεÏÎÏ‚ δεν μποÏοÏν να Ï„ÏÎ¿Ï€Î¿Ï€Î¿Î¹Î·Î¸Î¿Ï #~ msgid "Go to parent folder" #~ msgstr "Πήγαινε στον γονικό φάκελο" -#~ msgid "Select device from the list" -#~ msgstr "ΕπιλÎξτε συσκευή από την λίστα" - #~ msgid "Open Scene(s)" #~ msgstr "Άνοιγμα σκηνής" @@ -12964,9 +13106,6 @@ msgstr "Οι σταθεÏÎÏ‚ δεν μποÏοÏν να Ï„ÏÎ¿Ï€Î¿Ï€Î¿Î¹Î·Î¸Î¿Ï #~ msgid "Warning" #~ msgstr "Î Ïοειδοποίηση" -#~ msgid "Function:" -#~ msgstr "ΣυνάÏτηση:" - #~ msgid "Variable" #~ msgstr "Μεταβλητή" @@ -13030,9 +13169,6 @@ msgstr "Οι σταθεÏÎÏ‚ δεν μποÏοÏν να Ï„ÏÎ¿Ï€Î¿Ï€Î¿Î¹Î·Î¸Î¿Ï #~ msgid "Connect Graph Nodes" #~ msgstr "ΣÏνδεση κόμβων γÏαφήματος" -#~ msgid "Disconnect Graph Nodes" -#~ msgstr "ΑποσÏνδεση κόμβων γÏαφήματος" - #~ msgid "Remove Shader Graph Node" #~ msgstr "ΑφαίÏεση κόμβου γÏαφήματος" @@ -13854,9 +13990,6 @@ msgstr "Οι σταθεÏÎÏ‚ δεν μποÏοÏν να Ï„ÏÎ¿Ï€Î¿Ï€Î¿Î¹Î·Î¸Î¿Ï #~ msgid "ERROR: Couldn't load sample!" #~ msgstr "ΣΦΑΛΜΑ: Δεν ήταν δυνατή η φόÏτωση δείγματος!" -#~ msgid "Add Sample" -#~ msgstr "Î Ïοσθήκη δείγματος" - #~ msgid "Rename Sample" #~ msgstr "Μετονομασία δείγματος" diff --git a/editor/translations/eo.po b/editor/translations/eo.po index a1906a2985..99654bd571 100644 --- a/editor/translations/eo.po +++ b/editor/translations/eo.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2019-09-15 20:01+0000\n" -"Last-Translator: Brandon Dyer <brandondyer64@gmail.com>\n" +"PO-Revision-Date: 2019-10-11 15:07+0000\n" +"Last-Translator: Teashrock <kajitsu22@gmail.com>\n" "Language-Team: Esperanto <https://hosted.weblate.org/projects/godot-engine/" "godot/eo/>\n" "Language: eo\n" @@ -355,6 +355,7 @@ msgstr "Fari %d NOVAJN vojetojn kaj enmeti Ålosilojn?" #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "Krei" @@ -494,15 +495,6 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "Averto: Redaktanti importis animadon" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "Elektaro ĉiuj" - -#: editor/animation_track_editor.cpp -msgid "Select None" -msgstr "Elektaro nur" - #: editor/animation_track_editor.cpp msgid "Select an AnimationPlayer node to create and edit animations." msgstr "" @@ -538,7 +530,7 @@ msgstr "FPS" #: editor/project_manager.cpp editor/project_settings_editor.cpp #: editor/property_editor.cpp modules/visual_script/visual_script_editor.cpp msgid "Edit" -msgstr "Editori" +msgstr "Editi" #: editor/animation_track_editor.cpp msgid "Animation properties." @@ -637,7 +629,8 @@ msgid "Scale Ratio:" msgstr "Skali RejÅo:" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" +#, fuzzy +msgid "Select Tracks to Copy" msgstr "Elekti vojetojn por duplikati:" #: editor/animation_track_editor.cpp editor/editor_log.cpp @@ -649,6 +642,11 @@ msgstr "Elekti vojetojn por duplikati:" msgid "Copy" msgstr "Duplikati" +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Select All/None" +msgstr "Elektaro nur" + #: editor/animation_track_editor_plugins.cpp msgid "Add Audio Track Clip" msgstr "Adici AÅdio-Vojeton Eltondaĵon" @@ -759,11 +757,11 @@ msgstr "" #: editor/connections_dialog.cpp msgid "Connect to Node:" -msgstr "Konektu al nodo:" +msgstr "Konekti al nodo:" #: editor/connections_dialog.cpp msgid "Connect to Script:" -msgstr "Konektu al skripto:" +msgstr "Konekti al skripto:" #: editor/connections_dialog.cpp msgid "From Signal:" @@ -777,7 +775,7 @@ msgstr "La sceno ne enhavas ajnan skriptojn." #: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp msgid "Add" -msgstr "Aldonu" +msgstr "Aldoni" #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/editor_feature_profile.cpp editor/groups_editor.cpp @@ -788,11 +786,11 @@ msgstr "Aldonu" #: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" -msgstr "Forigu" +msgstr "Forigi" #: editor/connections_dialog.cpp msgid "Add Extra Call Argument:" -msgstr "Aldonu alvoko argumento:" +msgstr "Aldoni alvoko argumento:" #: editor/connections_dialog.cpp msgid "Extra Call Arguments:" @@ -810,7 +808,8 @@ msgstr "Diferita" msgid "" "Defers the signal, storing it in a queue and only firing it at idle time." msgstr "" -"Prokrastas la signalon, memoras Äin en atendovico kaj nur pafas atende." +"Prokrastas la signalon, memoras Äin en atendovico kaj nur pafas Äin je " +"senokupa tempo." #: editor/connections_dialog.cpp msgid "Oneshot" @@ -837,7 +836,7 @@ msgstr "Ne povas konekti signalo" #: editor/run_settings_dialog.cpp editor/settings_config_dialog.cpp #: modules/visual_script/visual_script_editor.cpp msgid "Close" -msgstr "FermiÄi" +msgstr "Fermi" #: editor/connections_dialog.cpp msgid "Connect" @@ -971,7 +970,7 @@ msgid "Resource" msgstr "Rimedo" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "Vojo" @@ -1179,7 +1178,7 @@ msgstr "" #: editor/editor_asset_installer.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Success!" -msgstr "" +msgstr "Sukcesis!" #: editor/editor_asset_installer.cpp editor/editor_node.cpp msgid "Install" @@ -1426,9 +1425,10 @@ msgstr "" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" -msgstr "" +msgstr "Vojo:" #: editor/editor_autoload_settings.cpp msgid "Node Name:" @@ -1437,23 +1437,25 @@ msgstr "" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp #: editor/editor_profiler.cpp editor/settings_config_dialog.cpp msgid "Name" -msgstr "" +msgstr "Nomo" #: editor/editor_autoload_settings.cpp msgid "Singleton" msgstr "" #: editor/editor_data.cpp +#, fuzzy msgid "Updating Scene" -msgstr "" +msgstr "Aktualas scenon" #: editor/editor_data.cpp msgid "Storing local changes..." msgstr "" #: editor/editor_data.cpp +#, fuzzy msgid "Updating scene..." -msgstr "" +msgstr "Aktualas scenon..." #: editor/editor_data.cpp editor/editor_properties.cpp msgid "[empty]" @@ -1475,19 +1477,19 @@ msgstr "" #: editor/filesystem_dock.cpp editor/project_manager.cpp #: scene/gui/file_dialog.cpp msgid "Create Folder" -msgstr "" +msgstr "Krei dosierujon" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" -msgstr "" +msgstr "Nomo:" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp msgid "Could not create folder." -msgstr "" +msgstr "Ne povis krei dosierujon." #: editor/editor_dir_dialog.cpp msgid "Choose" @@ -1529,33 +1531,37 @@ msgstr "" #: platform/iphone/export/export.cpp platform/javascript/export/export.cpp #: platform/osx/export/export.cpp platform/uwp/export/export.cpp msgid "Custom debug template not found." -msgstr "" +msgstr "Propra sencimiga Åablonon ne trovitis." #: editor/editor_export.cpp platform/android/export/export.cpp #: platform/iphone/export/export.cpp platform/javascript/export/export.cpp #: platform/osx/export/export.cpp platform/uwp/export/export.cpp msgid "Custom release template not found." -msgstr "" +msgstr "Propra eldona Åablono ne trovitis." #: editor/editor_export.cpp platform/javascript/export/export.cpp +#, fuzzy msgid "Template file not found:" -msgstr "" +msgstr "Åœablonan dosieron ne trovitis:" #: editor/editor_export.cpp +#, fuzzy msgid "On 32-bit exports the embedded PCK cannot be bigger than 4 GiB." msgstr "" +"Sur 32-bita eksportoj la enigita PCK ne eblos esti pli granda ol 4 GiB." #: editor/editor_feature_profile.cpp msgid "3D Editor" -msgstr "" +msgstr "3D redaktilo" #: editor/editor_feature_profile.cpp msgid "Script Editor" -msgstr "" +msgstr "Skriptredaktilo" #: editor/editor_feature_profile.cpp +#, fuzzy msgid "Asset Library" -msgstr "" +msgstr "Biblioteko de aktivoj" #: editor/editor_feature_profile.cpp msgid "Scene Tree Editing" @@ -1563,7 +1569,7 @@ msgstr "" #: editor/editor_feature_profile.cpp msgid "Import Dock" -msgstr "" +msgstr "Enporti dokon" #: editor/editor_feature_profile.cpp msgid "Node Dock" @@ -1571,7 +1577,7 @@ msgstr "" #: editor/editor_feature_profile.cpp msgid "FileSystem and Import Docks" -msgstr "" +msgstr "Dosiersistema kaj enporta dokoj" #: editor/editor_feature_profile.cpp msgid "Erase profile '%s'? (no undo)" @@ -1618,8 +1624,9 @@ msgid "Enabled Classes:" msgstr "" #: editor/editor_feature_profile.cpp +#, fuzzy msgid "File '%s' format is invalid, import aborted." -msgstr "" +msgstr "Dosierformo de la '%s' estas malvalida, enporto ĉesiÄis." #: editor/editor_feature_profile.cpp msgid "" @@ -1640,23 +1647,24 @@ msgid "Current Profile:" msgstr "" #: editor/editor_feature_profile.cpp +#, fuzzy msgid "Make Current" -msgstr "" +msgstr "Nuntempigi" #: editor/editor_feature_profile.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/version_control_editor_plugin.cpp msgid "New" -msgstr "" +msgstr "Nova" #: editor/editor_feature_profile.cpp editor/editor_node.cpp #: editor/project_manager.cpp msgid "Import" -msgstr "" +msgstr "Enporti" #: editor/editor_feature_profile.cpp editor/project_export.cpp msgid "Export" -msgstr "" +msgstr "Eksporti" #: editor/editor_feature_profile.cpp msgid "Available Profiles:" @@ -1688,37 +1696,37 @@ msgstr "" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" -msgstr "" +msgstr "Elekti aktualan dosierujon" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "File Exists, Overwrite?" -msgstr "" +msgstr "Dosiero ekzistas, superskribi?" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select This Folder" -msgstr "" +msgstr "Elekti ĉi tiun dosierujon" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "Copy Path" -msgstr "" +msgstr "Kopii vojo" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "Open in File Manager" -msgstr "" +msgstr "Malfermi en dosiermastrumilo" #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/project_manager.cpp msgid "Show in File Manager" -msgstr "" +msgstr "Montri en dosiermastrumilo" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "New Folder..." -msgstr "" +msgstr "Nova dosierujo..." #: editor/editor_file_dialog.cpp #: editor/plugins/version_control_editor_plugin.cpp msgid "Refresh" -msgstr "" +msgstr "Aktualigi" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "All Recognized" @@ -1726,34 +1734,34 @@ msgstr "" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "All Files (*)" -msgstr "" +msgstr "Ĉiuj dosierojn (*)" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Open a File" -msgstr "" +msgstr "Malfermi dosieron" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Open File(s)" -msgstr "" +msgstr "Malfermi dosiero(j)n" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Open a Directory" -msgstr "" +msgstr "Malfermi dosierujon" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Open a File or Directory" -msgstr "" +msgstr "Malfermi dosieron aÅ dosierujon" #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/editor_properties.cpp editor/inspector_dock.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp scene/gui/file_dialog.cpp msgid "Save" -msgstr "" +msgstr "Konservi" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Save a File" -msgstr "" +msgstr "Konservi dosieron" #: editor/editor_file_dialog.cpp msgid "Go Back" @@ -1827,7 +1835,7 @@ msgstr "" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Directories & Files:" -msgstr "" +msgstr "Dosierujoj kaj dosieroj:" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp @@ -1866,6 +1874,7 @@ msgid "Class:" msgstr "" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "" @@ -1922,25 +1931,31 @@ msgid "Property Descriptions" msgstr "" #: editor/editor_help.cpp +#, fuzzy msgid "" "There is currently no description for this property. Please help us by " "[color=$color][url=$url]contributing one[/url][/color]!" msgstr "" +"Tie aktuale ne estas priskribon por ĉi tiun eco. Bonvolu helpi nin per " +"[color=$color][url=$url]kontribui oni[/url][/color]!" #: editor/editor_help.cpp msgid "Method Descriptions" msgstr "" #: editor/editor_help.cpp +#, fuzzy msgid "" "There is currently no description for this method. Please help us by [color=" "$color][url=$url]contributing one[/url][/color]!" msgstr "" +"Tie aktuale ne estas priskribon por ĉi tiun metodo. Bonvolu helpi nin per " +"[color=$color][url=$url]kontribui oni[/url][/color]!" #: editor/editor_help_search.cpp editor/editor_node.cpp #: editor/plugins/script_editor_plugin.cpp msgid "Search Help" -msgstr "" +msgstr "Serĉi helpon" #: editor/editor_help_search.cpp msgid "Display All" @@ -2170,8 +2185,9 @@ msgid "Error trying to save layout!" msgstr "" #: editor/editor_node.cpp +#, fuzzy msgid "Default editor layout overridden." -msgstr "" +msgstr "Automatan aranÄon de editilo transpasis." #: editor/editor_node.cpp msgid "Layout name not found!" @@ -2237,23 +2253,23 @@ msgstr "" #: editor/editor_node.cpp msgid "Quick Open..." -msgstr "" +msgstr "Rapide malfermi..." #: editor/editor_node.cpp msgid "Quick Open Scene..." -msgstr "" +msgstr "Rapide malfermi scenon..." #: editor/editor_node.cpp msgid "Quick Open Script..." -msgstr "" +msgstr "Rapide malfermi skripton..." #: editor/editor_node.cpp msgid "Save & Close" -msgstr "" +msgstr "Konservi kaj fermi" #: editor/editor_node.cpp msgid "Save changes to '%s' before closing?" -msgstr "" +msgstr "Konservi ÅanÄojn al '%s' antaÅ fermo?" #: editor/editor_node.cpp msgid "Saved %s modified resource(s)." @@ -2261,79 +2277,84 @@ msgstr "" #: editor/editor_node.cpp msgid "A root node is required to save the scene." -msgstr "" +msgstr "Radika nodo estas necesita por konservi la scenon." #: editor/editor_node.cpp msgid "Save Scene As..." -msgstr "" +msgstr "Konservi sceno kiel..." #: editor/editor_node.cpp msgid "No" -msgstr "" +msgstr "Ne" #: editor/editor_node.cpp msgid "Yes" -msgstr "" +msgstr "Jes" #: editor/editor_node.cpp +#, fuzzy msgid "This scene has never been saved. Save before running?" -msgstr "" +msgstr "Ĉi tiu sceno konservis neniam. Konservi antaÅ ruli?" #: editor/editor_node.cpp editor/scene_tree_dock.cpp +#, fuzzy msgid "This operation can't be done without a scene." -msgstr "" +msgstr "Ĉi tiu funkciado ne povas fari sen sceno." #: editor/editor_node.cpp +#, fuzzy msgid "Export Mesh Library" -msgstr "" +msgstr "Eksporti maÅajn bibliotekon" #: editor/editor_node.cpp +#, fuzzy msgid "This operation can't be done without a root node." -msgstr "" +msgstr "Ĉi tiu funkciado ne povas fari sen radika nodo." #: editor/editor_node.cpp +#, fuzzy msgid "Export Tile Set" -msgstr "" +msgstr "Eksporti kahelaron" #: editor/editor_node.cpp msgid "This operation can't be done without a selected node." -msgstr "" +msgstr "Ĉi tiun operacion ne ebla fari sen elektita nodo." #: editor/editor_node.cpp msgid "Current scene not saved. Open anyway?" -msgstr "" +msgstr "Nuna sceno ne estas konservita. Malfermi ĉuikaze?" #: editor/editor_node.cpp msgid "Can't reload a scene that was never saved." -msgstr "" +msgstr "Ne povas reÅarÄi scenon, kiu konservis neniam." #: editor/editor_node.cpp msgid "Revert" -msgstr "" +msgstr "Malfari" #: editor/editor_node.cpp msgid "This action cannot be undone. Revert anyway?" -msgstr "" +msgstr "Tiun ĉi agon ne povos malfari. Certe daÅrigi?" #: editor/editor_node.cpp msgid "Quick Run Scene..." -msgstr "" +msgstr "Rapida Ruli scenon..." #: editor/editor_node.cpp msgid "Quit" -msgstr "" +msgstr "Foriri" #: editor/editor_node.cpp msgid "Exit the editor?" -msgstr "" +msgstr "Eliri la editilo?" #: editor/editor_node.cpp msgid "Open Project Manager?" -msgstr "" +msgstr "Malfermi projekton mastrumilon?" #: editor/editor_node.cpp msgid "Save & Quit" -msgstr "" +msgstr "Konservi kaj foriri" #: editor/editor_node.cpp msgid "Save changes to the following scene(s) before quitting?" @@ -2355,11 +2376,11 @@ msgstr "" #: editor/editor_node.cpp msgid "Close Scene" -msgstr "" +msgstr "Fermi scenon" #: editor/editor_node.cpp msgid "Reopen Closed Scene" -msgstr "" +msgstr "Remalfermi ferman scenon" #: editor/editor_node.cpp msgid "Unable to enable addon plugin at: '%s' parsing of config failed." @@ -2445,7 +2466,7 @@ msgstr "" #: editor/editor_node.cpp editor/editor_properties.cpp #: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp msgid "Show in FileSystem" -msgstr "" +msgstr "Montri en dosiersistemo" #: editor/editor_node.cpp msgid "Play This Scene" @@ -2456,8 +2477,9 @@ msgid "Close Tab" msgstr "" #: editor/editor_node.cpp +#, fuzzy msgid "Undo Close Tab" -msgstr "" +msgstr "Malfari fermi langeto" #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp msgid "Close Other Tabs" @@ -2534,35 +2556,36 @@ msgstr "" #: editor/editor_node.cpp msgid "New Scene" -msgstr "" +msgstr "Nova sceno" #: editor/editor_node.cpp msgid "New Inherited Scene..." -msgstr "" +msgstr "Nova heredita sceno..." #: editor/editor_node.cpp msgid "Open Scene..." -msgstr "" +msgstr "Malfermi scenon..." #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp msgid "Open Recent" -msgstr "" +msgstr "Malfermi lastaj" #: editor/editor_node.cpp msgid "Save Scene" -msgstr "" +msgstr "Konservi scenon" #: editor/editor_node.cpp msgid "Save All Scenes" -msgstr "" +msgstr "Konservi ĉiujn scenojn" #: editor/editor_node.cpp +#, fuzzy msgid "Convert To..." -msgstr "" +msgstr "Konverti al..." #: editor/editor_node.cpp msgid "MeshLibrary..." -msgstr "" +msgstr "MaÅo biblioteko..." #: editor/editor_node.cpp msgid "TileSet..." @@ -2571,84 +2594,90 @@ msgstr "" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Undo" -msgstr "" +msgstr "Malfari" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" -msgstr "" +msgstr "Refari" #: editor/editor_node.cpp msgid "Revert Scene" -msgstr "" +msgstr "Malfari scenon" #: editor/editor_node.cpp +#, fuzzy msgid "Miscellaneous project or scene-wide tools." -msgstr "" +msgstr "Diversa projekto aÅ sceno-abundaj iloj." #: editor/editor_node.cpp editor/script_create_dialog.cpp msgid "Project" -msgstr "" +msgstr "Projekto" #: editor/editor_node.cpp msgid "Project Settings..." -msgstr "" +msgstr "Projekta agordoj..." #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +#, fuzzy msgid "Version Control" -msgstr "" +msgstr "Versikontrolo" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +#, fuzzy msgid "Set Up Version Control" -msgstr "" +msgstr "Altlevi versitenan sistemon" #: editor/editor_node.cpp msgid "Shut Down Version Control" -msgstr "" +msgstr "Finigi versitenan sistemon" #: editor/editor_node.cpp -#, fuzzy msgid "Export..." -msgstr "Redaktu..." +msgstr "Eksporti..." #: editor/editor_node.cpp msgid "Install Android Build Template..." -msgstr "" +msgstr "Instali Androidan muntadan Åablonon..." #: editor/editor_node.cpp msgid "Open Project Data Folder" -msgstr "" +msgstr "Malfermi projektan datuman dosierujon" #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" -msgstr "" +msgstr "Iloj" #: editor/editor_node.cpp +#, fuzzy msgid "Orphan Resource Explorer..." -msgstr "" +msgstr "Eksplorilo da orfaj risurcoj..." #: editor/editor_node.cpp msgid "Quit to Project List" -msgstr "" +msgstr "Foriri al projekta listo" #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp #: editor/project_export.cpp msgid "Debug" -msgstr "" +msgstr "Sencimigi" #: editor/editor_node.cpp msgid "Deploy with Remote Debug" -msgstr "" +msgstr "Malfaldi kun defora sencimigo" #: editor/editor_node.cpp msgid "" "When exporting or deploying, the resulting executable will attempt to " "connect to the IP of this computer in order to be debugged." msgstr "" +"Kiam eksportas aÅ malfaldas, la rezulta plenumebla provos konekti al la IP " +"de ĉi tiu komputilo por estos sencimigita." #: editor/editor_node.cpp +#, fuzzy msgid "Small Deploy with Network FS" -msgstr "" +msgstr "Malgranda malfaldo kun reta dosiersistemo" #: editor/editor_node.cpp msgid "" @@ -2659,30 +2688,39 @@ msgid "" "On Android, deploy will use the USB cable for faster performance. This " "option speeds up testing for games with a large footprint." msgstr "" +"Kiam ĉi tiun agordon estas Åaltita, eksporti aÅ malfaldi produktos minimuman " +"plenumeblan dosieron.\n" +"La dosiersistemon disponigas el la projekto fare de editilo per la reto.\n" +"En Android, malfaldo uzantos la USB-kablon por pli rapida rendimento. Ĉi tui " +"agordo rapidigas testadon por ludoj kun larÄa areo." #: editor/editor_node.cpp msgid "Visible Collision Shapes" -msgstr "" +msgstr "Videblaj koliziaj formoj" #: editor/editor_node.cpp msgid "" "Collision shapes and raycast nodes (for 2D and 3D) will be visible on the " "running game if this option is turned on." msgstr "" +"Koliziaj formoj kaj radĵetaj nodoj (por 2D kaj 3D) estos videblaj en la " +"rulas ludo, se ĉi tiu agordo estas Åaltita." #: editor/editor_node.cpp msgid "Visible Navigation" -msgstr "" +msgstr "Videbla navigacio" #: editor/editor_node.cpp msgid "" "Navigation meshes and polygons will be visible on the running game if this " "option is turned on." msgstr "" +"Navigaciaj maÅoj kaj poligonoj estos videblaj en la rulas ludo, se ĉi tiu " +"agordo estas Åaltita." #: editor/editor_node.cpp msgid "Sync Scene Changes" -msgstr "" +msgstr "Sinkronigi scenan ÅanÄojn" #: editor/editor_node.cpp msgid "" @@ -2691,10 +2729,13 @@ msgid "" "When used remotely on a device, this is more efficient with network " "filesystem." msgstr "" +"Kiam tuin ĉi agordo estas Åaltita, iuj ÅanÄoj ke faris al la scenon en la " +"editilo replikos en la rulas ludo.\n" +"Kiam uzantis malproksime en aparato, estas pli efika kun reta dosiersistemo." #: editor/editor_node.cpp msgid "Sync Script Changes" -msgstr "" +msgstr "Sinkronigi skriptajn ÅanÄojn" #: editor/editor_node.cpp msgid "" @@ -2703,6 +2744,9 @@ msgid "" "When used remotely on a device, this is more efficient with network " "filesystem." msgstr "" +"Kiam tuin ĉi agordo estas Åaltita, iun skripton ke konservita, estos " +"reÅarÄita en la rulas ludo.\n" +"Kiam uzantis malproksime en aparato, estas pli efika kun reta dosiersistemo." #: editor/editor_node.cpp editor/script_create_dialog.cpp msgid "Editor" @@ -2710,15 +2754,15 @@ msgstr "" #: editor/editor_node.cpp msgid "Editor Settings..." -msgstr "" +msgstr "Editila agordoj..." #: editor/editor_node.cpp msgid "Editor Layout" -msgstr "" +msgstr "AranÄon de editilo" #: editor/editor_node.cpp msgid "Take Screenshot" -msgstr "" +msgstr "Ekranfoti" #: editor/editor_node.cpp msgid "Screenshots are stored in the Editor Data/Settings Folder." @@ -2726,7 +2770,7 @@ msgstr "" #: editor/editor_node.cpp msgid "Toggle Fullscreen" -msgstr "" +msgstr "Baskuli plenekranon" #: editor/editor_node.cpp msgid "Toggle System Console" @@ -2734,27 +2778,27 @@ msgstr "" #: editor/editor_node.cpp msgid "Open Editor Data/Settings Folder" -msgstr "" +msgstr "Malfermi dosierujon de editilan datumoj/agordoj" #: editor/editor_node.cpp msgid "Open Editor Data Folder" -msgstr "" +msgstr "Malfermi dosierujon de editila datumoj" #: editor/editor_node.cpp msgid "Open Editor Settings Folder" -msgstr "" +msgstr "Malfermi dosierujon de editila agordoj" #: editor/editor_node.cpp msgid "Manage Editor Features..." -msgstr "" +msgstr "Mastrumi editilan eblecoj..." #: editor/editor_node.cpp msgid "Manage Export Templates..." -msgstr "" +msgstr "Mastrumi eksportaj Åablonoj..." #: editor/editor_node.cpp editor/plugins/shader_editor_plugin.cpp msgid "Help" -msgstr "" +msgstr "Helpo" #: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp @@ -2763,12 +2807,13 @@ msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" -msgstr "" +msgstr "Serĉo" #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/shader_editor_plugin.cpp +#, fuzzy msgid "Online Docs" -msgstr "" +msgstr "Enreta dokoj" #: editor/editor_node.cpp msgid "Q&A" @@ -2850,7 +2895,7 @@ msgstr "" #: editor/editor_node.cpp msgid "FileSystem" -msgstr "" +msgstr "Dosiersistemo" #: editor/editor_node.cpp msgid "Inspector" @@ -2860,7 +2905,7 @@ msgstr "" msgid "Expand Bottom Panel" msgstr "" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "" @@ -2917,7 +2962,7 @@ msgstr "" #: editor/editor_node.cpp msgid "Open & Run a Script" -msgstr "" +msgstr "Malfermi & ruli skripto" #: editor/editor_node.cpp msgid "New Inherited" @@ -3097,6 +3142,10 @@ msgstr "" msgid "New Script" msgstr "" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +msgid "Extend Script" +msgstr "" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "" @@ -3123,13 +3172,6 @@ msgstr "" msgid "Convert To %s" msgstr "" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Open Editor" -msgstr "" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "" @@ -3167,7 +3209,7 @@ msgstr "" #: editor/editor_run_script.cpp msgid "Write your logic in the _run() method." -msgstr "" +msgstr "Skribu vian logikon en la _run() metodo." #: editor/editor_run_script.cpp msgid "There is an edited scene already." @@ -3183,19 +3225,20 @@ msgstr "" #: editor/editor_run_script.cpp msgid "Couldn't run script:" -msgstr "" +msgstr "Ne povis ruli skripto:" #: editor/editor_run_script.cpp msgid "Did you forget the '_run' method?" -msgstr "" +msgstr "Ĉu vi forgesis la '_run' metodo?" #: editor/editor_sub_scene.cpp +#, fuzzy msgid "Select Node(s) to Import" -msgstr "" +msgstr "Selektu nodo(j)n por enporti" #: editor/editor_sub_scene.cpp editor/project_manager.cpp msgid "Browse" -msgstr "" +msgstr "Foliumi" #: editor/editor_sub_scene.cpp msgid "Scene Path:" @@ -3203,11 +3246,11 @@ msgstr "" #: editor/editor_sub_scene.cpp msgid "Import From Node:" -msgstr "" +msgstr "Enporti el nodo:" #: editor/export_template_manager.cpp msgid "Redownload" -msgstr "" +msgstr "ReelÅuti" #: editor/export_template_manager.cpp msgid "Uninstall" @@ -3220,7 +3263,7 @@ msgstr "" #: editor/export_template_manager.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Download" -msgstr "" +msgstr "ElÅuti" #: editor/export_template_manager.cpp msgid "Official export templates aren't available for development builds." @@ -3462,7 +3505,7 @@ msgstr "" #: editor/filesystem_dock.cpp msgid "New Inherited Scene" -msgstr "" +msgstr "Nova heredita sceno" #: editor/filesystem_dock.cpp msgid "Open Scenes" @@ -3502,7 +3545,7 @@ msgstr "" #: editor/filesystem_dock.cpp msgid "New Scene..." -msgstr "" +msgstr "Nova sceno..." #: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp msgid "New Script..." @@ -3527,7 +3570,7 @@ msgstr "" #: editor/project_manager.cpp editor/rename_dialog.cpp #: editor/scene_tree_dock.cpp msgid "Rename" -msgstr "" +msgstr "Renomi" #: editor/filesystem_dock.cpp msgid "Previous Folder/File" @@ -3539,7 +3582,7 @@ msgstr "" #: editor/filesystem_dock.cpp msgid "Re-Scan Filesystem" -msgstr "" +msgstr "Reesplori dosiersistemo" #: editor/filesystem_dock.cpp msgid "Toggle Split Mode" @@ -3547,7 +3590,7 @@ msgstr "" #: editor/filesystem_dock.cpp msgid "Search files" -msgstr "" +msgstr "Serĉi dosieroj" #: editor/filesystem_dock.cpp msgid "" @@ -3565,173 +3608,176 @@ msgstr "" #: editor/filesystem_dock.cpp msgid "Overwrite" -msgstr "" +msgstr "Superskribi" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Create Scene" -msgstr "Krei" +msgstr "Krei scenon" #: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp msgid "Create Script" -msgstr "" +msgstr "Krei skripton" #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp msgid "Find in Files" -msgstr "" +msgstr "Trovi en dosierojn" #: editor/find_in_files.cpp msgid "Find:" -msgstr "" +msgstr "Trovi:" #: editor/find_in_files.cpp msgid "Folder:" -msgstr "" +msgstr "Dosierujo:" #: editor/find_in_files.cpp msgid "Filters:" -msgstr "" +msgstr "Filtriloj:" #: editor/find_in_files.cpp msgid "" "Include the files with the following extensions. Add or remove them in " "ProjectSettings." msgstr "" +"Anigu la dosierojn kun la jenajn sufiksojn. Aldonu aÅ viÅi ilin en Projekto " +"agordoj." #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." -msgstr "" +msgstr "Trovi..." #: editor/find_in_files.cpp editor/plugins/script_text_editor.cpp msgid "Replace..." -msgstr "" +msgstr "AnstataÅigi..." #: editor/find_in_files.cpp editor/progress_dialog.cpp scene/gui/dialogs.cpp msgid "Cancel" -msgstr "" +msgstr "Rezigni" #: editor/find_in_files.cpp msgid "Find: " -msgstr "" +msgstr "Trovi: " #: editor/find_in_files.cpp msgid "Replace: " -msgstr "" +msgstr "AnstataÅigi: " #: editor/find_in_files.cpp msgid "Replace all (no undo)" -msgstr "" +msgstr "AnstataÅigi ciujn (senrevene)" #: editor/find_in_files.cpp msgid "Searching..." -msgstr "" +msgstr "Serĉas..." #: editor/find_in_files.cpp msgid "Search complete" -msgstr "" +msgstr "Serĉo finiÄis" #: editor/groups_editor.cpp msgid "Add to Group" -msgstr "" +msgstr "Aldoni al grupo" #: editor/groups_editor.cpp msgid "Remove from Group" -msgstr "" +msgstr "Forigi el grupo" #: editor/groups_editor.cpp msgid "Group name already exists." -msgstr "" +msgstr "Grupa nomo jam ekzistas." #: editor/groups_editor.cpp msgid "Invalid group name." -msgstr "" +msgstr "Nevalida grupa nomo." #: editor/groups_editor.cpp msgid "Rename Group" -msgstr "" +msgstr "Renomi grupon" #: editor/groups_editor.cpp msgid "Delete Group" -msgstr "" +msgstr "ViÅi grupon" #: editor/groups_editor.cpp editor/node_dock.cpp msgid "Groups" -msgstr "" +msgstr "Grupoj" #: editor/groups_editor.cpp +#, fuzzy msgid "Nodes Not in Group" -msgstr "" +msgstr "Nodoj ne en grupo" #: editor/groups_editor.cpp editor/scene_tree_dock.cpp #: editor/scene_tree_editor.cpp msgid "Filter nodes" -msgstr "" +msgstr "Filtri nodojn" #: editor/groups_editor.cpp msgid "Nodes in Group" -msgstr "" +msgstr "Nodoj en grupo" #: editor/groups_editor.cpp msgid "Empty groups will be automatically removed." -msgstr "" +msgstr "Malplenajn grupojn viÅos aÅtomate." #: editor/groups_editor.cpp msgid "Group Editor" -msgstr "" +msgstr "Grupredaktilo" #: editor/groups_editor.cpp +#, fuzzy msgid "Manage Groups" -msgstr "" +msgstr "Administri grupojn" #: editor/import/resource_importer_scene.cpp msgid "Import as Single Scene" -msgstr "" +msgstr "Enporti kiel unuopa sceno" #: editor/import/resource_importer_scene.cpp msgid "Import with Separate Animations" -msgstr "" +msgstr "Enporti kun aparta movbildoj" #: editor/import/resource_importer_scene.cpp msgid "Import with Separate Materials" -msgstr "" +msgstr "Enporti kun aparta materialoj" #: editor/import/resource_importer_scene.cpp msgid "Import with Separate Objects" -msgstr "" +msgstr "Enporti kun aparta objektoj" #: editor/import/resource_importer_scene.cpp msgid "Import with Separate Objects+Materials" -msgstr "" +msgstr "Enporti kun aparta objektoj+materialoj" #: editor/import/resource_importer_scene.cpp msgid "Import with Separate Objects+Animations" -msgstr "" +msgstr "Enporti kun aparta objektoj+movbildoj" #: editor/import/resource_importer_scene.cpp msgid "Import with Separate Materials+Animations" -msgstr "" +msgstr "Enporti kun aparta materialoj+movbildoj" #: editor/import/resource_importer_scene.cpp msgid "Import with Separate Objects+Materials+Animations" -msgstr "" +msgstr "Enporti kun aparta objektoj+materialoj+movbildoj" #: editor/import/resource_importer_scene.cpp msgid "Import as Multiple Scenes" -msgstr "" +msgstr "Enporti kiel multoblaj scenoj" #: editor/import/resource_importer_scene.cpp msgid "Import as Multiple Scenes+Materials" -msgstr "" +msgstr "Enporti kiel multoblaj scenoj+materialoj" #: editor/import/resource_importer_scene.cpp #: editor/plugins/mesh_library_editor_plugin.cpp msgid "Import Scene" -msgstr "" +msgstr "Enporti scenon" #: editor/import/resource_importer_scene.cpp msgid "Importing Scene..." -msgstr "" +msgstr "Enportas scenon..." #: editor/import/resource_importer_scene.cpp msgid "Generating Lightmaps" @@ -3742,8 +3788,9 @@ msgid "Generating for Mesh: " msgstr "" #: editor/import/resource_importer_scene.cpp +#, fuzzy msgid "Running Custom Script..." -msgstr "" +msgstr "Rulas propra skripto..." #: editor/import/resource_importer_scene.cpp msgid "Couldn't load post-import script:" @@ -3841,7 +3888,7 @@ msgstr "" #: editor/inspector_dock.cpp msgid "Open in Help" -msgstr "" +msgstr "Malfermi en helpo" #: editor/inspector_dock.cpp msgid "Create a new resource in memory and edit it." @@ -3903,7 +3950,7 @@ msgstr "" msgid "Subfolder:" msgstr "" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "" @@ -4038,6 +4085,12 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Open Editor" +msgstr "" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp msgid "Open Animation Node" msgstr "" @@ -4223,8 +4276,9 @@ msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy msgid "Rename Animation" -msgstr "" +msgstr "Renomi animaĵon" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Blend Next Changed" @@ -4379,7 +4433,6 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "" @@ -4547,6 +4600,8 @@ msgid "Current:" msgstr "" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "" @@ -4717,11 +4772,11 @@ msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install..." -msgstr "" +msgstr "Instali..." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Retry" -msgstr "" +msgstr "Reprovi" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Download Error" @@ -4752,6 +4807,10 @@ msgid "All" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp msgid "Import..." msgstr "" @@ -4761,7 +4820,7 @@ msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" -msgstr "" +msgstr "Ordigi:" #: editor/plugins/asset_library_editor_plugin.cpp #: editor/project_settings_editor.cpp @@ -5032,20 +5091,23 @@ msgid "Ruler Mode" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Toggle snapping." +msgid "Toggle smart snapping." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +msgid "Use Smart Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snapping Options" +msgid "Toggle grid snapping." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to Grid" +msgid "Use Grid Snap" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snapping Options" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5135,13 +5197,12 @@ msgid "View" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +msgid "Always Show Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Show Helpers" -msgstr "" +msgstr "Montri helpantoj" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Show Rulers" @@ -5396,6 +5457,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/curve_editor_plugin.cpp +msgid "Right click to add point" +msgstr "" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "" @@ -6026,6 +6091,10 @@ msgid "Grid" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Configure Grid:" msgstr "" @@ -6058,8 +6127,9 @@ msgid "Add Resource" msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp +#, fuzzy msgid "Rename Resource" -msgstr "" +msgstr "Renomi risurcon" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6082,6 +6152,7 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "" @@ -6180,6 +6251,11 @@ msgid "Find Next" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Filter scripts" msgstr "" @@ -6274,7 +6350,7 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" -msgstr "" +msgstr "Ruli" #: editor/plugins/script_editor_plugin.cpp msgid "Toggle Scripts Panel" @@ -6314,12 +6390,14 @@ msgid "Request Docs" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#, fuzzy msgid "Help improve the Godot documentation by giving feedback." -msgstr "" +msgstr "Helpi plibonigi la Godotan dokumentadon per doni reagon." #: editor/plugins/script_editor_plugin.cpp +#, fuzzy msgid "Search the reference documentation." -msgstr "" +msgstr "Serĉi la referencan dokumentadon." #: editor/plugins/script_editor_plugin.cpp msgid "Go to previous edited document." @@ -6355,7 +6433,7 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp msgid "Search Results" -msgstr "" +msgstr "Rezultoj de serĉo" #: editor/plugins/script_editor_plugin.cpp msgid "Clear Recent Scripts" @@ -6396,7 +6474,7 @@ msgstr "" #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." -msgstr "" +msgstr "Nur risurcoj el dosiersistemo povas esti forigita." #: editor/plugins/script_text_editor.cpp msgid "Lookup Symbol" @@ -6445,6 +6523,11 @@ msgstr "" msgid "Cut" msgstr "" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "Elektaro ĉiuj" + #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "" @@ -6503,16 +6586,12 @@ msgid "Auto Indent" msgstr "" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "" - -#: editor/plugins/script_text_editor.cpp msgid "Find in Files..." msgstr "" #: editor/plugins/script_text_editor.cpp msgid "Contextual Help" -msgstr "" +msgstr "Kunteksta Helpo" #: editor/plugins/script_text_editor.cpp msgid "Toggle Bookmark" @@ -6826,6 +6905,10 @@ msgid "Freelook Speed Modifier" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Slow Modifier" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -6859,6 +6942,10 @@ msgid "Use Local Space" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "" @@ -7085,6 +7172,10 @@ msgid "Simplification: " msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Shrink (Pixels): " +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "" @@ -7795,7 +7886,7 @@ msgstr "ÅœanÄu" #: editor/plugins/version_control_editor_plugin.cpp msgid "Modified" -msgstr "" +msgstr "Modifita" #: editor/plugins/version_control_editor_plugin.cpp msgid "Renamed" @@ -7852,11 +7943,7 @@ msgid "(GLES3 only)" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add input +" -msgstr "" - -#: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add output +" +msgid "Add Output" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -7872,6 +7959,10 @@ msgid "Boolean" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sampler" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add input port" msgstr "" @@ -8728,12 +8819,14 @@ msgstr "" #: editor/project_export.cpp msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp @@ -8802,7 +8895,7 @@ msgstr "" #: editor/project_export.cpp msgid "Manage Export Templates" -msgstr "" +msgstr "Mastrumi eksportaj Åablonoj" #: editor/project_export.cpp msgid "Export With Debug" @@ -8818,7 +8911,7 @@ msgstr "" #: editor/project_manager.cpp msgid "Please choose an empty folder." -msgstr "" +msgstr "Bonvolu, elektu malplenan dosierujon." #: editor/project_manager.cpp msgid "Please choose a 'project.godot' or '.zip' file." @@ -8830,7 +8923,7 @@ msgstr "" #: editor/project_manager.cpp msgid "New Game Project" -msgstr "" +msgstr "Nova luda projekto" #: editor/project_manager.cpp msgid "Imported Project" @@ -8842,7 +8935,7 @@ msgstr "" #: editor/project_manager.cpp msgid "Couldn't create folder." -msgstr "" +msgstr "Ne povis krei dosierujon." #: editor/project_manager.cpp msgid "There is already a folder in this path with the specified name." @@ -8876,7 +8969,7 @@ msgstr "" #: editor/project_manager.cpp msgid "Rename Project" -msgstr "" +msgstr "Renomi projekton" #: editor/project_manager.cpp msgid "Import Existing Project" @@ -8888,59 +8981,70 @@ msgstr "" #: editor/project_manager.cpp msgid "Create New Project" -msgstr "" +msgstr "Krei novan projekton" #: editor/project_manager.cpp msgid "Create & Edit" -msgstr "" +msgstr "Krei kaj editi" #: editor/project_manager.cpp msgid "Install Project:" -msgstr "" +msgstr "Instali projekton:" #: editor/project_manager.cpp msgid "Install & Edit" -msgstr "" +msgstr "Instali kaj editi" #: editor/project_manager.cpp msgid "Project Name:" -msgstr "" +msgstr "Projekta nomo:" #: editor/project_manager.cpp msgid "Project Path:" -msgstr "" +msgstr "Projekta vojo:" #: editor/project_manager.cpp +#, fuzzy msgid "Project Installation Path:" -msgstr "" +msgstr "Projekta instala vojo:" #: editor/project_manager.cpp msgid "Renderer:" -msgstr "" +msgstr "Bildigilo:" #: editor/project_manager.cpp msgid "OpenGL ES 3.0" msgstr "" #: editor/project_manager.cpp +#, fuzzy msgid "" "Higher visual quality\n" "All features available\n" "Incompatible with older hardware\n" "Not recommended for web games" msgstr "" +"Pli alta vida kvalito\n" +"Ĉiuj ebloj disponeblaj\n" +"Nekongruas kun pli malnova aparataro\n" +"Nerekomendita por teksaĵaj ludoj" #: editor/project_manager.cpp msgid "OpenGL ES 2.0" msgstr "" #: editor/project_manager.cpp +#, fuzzy msgid "" "Lower visual quality\n" "Some features not available\n" "Works on most hardware\n" "Recommended for web games" msgstr "" +"Pli malalta vida kvalito\n" +"Iom ebloj ne disponeblaj\n" +"Laboras en plej multaj aparataroj\n" +"Rekomendita por teksaĵaj ludoj" #: editor/project_manager.cpp msgid "Renderer can be changed later, but scenes may need to be adjusted." @@ -8951,20 +9055,23 @@ msgid "Unnamed Project" msgstr "" #: editor/project_manager.cpp +#, fuzzy msgid "Missing Project" -msgstr "" +msgstr "Malkanta projekto" #: editor/project_manager.cpp +#, fuzzy msgid "Error: Project is missing on the filesystem." -msgstr "" +msgstr "Eraro: projekto estas manka en la dosiersistemo." #: editor/project_manager.cpp msgid "Can't open project at '%s'." -msgstr "" +msgstr "Ne povas malfermi projekto ĉe '%s'." #: editor/project_manager.cpp +#, fuzzy msgid "Are you sure to open more than one project?" -msgstr "" +msgstr "Ĉu vi certa en malfermaĵo pli ol unun projekton?" #: editor/project_manager.cpp msgid "" @@ -9050,19 +9157,19 @@ msgstr "" #: editor/project_manager.cpp msgid "Projects" -msgstr "" +msgstr "Projektoj" #: editor/project_manager.cpp msgid "Scan" -msgstr "" +msgstr "Esplori" #: editor/project_manager.cpp msgid "Select a Folder to Scan" -msgstr "" +msgstr "Elektu dosierujo por esploro" #: editor/project_manager.cpp msgid "New Project" -msgstr "" +msgstr "Nova projekto" #: editor/project_manager.cpp msgid "Remove Missing" @@ -9070,7 +9177,7 @@ msgstr "" #: editor/project_manager.cpp msgid "Templates" -msgstr "" +msgstr "Åœablonoj" #: editor/project_manager.cpp msgid "Restart Now" @@ -9708,7 +9815,7 @@ msgstr "" #: editor/scene_tree_dock.cpp msgid "Save New Scene As..." -msgstr "" +msgstr "Konservi novan scenon kiel..." #: editor/scene_tree_dock.cpp msgid "" @@ -9717,11 +9824,9 @@ msgid "" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." msgstr "" #: editor/scene_tree_dock.cpp @@ -9730,7 +9835,7 @@ msgstr "" #: editor/scene_tree_dock.cpp msgid "New Scene Root" -msgstr "" +msgstr "Nova radiko de sceno" #: editor/scene_tree_dock.cpp msgid "Create Root Node:" @@ -9795,6 +9900,14 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "" + +#: editor/scene_tree_dock.cpp msgid "Open Documentation" msgstr "" @@ -9811,10 +9924,6 @@ msgid "Change Type" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Extend Script" -msgstr "" - -#: editor/scene_tree_dock.cpp msgid "Reparent to New Node" msgstr "" @@ -9938,7 +10047,7 @@ msgstr "" #: editor/scene_tree_editor.cpp msgid "Rename Node" -msgstr "" +msgstr "Renomi nodon" #: editor/scene_tree_editor.cpp msgid "Scene Tree (Nodes):" @@ -9986,7 +10095,7 @@ msgstr "" #: editor/script_create_dialog.cpp msgid "Error - Could not create script in filesystem." -msgstr "" +msgstr "Eraro - Ne povis krei skripton en dosiersistemo." #: editor/script_create_dialog.cpp msgid "Error loading script from %s" @@ -10041,24 +10150,19 @@ msgid "Will load an existing script file." msgstr "" #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Inherits" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Class Name" -msgstr "" +#, fuzzy +msgid "Class Name:" +msgstr "Nomo:" #: editor/script_create_dialog.cpp -msgid "Template" -msgstr "" +#, fuzzy +msgid "Template:" +msgstr "Åœablonoj" #: editor/script_create_dialog.cpp -msgid "Built-in Script" -msgstr "" +#, fuzzy +msgid "Built-in Script:" +msgstr "Konektu al skripto:" #: editor/script_create_dialog.cpp msgid "Attach Node Script" @@ -10680,21 +10784,27 @@ msgstr "" #: modules/visual_script/visual_script_editor.cpp msgid "Rename Function" -msgstr "" +msgstr "Renomi funkcion" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Rename Variable" -msgstr "" +msgstr "Renomi variablon" #: modules/visual_script/visual_script_editor.cpp msgid "Rename Signal" -msgstr "" +msgstr "Renomi signalon" #: modules/visual_script/visual_script_editor.cpp msgid "Add Function" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Delete input port" +msgstr "ViÅi grupon" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "" @@ -10703,6 +10813,22 @@ msgid "Add Signal" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Add Input Port" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Add Output Port" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Remove Input Port" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Remove Output Port" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "" @@ -10743,10 +10869,20 @@ msgid "Add Preload Node" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "" @@ -10771,6 +10907,11 @@ msgid "Connect Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Disconnect Nodes" +msgstr "Malkonekti" + +#: modules/visual_script/visual_script_editor.cpp msgid "Connect Node Data" msgstr "" @@ -10803,6 +10944,27 @@ msgid "Paste VisualScript Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function with a function node." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Create Function" +msgstr "Renomi funkcion" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "" @@ -10827,16 +10989,13 @@ msgid "Make Tool:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" -msgstr "" +#, fuzzy +msgid "function_name" +msgstr "Funkcioj:" #: modules/visual_script/visual_script_editor.cpp msgid "Select or create a function to edit its graph." @@ -10859,6 +11018,16 @@ msgid "Cut Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Make Function" +msgstr "Renomi funkcion" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Refresh Graph" +msgstr "Aktualigi" + +#: modules/visual_script/visual_script_editor.cpp msgid "Edit Member" msgstr "" @@ -10953,6 +11122,10 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "" @@ -11052,10 +11225,14 @@ msgid "Required icon is not specified in the preset." msgstr "" #: platform/javascript/export/export.cpp -msgid "Run in Browser" +msgid "Stop HTTP Server" msgstr "" #: platform/javascript/export/export.cpp +msgid "Run in Browser" +msgstr "Ruli en foliumilo" + +#: platform/javascript/export/export.cpp msgid "Run exported HTML in the system's default browser." msgstr "" @@ -11589,10 +11766,6 @@ msgid "" "texture to some node for display." msgstr "" -#: scene/resources/visual_shader.cpp -msgid "Input" -msgstr "Enigo" - #: scene/resources/visual_shader_nodes.cpp #, fuzzy msgid "Invalid source for preview." @@ -11623,6 +11796,9 @@ msgstr "" msgid "Constants cannot be modified." msgstr "" +#~ msgid "Input" +#~ msgstr "Enigo" + #~ msgid "No Matches" #~ msgstr "Ne Rezultoj" diff --git a/editor/translations/es.po b/editor/translations/es.po index 8479f11639..7966399033 100644 --- a/editor/translations/es.po +++ b/editor/translations/es.po @@ -40,11 +40,12 @@ # juan david julio <illus.kun@gmail.com>, 2019. # Patrick Zoch Alves <patrickzochalves@gmail.com>, 2019. # roger <616steam@gmail.com>, 2019. +# Dario <darlex259@gmail.com>, 2019. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-09-07 13:51+0000\n" +"PO-Revision-Date: 2019-10-11 15:07+0000\n" "Last-Translator: Javier Ocampos <xavier.ocampos@gmail.com>\n" "Language-Team: Spanish <https://hosted.weblate.org/projects/godot-engine/" "godot/es/>\n" @@ -97,32 +98,31 @@ msgstr "En llamada a '%s':" #: core/ustring.cpp msgid "B" -msgstr "" +msgstr "B" #: core/ustring.cpp msgid "KiB" -msgstr "" +msgstr "KiB" #: core/ustring.cpp -#, fuzzy msgid "MiB" -msgstr "Mix" +msgstr "MiB" #: core/ustring.cpp msgid "GiB" -msgstr "" +msgstr "GiB" #: core/ustring.cpp msgid "TiB" -msgstr "" +msgstr "TiB" #: core/ustring.cpp msgid "PiB" -msgstr "" +msgstr "PiB" #: core/ustring.cpp msgid "EiB" -msgstr "" +msgstr "EiB" #: editor/animation_bezier_editor.cpp msgid "Free" @@ -388,6 +388,7 @@ msgstr "¿Crear %d nuevas pistas e insertar claves?" #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "Crear" @@ -534,20 +535,9 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "Advertencia: Edición de animación importada" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "Seleccionar Todo" - -#: editor/animation_track_editor.cpp -msgid "Select None" -msgstr "Deseleccionar todo" - #: editor/animation_track_editor.cpp -#, fuzzy msgid "Select an AnimationPlayer node to create and edit animations." -msgstr "" -"No hay asignada una ruta a un nodo AnimationPlayer conteniendo animaciones." +msgstr "Selecciona un nodo AnimationPlayer para crear y editar animaciones." #: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." @@ -679,7 +669,8 @@ msgid "Scale Ratio:" msgstr "Ratio de Escala:" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" +#, fuzzy +msgid "Select Tracks to Copy" msgstr "Elegir pistas a copiar:" #: editor/animation_track_editor.cpp editor/editor_log.cpp @@ -691,6 +682,11 @@ msgstr "Elegir pistas a copiar:" msgid "Copy" msgstr "Copiar" +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Select All/None" +msgstr "Deseleccionar todo" + #: editor/animation_track_editor_plugins.cpp msgid "Add Audio Track Clip" msgstr "Añadir Clip de Pista de Audio" @@ -1017,7 +1013,7 @@ msgid "Resource" msgstr "Recursos" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "Ruta" @@ -1288,9 +1284,8 @@ msgid "Delete Bus Effect" msgstr "Eliminar Efecto de Bus" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Drag & drop to rearrange." -msgstr "Bus de audio, arrastra y suelta para reordenar." +msgstr "Arrastrar y soltar para reordenar." #: editor/editor_audio_buses.cpp msgid "Solo" @@ -1481,7 +1476,8 @@ msgstr "Añadir AutoLoad" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "Ruta:" @@ -1535,7 +1531,7 @@ msgstr "Crear Carpeta" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "Nombre:" @@ -1935,6 +1931,7 @@ msgid "Class:" msgstr "Clase:" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "Hereda:" @@ -1943,9 +1940,8 @@ msgid "Inherited by:" msgstr "Heredada por:" #: editor/editor_help.cpp -#, fuzzy msgid "Brief Description" -msgstr "Descripción Breve:" +msgstr "Descripción Breve" #: editor/editor_help.cpp msgid "Properties" @@ -1976,9 +1972,8 @@ msgid "Class Description" msgstr "Descripción de la Clase" #: editor/editor_help.cpp -#, fuzzy msgid "Online Tutorials" -msgstr "Tutoriales en lÃnea:" +msgstr "Tutoriales en lÃnea" #: editor/editor_help.cpp msgid "" @@ -2104,7 +2099,7 @@ msgstr "Iniciar" #: editor/editor_network_profiler.cpp msgid "%s/s" -msgstr "" +msgstr "%s/s" #: editor/editor_network_profiler.cpp msgid "Down" @@ -2120,19 +2115,19 @@ msgstr "Nodos" #: editor/editor_network_profiler.cpp msgid "Incoming RPC" -msgstr "" +msgstr "RPC Entrante" #: editor/editor_network_profiler.cpp msgid "Incoming RSET" -msgstr "" +msgstr "RSET Entrante" #: editor/editor_network_profiler.cpp msgid "Outgoing RPC" -msgstr "" +msgstr "RPC Saliente" #: editor/editor_network_profiler.cpp msgid "Outgoing RSET" -msgstr "" +msgstr "RSET Saliente" #: editor/editor_node.cpp editor/project_manager.cpp msgid "New Window" @@ -2729,17 +2724,16 @@ msgid "Project Settings..." msgstr "Ajustes del Proyecto..." #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Version Control" -msgstr "Versión:" +msgstr "Control de Versiones" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Set Up Version Control" -msgstr "" +msgstr "Configurar Control de Versiones" #: editor/editor_node.cpp msgid "Shut Down Version Control" -msgstr "" +msgstr "Desactivar Control de Versiones" #: editor/editor_node.cpp msgid "Export..." @@ -3014,7 +3008,7 @@ msgstr "Inspector" msgid "Expand Bottom Panel" msgstr "Expandir Panel Inferior" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "Salida" @@ -3042,9 +3036,14 @@ msgid "" "the \"Use Custom Build\" option should be enabled in the Android export " "preset." msgstr "" +"Una vez hecho ésto puedes aplicar modificaciones y generar tu propio APK " +"personalizado al exportar (agregar módulos, cambiar el AndroidManifest.xml, " +"etc.).\n" +"Ten en cuenta que para generar builds personalizados en vez de usar los APKs " +"pregenerados, la opción \"Usar Build Personalizado\" deberÃa estar activada " +"en el preset de exportación de Android." #: editor/editor_node.cpp -#, fuzzy msgid "" "The Android build template is already installed in this project and it won't " "be overwritten.\n" @@ -3053,8 +3052,8 @@ msgid "" msgstr "" "La plantilla de compilación de Android ya está instalada y no se " "sobrescribirá.\n" -"Elimina el directorio \"build\" manualmente antes de intentar esta operación " -"nuevamente." +"Elimina el directorio \"res://android/build\" manualmente antes de intentar " +"esta operación nuevamente." #: editor/editor_node.cpp msgid "Import Templates From ZIP File" @@ -3117,9 +3116,8 @@ msgid "Open the previous Editor" msgstr "Abrir Editor anterior" #: editor/editor_path.cpp -#, fuzzy msgid "No sub-resources found." -msgstr "Ningún origen para la superficie especificado." +msgstr "No se encontró ningún sub-recurso." #: editor/editor_plugin.cpp msgid "Creating Mesh Previews" @@ -3130,9 +3128,8 @@ msgid "Thumbnail..." msgstr "Miniatura..." #: editor/editor_plugin_settings.cpp -#, fuzzy msgid "Main Script:" -msgstr "Abrir Script:" +msgstr "Script Principal:" #: editor/editor_plugin_settings.cpp msgid "Edit Plugin" @@ -3268,6 +3265,10 @@ msgstr "Selecciona un Viewport" msgid "New Script" msgstr "Nuevo Script" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +msgid "Extend Script" +msgstr "Extender Script" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "Nuevo %s" @@ -3294,13 +3295,6 @@ msgstr "Pegar" msgid "Convert To %s" msgstr "Convertir a %s" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Open Editor" -msgstr "Abrir Editor" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "¡El nodo seleccionado no es un Viewport!" @@ -3965,9 +3959,8 @@ msgid "Import As:" msgstr "Importar como:" #: editor/import_dock.cpp -#, fuzzy msgid "Preset" -msgstr "Ajustes preestablecidos" +msgstr "Preset" #: editor/import_dock.cpp msgid "Reimport" @@ -4093,7 +4086,7 @@ msgstr "Nombre del Plugin:" msgid "Subfolder:" msgstr "Subcarpeta:" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "Lenguaje:" @@ -4235,6 +4228,12 @@ msgstr "Punto" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Open Editor" +msgstr "Abrir Editor" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp msgid "Open Animation Node" msgstr "Abrir Nodo de Animación" @@ -4586,7 +4585,6 @@ msgstr "Nombre de Animación:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "¡Error!" @@ -4759,6 +4757,8 @@ msgid "Current:" msgstr "Actual:" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "Añadir Entrada" @@ -4963,6 +4963,10 @@ msgid "All" msgstr "Todos" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp msgid "Import..." msgstr "Importar..." @@ -5255,26 +5259,32 @@ msgid "Pan Mode" msgstr "Modo desplazamiento lateral" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Ruler Mode" -msgstr "Modo de ejecución:" +msgstr "Modo Regla" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Toggle snapping." +#, fuzzy +msgid "Toggle smart snapping." msgstr "Act./Desact. alineado." #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +#, fuzzy +msgid "Use Smart Snap" msgstr "Usar Snap" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snapping Options" -msgstr "Opciones de Alineado" +#, fuzzy +msgid "Toggle grid snapping." +msgstr "Act./Desact. alineado." + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Use Grid Snap" +msgstr "Grid Snap" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to Grid" -msgstr "Ajustar en Grid" +msgid "Snapping Options" +msgstr "Opciones de Alineado" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Rotation Snap" @@ -5363,8 +5373,8 @@ msgid "View" msgstr "Ver" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +#, fuzzy +msgid "Always Show Grid" msgstr "Ver Grid" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5631,6 +5641,11 @@ msgstr "Act./Desact. Curva de Tangente Lineal" msgid "Hold Shift to edit tangents individually" msgstr "Mantén Shift para editar las tangentes individualmente" +#: editor/plugins/curve_editor_plugin.cpp +#, fuzzy +msgid "Right click to add point" +msgstr "Clic derecho: Eliminar Punto" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "Bake GI Probe" @@ -6270,6 +6285,10 @@ msgid "Grid" msgstr "Grid" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "Ver Grid" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Configure Grid:" msgstr "Configurar Grid:" @@ -6326,6 +6345,7 @@ msgstr "Instancia:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "Tipo:" @@ -6424,6 +6444,11 @@ msgid "Find Next" msgstr "Buscar Siguiente" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "Buscar Anterior" + +#: editor/plugins/script_editor_plugin.cpp msgid "Filter scripts" msgstr "Filtrar scripts" @@ -6686,13 +6711,18 @@ msgstr "Marcadores" #: editor/plugins/script_text_editor.cpp msgid "Breakpoints" -msgstr "Puntos de interrupción" +msgstr "Breakpoints" #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" msgstr "Cortar" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "Seleccionar Todo" + #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "Eliminar LÃnea" @@ -6750,10 +6780,6 @@ msgid "Auto Indent" msgstr "Autoindentar" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "Buscar Anterior" - -#: editor/plugins/script_text_editor.cpp msgid "Find in Files..." msgstr "Buscar en Archivos..." @@ -6796,7 +6822,7 @@ msgstr "Eliminar Todos los Breakpoints" #: editor/plugins/script_text_editor.cpp msgid "Go to Next Breakpoint" -msgstr "Ir al Siguente Breakpoint" +msgstr "Ir al Siguiente Breakpoint" #: editor/plugins/script_text_editor.cpp msgid "Go to Previous Breakpoint" @@ -7075,6 +7101,11 @@ msgid "Freelook Speed Modifier" msgstr "Modificador de Velocidad de Vista Libre" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Freelook Slow Modifier" +msgstr "Modificador de Velocidad de Vista Libre" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -7113,6 +7144,10 @@ msgid "Use Local Space" msgstr "Usar Espacio Local" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "Usar Snap" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "Vista Inferior" @@ -7339,6 +7374,11 @@ msgid "Simplification: " msgstr "Simplificación: " #: editor/plugins/sprite_editor_plugin.cpp +#, fuzzy +msgid "Shrink (Pixels): " +msgstr "Crecer (Pixeles): " + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "Crecer (Pixeles): " @@ -7387,9 +7427,8 @@ msgid "(empty)" msgstr "(vacÃo)" #: editor/plugins/sprite_frames_editor_plugin.cpp -#, fuzzy msgid "Move Frame" -msgstr "Pegar Frame" +msgstr "Mover Frame" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Animations:" @@ -7706,13 +7745,12 @@ msgid "Enable Priority" msgstr "Activar Prioridad" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Filter tiles" -msgstr "Filtrar Archivos..." +msgstr "Filtrar tiles" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Give a TileSet resource to this TileMap to use its tiles." -msgstr "" +msgstr "Asignar un recurso TileSet a este TileMap para usas sus tiles." #: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" @@ -7850,6 +7888,8 @@ msgstr "Mostrar Nombres de Tiles (mantener Tecla Alt)" msgid "" "Add or select a texture on the left panel to edit the tiles bound to it." msgstr "" +"Agrega o selecciona una textura en el panel izquierdo para editar los tiles " +"asignados a él." #: editor/plugins/tile_set_editor_plugin.cpp msgid "Remove selected texture? This will remove all tiles which use it." @@ -8024,92 +8064,80 @@ msgid "TileSet" msgstr "TileSet" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "No VCS addons are available." -msgstr "Nombre del padre del nodo, si está disponible" +msgstr "No hay addons de VCS disponibles." #: editor/plugins/version_control_editor_plugin.cpp editor/rename_dialog.cpp msgid "Error" msgstr "Error" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "No commit message was provided" -msgstr "No se proporcionó un nombre" +msgstr "No se indicó ningún mensaje de confirmación" #: editor/plugins/version_control_editor_plugin.cpp msgid "No files added to stage" -msgstr "" +msgstr "No se agregaron archivos al stage" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Commit" -msgstr "Comunidad" +msgstr "Confirmar" #: editor/plugins/version_control_editor_plugin.cpp msgid "VCS Addon is not initialized" -msgstr "" +msgstr "El Addon de VCS no está inicializado" #: editor/plugins/version_control_editor_plugin.cpp msgid "Version Control System" -msgstr "" +msgstr "Sistema de Control de Versiones" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Initialize" -msgstr "Capitalizar" +msgstr "Inicializar" #: editor/plugins/version_control_editor_plugin.cpp msgid "Staging area" -msgstr "" +msgstr "Ãrea de Staging" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Detect new changes" -msgstr "Cree un nuevo rectángulo." +msgstr "Detectar nuevos cambios" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Changes" -msgstr "Cambiar" +msgstr "Cambios" #: editor/plugins/version_control_editor_plugin.cpp msgid "Modified" -msgstr "" +msgstr "Modificado/s" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Renamed" -msgstr "Renombrar" +msgstr "Renombrado/s" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Deleted" -msgstr "Eliminar" +msgstr "Eliminado/s" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Typechange" -msgstr "Cambiar" +msgstr "Cambio de Tipo" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Stage Selected" -msgstr "Eliminar Seleccionados" +msgstr "Hacer Staging de Selección" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Stage All" -msgstr "Guardar Todo" +msgstr "Hacer Staging de Todo" #: editor/plugins/version_control_editor_plugin.cpp msgid "Add a commit message" -msgstr "" +msgstr "Añadir un mensaje de confirmación" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Commit Changes" -msgstr "Sincronizar Cambios en Scripts" +msgstr "Confirmar Cambios" #: editor/plugins/version_control_editor_plugin.cpp #: modules/gdnative/gdnative_library_singleton_editor.cpp @@ -8119,26 +8147,23 @@ msgstr "Estado" #: editor/plugins/version_control_editor_plugin.cpp msgid "View file diffs before committing them to the latest version" msgstr "" +"Ver las diferencias de los archivos antes de confirmar la última versión" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "No file diff is active" -msgstr "¡No has seleccionado ningún archivo!" +msgstr "No hay diferencias de archivo disponibles" #: editor/plugins/version_control_editor_plugin.cpp msgid "Detect changes in file diff" -msgstr "" +msgstr "Detectar diferencias entre los archivos" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "(GLES3 only)" msgstr "(Sólo GLES3)" #: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add input +" -msgstr "Añadir entrada +" - -#: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add output +" +#, fuzzy +msgid "Add Output" msgstr "Añadir salida +" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -8154,6 +8179,11 @@ msgid "Boolean" msgstr "Booleano" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Sampler" +msgstr "Sonidos" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add input port" msgstr "Agregar puerto de entrada" @@ -8371,11 +8401,10 @@ msgstr "" "o falso." #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "" "Returns an associated scalar if the provided boolean value is true or false." msgstr "" -"Devuelve un vector asociado si el valor booleano proporcionado es verdadero " +"Devuelve un escalar asociado si el valor booleano proporcionado es verdadero " "o falso." #: editor/plugins/visual_shader_editor_plugin.cpp @@ -9089,15 +9118,19 @@ msgid "Resources to export:" msgstr "Recursos a exportar:" #: editor/project_export.cpp +#, fuzzy msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" "Filtros para exportar archivos que no son recursos (separados por comas, ej: " "*.json, *.txt)" #: editor/project_export.cpp +#, fuzzy msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" "Filtros para excluir de la exportación (separados por comas, ej: *.json, *." "txt)" @@ -9696,9 +9729,8 @@ msgid "Settings saved OK." msgstr "Los ajustes se han guardado correctamente." #: editor/project_settings_editor.cpp -#, fuzzy msgid "Moved Input Action Event" -msgstr "Añadir Evento de Acción de Entrada" +msgstr "Evento de Acción de Entrada Movido" #: editor/project_settings_editor.cpp msgid "Override for Feature" @@ -10065,9 +10097,8 @@ msgid "Instance Scene(s)" msgstr "Instanciar Escena(s)" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Replace with Branch Scene" -msgstr "Guardar Rama como Escena" +msgstr "Reemplazar con Escena de Rama" #: editor/scene_tree_dock.cpp msgid "Instance Child Scene" @@ -10112,23 +10143,20 @@ msgid "Make node as Root" msgstr "Convertir nodo como RaÃz" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete %d nodes?" -msgstr "Eliminar Nodos" +msgstr "¿Eliminar %d nodos?" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete the root node \"%s\"?" -msgstr "Eliminar nodo(s) gráfico(s) del shader" +msgstr "¿Eliminar el nodo raiz \"%s\"?" #: editor/scene_tree_dock.cpp msgid "Delete node \"%s\" and its children?" -msgstr "" +msgstr "¿Eliminar el nodo \"%s\" y sus hijos?" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete node \"%s\"?" -msgstr "Eliminar Nodos" +msgstr "¿Eliminar nodo \"%s\"?" #: editor/scene_tree_dock.cpp msgid "Can not perform with the root node." @@ -10151,12 +10179,13 @@ msgstr "" "vuelvan a sus valores por defecto." #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "Hijos Editables" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" -msgstr "Cargar como Placeholder" +#, fuzzy +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." +msgstr "" +"Desactivar \"editable_instance\" causara que todas las propiedades del nodo " +"vuelvan a sus valores por defecto." #: editor/scene_tree_dock.cpp msgid "Make Local" @@ -10231,6 +10260,14 @@ msgid "Clear Inheritance" msgstr "Limpiar Heredado" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "Hijos Editables" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "Cargar como Placeholder" + +#: editor/scene_tree_dock.cpp msgid "Open Documentation" msgstr "Abrir Documentación" @@ -10247,10 +10284,6 @@ msgid "Change Type" msgstr "Cambiar Tipo" #: editor/scene_tree_dock.cpp -msgid "Extend Script" -msgstr "Extender Script" - -#: editor/scene_tree_dock.cpp msgid "Reparent to New Node" msgstr "Reemparentar a Nuevo Nodo" @@ -10492,23 +10525,18 @@ msgid "Will load an existing script file." msgstr "Se cargará un archivo de script existente." #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "Lenguaje" - -#: editor/script_create_dialog.cpp -msgid "Inherits" -msgstr "Hereda" - -#: editor/script_create_dialog.cpp -msgid "Class Name" +#, fuzzy +msgid "Class Name:" msgstr "Nombre de clase" #: editor/script_create_dialog.cpp -msgid "Template" +#, fuzzy +msgid "Template:" msgstr "Plantilla" #: editor/script_create_dialog.cpp -msgid "Built-in Script" +#, fuzzy +msgid "Built-in Script:" msgstr "Script Integrado" #: editor/script_create_dialog.cpp @@ -10524,38 +10552,32 @@ msgid "Bytes:" msgstr "Bytes:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Warning:" -msgstr "Advertencias:" +msgstr "Advertencia:" #: editor/script_editor_debugger.cpp msgid "Error:" msgstr "Error:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Error" -msgstr "Copiar Error" +msgstr "Error de C++" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Error:" -msgstr "Error:" +msgstr "Error de C++:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Source" -msgstr "Fuente" +msgstr "Fuente C++" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Source:" -msgstr "Fuente" +msgstr "Fuente:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Source:" -msgstr "Fuente" +msgstr "Fuente C++:" #: editor/script_editor_debugger.cpp msgid "Stack Trace" @@ -10566,18 +10588,16 @@ msgid "Errors" msgstr "Errores" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Child process connected." -msgstr "Proceso Hijo Conectado" +msgstr "Proceso hijo conectado." #: editor/script_editor_debugger.cpp msgid "Copy Error" msgstr "Copiar Error" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Skip Breakpoints" -msgstr "Puntos de interrupción" +msgstr "Saltar Breakpoints" #: editor/script_editor_debugger.cpp msgid "Inspect Previous Instance" @@ -10596,9 +10616,8 @@ msgid "Profiler" msgstr "Profiler" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Network Profiler" -msgstr "Exportar Perfil" +msgstr "Profiler de Red" #: editor/script_editor_debugger.cpp msgid "Monitor" @@ -10822,7 +10841,7 @@ msgstr "GDNative" #: modules/gdscript/gdscript_functions.cpp msgid "Expected a string of length 1 (a character)." -msgstr "" +msgstr "Se esperaba un string de longitud 1 (un carácter)." #: modules/gdscript/gdscript_functions.cpp msgid "Step argument is zero!" @@ -10981,13 +11000,12 @@ msgid "Pick Distance:" msgstr "Seleccionar Distancia:" #: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "Filter meshes" -msgstr "Filtrar métodos" +msgstr "Filtrar meshes" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Give a MeshLibrary resource to this GridMap to use its meshes." -msgstr "" +msgstr "Asignar un recurso MeshLibrary a este GridMap para usar sus meshes." #: modules/mono/csharp_script.cpp msgid "Class name can't be a reserved keyword" @@ -11164,6 +11182,11 @@ msgid "Add Function" msgstr "Añadir Función" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Delete input port" +msgstr "Eliminar puerto de entrada" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "Añadir Variable" @@ -11172,6 +11195,26 @@ msgid "Add Signal" msgstr "Añadir Señal" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Input Port" +msgstr "Agregar puerto de entrada" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Output Port" +msgstr "Añadir puerto de salida" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Input Port" +msgstr "Eliminar puerto de entrada" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Output Port" +msgstr "Eliminar puerto de salida" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "Cambiar Expresión" @@ -11216,10 +11259,20 @@ msgid "Add Preload Node" msgstr "Añadir Nodo Preload" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "Añadir Nodo(s) Desde Ãrbol" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "Añadir Propiedad Getter" @@ -11244,6 +11297,11 @@ msgid "Connect Nodes" msgstr "Conectar Nodos" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Disconnect Nodes" +msgstr "Desconectar nodos gráficos" + +#: modules/visual_script/visual_script_editor.cpp msgid "Connect Node Data" msgstr "Conectar Datos de Nodos" @@ -11276,6 +11334,28 @@ msgid "Paste VisualScript Nodes" msgstr "Pegar nodos de VisualScript" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Can't create function with a function node." +msgstr "No se puede copiar el nodo de función." + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Create Function" +msgstr "Renombrar Función" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "Eliminar Función" @@ -11296,21 +11376,17 @@ msgid "Editing Signal:" msgstr "Editando señal:" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Make Tool:" -msgstr "Crear Local" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "Tipo Base:" +msgstr "Convertir en Herramienta:" #: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "Miembros:" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" -msgstr "Nodos disponibles:" +#, fuzzy +msgid "function_name" +msgstr "Función:" #: modules/visual_script/visual_script_editor.cpp msgid "Select or create a function to edit its graph." @@ -11333,6 +11409,16 @@ msgid "Cut Nodes" msgstr "Cortar Nodos" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Make Function" +msgstr "Renombrar Función" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Refresh Graph" +msgstr "Recargar" + +#: modules/visual_script/visual_script_editor.cpp msgid "Edit Member" msgstr "Editar Miembros" @@ -11434,6 +11520,10 @@ msgid "The package must have at least one '.' separator." msgstr "El paquete debe tener al menos un '.' como separador." #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "Seleccionar dispositivo de la lista" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "Ejecutable ADB no configurado en Configuración del Editor." @@ -11459,13 +11549,12 @@ msgstr "" "Configuración del Editor." #: platform/android/export/export.cpp -#, fuzzy msgid "" "Android build template not installed in the project. Install it from the " "Project menu." msgstr "" -"El proyecto Android no está instalado para la compilación. Instálalo desde " -"el menú Editor." +"La plantilla de exportación de Android no esta instalada en el proyecto. " +"Instalala desde el menú de Proyecto." #: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." @@ -11556,6 +11645,10 @@ msgid "Required icon is not specified in the preset." msgstr "El icono requerido no está especificado en el preset." #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "Ejecutar en Navegador" @@ -12236,10 +12329,6 @@ msgstr "" "pueda obtener un tamaño. De lo contrario, conviértelo en un RenderTarget y " "asigna su textura interna a algún nodo para mostrarlo." -#: scene/resources/visual_shader.cpp -msgid "Input" -msgstr "Entrada" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for preview." msgstr "Fuente inválida para la vista previa." @@ -12268,6 +12357,27 @@ msgstr "Solo se pueden asignar variaciones en funciones de vértice." msgid "Constants cannot be modified." msgstr "Las constantes no pueden modificarse." +#~ msgid "Snap to Grid" +#~ msgstr "Ajustar en Grid" + +#~ msgid "Add input +" +#~ msgstr "Añadir entrada +" + +#~ msgid "Language" +#~ msgstr "Lenguaje" + +#~ msgid "Inherits" +#~ msgstr "Hereda" + +#~ msgid "Base Type:" +#~ msgstr "Tipo Base:" + +#~ msgid "Available Nodes:" +#~ msgstr "Nodos disponibles:" + +#~ msgid "Input" +#~ msgstr "Entrada" + #~ msgid "Properties:" #~ msgstr "Propiedades:" @@ -12678,9 +12788,6 @@ msgstr "Las constantes no pueden modificarse." #~ msgid "Go to parent folder" #~ msgstr "Ir a la carpeta principal" -#~ msgid "Select device from the list" -#~ msgstr "Seleccionar dispositivo de la lista" - #~ msgid "Open Scene(s)" #~ msgstr "Abrir escena(s)" @@ -12921,9 +13028,6 @@ msgstr "Las constantes no pueden modificarse." #~ msgid "Warning" #~ msgstr "Advertencia" -#~ msgid "Function:" -#~ msgstr "Función:" - #~ msgid "Variable" #~ msgstr "Variable" @@ -12990,9 +13094,6 @@ msgstr "Las constantes no pueden modificarse." #~ msgid "Connect Graph Nodes" #~ msgstr "Conectar nodos gráficos" -#~ msgid "Disconnect Graph Nodes" -#~ msgstr "Desconectar nodos gráficos" - #~ msgid "Remove Shader Graph Node" #~ msgstr "Eliminar el nodo gráfico del shader" @@ -14171,9 +14272,6 @@ msgstr "Las constantes no pueden modificarse." #~ msgid "Group" #~ msgstr "Grupo" -#~ msgid "Samples" -#~ msgstr "Sonidos" - #~ msgid "Sample Conversion Mode: (.wav files):" #~ msgstr "Modo de conversión de muestreo: (archivos .wav):" diff --git a/editor/translations/es_AR.po b/editor/translations/es_AR.po index d6f7409cbd..4369ea73ab 100644 --- a/editor/translations/es_AR.po +++ b/editor/translations/es_AR.po @@ -16,8 +16,8 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-09-07 13:52+0000\n" -"Last-Translator: Lisandro Lorea <lisandrolorea@gmail.com>\n" +"PO-Revision-Date: 2019-10-11 15:07+0000\n" +"Last-Translator: Javier Ocampos <xavier.ocampos@gmail.com>\n" "Language-Team: Spanish (Argentina) <https://hosted.weblate.org/projects/" "godot-engine/godot/es_AR/>\n" "Language: es_AR\n" @@ -30,7 +30,7 @@ msgstr "" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Invalid type argument to convert(), use TYPE_* constants." -msgstr "El argumento para convert() no es correcto, utiliza constantes TYPE_*." +msgstr "Argumento de tipo incorrecto en convert(), utilizá constantes TYPE_*." #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/mono/glue/gd_glue.cpp @@ -69,32 +69,31 @@ msgstr "En la llamada a '%s':" #: core/ustring.cpp msgid "B" -msgstr "" +msgstr "B" #: core/ustring.cpp msgid "KiB" -msgstr "" +msgstr "KiB" #: core/ustring.cpp -#, fuzzy msgid "MiB" -msgstr "Mix" +msgstr "MiB" #: core/ustring.cpp msgid "GiB" -msgstr "" +msgstr "GiB" #: core/ustring.cpp msgid "TiB" -msgstr "" +msgstr "TiB" #: core/ustring.cpp msgid "PiB" -msgstr "" +msgstr "PiB" #: core/ustring.cpp msgid "EiB" -msgstr "" +msgstr "EiB" #: editor/animation_bezier_editor.cpp msgid "Free" @@ -360,6 +359,7 @@ msgstr "Crear %d NUEVOS tracks e insertar claves?" #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "Crear" @@ -496,7 +496,7 @@ msgstr "" "Para habilitar la capacidad de añadir pistas personalizadas, andá a la " "configuración de importación de la escena y establece\n" "\"Animation > Storage\" a \"Files\", activa \"Animation > Keep Custom Tracks" -"\", y luego reimporta.\n" +"\", y luego reimportá.\n" "También podés usar un preset de importación que importa animaciones a " "archivos separados." @@ -504,20 +504,9 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "Advertencia: Se esta editando una animación importada" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "Seleccionar Todo" - -#: editor/animation_track_editor.cpp -msgid "Select None" -msgstr "No Seleccionar Ninguno" - #: editor/animation_track_editor.cpp -#, fuzzy msgid "Select an AnimationPlayer node to create and edit animations." -msgstr "" -"No hay asignada una ruta a un nodo AnimationPlayer conteniendo animaciones." +msgstr "Seleccioná un nodo AnimationPlayer para crear y editar animaciones." #: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." @@ -649,7 +638,8 @@ msgid "Scale Ratio:" msgstr "Ratio de Escala:" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" +#, fuzzy +msgid "Select Tracks to Copy" msgstr "Elegir pistas a copiar:" #: editor/animation_track_editor.cpp editor/editor_log.cpp @@ -661,6 +651,11 @@ msgstr "Elegir pistas a copiar:" msgid "Copy" msgstr "Copiar" +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Select All/None" +msgstr "No Seleccionar Ninguno" + #: editor/animation_track_editor_plugins.cpp msgid "Add Audio Track Clip" msgstr "Agregar Clip de Pista de Audio" @@ -986,7 +981,7 @@ msgid "Resource" msgstr "Recursos" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "Ruta" @@ -1257,9 +1252,8 @@ msgid "Delete Bus Effect" msgstr "Eliminar Efecto de Bus" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Drag & drop to rearrange." -msgstr "Audio Bus, Arrastrar y Soltar para reordenar." +msgstr "Arrastrar y soltar para reordenar." #: editor/editor_audio_buses.cpp msgid "Solo" @@ -1450,7 +1444,8 @@ msgstr "Agregar AutoLoad" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "Ruta:" @@ -1504,7 +1499,7 @@ msgstr "Crear Carpeta" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "Nombre:" @@ -1903,6 +1898,7 @@ msgid "Class:" msgstr "Clase:" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "Hereda:" @@ -1911,9 +1907,8 @@ msgid "Inherited by:" msgstr "Heredada por:" #: editor/editor_help.cpp -#, fuzzy msgid "Brief Description" -msgstr "Descripción Breve:" +msgstr "Descripción Breve" #: editor/editor_help.cpp msgid "Properties" @@ -1944,9 +1939,8 @@ msgid "Class Description" msgstr "Descripción de Clase" #: editor/editor_help.cpp -#, fuzzy msgid "Online Tutorials" -msgstr "Tutoriales En Linea:" +msgstr "Tutoriales en lÃnea" #: editor/editor_help.cpp msgid "" @@ -2069,7 +2063,7 @@ msgstr "Iniciar" #: editor/editor_network_profiler.cpp msgid "%s/s" -msgstr "" +msgstr "%s/s" #: editor/editor_network_profiler.cpp msgid "Down" @@ -2085,19 +2079,19 @@ msgstr "Nodo" #: editor/editor_network_profiler.cpp msgid "Incoming RPC" -msgstr "" +msgstr "RPC Entrante" #: editor/editor_network_profiler.cpp msgid "Incoming RSET" -msgstr "" +msgstr "RSET Entrante" #: editor/editor_network_profiler.cpp msgid "Outgoing RPC" -msgstr "" +msgstr "RPC Saliente" #: editor/editor_network_profiler.cpp msgid "Outgoing RSET" -msgstr "" +msgstr "RSET Saliente" #: editor/editor_node.cpp editor/project_manager.cpp msgid "New Window" @@ -2694,17 +2688,16 @@ msgid "Project Settings..." msgstr "Ajustes del Proyecto..." #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Version Control" -msgstr "Version:" +msgstr "Control de Versiones" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Set Up Version Control" -msgstr "" +msgstr "Inicializar Control de Versiones" #: editor/editor_node.cpp msgid "Shut Down Version Control" -msgstr "" +msgstr "Desactivar Control de Versiones" #: editor/editor_node.cpp msgid "Export..." @@ -2978,7 +2971,7 @@ msgstr "Inspector" msgid "Expand Bottom Panel" msgstr "Expandir Panel Inferior" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "Salida" @@ -3006,9 +2999,16 @@ msgid "" "the \"Use Custom Build\" option should be enabled in the Android export " "preset." msgstr "" +"Esto va a inicializar tu proyecto para builds de Android personalizados, " +"instalando la plantilla de origen en \"res://android/build\".\n" +"Una vez hecho ésto podés aplicar modificaciones y generar tu propio APK " +"personalizado al exportar (agregar módulos, cambiar el AndroidManifest.xml, " +"etc.).\n" +"Tené en cuenta que para generar builds personalizados en vez de usar los " +"APKs pregenerados, la opcion \"Usar Build Personalizado\" deberÃa estar " +"activada en el preset de exportación de Android." #: editor/editor_node.cpp -#, fuzzy msgid "" "The Android build template is already installed in this project and it won't " "be overwritten.\n" @@ -3017,8 +3017,8 @@ msgid "" msgstr "" "La plantilla de compilación de Android ya está instalada y no se " "sobrescribirá.\n" -"Eliminá el directorio \"build\" manualmente antes de intentar esta operación " -"nuevamente." +"Eliminá el directorio \"res://android/build\" manualmente antes de intentar " +"esta operación nuevamente." #: editor/editor_node.cpp msgid "Import Templates From ZIP File" @@ -3081,9 +3081,8 @@ msgid "Open the previous Editor" msgstr "Abrir el Editor anterior" #: editor/editor_path.cpp -#, fuzzy msgid "No sub-resources found." -msgstr "Ninguna superficie de origen especificada." +msgstr "No se encontró ningún sub-recurso." #: editor/editor_plugin.cpp msgid "Creating Mesh Previews" @@ -3094,9 +3093,8 @@ msgid "Thumbnail..." msgstr "Miniatura..." #: editor/editor_plugin_settings.cpp -#, fuzzy msgid "Main Script:" -msgstr "Abrir Script:" +msgstr "Script Principal:" #: editor/editor_plugin_settings.cpp msgid "Edit Plugin" @@ -3231,6 +3229,10 @@ msgstr "Seleccionar un Viewport" msgid "New Script" msgstr "Nuevo Script" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +msgid "Extend Script" +msgstr "Extender Script" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "Nuevo %s" @@ -3257,13 +3259,6 @@ msgstr "Pegar" msgid "Convert To %s" msgstr "Convertir A %s" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Open Editor" -msgstr "Abrir Editor" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "El nodo seleccionado no es un Viewport!" @@ -3927,9 +3922,8 @@ msgid "Import As:" msgstr "Importar Como:" #: editor/import_dock.cpp -#, fuzzy msgid "Preset" -msgstr "Presets" +msgstr "Preset" #: editor/import_dock.cpp msgid "Reimport" @@ -4057,7 +4051,7 @@ msgstr "Nombre del Plugin:" msgid "Subfolder:" msgstr "Subcarpeta:" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "Lenguaje:" @@ -4199,6 +4193,12 @@ msgstr "Punto" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Open Editor" +msgstr "Abrir Editor" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp msgid "Open Animation Node" msgstr "Abrir Nodo de Animación" @@ -4550,7 +4550,6 @@ msgstr "Nombre de Animación:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "Error!" @@ -4723,6 +4722,8 @@ msgid "Current:" msgstr "Actual:" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "Agregar Entrada" @@ -4927,6 +4928,10 @@ msgid "All" msgstr "Todos" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp msgid "Import..." msgstr "Importar..." @@ -5218,26 +5223,32 @@ msgid "Pan Mode" msgstr "Modo Paneo" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Ruler Mode" -msgstr "Modo de Ejecución:" +msgstr "Modo Regla" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Toggle snapping." +#, fuzzy +msgid "Toggle smart snapping." msgstr "Act/Desact. alineado." #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +#, fuzzy +msgid "Use Smart Snap" msgstr "Usar Snap" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snapping Options" -msgstr "Opciones de Alineado" +#, fuzzy +msgid "Toggle grid snapping." +msgstr "Act/Desact. alineado." + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Use Grid Snap" +msgstr "Snap de Grilla" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to Grid" -msgstr "Ajustar a la Grilla" +msgid "Snapping Options" +msgstr "Opciones de Alineado" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Rotation Snap" @@ -5326,8 +5337,8 @@ msgid "View" msgstr "Vista" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +#, fuzzy +msgid "Always Show Grid" msgstr "Mostrar la Grilla" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5594,6 +5605,11 @@ msgstr "Act./Desact. Tangente Lineal de Curva" msgid "Hold Shift to edit tangents individually" msgstr "Mantené Shift para editar tangentes individualmente" +#: editor/plugins/curve_editor_plugin.cpp +#, fuzzy +msgid "Right click to add point" +msgstr "Click Derecho: Eliminar Punto" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "Bake GI Probe" @@ -6233,6 +6249,10 @@ msgid "Grid" msgstr "Grilla" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "Mostrar la Grilla" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Configure Grid:" msgstr "Configurar Grilla:" @@ -6289,6 +6309,7 @@ msgstr "Instancia:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "Tipo:" @@ -6387,6 +6408,11 @@ msgid "Find Next" msgstr "Encontrar Siguiente" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "Encontrar Anterior" + +#: editor/plugins/script_editor_plugin.cpp msgid "Filter scripts" msgstr "Filtrar scripts" @@ -6656,6 +6682,11 @@ msgstr "Puntos de interrupción" msgid "Cut" msgstr "Cortar" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "Seleccionar Todo" + #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "Eliminar LÃnea" @@ -6713,10 +6744,6 @@ msgid "Auto Indent" msgstr "Auto Indentar" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "Encontrar Anterior" - -#: editor/plugins/script_text_editor.cpp msgid "Find in Files..." msgstr "Buscar en Archivos..." @@ -7038,6 +7065,11 @@ msgid "Freelook Speed Modifier" msgstr "Modificador de Velocidad de Vista Libre" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Freelook Slow Modifier" +msgstr "Modificador de Velocidad de Vista Libre" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -7076,6 +7108,10 @@ msgid "Use Local Space" msgstr "Usar Espacio Local" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "Usar Snap" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "Vista Inferior" @@ -7302,6 +7338,11 @@ msgid "Simplification: " msgstr "Simplificación: " #: editor/plugins/sprite_editor_plugin.cpp +#, fuzzy +msgid "Shrink (Pixels): " +msgstr "Crecer (Pixeles): " + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "Crecer (Pixeles): " @@ -7350,9 +7391,8 @@ msgid "(empty)" msgstr "(vacÃo)" #: editor/plugins/sprite_frames_editor_plugin.cpp -#, fuzzy msgid "Move Frame" -msgstr "Pegar Frame" +msgstr "Mover Fotograma" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Animations:" @@ -7669,13 +7709,12 @@ msgid "Enable Priority" msgstr "Activar Prioridad" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Filter tiles" -msgstr "Filtrar Archivos..." +msgstr "Filtrar tiles" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Give a TileSet resource to this TileMap to use its tiles." -msgstr "" +msgstr "Asignale un recurso TileSet a este TileMap para usas sus tiles." #: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" @@ -7813,6 +7852,8 @@ msgstr "Mostrar Nombres de Tiles (mantener Tecla Alt)" msgid "" "Add or select a texture on the left panel to edit the tiles bound to it." msgstr "" +"Agregá o seleccioná una textura en el panel izquierdo para editar los tiles " +"asignados a él." #: editor/plugins/tile_set_editor_plugin.cpp msgid "Remove selected texture? This will remove all tiles which use it." @@ -7986,92 +8027,80 @@ msgid "TileSet" msgstr "TileSet" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "No VCS addons are available." -msgstr "Nombre del padre del nodo, si está disponible" +msgstr "No hay addons de VCS disponibles." #: editor/plugins/version_control_editor_plugin.cpp editor/rename_dialog.cpp msgid "Error" msgstr "Error" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "No commit message was provided" -msgstr "No se indicó ningún nombre" +msgstr "No se indicó ningún mensaje de commit" #: editor/plugins/version_control_editor_plugin.cpp msgid "No files added to stage" -msgstr "" +msgstr "No se agregaron archivos al stage" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Commit" -msgstr "Comunidad" +msgstr "Commit" #: editor/plugins/version_control_editor_plugin.cpp msgid "VCS Addon is not initialized" -msgstr "" +msgstr "El Addon de VCS no está inicializado" #: editor/plugins/version_control_editor_plugin.cpp msgid "Version Control System" -msgstr "" +msgstr "Sistema de Control de Versiones" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Initialize" -msgstr "Capitalizar" +msgstr "Inicializar" #: editor/plugins/version_control_editor_plugin.cpp msgid "Staging area" -msgstr "" +msgstr "Ãrea de Staging" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Detect new changes" -msgstr "Crear un rectángulo nuevo." +msgstr "Detectar nuevos cambios" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Changes" -msgstr "Cambiar" +msgstr "Cambios" #: editor/plugins/version_control_editor_plugin.cpp msgid "Modified" -msgstr "" +msgstr "Modificado/s" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Renamed" -msgstr "Renombrar" +msgstr "Renombrado/s" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Deleted" -msgstr "Eliminar" +msgstr "Eliminado/s" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Typechange" -msgstr "Cambiar" +msgstr "Cambio de Tipo" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Stage Selected" -msgstr "Eliminar Seleccionados" +msgstr "Hacer Staging de Selección" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Stage All" -msgstr "Guardar Todo" +msgstr "Hacer Staging de Todo" #: editor/plugins/version_control_editor_plugin.cpp msgid "Add a commit message" -msgstr "" +msgstr "Agregar mensaje de commit" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Commit Changes" -msgstr "Sincronizar Cambios en Scripts" +msgstr "Commitear Cambios" #: editor/plugins/version_control_editor_plugin.cpp #: modules/gdnative/gdnative_library_singleton_editor.cpp @@ -8080,27 +8109,23 @@ msgstr "Estado" #: editor/plugins/version_control_editor_plugin.cpp msgid "View file diffs before committing them to the latest version" -msgstr "" +msgstr "Ver diferencias de archivos antes de commitearlos a la última versión" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "No file diff is active" -msgstr "Ningún Archivo seleccionado!" +msgstr "No hay ningún diff de archivos activo" #: editor/plugins/version_control_editor_plugin.cpp msgid "Detect changes in file diff" -msgstr "" +msgstr "Detectar cambios en el diff de archivo" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "(GLES3 only)" msgstr "(Sólo GLES3)" #: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add input +" -msgstr "Añadir entrada +" - -#: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add output +" +#, fuzzy +msgid "Add Output" msgstr "Añadir salida +" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -8116,6 +8141,11 @@ msgid "Boolean" msgstr "Booleano" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Sampler" +msgstr "Muestras" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add input port" msgstr "Agregar puerto de entrada" @@ -8333,11 +8363,10 @@ msgstr "" "o falso." #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "" "Returns an associated scalar if the provided boolean value is true or false." msgstr "" -"Devuelve un vector asociado si el valor booleano proporcionado es verdadero " +"Devuelve un escalar asociado si el valor booleano proporcionado es verdadero " "o falso." #: editor/plugins/visual_shader_editor_plugin.cpp @@ -9052,15 +9081,19 @@ msgid "Resources to export:" msgstr "Recursos a exportar:" #: editor/project_export.cpp +#, fuzzy msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" "Filtros para exportar archivos que no son recursos (separados por comas, ej: " "*.json, *.txt)" #: editor/project_export.cpp +#, fuzzy msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" "Filtros para excluir archivos del proyecto (separados por comas, ej: *.json, " "*.txt)" @@ -9660,9 +9693,8 @@ msgid "Settings saved OK." msgstr "Ajustes guardados satisfactoriamente." #: editor/project_settings_editor.cpp -#, fuzzy msgid "Moved Input Action Event" -msgstr "Agregar Evento de Acción de Entrada" +msgstr "Evento de Acción de Entrada Movido" #: editor/project_settings_editor.cpp msgid "Override for Feature" @@ -10029,9 +10061,8 @@ msgid "Instance Scene(s)" msgstr "Instanciar Escena(s)" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Replace with Branch Scene" -msgstr "Guardar Rama como Escena" +msgstr "Reemplazar con Escena de Rama" #: editor/scene_tree_dock.cpp msgid "Instance Child Scene" @@ -10076,23 +10107,20 @@ msgid "Make node as Root" msgstr "Convertir nodo en RaÃz" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete %d nodes?" -msgstr "Eliminar Nodos" +msgstr "¿Eliminar %d nodos?" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete the root node \"%s\"?" -msgstr "Quitar Nodo(s) de Gráfico de Shaders" +msgstr "¿Eliminar el nodo raiz \"%s\"?" #: editor/scene_tree_dock.cpp msgid "Delete node \"%s\" and its children?" -msgstr "" +msgstr "¿Eliminar el nodo \"%s\" y sus hijos?" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete node \"%s\"?" -msgstr "Eliminar Nodos" +msgstr "¿Eliminar nodo \"%s\"?" #: editor/scene_tree_dock.cpp msgid "Can not perform with the root node." @@ -10115,12 +10143,13 @@ msgstr "" "vuelvan a sus valores por defecto." #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "Hijos Editables" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" -msgstr "Cargar Como Placeholder" +#, fuzzy +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." +msgstr "" +"Desactivar \"editable_instance\" causara que todas las propiedades del nodo " +"vuelvan a sus valores por defecto." #: editor/scene_tree_dock.cpp msgid "Make Local" @@ -10196,6 +10225,14 @@ msgid "Clear Inheritance" msgstr "Limpiar Herencia" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "Hijos Editables" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "Cargar Como Placeholder" + +#: editor/scene_tree_dock.cpp msgid "Open Documentation" msgstr "Abrir Documentación" @@ -10212,10 +10249,6 @@ msgid "Change Type" msgstr "Cambiar Tipo" #: editor/scene_tree_dock.cpp -msgid "Extend Script" -msgstr "Extender Script" - -#: editor/scene_tree_dock.cpp msgid "Reparent to New Node" msgstr "Reemparentar a Nuevo Nodo" @@ -10457,23 +10490,18 @@ msgid "Will load an existing script file." msgstr "Se cargará un archivo de script existente." #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "Lenguaje" - -#: editor/script_create_dialog.cpp -msgid "Inherits" -msgstr "Hereda" - -#: editor/script_create_dialog.cpp -msgid "Class Name" +#, fuzzy +msgid "Class Name:" msgstr "Nombre de Clase" #: editor/script_create_dialog.cpp -msgid "Template" +#, fuzzy +msgid "Template:" msgstr "Plantilla" #: editor/script_create_dialog.cpp -msgid "Built-in Script" +#, fuzzy +msgid "Built-in Script:" msgstr "Script Integrado (Built-In)" #: editor/script_create_dialog.cpp @@ -10489,38 +10517,32 @@ msgid "Bytes:" msgstr "Bytes:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Warning:" -msgstr "Advertencias:" +msgstr "Advertencia:" #: editor/script_editor_debugger.cpp msgid "Error:" msgstr "Error:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Error" -msgstr "Copiar Error" +msgstr "Error de C++" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Error:" -msgstr "Error:" +msgstr "Error de C++:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Source" -msgstr "Fuente" +msgstr "Fuente C++" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Source:" -msgstr "Fuente" +msgstr "Fuente:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Source:" -msgstr "Fuente" +msgstr "Fuente C++:" #: editor/script_editor_debugger.cpp msgid "Stack Trace" @@ -10531,18 +10553,16 @@ msgid "Errors" msgstr "Errores" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Child process connected." -msgstr "Proceso Hijo Conectado" +msgstr "Proceso hijo conectado." #: editor/script_editor_debugger.cpp msgid "Copy Error" msgstr "Copiar Error" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Skip Breakpoints" -msgstr "Puntos de interrupción" +msgstr "Saltear Breakpoints" #: editor/script_editor_debugger.cpp msgid "Inspect Previous Instance" @@ -10561,9 +10581,8 @@ msgid "Profiler" msgstr "Profiler" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Network Profiler" -msgstr "Exportar Perfil" +msgstr "Profiler de Red" #: editor/script_editor_debugger.cpp msgid "Monitor" @@ -10787,7 +10806,7 @@ msgstr "GDNative" #: modules/gdscript/gdscript_functions.cpp msgid "Expected a string of length 1 (a character)." -msgstr "" +msgstr "Se esperaba un string de longitud 1 (un carácter)." #: modules/gdscript/gdscript_functions.cpp msgid "Step argument is zero!" @@ -10945,13 +10964,12 @@ msgid "Pick Distance:" msgstr "Elegir Instancia:" #: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "Filter meshes" -msgstr "Filtrar métodos" +msgstr "Filtrar meshes" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Give a MeshLibrary resource to this GridMap to use its meshes." -msgstr "" +msgstr "Asignar un recurso MeshLibrary a este GridMap para usar sus meshes." #: modules/mono/csharp_script.cpp msgid "Class name can't be a reserved keyword" @@ -11127,6 +11145,11 @@ msgid "Add Function" msgstr "Agregar Función" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Delete input port" +msgstr "Eliminar puerto de entrada" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "Agregar Variable" @@ -11135,6 +11158,26 @@ msgid "Add Signal" msgstr "Agregar Señal" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Input Port" +msgstr "Agregar puerto de entrada" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Output Port" +msgstr "Añadir puerto de salida" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Input Port" +msgstr "Eliminar puerto de entrada" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Output Port" +msgstr "Eliminar puerto de salida" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "Cambiar Expresión" @@ -11179,10 +11222,20 @@ msgid "Add Preload Node" msgstr "Agregar Nodo Preload" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "Agregar Nodo(s) Desde Arbol" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "Agregar Propiedad Getter" @@ -11207,6 +11260,11 @@ msgid "Connect Nodes" msgstr "Conectar Nodos" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Disconnect Nodes" +msgstr "Desconectar Nodo de Gráfico" + +#: modules/visual_script/visual_script_editor.cpp msgid "Connect Node Data" msgstr "Conectar Datos de Nodos" @@ -11239,6 +11297,28 @@ msgid "Paste VisualScript Nodes" msgstr "Pegar Nodos de VisualScript" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Can't create function with a function node." +msgstr "No se puede copiar el nodo de función." + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Create Function" +msgstr "Renombrar Función" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "Quitar Función" @@ -11259,21 +11339,17 @@ msgid "Editing Signal:" msgstr "Editando Señal:" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Make Tool:" -msgstr "Crear Local" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "Tipo Base:" +msgstr "Convertir en Herramienta:" #: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "Miembros:" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" -msgstr "Nodos Disponibles:" +#, fuzzy +msgid "function_name" +msgstr "Funcion:" #: modules/visual_script/visual_script_editor.cpp msgid "Select or create a function to edit its graph." @@ -11296,6 +11372,16 @@ msgid "Cut Nodes" msgstr "Cortar Nodos" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Make Function" +msgstr "Renombrar Función" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Refresh Graph" +msgstr "Refrescar" + +#: modules/visual_script/visual_script_editor.cpp msgid "Edit Member" msgstr "Editar Miembros" @@ -11397,6 +11483,10 @@ msgid "The package must have at least one '.' separator." msgstr "El paquete debe tener al menos un '.' como separador." #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "Seleccionar dispositivo de la lista" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "Ejecutable ADB no configurado en Configuración del Editor." @@ -11422,13 +11512,12 @@ msgstr "" "Configuración del Editor." #: platform/android/export/export.cpp -#, fuzzy msgid "" "Android build template not installed in the project. Install it from the " "Project menu." msgstr "" -"El proyecto Android no está instalado para la compilación. Instálalo desde " -"el menú Editor." +"La plantilla de exportación de Android no esta instalada en el proyecto. " +"Instalala desde el menú de Proyecto." #: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." @@ -11519,6 +11608,10 @@ msgid "Required icon is not specified in the preset." msgstr "El icono requerido no esta especificado en el preset." #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "Ejecutar en el Navegador" @@ -12194,10 +12287,6 @@ msgstr "" "pueda obtener un tamaño. Alternativamente, haz un RenderTarget y asigna su " "textura interna a algún otro nodo para mostrar." -#: scene/resources/visual_shader.cpp -msgid "Input" -msgstr "Entrada" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for preview." msgstr "Fuente inválida para la vista previa." @@ -12226,6 +12315,27 @@ msgstr "Solo se pueden asignar variaciones en funciones de vértice." msgid "Constants cannot be modified." msgstr "Las constantes no pueden modificarse." +#~ msgid "Snap to Grid" +#~ msgstr "Ajustar a la Grilla" + +#~ msgid "Add input +" +#~ msgstr "Añadir entrada +" + +#~ msgid "Language" +#~ msgstr "Lenguaje" + +#~ msgid "Inherits" +#~ msgstr "Hereda" + +#~ msgid "Base Type:" +#~ msgstr "Tipo Base:" + +#~ msgid "Available Nodes:" +#~ msgstr "Nodos Disponibles:" + +#~ msgid "Input" +#~ msgstr "Entrada" + #~ msgid "Properties:" #~ msgstr "Propiedades:" @@ -12450,9 +12560,6 @@ msgstr "Las constantes no pueden modificarse." #~ msgid "Go to parent folder" #~ msgstr "Ir a carpeta padre" -#~ msgid "Select device from the list" -#~ msgstr "Seleccionar dispositivo de la lista" - #~ msgid "Open Scene(s)" #~ msgstr "Abrir Escena(s)" @@ -12693,9 +12800,6 @@ msgstr "Las constantes no pueden modificarse." #~ msgid "Warning" #~ msgstr "Advertencia" -#~ msgid "Function:" -#~ msgstr "Funcion:" - #~ msgid "Variable" #~ msgstr "Variable" @@ -12762,9 +12866,6 @@ msgstr "Las constantes no pueden modificarse." #~ msgid "Connect Graph Nodes" #~ msgstr "Conectar Nodos de Gráfico" -#~ msgid "Disconnect Graph Nodes" -#~ msgstr "Desconectar Nodo de Gráfico" - #~ msgid "Remove Shader Graph Node" #~ msgstr "Quitar Nodo de Gráfico de Shaders" @@ -13912,9 +14013,6 @@ msgstr "Las constantes no pueden modificarse." #~ msgid "Group" #~ msgstr "Grupo" -#~ msgid "Samples" -#~ msgstr "Muestras" - #~ msgid "Sample Conversion Mode: (.wav files):" #~ msgstr "Modo de Conversión de Muestras: (archivos .wav):" diff --git a/editor/translations/et.po b/editor/translations/et.po index df0c1148a7..a7cb86a27f 100644 --- a/editor/translations/et.po +++ b/editor/translations/et.po @@ -349,6 +349,7 @@ msgstr "" #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "Loo" @@ -475,15 +476,6 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "Vali Kõik" - -#: editor/animation_track_editor.cpp -msgid "Select None" -msgstr "Tühista Valik" - #: editor/animation_track_editor.cpp msgid "Select an AnimationPlayer node to create and edit animations." msgstr "" @@ -618,7 +610,7 @@ msgid "Scale Ratio:" msgstr "" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" +msgid "Select Tracks to Copy" msgstr "" #: editor/animation_track_editor.cpp editor/editor_log.cpp @@ -630,6 +622,11 @@ msgstr "" msgid "Copy" msgstr "Kopeeri" +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Select All/None" +msgstr "Tühista Valik" + #: editor/animation_track_editor_plugins.cpp msgid "Add Audio Track Clip" msgstr "" @@ -946,7 +943,7 @@ msgid "Resource" msgstr "" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "" @@ -1401,7 +1398,8 @@ msgstr "" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "" @@ -1455,7 +1453,7 @@ msgstr "" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "" @@ -1841,6 +1839,7 @@ msgid "Class:" msgstr "" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "" @@ -2832,7 +2831,7 @@ msgstr "" msgid "Expand Bottom Panel" msgstr "" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "" @@ -3068,6 +3067,10 @@ msgstr "" msgid "New Script" msgstr "" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +msgid "Extend Script" +msgstr "" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "" @@ -3094,13 +3097,6 @@ msgstr "" msgid "Convert To %s" msgstr "" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Open Editor" -msgstr "" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "" @@ -3874,7 +3870,7 @@ msgstr "" msgid "Subfolder:" msgstr "" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "" @@ -4009,6 +4005,12 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Open Editor" +msgstr "" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp msgid "Open Animation Node" msgstr "" @@ -4350,7 +4352,6 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "" @@ -4518,6 +4519,8 @@ msgid "Current:" msgstr "" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "" @@ -4723,6 +4726,10 @@ msgid "All" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp msgid "Import..." msgstr "" @@ -5003,20 +5010,23 @@ msgid "Ruler Mode" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Toggle snapping." +msgid "Toggle smart snapping." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +msgid "Use Smart Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snapping Options" +msgid "Toggle grid snapping." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to Grid" +msgid "Use Grid Snap" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snapping Options" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5106,8 +5116,7 @@ msgid "View" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +msgid "Always Show Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5367,6 +5376,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/curve_editor_plugin.cpp +msgid "Right click to add point" +msgstr "" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "" @@ -5996,6 +6009,10 @@ msgid "Grid" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Configure Grid:" msgstr "" @@ -6052,6 +6069,7 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "" @@ -6150,6 +6168,11 @@ msgid "Find Next" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Filter scripts" msgstr "" @@ -6415,6 +6438,11 @@ msgstr "" msgid "Cut" msgstr "" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "Vali Kõik" + #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "" @@ -6473,10 +6501,6 @@ msgid "Auto Indent" msgstr "" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "" - -#: editor/plugins/script_text_editor.cpp msgid "Find in Files..." msgstr "" @@ -6796,6 +6820,10 @@ msgid "Freelook Speed Modifier" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Slow Modifier" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -6829,6 +6857,10 @@ msgid "Use Local Space" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "" @@ -7055,6 +7087,10 @@ msgid "Simplification: " msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Shrink (Pixels): " +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "" @@ -7819,11 +7855,7 @@ msgid "(GLES3 only)" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add input +" -msgstr "" - -#: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add output +" +msgid "Add Output" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -7839,6 +7871,10 @@ msgid "Boolean" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sampler" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add input port" msgstr "" @@ -8695,12 +8731,14 @@ msgstr "" #: editor/project_export.cpp msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp @@ -9684,11 +9722,9 @@ msgid "" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." msgstr "" #: editor/scene_tree_dock.cpp @@ -9762,6 +9798,14 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "" + +#: editor/scene_tree_dock.cpp msgid "Open Documentation" msgstr "" @@ -9778,10 +9822,6 @@ msgid "Change Type" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Extend Script" -msgstr "" - -#: editor/scene_tree_dock.cpp msgid "Reparent to New Node" msgstr "" @@ -10008,23 +10048,15 @@ msgid "Will load an existing script file." msgstr "" #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Inherits" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Class Name" +msgid "Class Name:" msgstr "" #: editor/script_create_dialog.cpp -msgid "Template" +msgid "Template:" msgstr "" #: editor/script_create_dialog.cpp -msgid "Built-in Script" +msgid "Built-in Script:" msgstr "" #: editor/script_create_dialog.cpp @@ -10659,6 +10691,10 @@ msgid "Add Function" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Delete input port" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "" @@ -10667,6 +10703,22 @@ msgid "Add Signal" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Add Input Port" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Add Output Port" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Remove Input Port" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Remove Output Port" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "" @@ -10707,10 +10759,20 @@ msgid "Add Preload Node" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "" @@ -10735,6 +10797,10 @@ msgid "Connect Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Disconnect Nodes" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Connect Node Data" msgstr "" @@ -10767,6 +10833,27 @@ msgid "Paste VisualScript Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function with a function node." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Create Function" +msgstr "Loo" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "" @@ -10791,16 +10878,13 @@ msgid "Make Tool:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" -msgstr "" +#, fuzzy +msgid "function_name" +msgstr "Funktsioonid:" #: modules/visual_script/visual_script_editor.cpp msgid "Select or create a function to edit its graph." @@ -10823,6 +10907,15 @@ msgid "Cut Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Make Function" +msgstr "Funktsioonid:" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Refresh Graph" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Edit Member" msgstr "" @@ -10917,6 +11010,10 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "" @@ -11016,6 +11113,10 @@ msgid "Required icon is not specified in the preset." msgstr "" #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "" @@ -11553,10 +11654,6 @@ msgid "" "texture to some node for display." msgstr "" -#: scene/resources/visual_shader.cpp -msgid "Input" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for preview." msgstr "" diff --git a/editor/translations/eu.po b/editor/translations/eu.po index 069836ce69..6c8834e504 100644 --- a/editor/translations/eu.po +++ b/editor/translations/eu.po @@ -348,6 +348,7 @@ msgstr "" #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "" @@ -473,15 +474,6 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "" - -#: editor/animation_track_editor.cpp -msgid "Select None" -msgstr "" - #: editor/animation_track_editor.cpp msgid "Select an AnimationPlayer node to create and edit animations." msgstr "" @@ -616,7 +608,7 @@ msgid "Scale Ratio:" msgstr "" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" +msgid "Select Tracks to Copy" msgstr "" #: editor/animation_track_editor.cpp editor/editor_log.cpp @@ -628,6 +620,10 @@ msgstr "" msgid "Copy" msgstr "" +#: editor/animation_track_editor.cpp +msgid "Select All/None" +msgstr "" + #: editor/animation_track_editor_plugins.cpp msgid "Add Audio Track Clip" msgstr "" @@ -944,7 +940,7 @@ msgid "Resource" msgstr "" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "" @@ -1399,7 +1395,8 @@ msgstr "" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "" @@ -1453,7 +1450,7 @@ msgstr "" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "" @@ -1837,6 +1834,7 @@ msgid "Class:" msgstr "" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "" @@ -2827,7 +2825,7 @@ msgstr "" msgid "Expand Bottom Panel" msgstr "" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "" @@ -3063,6 +3061,10 @@ msgstr "" msgid "New Script" msgstr "" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +msgid "Extend Script" +msgstr "" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "" @@ -3089,13 +3091,6 @@ msgstr "" msgid "Convert To %s" msgstr "" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Open Editor" -msgstr "" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "" @@ -3868,7 +3863,7 @@ msgstr "" msgid "Subfolder:" msgstr "" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "" @@ -4003,6 +3998,12 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Open Editor" +msgstr "" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp msgid "Open Animation Node" msgstr "" @@ -4344,7 +4345,6 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "" @@ -4512,6 +4512,8 @@ msgid "Current:" msgstr "" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "" @@ -4716,6 +4718,10 @@ msgid "All" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp msgid "Import..." msgstr "" @@ -4994,20 +5000,23 @@ msgid "Ruler Mode" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Toggle snapping." +msgid "Toggle smart snapping." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +msgid "Use Smart Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snapping Options" +msgid "Toggle grid snapping." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to Grid" +msgid "Use Grid Snap" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snapping Options" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5097,8 +5106,7 @@ msgid "View" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +msgid "Always Show Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5358,6 +5366,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/curve_editor_plugin.cpp +msgid "Right click to add point" +msgstr "" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "" @@ -5987,6 +5999,10 @@ msgid "Grid" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Configure Grid:" msgstr "" @@ -6043,6 +6059,7 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "" @@ -6141,6 +6158,11 @@ msgid "Find Next" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Filter scripts" msgstr "" @@ -6406,6 +6428,11 @@ msgstr "" msgid "Cut" msgstr "" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "" @@ -6463,10 +6490,6 @@ msgid "Auto Indent" msgstr "" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "" - -#: editor/plugins/script_text_editor.cpp msgid "Find in Files..." msgstr "" @@ -6786,6 +6809,10 @@ msgid "Freelook Speed Modifier" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Slow Modifier" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -6819,6 +6846,10 @@ msgid "Use Local Space" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "" @@ -7045,6 +7076,10 @@ msgid "Simplification: " msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Shrink (Pixels): " +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "" @@ -7806,11 +7841,7 @@ msgid "(GLES3 only)" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add input +" -msgstr "" - -#: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add output +" +msgid "Add Output" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -7826,6 +7857,10 @@ msgid "Boolean" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sampler" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add input port" msgstr "" @@ -8682,12 +8717,14 @@ msgstr "" #: editor/project_export.cpp msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp @@ -9669,11 +9706,9 @@ msgid "" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." msgstr "" #: editor/scene_tree_dock.cpp @@ -9747,6 +9782,14 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "" + +#: editor/scene_tree_dock.cpp msgid "Open Documentation" msgstr "" @@ -9763,10 +9806,6 @@ msgid "Change Type" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Extend Script" -msgstr "" - -#: editor/scene_tree_dock.cpp msgid "Reparent to New Node" msgstr "" @@ -9993,23 +10032,15 @@ msgid "Will load an existing script file." msgstr "" #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Inherits" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Class Name" +msgid "Class Name:" msgstr "" #: editor/script_create_dialog.cpp -msgid "Template" +msgid "Template:" msgstr "" #: editor/script_create_dialog.cpp -msgid "Built-in Script" +msgid "Built-in Script:" msgstr "" #: editor/script_create_dialog.cpp @@ -10643,6 +10674,10 @@ msgid "Add Function" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Delete input port" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "" @@ -10651,6 +10686,22 @@ msgid "Add Signal" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Add Input Port" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Add Output Port" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Remove Input Port" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Remove Output Port" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "" @@ -10691,10 +10742,20 @@ msgid "Add Preload Node" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "" @@ -10719,6 +10780,10 @@ msgid "Connect Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Disconnect Nodes" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Connect Node Data" msgstr "" @@ -10751,6 +10816,26 @@ msgid "Paste VisualScript Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function with a function node." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Create Function" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "" @@ -10775,15 +10860,11 @@ msgid "Make Tool:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" +msgid "function_name" msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -10807,6 +10888,14 @@ msgid "Cut Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Make Function" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Refresh Graph" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Edit Member" msgstr "" @@ -10901,6 +10990,10 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "" @@ -11000,6 +11093,10 @@ msgid "Required icon is not specified in the preset." msgstr "" #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "" @@ -11537,10 +11634,6 @@ msgid "" "texture to some node for display." msgstr "" -#: scene/resources/visual_shader.cpp -msgid "Input" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for preview." msgstr "" diff --git a/editor/translations/fa.po b/editor/translations/fa.po index f66805fbdd..fe614abe09 100644 --- a/editor/translations/fa.po +++ b/editor/translations/fa.po @@ -372,6 +372,7 @@ msgstr "ساختن تعداد d% ترک جدید، ودرج کلیدها؟" #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "تولید" @@ -508,16 +509,6 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "انتخاب همه" - -#: editor/animation_track_editor.cpp -#, fuzzy -msgid "Select None" -msgstr "گره انتخاب" - #: editor/animation_track_editor.cpp #, fuzzy msgid "Select an AnimationPlayer node to create and edit animations." @@ -660,8 +651,9 @@ msgid "Scale Ratio:" msgstr "نسبت تغییر مقیاس:" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" -msgstr "" +#, fuzzy +msgid "Select Tracks to Copy" +msgstr "دارایی Setter را اضاÙÙ‡ Ú©Ù†" #: editor/animation_track_editor.cpp editor/editor_log.cpp #: editor/editor_properties.cpp @@ -672,6 +664,11 @@ msgstr "" msgid "Copy" msgstr "Ú©Ù¾ÛŒ کردن" +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Select All/None" +msgstr "گره انتخاب" + #: editor/animation_track_editor_plugins.cpp #, fuzzy msgid "Add Audio Track Clip" @@ -1012,7 +1009,7 @@ msgid "Resource" msgstr "منبع" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "مسیر" @@ -1483,7 +1480,8 @@ msgstr "بارگذاری خودکار (AutoLoad) را اضاÙÙ‡ Ú©Ù†" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "مسیر:" @@ -1538,7 +1536,7 @@ msgstr "ساختن پوشه" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "نام:" @@ -1956,6 +1954,7 @@ msgid "Class:" msgstr "کلاس:" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "میراث:" @@ -2990,7 +2989,7 @@ msgstr "" msgid "Expand Bottom Panel" msgstr "" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "خروجی" @@ -3236,6 +3235,11 @@ msgstr "" msgid "New Script" msgstr "صØنه جدید" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +#, fuzzy +msgid "Extend Script" +msgstr "باز کردن Ùˆ اجرای یک اسکریپت" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "" @@ -3263,14 +3267,6 @@ msgstr "چسباندن" msgid "Convert To %s" msgstr "اتصال به گره:" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy -msgid "Open Editor" -msgstr "گشودن در ویرایشگر" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "" @@ -4095,7 +4091,7 @@ msgstr "" msgid "Subfolder:" msgstr "" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "" @@ -4241,6 +4237,13 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +#, fuzzy +msgid "Open Editor" +msgstr "گشودن در ویرایشگر" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp #, fuzzy msgid "Open Animation Node" @@ -4609,7 +4612,6 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "" @@ -4787,6 +4789,8 @@ msgid "Current:" msgstr "" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "" @@ -5001,6 +5005,10 @@ msgid "All" msgstr "همه" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy msgid "Import..." msgstr "وارد کردن" @@ -5301,20 +5309,24 @@ msgstr "انتخاب Øالت" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Toggle snapping." +msgid "Toggle smart snapping." msgstr "یک Breakpoint درج Ú©Ù†" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +msgid "Use Smart Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snapping Options" +#, fuzzy +msgid "Toggle grid snapping." +msgstr "یک Breakpoint درج Ú©Ù†" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Use Grid Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to Grid" +msgid "Snapping Options" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5409,8 +5421,7 @@ msgid "View" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +msgid "Always Show Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5680,6 +5691,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/curve_editor_plugin.cpp +msgid "Right click to add point" +msgstr "" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "" @@ -6330,6 +6345,10 @@ msgid "Grid" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Configure Grid:" msgstr "" @@ -6386,6 +6405,7 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "" @@ -6495,6 +6515,11 @@ msgid "Find Next" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Filter scripts" msgstr "صاÙÛŒ کردن گره‌ها" @@ -6781,6 +6806,11 @@ msgstr "ØØ°Ù Ú©Ù†" msgid "Cut" msgstr "بریدن" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "انتخاب همه" + #: editor/plugins/script_text_editor.cpp #, fuzzy msgid "Delete Line" @@ -6843,10 +6873,6 @@ msgid "Auto Indent" msgstr "" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "" - -#: editor/plugins/script_text_editor.cpp #, fuzzy msgid "Find in Files..." msgstr "یاÙتن" @@ -7187,6 +7213,11 @@ msgid "Freelook Speed Modifier" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Freelook Slow Modifier" +msgstr "غلطاندن به پایین." + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -7221,6 +7252,10 @@ msgid "Use Local Space" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "" @@ -7456,6 +7491,10 @@ msgid "Simplification: " msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Shrink (Pixels): " +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "" @@ -8291,12 +8330,8 @@ msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy -msgid "Add input +" -msgstr "اÙزودن نقطه" - -#: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add output +" -msgstr "" +msgid "Add Output" +msgstr "خروجی" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Scalar" @@ -8312,6 +8347,11 @@ msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy +msgid "Sampler" +msgstr "نمونه ها" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy msgid "Add input port" msgstr "اÙزودن عمل ورودی" @@ -9200,12 +9240,14 @@ msgstr "منابع برای صدور:" #: editor/project_export.cpp msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp @@ -10234,12 +10276,10 @@ msgid "" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "Ùرزند قابل ویرایش" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" -msgstr "بارگیری به عنوان جانگهدار" +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." +msgstr "" #: editor/scene_tree_dock.cpp #, fuzzy @@ -10321,6 +10361,14 @@ msgid "Clear Inheritance" msgstr "پاک کردن ارث‌بری" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "Ùرزند قابل ویرایش" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "بارگیری به عنوان جانگهدار" + +#: editor/scene_tree_dock.cpp #, fuzzy msgid "Open Documentation" msgstr "شمارش ها" @@ -10340,11 +10388,6 @@ msgstr "تغییر نوع" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Extend Script" -msgstr "باز کردن Ùˆ اجرای یک اسکریپت" - -#: editor/scene_tree_dock.cpp -#, fuzzy msgid "Reparent to New Node" msgstr "گره تغییر والد" @@ -10591,27 +10634,19 @@ msgid "Will load an existing script file." msgstr "" #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "" - -#: editor/script_create_dialog.cpp #, fuzzy -msgid "Inherits" -msgstr "میراث:" - -#: editor/script_create_dialog.cpp -#, fuzzy -msgid "Class Name" +msgid "Class Name:" msgstr "کلاس:" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Template" +msgid "Template:" msgstr "برداشتن انتخاب شده" #: editor/script_create_dialog.cpp -msgid "Built-in Script" -msgstr "" +#, fuzzy +msgid "Built-in Script:" +msgstr "باز کردن Ùˆ اجرای یک اسکریپت" #: editor/script_create_dialog.cpp #, fuzzy @@ -11293,6 +11328,11 @@ msgid "Add Function" msgstr "اÙزودن وظیÙÙ‡" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Delete input port" +msgstr "برداشتن نقطه" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "اÙزودن متغیر" @@ -11302,6 +11342,26 @@ msgstr "Signal را اضاÙÙ‡ Ú©Ù†" #: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Add Input Port" +msgstr "اÙزودن عمل ورودی" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Output Port" +msgstr "اÙزودن عمل ورودی" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Input Port" +msgstr "برداشتن نقطه" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Output Port" +msgstr "برداشتن نقطه" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Change Expression" msgstr "انتقال را در انیمیشن تغییر بده" @@ -11344,10 +11404,20 @@ msgid "Add Preload Node" msgstr "اÙزودن گره" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "گره(ها) را از درخت اضاÙÙ‡ Ú©Ù†" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "اÙزودن ویژگی دریاÙت‌کننده" @@ -11373,6 +11443,11 @@ msgstr "اتصال گره‌ها" #: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Disconnect Nodes" +msgstr "اتصال گره‌ها" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Connect Node Data" msgstr "اتصال گره‌ها" @@ -11407,6 +11482,27 @@ msgid "Paste VisualScript Nodes" msgstr "مسیر به سمت گره:" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function with a function node." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Create Function" +msgstr "تغییر نام نقش" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "برداشتن نقش" @@ -11432,16 +11528,13 @@ msgid "Make Tool:" msgstr "Ù…ØÙ„ÛŒ" #: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "نوع پایه:" - -#: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "عضوها:" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" -msgstr "گره های موجود:" +#, fuzzy +msgid "function_name" +msgstr "وظایÙ:" #: modules/visual_script/visual_script_editor.cpp #, fuzzy @@ -11467,6 +11560,15 @@ msgstr "" #: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Make Function" +msgstr "تغییر نام نقش" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Refresh Graph" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Edit Member" msgstr "عضوها" @@ -11567,6 +11669,10 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "" @@ -11669,6 +11775,10 @@ msgid "Required icon is not specified in the preset." msgstr "" #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "" @@ -12287,10 +12397,6 @@ msgstr "" "تا بتواند یک اندازه بگیرد. در غیر اینصورت، آن را یک RenderTarget قرار دهید Ùˆ " "باÙت داخلی آن را برای نمایش به تعدادی گره تخصیص دهید." -#: scene/resources/visual_shader.cpp -msgid "Input" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp #, fuzzy msgid "Invalid source for preview." @@ -12323,6 +12429,20 @@ msgid "Constants cannot be modified." msgstr "" #, fuzzy +#~ msgid "Add input +" +#~ msgstr "اÙزودن نقطه" + +#, fuzzy +#~ msgid "Inherits" +#~ msgstr "میراث:" + +#~ msgid "Base Type:" +#~ msgstr "نوع پایه:" + +#~ msgid "Available Nodes:" +#~ msgstr "گره های موجود:" + +#, fuzzy #~ msgid "Methods:" #~ msgstr "روش ها" @@ -12796,9 +12916,6 @@ msgstr "" #~ msgid "at least 6 characters" #~ msgstr "کاراکترهای معتبر:" -#~ msgid "Samples" -#~ msgstr "نمونه ها" - #~ msgid "BakedLightInstance does not contain a BakedLight resource." #~ msgstr "BakedLightInstance Ù…Øتوی یک منبع BakedLight نیست." diff --git a/editor/translations/fi.po b/editor/translations/fi.po index 429ff2b24d..cad94fd55c 100644 --- a/editor/translations/fi.po +++ b/editor/translations/fi.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-09-26 11:50+0000\n" +"PO-Revision-Date: 2019-10-04 03:15+0000\n" "Last-Translator: Tapani Niemi <tapani.niemi@kapsi.fi>\n" "Language-Team: Finnish <https://hosted.weblate.org/projects/godot-engine/" "godot/fi/>\n" @@ -66,32 +66,31 @@ msgstr "Kutsuttaessa funktiota '%s':" #: core/ustring.cpp msgid "B" -msgstr "" +msgstr "B" #: core/ustring.cpp msgid "KiB" -msgstr "" +msgstr "KiB" #: core/ustring.cpp -#, fuzzy msgid "MiB" -msgstr "Sekoita" +msgstr "MiB" #: core/ustring.cpp msgid "GiB" -msgstr "" +msgstr "GiB" #: core/ustring.cpp msgid "TiB" -msgstr "" +msgstr "TiB" #: core/ustring.cpp msgid "PiB" -msgstr "" +msgstr "PiB" #: core/ustring.cpp msgid "EiB" -msgstr "" +msgstr "EiB" #: editor/animation_bezier_editor.cpp msgid "Free" @@ -357,6 +356,7 @@ msgstr "Luo %d uutta raitaa ja lisää avaimet?" #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "Luo" @@ -494,19 +494,9 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "Varoitus: muokataan tuotua animaatiota" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "Valitse kaikki" - -#: editor/animation_track_editor.cpp -msgid "Select None" -msgstr "Tyhjennä valinta" - #: editor/animation_track_editor.cpp -#, fuzzy msgid "Select an AnimationPlayer node to create and edit animations." -msgstr "Polku animaatiot sisältävään AnimationPlayer solmuun on asettamatta." +msgstr "Valitse AnimationPlayer solmu luodaksesi ja muokataksesi animaatioita." #: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." @@ -638,7 +628,8 @@ msgid "Scale Ratio:" msgstr "Skaalaussuhde:" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" +#, fuzzy +msgid "Select Tracks to Copy" msgstr "Valitse kopioitavat raidat:" #: editor/animation_track_editor.cpp editor/editor_log.cpp @@ -650,6 +641,11 @@ msgstr "Valitse kopioitavat raidat:" msgid "Copy" msgstr "Kopioi" +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Select All/None" +msgstr "Tyhjennä valinta" + #: editor/animation_track_editor_plugins.cpp msgid "Add Audio Track Clip" msgstr "Lisää ääniraidan leike" @@ -973,7 +969,7 @@ msgid "Resource" msgstr "Resurssi" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "Polku" @@ -1243,9 +1239,8 @@ msgid "Delete Bus Effect" msgstr "Poista väylän efekti" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Drag & drop to rearrange." -msgstr "Ääniväylä, tartu ja vedä järjestelläksesi uudelleen." +msgstr "Vedä ja pudota järjestelläksesi uudelleen." #: editor/editor_audio_buses.cpp msgid "Solo" @@ -1439,7 +1434,8 @@ msgstr "Lisää automaattisesti ladattava" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "Polku:" @@ -1493,7 +1489,7 @@ msgstr "Luo kansio" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "Nimi:" @@ -1890,6 +1886,7 @@ msgid "Class:" msgstr "Luokka:" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "Perii:" @@ -1898,9 +1895,8 @@ msgid "Inherited by:" msgstr "Perivät:" #: editor/editor_help.cpp -#, fuzzy msgid "Brief Description" -msgstr "Lyhyt kuvaus:" +msgstr "Lyhyt kuvaus" #: editor/editor_help.cpp msgid "Properties" @@ -1931,9 +1927,8 @@ msgid "Class Description" msgstr "Luokan kuvaus" #: editor/editor_help.cpp -#, fuzzy msgid "Online Tutorials" -msgstr "Online-oppaat:" +msgstr "Online-oppaat" #: editor/editor_help.cpp msgid "" @@ -2056,7 +2051,7 @@ msgstr "Aloita" #: editor/editor_network_profiler.cpp msgid "%s/s" -msgstr "" +msgstr "%s/s" #: editor/editor_network_profiler.cpp msgid "Down" @@ -2072,19 +2067,19 @@ msgstr "Solmu" #: editor/editor_network_profiler.cpp msgid "Incoming RPC" -msgstr "" +msgstr "Tuleva RPC" #: editor/editor_network_profiler.cpp msgid "Incoming RSET" -msgstr "" +msgstr "Tuleva RSET" #: editor/editor_network_profiler.cpp msgid "Outgoing RPC" -msgstr "" +msgstr "Lähtevä RPC" #: editor/editor_network_profiler.cpp msgid "Outgoing RSET" -msgstr "" +msgstr "Lähtevä RSET" #: editor/editor_node.cpp editor/project_manager.cpp msgid "New Window" @@ -2665,17 +2660,16 @@ msgid "Project Settings..." msgstr "Projektin asetukset..." #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Version Control" -msgstr "Versio:" +msgstr "Versionhallinta" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Set Up Version Control" -msgstr "" +msgstr "Määritä versionhallinta" #: editor/editor_node.cpp msgid "Shut Down Version Control" -msgstr "" +msgstr "Sammuta versionhallinta" #: editor/editor_node.cpp msgid "Export..." @@ -2947,7 +2941,7 @@ msgstr "Tarkastelu" msgid "Expand Bottom Panel" msgstr "Laajenna alapaneeli" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "Tuloste" @@ -2973,18 +2967,25 @@ msgid "" "the \"Use Custom Build\" option should be enabled in the Android export " "preset." msgstr "" +"Tämä valmistelee projektisi mukautettuja Android-käännöksiä varten " +"asentamalla lähdemallin hakemistoon \"res://android/build\".\n" +"Voit sen jälkeen soveltaa muunnoksia ja kääntää oman räätälöidyn APK:n " +"vientiin (lisäten moduuleja, muuttaen AndroidManifest.xml tiedostoa, jne.)\n" +"Huomaa, että tehdäksesi mukautettuja käännöksiä esikäännetyn APK:n " +"käyttämisen sijaan, \"Use Custom Build\" valinnan tulee olla päällä Android-" +"viennin esiasetuksissa." #: editor/editor_node.cpp -#, fuzzy msgid "" "The Android build template is already installed in this project and it won't " "be overwritten.\n" "Remove the \"res://android/build\" directory manually before attempting this " "operation again." msgstr "" -"Androidin käännösmalli on jo asennettu, eikä sitä ylikirjoiteta.\n" -"Poista \"build\" hakemisto käsin ennen kuin yrität tätä toimenpidettä " -"uudelleen." +"Androidin käännösmalli on jo asennettu tähän projektiin, eikä sitä " +"ylikirjoiteta.\n" +"Poista \"res://android/build\" hakemisto käsin ennen kuin yrität tätä " +"toimenpidettä uudelleen." #: editor/editor_node.cpp msgid "Import Templates From ZIP File" @@ -3047,9 +3048,8 @@ msgid "Open the previous Editor" msgstr "Avaa edellinen editori" #: editor/editor_path.cpp -#, fuzzy msgid "No sub-resources found." -msgstr "Pinnan lähdettä ei ole määritelty." +msgstr "Aliresursseja ei löydetty." #: editor/editor_plugin.cpp msgid "Creating Mesh Previews" @@ -3060,9 +3060,8 @@ msgid "Thumbnail..." msgstr "Pienoiskuva..." #: editor/editor_plugin_settings.cpp -#, fuzzy msgid "Main Script:" -msgstr "Avaa skripti:" +msgstr "Pääskripti:" #: editor/editor_plugin_settings.cpp msgid "Edit Plugin" @@ -3198,6 +3197,10 @@ msgstr "Valitse näyttöruutu" msgid "New Script" msgstr "Uusi skripti" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +msgid "Extend Script" +msgstr "Laajenna skriptiä" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "Uusi %s" @@ -3224,13 +3227,6 @@ msgstr "Liitä" msgid "Convert To %s" msgstr "Muunna muotoon %s" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Open Editor" -msgstr "Avaa editori" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "Valittu solmu ei ole Viewport!" @@ -3890,7 +3886,6 @@ msgid "Import As:" msgstr "Tuo nimellä:" #: editor/import_dock.cpp -#, fuzzy msgid "Preset" msgstr "Esiasetukset" @@ -4020,7 +4015,7 @@ msgstr "Liitännäisen nimi:" msgid "Subfolder:" msgstr "Alikansio:" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "Kieli:" @@ -4162,6 +4157,12 @@ msgstr "Piste" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Open Editor" +msgstr "Avaa editori" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp msgid "Open Animation Node" msgstr "Avaa animaatiosolmu" @@ -4508,7 +4509,6 @@ msgstr "Animaation nimi:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "Virhe!" @@ -4681,6 +4681,8 @@ msgid "Current:" msgstr "Nykyinen:" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "Lisää syöte" @@ -4886,6 +4888,10 @@ msgid "All" msgstr "Kaikki" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp msgid "Import..." msgstr "Tuo..." @@ -5177,28 +5183,34 @@ msgid "Pan Mode" msgstr "Panorointitila" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Ruler Mode" -msgstr "Käynnistystila:" +msgstr "Viivaintila" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Toggle snapping." +#, fuzzy +msgid "Toggle smart snapping." msgstr "Aseta tarttuminen." #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +#, fuzzy +msgid "Use Smart Snap" msgstr "Käytä tarttumista" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snapping Options" -msgstr "Tarttumisen asetukset" +#, fuzzy +msgid "Toggle grid snapping." +msgstr "Aseta tarttuminen." #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to Grid" +#, fuzzy +msgid "Use Grid Snap" msgstr "Tartu ruudukkoon" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snapping Options" +msgstr "Tarttumisen asetukset" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Rotation Snap" msgstr "Tartu käännettäessä" @@ -5285,8 +5297,8 @@ msgid "View" msgstr "Näytä" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +#, fuzzy +msgid "Always Show Grid" msgstr "Näytä ruudukko" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5553,6 +5565,11 @@ msgstr "Aseta käyrälle lineaarinen tangentti" msgid "Hold Shift to edit tangents individually" msgstr "Pidä shift pohjassa muokataksesi tangentteja yksitellen" +#: editor/plugins/curve_editor_plugin.cpp +#, fuzzy +msgid "Right click to add point" +msgstr "Oikea painallus: poista piste" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "Kehitä GI Probe" @@ -6192,6 +6209,10 @@ msgid "Grid" msgstr "Ruudukko" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "Näytä ruudukko" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Configure Grid:" msgstr "Määrittele ruudukko:" @@ -6248,6 +6269,7 @@ msgstr "Ilmentymä:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "Tyyppi:" @@ -6346,6 +6368,11 @@ msgid "Find Next" msgstr "Etsi seuraava" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "Etsi edellinen" + +#: editor/plugins/script_editor_plugin.cpp msgid "Filter scripts" msgstr "Suodata skriptejä" @@ -6614,6 +6641,11 @@ msgstr "Keskeytyskohdat" msgid "Cut" msgstr "Leikkaa" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "Valitse kaikki" + #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "Poista rivi" @@ -6671,10 +6703,6 @@ msgid "Auto Indent" msgstr "Automaattinen sisennys" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "Etsi edellinen" - -#: editor/plugins/script_text_editor.cpp msgid "Find in Files..." msgstr "Etsi tiedostoista..." @@ -6996,6 +7024,11 @@ msgid "Freelook Speed Modifier" msgstr "Liikkumisen nopeussäädin" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Freelook Slow Modifier" +msgstr "Liikkumisen nopeussäädin" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -7034,6 +7067,10 @@ msgid "Use Local Space" msgstr "Käytä paikallisavaruutta" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "Käytä tarttumista" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "Alanäkymä" @@ -7260,6 +7297,11 @@ msgid "Simplification: " msgstr "Yksinkertaistus: " #: editor/plugins/sprite_editor_plugin.cpp +#, fuzzy +msgid "Shrink (Pixels): " +msgstr "Suurrennus (pikseleissä): " + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "Suurrennus (pikseleissä): " @@ -7308,9 +7350,8 @@ msgid "(empty)" msgstr "(tyhjä)" #: editor/plugins/sprite_frames_editor_plugin.cpp -#, fuzzy msgid "Move Frame" -msgstr "Liitä ruutu" +msgstr "Siirrä ruutua" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Animations:" @@ -7627,13 +7668,14 @@ msgid "Enable Priority" msgstr "Ota prioriteetti käyttöön" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Filter tiles" -msgstr "Suodata tiedostot..." +msgstr "Suodata ruutuja" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Give a TileSet resource to this TileMap to use its tiles." msgstr "" +"Anna tälle ruutukartalle (TileMap) ruutuvalikoimaresurssi (TileSet) " +"käyttääksesi sen ruutuja." #: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" @@ -7771,6 +7813,8 @@ msgstr "Näytä ruutujen nimet (pidä Alt-näppäin pohjassa)" msgid "" "Add or select a texture on the left panel to edit the tiles bound to it." msgstr "" +"Lisää tai valitse tekstuuri vasemmasta paneelista muokataksesi siihen " +"sidottuja ruutuja." #: editor/plugins/tile_set_editor_plugin.cpp msgid "Remove selected texture? This will remove all tiles which use it." @@ -7944,92 +7988,80 @@ msgid "TileSet" msgstr "Ruutuvalikoima" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "No VCS addons are available." -msgstr "Solmun yläsolmun nimi, jos saatavilla" +msgstr "VCS-lisäosia ei ole saatavilla." #: editor/plugins/version_control_editor_plugin.cpp editor/rename_dialog.cpp msgid "Error" msgstr "Virhe" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "No commit message was provided" -msgstr "Nimeä ei annettu" +msgstr "Muutosviestiä ei annettu" #: editor/plugins/version_control_editor_plugin.cpp msgid "No files added to stage" -msgstr "" +msgstr "Tiedostoja ei ole lisätty valmisteluun" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Commit" -msgstr "Yhteisö" +msgstr "Vahvista muutos" #: editor/plugins/version_control_editor_plugin.cpp msgid "VCS Addon is not initialized" -msgstr "" +msgstr "VCS-lisäosaa ei ole alustettu" #: editor/plugins/version_control_editor_plugin.cpp msgid "Version Control System" -msgstr "" +msgstr "Versionhallintajärjestelmä" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Initialize" -msgstr "Isot alkukirjaimet" +msgstr "Alusta" #: editor/plugins/version_control_editor_plugin.cpp msgid "Staging area" -msgstr "" +msgstr "Valmistelualue" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Detect new changes" -msgstr "Luo uusi suorakulmio." +msgstr "Havaitse uudet muutokset" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Changes" -msgstr "Muuta" +msgstr "Muutokset" #: editor/plugins/version_control_editor_plugin.cpp msgid "Modified" -msgstr "" +msgstr "Muutettu" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Renamed" -msgstr "Nimeä uudelleen" +msgstr "Nimetty uudelleen" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Deleted" -msgstr "Poista" +msgstr "Poistettu" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Typechange" -msgstr "Muuta" +msgstr "Tyyppimuunnos" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Stage Selected" -msgstr "Poista valitut" +msgstr "Valmistele valitut" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Stage All" -msgstr "Tallenna kaikki" +msgstr "Valmistele kaikki" #: editor/plugins/version_control_editor_plugin.cpp msgid "Add a commit message" -msgstr "" +msgstr "Lisää muutosviesti" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Commit Changes" -msgstr "Synkronoi skriptin muutokset" +msgstr "Vahvista muutokset" #: editor/plugins/version_control_editor_plugin.cpp #: modules/gdnative/gdnative_library_singleton_editor.cpp @@ -8039,26 +8071,24 @@ msgstr "Tila" #: editor/plugins/version_control_editor_plugin.cpp msgid "View file diffs before committing them to the latest version" msgstr "" +"Katso tiedostojen eroavaisuudet ennen niiden vahvistamista viimeisimpään " +"versioon" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "No file diff is active" -msgstr "Ei valittuja tiedostoja!" +msgstr "Mitään tiedostovertailua ei ole aktiivisena" #: editor/plugins/version_control_editor_plugin.cpp msgid "Detect changes in file diff" -msgstr "" +msgstr "Havaitse muutokset tiedostovertailussa" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "(GLES3 only)" msgstr "(Vain GLES3)" #: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add input +" -msgstr "Lisää tulo +" - -#: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add output +" +#, fuzzy +msgid "Add Output" msgstr "Lisää lähtö +" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -8074,6 +8104,11 @@ msgid "Boolean" msgstr "Totuusarvo" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Sampler" +msgstr "Lisää Sample" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add input port" msgstr "Lisää tuloportti" @@ -8285,11 +8320,10 @@ msgstr "" "Palauttaa liitetyn vektorin, jos annettu totuusarvo on tosi tai epätosi." #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "" "Returns an associated scalar if the provided boolean value is true or false." msgstr "" -"Palauttaa liitetyn vektorin, jos annettu totuusarvo on tosi tai epätosi." +"Palauttaa liitetyn skalaarin, jos annettu totuusarvo on tosi tai epätosi." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the boolean result of the comparison between two parameters." @@ -9002,15 +9036,19 @@ msgid "Resources to export:" msgstr "Vietävät resurssit:" #: editor/project_export.cpp +#, fuzzy msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" "Suodattimet tiedostojen viemiseen jotka eivät ole resursseja (esim. *.json, " "*.txt)" #: editor/project_export.cpp +#, fuzzy msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" "Suodattimet tiedostoille jotka jätetään projektista pois (esim. *.json, *." "txt)" @@ -9606,9 +9644,8 @@ msgid "Settings saved OK." msgstr "Asetukset tallennettu onnistuneesti." #: editor/project_settings_editor.cpp -#, fuzzy msgid "Moved Input Action Event" -msgstr "Lisää syötetoiminnon tapahtuma" +msgstr "Siirretty syötetoiminnon tapahtuma" #: editor/project_settings_editor.cpp msgid "Override for Feature" @@ -9975,9 +10012,8 @@ msgid "Instance Scene(s)" msgstr "Luo ilmentymä skenestä tai skeneistä" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Replace with Branch Scene" -msgstr "Tallenna haara skenenä" +msgstr "Korvaa skenehaaralla" #: editor/scene_tree_dock.cpp msgid "Instance Child Scene" @@ -10024,23 +10060,20 @@ msgid "Make node as Root" msgstr "Tee solmusta juurisolmu" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete %d nodes?" -msgstr "Poista solmut" +msgstr "Poista %d solmua?" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete the root node \"%s\"?" -msgstr "Poista sävytingraafin solmuja" +msgstr "Poista juurisolmu \"%s\"?" #: editor/scene_tree_dock.cpp msgid "Delete node \"%s\" and its children?" -msgstr "" +msgstr "Poista solmu \"%s\" ja sen alisolmut?" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete node \"%s\"?" -msgstr "Poista solmut" +msgstr "Poista solmu \"%s\"?" #: editor/scene_tree_dock.cpp msgid "Can not perform with the root node." @@ -10063,12 +10096,13 @@ msgstr "" "solmun ominaisuudet oletusarvoihin." #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "Muokattavat alisolmut" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" -msgstr "Lataa paikanpitäjäksi" +#, fuzzy +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." +msgstr "" +"\"editable_instance\" ominaisuuden poistaminen käytöstä palauttaa kaikki " +"solmun ominaisuudet oletusarvoihin." #: editor/scene_tree_dock.cpp msgid "Make Local" @@ -10143,6 +10177,14 @@ msgid "Clear Inheritance" msgstr "Poista perintä" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "Muokattavat alisolmut" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "Lataa paikanpitäjäksi" + +#: editor/scene_tree_dock.cpp msgid "Open Documentation" msgstr "Avaa dokumentaatio" @@ -10159,10 +10201,6 @@ msgid "Change Type" msgstr "Muuta tyyppiä" #: editor/scene_tree_dock.cpp -msgid "Extend Script" -msgstr "Laajenna skriptiä" - -#: editor/scene_tree_dock.cpp msgid "Reparent to New Node" msgstr "Vaihda solmulle uusi isäntä" @@ -10403,23 +10441,18 @@ msgid "Will load an existing script file." msgstr "Lataa olemassaolevan skriptitiedoston." #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "Kieli" - -#: editor/script_create_dialog.cpp -msgid "Inherits" -msgstr "Perii" - -#: editor/script_create_dialog.cpp -msgid "Class Name" +#, fuzzy +msgid "Class Name:" msgstr "Luokan nimi" #: editor/script_create_dialog.cpp -msgid "Template" +#, fuzzy +msgid "Template:" msgstr "Malli" #: editor/script_create_dialog.cpp -msgid "Built-in Script" +#, fuzzy +msgid "Built-in Script:" msgstr "Sisäänrakennettu skripti" #: editor/script_create_dialog.cpp @@ -10435,38 +10468,32 @@ msgid "Bytes:" msgstr "Tavu(j)a:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Warning:" -msgstr "Varoitukset:" +msgstr "Varoitus:" #: editor/script_editor_debugger.cpp msgid "Error:" msgstr "Virhe:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Error" -msgstr "Kopioi virhe" +msgstr "C++ virhe" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Error:" -msgstr "Virhe:" +msgstr "C++ virhe:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Source" -msgstr "Lähde" +msgstr "C++ lähdekoodi" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Source:" -msgstr "Lähde" +msgstr "Lähdekoodi:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Source:" -msgstr "Lähde" +msgstr "C++ lähdekoodi:" #: editor/script_editor_debugger.cpp msgid "Stack Trace" @@ -10477,18 +10504,16 @@ msgid "Errors" msgstr "Virheet" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Child process connected." -msgstr "Aliprosessi yhdistetty" +msgstr "Aliprosessi yhdistetty." #: editor/script_editor_debugger.cpp msgid "Copy Error" msgstr "Kopioi virhe" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Skip Breakpoints" -msgstr "Keskeytyskohdat" +msgstr "Sivuuta keskeytyskohdat" #: editor/script_editor_debugger.cpp msgid "Inspect Previous Instance" @@ -10507,9 +10532,8 @@ msgid "Profiler" msgstr "Profiloija" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Network Profiler" -msgstr "Vie profiili" +msgstr "Verkkoprofiloija" #: editor/script_editor_debugger.cpp msgid "Monitor" @@ -10733,7 +10757,7 @@ msgstr "GDNative" #: modules/gdscript/gdscript_functions.cpp msgid "Expected a string of length 1 (a character)." -msgstr "" +msgstr "Odotettiin yhden mittaista merkkijonoa (yhtä merkkiä)." #: modules/gdscript/gdscript_functions.cpp msgid "Step argument is zero!" @@ -10892,13 +10916,13 @@ msgid "Pick Distance:" msgstr "Poimintaetäisyys:" #: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "Filter meshes" -msgstr "Suodata metodeja" +msgstr "Suodata meshejä" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Give a MeshLibrary resource to this GridMap to use its meshes." msgstr "" +"Anna MeshLibrary resurssi tälle GridMap solmulle käyttääksesi sen meshejä." #: modules/mono/csharp_script.cpp msgid "Class name can't be a reserved keyword" @@ -11073,6 +11097,11 @@ msgid "Add Function" msgstr "Lisää funktio" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Delete input port" +msgstr "Poista tuloportti" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "Lisää muuttuja" @@ -11081,6 +11110,26 @@ msgid "Add Signal" msgstr "Lisää signaali" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Input Port" +msgstr "Lisää tuloportti" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Output Port" +msgstr "Lisää lähtöportti" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Input Port" +msgstr "Poista tuloportti" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Output Port" +msgstr "Poista lähtöportti" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "Vaihda lauseketta" @@ -11126,10 +11175,20 @@ msgid "Add Preload Node" msgstr "Lisää esiladattu solmu" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "Lisää solmut puusta" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "Lisää palauttajaominaisuus" @@ -11154,6 +11213,11 @@ msgid "Connect Nodes" msgstr "Kytke solmut" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Disconnect Nodes" +msgstr "Erota graafin solmut" + +#: modules/visual_script/visual_script_editor.cpp msgid "Connect Node Data" msgstr "Kytke solmun data" @@ -11186,6 +11250,28 @@ msgid "Paste VisualScript Nodes" msgstr "Liitä VisualScript solmut" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Can't create function with a function node." +msgstr "Ei voida kopioida funktiosolmua." + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Create Function" +msgstr "Nimeä funktio uudelleen" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "Poista funktio" @@ -11206,21 +11292,17 @@ msgid "Editing Signal:" msgstr "Muokataan signaalia:" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Make Tool:" -msgstr "Tee paikallinen" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "Kantatyyppi:" +msgstr "Tee työkalu:" #: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "Jäsenet:" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" -msgstr "Saatavilla olevat solmut:" +#, fuzzy +msgid "function_name" +msgstr "Funktio:" #: modules/visual_script/visual_script_editor.cpp msgid "Select or create a function to edit its graph." @@ -11243,6 +11325,16 @@ msgid "Cut Nodes" msgstr "Leikkaa solmut" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Make Function" +msgstr "Nimeä funktio uudelleen" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Refresh Graph" +msgstr "Päivitä" + +#: modules/visual_script/visual_script_editor.cpp msgid "Edit Member" msgstr "Muokkaa jäsentä" @@ -11340,6 +11432,10 @@ msgid "The package must have at least one '.' separator." msgstr "Paketilla on oltava ainakin yksi '.' erotinmerkki." #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "Valitse laite listasta" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "ADB käynnistystiedostoa ei ole määritetty editorin asetuksissa." @@ -11365,12 +11461,11 @@ msgstr "" "asetuksissa." #: platform/android/export/export.cpp -#, fuzzy msgid "" "Android build template not installed in the project. Install it from the " "Project menu." msgstr "" -"Android-projektia ei ole asennettu kääntämistä varten. Asenna se Editori-" +"Android-käännösmallia ei ole asennettu projektiin. Asenna se Projekti-" "valikosta." #: platform/android/export/export.cpp @@ -11456,6 +11551,10 @@ msgid "Required icon is not specified in the preset." msgstr "Vaadittavaa ikonia ei ole määritetty esiasetuksissa." #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "Suorita selaimessa" @@ -12117,10 +12216,6 @@ msgstr "" "saada koon. Muutoin tee siitä RenderTarget ja aseta sen sisäinen tekstuuri " "johonkin solmuun näkyväksi." -#: scene/resources/visual_shader.cpp -msgid "Input" -msgstr "Syöte" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for preview." msgstr "Virheellinen lähde esikatselulle." @@ -12149,6 +12244,27 @@ msgstr "Varying tyypin voi sijoittaa vain vertex-funktiossa." msgid "Constants cannot be modified." msgstr "Vakioita ei voi muokata." +#~ msgid "Snap to Grid" +#~ msgstr "Tartu ruudukkoon" + +#~ msgid "Add input +" +#~ msgstr "Lisää tulo +" + +#~ msgid "Language" +#~ msgstr "Kieli" + +#~ msgid "Inherits" +#~ msgstr "Perii" + +#~ msgid "Base Type:" +#~ msgstr "Kantatyyppi:" + +#~ msgid "Available Nodes:" +#~ msgstr "Saatavilla olevat solmut:" + +#~ msgid "Input" +#~ msgstr "Syöte" + #~ msgid "Properties:" #~ msgstr "Ominaisuudet:" @@ -12427,9 +12543,6 @@ msgstr "Vakioita ei voi muokata." #~ msgid "Go to parent folder" #~ msgstr "Siirry yläkansioon" -#~ msgid "Select device from the list" -#~ msgstr "Valitse laite listasta" - #~ msgid "Open Scene(s)" #~ msgstr "Avaa skene tai skenejä" @@ -12666,9 +12779,6 @@ msgstr "Vakioita ei voi muokata." #~ msgid "Warning" #~ msgstr "Varoitus" -#~ msgid "Function:" -#~ msgstr "Funktio:" - #~ msgid "Variable" #~ msgstr "Muuttuja" @@ -12735,9 +12845,6 @@ msgstr "Vakioita ei voi muokata." #~ msgid "Connect Graph Nodes" #~ msgstr "Yhdistä graafin solmut" -#~ msgid "Disconnect Graph Nodes" -#~ msgstr "Erota graafin solmut" - #~ msgid "Remove Shader Graph Node" #~ msgstr "Poista sävytingraafin solmu" @@ -13368,9 +13475,6 @@ msgstr "Vakioita ei voi muokata." #~ msgid "ERROR: Couldn't load sample!" #~ msgstr "VIRHE: Samplea ei voitu ladata!" -#~ msgid "Add Sample" -#~ msgstr "Lisää Sample" - #~ msgid "Rename Sample" #~ msgstr "Nimeä Sample uudelleen" diff --git a/editor/translations/fil.po b/editor/translations/fil.po index fc6b4085a0..11a3f7c0a4 100644 --- a/editor/translations/fil.po +++ b/editor/translations/fil.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2019-08-11 10:23+0000\n" +"PO-Revision-Date: 2019-10-11 15:07+0000\n" "Last-Translator: Marco Santos <enum.scima@gmail.com>\n" "Language-Team: Filipino <https://hosted.weblate.org/projects/godot-engine/" "godot/fil/>\n" @@ -16,7 +16,7 @@ msgstr "" "Content-Transfer-Encoding: 8-bit\n" "Plural-Forms: nplurals=2; plural=n != 1 && n != 2 && n != 3 && (n % 10 == 4 " "|| n % 10 == 6 || n % 10 == 9);\n" -"X-Generator: Weblate 3.8-dev\n" +"X-Generator: Weblate 3.9-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -35,12 +35,12 @@ msgstr "" #: core/math/expression.cpp msgid "Invalid input %i (not passed) in expression" -msgstr "Invalid na input %i (hindi pinasa) sa ekspresyon" +msgstr "Invalid na input %i (hindi ipinasa) sa expression" #: core/math/expression.cpp msgid "self can't be used because instance is null (not passed)" msgstr "" -"Hindi magagamit ang self dahil ang instance ay naka-null (hindi pinasa)" +"Hindi magagamit ang self dahil ang instance ay naka-null (hindi ipinasa)" #: core/math/expression.cpp msgid "Invalid operands to operator %s, %s and %s." @@ -64,31 +64,31 @@ msgstr "On call sa '%s':" #: core/ustring.cpp msgid "B" -msgstr "" +msgstr "B" #: core/ustring.cpp msgid "KiB" -msgstr "" +msgstr "KiB" #: core/ustring.cpp msgid "MiB" -msgstr "" +msgstr "MiB" #: core/ustring.cpp msgid "GiB" -msgstr "" +msgstr "GiB" #: core/ustring.cpp msgid "TiB" -msgstr "" +msgstr "TiB" #: core/ustring.cpp msgid "PiB" -msgstr "" +msgstr "PiB" #: core/ustring.cpp msgid "EiB" -msgstr "" +msgstr "EiB" #: editor/animation_bezier_editor.cpp msgid "Free" @@ -112,7 +112,7 @@ msgstr "Halaga:" #: editor/animation_bezier_editor.cpp msgid "Insert Key Here" -msgstr "Mag-insert ng Key Rito" +msgstr "Mag-insert ng Key dito" #: editor/animation_bezier_editor.cpp msgid "Duplicate Selected Key(s)" @@ -144,15 +144,15 @@ msgstr "I-anim ang Oras ng Pagbago ng Keyframe" #: editor/animation_track_editor.cpp msgid "Anim Change Transition" -msgstr "I-anim ang Transisyon ng Pagbago" +msgstr "I-anim ang Transition ng Pagbago" #: editor/animation_track_editor.cpp msgid "Anim Change Transform" -msgstr "" +msgstr "I-anim ang Pagbabago sa Transform" #: editor/animation_track_editor.cpp msgid "Anim Change Keyframe Value" -msgstr "" +msgstr "I-anim ang Halaga ng Keyframe na Binago" #: editor/animation_track_editor.cpp msgid "Anim Change Call" @@ -354,6 +354,7 @@ msgstr "" #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "" @@ -479,15 +480,6 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "" - -#: editor/animation_track_editor.cpp -msgid "Select None" -msgstr "" - #: editor/animation_track_editor.cpp msgid "Select an AnimationPlayer node to create and edit animations." msgstr "" @@ -622,7 +614,7 @@ msgid "Scale Ratio:" msgstr "" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" +msgid "Select Tracks to Copy" msgstr "" #: editor/animation_track_editor.cpp editor/editor_log.cpp @@ -634,6 +626,10 @@ msgstr "" msgid "Copy" msgstr "" +#: editor/animation_track_editor.cpp +msgid "Select All/None" +msgstr "" + #: editor/animation_track_editor_plugins.cpp msgid "Add Audio Track Clip" msgstr "" @@ -950,7 +946,7 @@ msgid "Resource" msgstr "" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "" @@ -1405,7 +1401,8 @@ msgstr "" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "" @@ -1459,7 +1456,7 @@ msgstr "" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "" @@ -1843,6 +1840,7 @@ msgid "Class:" msgstr "" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "" @@ -2834,7 +2832,7 @@ msgstr "" msgid "Expand Bottom Panel" msgstr "" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "" @@ -3070,6 +3068,10 @@ msgstr "" msgid "New Script" msgstr "" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +msgid "Extend Script" +msgstr "" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "" @@ -3096,13 +3098,6 @@ msgstr "" msgid "Convert To %s" msgstr "" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Open Editor" -msgstr "" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "" @@ -3875,7 +3870,7 @@ msgstr "" msgid "Subfolder:" msgstr "" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "" @@ -4010,6 +4005,12 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Open Editor" +msgstr "" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp msgid "Open Animation Node" msgstr "" @@ -4351,7 +4352,6 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "" @@ -4519,6 +4519,8 @@ msgid "Current:" msgstr "" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "" @@ -4724,6 +4726,10 @@ msgid "All" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp msgid "Import..." msgstr "" @@ -5003,20 +5009,23 @@ msgid "Ruler Mode" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Toggle snapping." +msgid "Toggle smart snapping." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +msgid "Use Smart Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snapping Options" +msgid "Toggle grid snapping." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to Grid" +msgid "Use Grid Snap" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snapping Options" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5106,8 +5115,7 @@ msgid "View" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +msgid "Always Show Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5369,6 +5377,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/curve_editor_plugin.cpp +msgid "Right click to add point" +msgstr "" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "" @@ -5999,6 +6011,10 @@ msgid "Grid" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Configure Grid:" msgstr "" @@ -6055,6 +6071,7 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "" @@ -6153,6 +6170,11 @@ msgid "Find Next" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Filter scripts" msgstr "" @@ -6418,6 +6440,11 @@ msgstr "" msgid "Cut" msgstr "" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "" @@ -6475,10 +6502,6 @@ msgid "Auto Indent" msgstr "" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "" - -#: editor/plugins/script_text_editor.cpp msgid "Find in Files..." msgstr "" @@ -6798,6 +6821,10 @@ msgid "Freelook Speed Modifier" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Slow Modifier" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -6831,6 +6858,10 @@ msgid "Use Local Space" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "" @@ -7057,6 +7088,10 @@ msgid "Simplification: " msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Shrink (Pixels): " +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "" @@ -7820,11 +7855,7 @@ msgid "(GLES3 only)" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add input +" -msgstr "" - -#: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add output +" +msgid "Add Output" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -7840,6 +7871,10 @@ msgid "Boolean" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sampler" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add input port" msgstr "" @@ -8697,12 +8732,14 @@ msgstr "" #: editor/project_export.cpp msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp @@ -9684,11 +9721,9 @@ msgid "" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." msgstr "" #: editor/scene_tree_dock.cpp @@ -9762,6 +9797,14 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "" + +#: editor/scene_tree_dock.cpp msgid "Open Documentation" msgstr "" @@ -9778,10 +9821,6 @@ msgid "Change Type" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Extend Script" -msgstr "" - -#: editor/scene_tree_dock.cpp msgid "Reparent to New Node" msgstr "" @@ -10008,23 +10047,15 @@ msgid "Will load an existing script file." msgstr "" #: editor/script_create_dialog.cpp -msgid "Language" +msgid "Class Name:" msgstr "" #: editor/script_create_dialog.cpp -msgid "Inherits" +msgid "Template:" msgstr "" #: editor/script_create_dialog.cpp -msgid "Class Name" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Template" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Built-in Script" +msgid "Built-in Script:" msgstr "" #: editor/script_create_dialog.cpp @@ -10659,6 +10690,10 @@ msgid "Add Function" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Delete input port" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "" @@ -10667,6 +10702,25 @@ msgid "Add Signal" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Input Port" +msgstr "Idagdag Ang Bezier Point" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Add Output Port" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Input Port" +msgstr "Ilipat Ang Mga Bezier Points" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Output Port" +msgstr "Ilipat Ang Mga Bezier Points" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "" @@ -10707,10 +10761,20 @@ msgid "Add Preload Node" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "" @@ -10735,6 +10799,10 @@ msgid "Connect Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Disconnect Nodes" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Connect Node Data" msgstr "" @@ -10767,6 +10835,26 @@ msgid "Paste VisualScript Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function with a function node." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Create Function" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "" @@ -10791,15 +10879,11 @@ msgid "Make Tool:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" +msgid "function_name" msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -10823,6 +10907,14 @@ msgid "Cut Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Make Function" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Refresh Graph" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Edit Member" msgstr "" @@ -10917,6 +11009,10 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "" @@ -11016,6 +11112,10 @@ msgid "Required icon is not specified in the preset." msgstr "" #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "" @@ -11553,10 +11653,6 @@ msgid "" "texture to some node for display." msgstr "" -#: scene/resources/visual_shader.cpp -msgid "Input" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for preview." msgstr "" diff --git a/editor/translations/fr.po b/editor/translations/fr.po index d2a4da4e25..cecaead406 100644 --- a/editor/translations/fr.po +++ b/editor/translations/fr.po @@ -71,7 +71,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-09-26 11:50+0000\n" +"PO-Revision-Date: 2019-10-06 08:48+0000\n" "Last-Translator: Sofiane <Sofiane-77@caramail.fr>\n" "Language-Team: French <https://hosted.weblate.org/projects/godot-engine/" "godot/fr/>\n" @@ -120,36 +120,35 @@ msgstr "Arguments invalides pour construire '%s'" #: core/math/expression.cpp msgid "On call to '%s':" -msgstr "Sur appel à '%s' :" +msgstr "Lors de l'appel à '%s' :" #: core/ustring.cpp msgid "B" -msgstr "" +msgstr "Octet" #: core/ustring.cpp msgid "KiB" -msgstr "" +msgstr "Kio" #: core/ustring.cpp -#, fuzzy msgid "MiB" -msgstr "Mixer" +msgstr "Mio" #: core/ustring.cpp msgid "GiB" -msgstr "" +msgstr "Gio" #: core/ustring.cpp msgid "TiB" -msgstr "" +msgstr "Tio" #: core/ustring.cpp msgid "PiB" -msgstr "" +msgstr "Pio" #: core/ustring.cpp msgid "EiB" -msgstr "" +msgstr "Eio" #: editor/animation_bezier_editor.cpp msgid "Free" @@ -229,7 +228,7 @@ msgstr "Changer la transition de l'animation" #: editor/animation_track_editor.cpp msgid "Anim Multi Change Transform" -msgstr "Changer le Transform" +msgstr "Changer le Transform de l'animation" #: editor/animation_track_editor.cpp msgid "Anim Multi Change Keyframe Value" @@ -241,12 +240,12 @@ msgstr "Changer l'appel de l'animation" #: editor/animation_track_editor.cpp msgid "Change Animation Length" -msgstr "Modifier la longueur de l'animation" +msgstr "Modifier la durée de l'animation" #: editor/animation_track_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Change Animation Loop" -msgstr "Modifier la boucle d'animation" +msgstr "Changer la boucle d'animation" #: editor/animation_track_editor.cpp msgid "Property Track" @@ -373,7 +372,7 @@ msgstr "Envelopper l'interp. de la boucle" #: editor/animation_track_editor.cpp #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Insert Key" -msgstr "Insérer une clé" +msgstr "Insérer clés" #: editor/animation_track_editor.cpp msgid "Duplicate Key(s)" @@ -415,6 +414,7 @@ msgstr "Créer %d NOUVELLES pistes et insérer des clés ?" #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "Créer" @@ -562,21 +562,10 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "Avertissement : Édition d'une animation importée" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "Tout sélectionner" - -#: editor/animation_track_editor.cpp -msgid "Select None" -msgstr "Tout désélectionner" - #: editor/animation_track_editor.cpp -#, fuzzy msgid "Select an AnimationPlayer node to create and edit animations." msgstr "" -"Le chemin d'accès à un nÅ“ud AnimationPlayer contenant des animations n'est " -"pas défini." +"Sélectionnez un nÅ“ud AnimationPlayer pour créer et modifier des animations." #: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." @@ -627,7 +616,7 @@ msgstr "Mettre à l'échelle la sélection" #: editor/animation_track_editor.cpp msgid "Scale From Cursor" -msgstr "Mettre à l’échelle à partir du curseur" +msgstr "Agrandir/Rétrécir à partir du curseur" #: editor/animation_track_editor.cpp modules/gridmap/grid_map_editor_plugin.cpp msgid "Duplicate Selection" @@ -710,7 +699,8 @@ msgid "Scale Ratio:" msgstr "Ratio d'échelle :" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" +#, fuzzy +msgid "Select Tracks to Copy" msgstr "Sélectionner les pistes à copier :" #: editor/animation_track_editor.cpp editor/editor_log.cpp @@ -722,6 +712,11 @@ msgstr "Sélectionner les pistes à copier :" msgid "Copy" msgstr "Copier" +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Select All/None" +msgstr "Tout Désélectionner" + #: editor/animation_track_editor_plugins.cpp msgid "Add Audio Track Clip" msgstr "Ajouter un clip audio" @@ -1046,7 +1041,7 @@ msgid "Resource" msgstr "Ressource" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "Chemin" @@ -1317,9 +1312,8 @@ msgid "Delete Bus Effect" msgstr "Supprimer l'effet de transport" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Drag & drop to rearrange." -msgstr "Bus audio, glisser-déposer pour réorganiser." +msgstr "Glisser-déposer pour réorganiser." #: editor/editor_audio_buses.cpp msgid "Solo" @@ -1456,7 +1450,7 @@ msgstr "" #: editor/editor_autoload_settings.cpp msgid "Must not collide with an existing built-in type name." msgstr "" -"Ne doit pas entrer en conflit avec un nom de type existant intégré au moteur." +"Ne doit pas être en conflit avec un nom de type existant intégré au moteur." #: editor/editor_autoload_settings.cpp msgid "Must not collide with an existing global constant name." @@ -1512,7 +1506,8 @@ msgstr "Ajouter le chargement automatique" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "Chemin :" @@ -1566,7 +1561,7 @@ msgstr "Créer un dossier" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "Nom :" @@ -1963,6 +1958,7 @@ msgid "Class:" msgstr "Classe :" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "Hérite de :" @@ -1971,9 +1967,8 @@ msgid "Inherited by:" msgstr "Héritée par :" #: editor/editor_help.cpp -#, fuzzy msgid "Brief Description" -msgstr "Brève description :" +msgstr "Brève description" #: editor/editor_help.cpp msgid "Properties" @@ -2004,9 +1999,8 @@ msgid "Class Description" msgstr "Description de la classe" #: editor/editor_help.cpp -#, fuzzy msgid "Online Tutorials" -msgstr "Tutoriels en ligne :" +msgstr "Tutoriels en ligne" #: editor/editor_help.cpp msgid "" @@ -2129,16 +2123,15 @@ msgstr "Démarrer" #: editor/editor_network_profiler.cpp msgid "%s/s" -msgstr "" +msgstr "%s/s" #: editor/editor_network_profiler.cpp -#, fuzzy msgid "Down" -msgstr "Télécharger" +msgstr "Descendre" #: editor/editor_network_profiler.cpp msgid "Up" -msgstr "" +msgstr "Monter" #: editor/editor_network_profiler.cpp editor/editor_node.cpp msgid "Node" @@ -2146,19 +2139,19 @@ msgstr "NÅ“ud" #: editor/editor_network_profiler.cpp msgid "Incoming RPC" -msgstr "" +msgstr "Entrées RPC" #: editor/editor_network_profiler.cpp msgid "Incoming RSET" -msgstr "" +msgstr "RSET entrant" #: editor/editor_network_profiler.cpp msgid "Outgoing RPC" -msgstr "" +msgstr "RPC sortant" #: editor/editor_network_profiler.cpp msgid "Outgoing RSET" -msgstr "" +msgstr "RSET sortant" #: editor/editor_node.cpp editor/project_manager.cpp msgid "New Window" @@ -2500,7 +2493,7 @@ msgstr "Fermer la scène" #: editor/editor_node.cpp msgid "Reopen Closed Scene" -msgstr "Rouvrir la scène fermée" +msgstr "Réouvrir la scène fermée" #: editor/editor_node.cpp msgid "Unable to enable addon plugin at: '%s' parsing of config failed." @@ -2625,7 +2618,7 @@ msgstr "Fermer l'onglet" #: editor/editor_node.cpp msgid "Undo Close Tab" -msgstr "Rouvrir l'onglet fermé" +msgstr "Annuler \"fermer l'onglet\"" #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp msgid "Close Other Tabs" @@ -2762,17 +2755,16 @@ msgid "Project Settings..." msgstr "Paramètres du projet..." #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Version Control" -msgstr "Version :" +msgstr "Contrôle de version" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Set Up Version Control" -msgstr "" +msgstr "Configurer le contrôle de version" #: editor/editor_node.cpp msgid "Shut Down Version Control" -msgstr "" +msgstr "Arrêter le contrôle de version" #: editor/editor_node.cpp msgid "Export..." @@ -3048,7 +3040,7 @@ msgstr "Inspecteur" msgid "Expand Bottom Panel" msgstr "Développez le panneau inférieur" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "Sortie" @@ -3076,9 +3068,16 @@ msgid "" "the \"Use Custom Build\" option should be enabled in the Android export " "preset." msgstr "" +"Ceci configurera votre projet pour des compilations Android personnalisées " +"en installant le modèle source dans \"res://android/build\".\n" +"Vous pouvez ensuite appliquer des modifications et créer votre propre APK " +"personnalisé à l'exportation (ajout de modules, modification du fichier " +"AndroidManifest.xml, etc.).\n" +"Notez que pour faire des compilations personnalisées au lieu d'utiliser des " +"APKs pré-construits, l'option \"Use Custom Build\" doit être activée dans le " +"Preset d'exportation Android." #: editor/editor_node.cpp -#, fuzzy msgid "" "The Android build template is already installed in this project and it won't " "be overwritten.\n" @@ -3086,8 +3085,8 @@ msgid "" "operation again." msgstr "" "Le modèle de build Android est déjà installé et ne va pas être remplacé.\n" -"Supprimez le répertoire « build » manuellement avant de retenter cette " -"opération." +"Supprimez le répertoire « res://android/build » manuellement avant de " +"retenter cette opération." #: editor/editor_node.cpp msgid "Import Templates From ZIP File" @@ -3150,9 +3149,8 @@ msgid "Open the previous Editor" msgstr "Ouvrir l'éditeur précédant" #: editor/editor_path.cpp -#, fuzzy msgid "No sub-resources found." -msgstr "Pas de surface source spécifiée." +msgstr "Aucune sous-ressource n'a été trouvée." #: editor/editor_plugin.cpp msgid "Creating Mesh Previews" @@ -3163,9 +3161,8 @@ msgid "Thumbnail..." msgstr "Aperçu…" #: editor/editor_plugin_settings.cpp -#, fuzzy msgid "Main Script:" -msgstr "Ouvrir le script :" +msgstr "Script principal :" #: editor/editor_plugin_settings.cpp msgid "Edit Plugin" @@ -3301,6 +3298,10 @@ msgstr "Choisissez un Viewport" msgid "New Script" msgstr "Nouveau script" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +msgid "Extend Script" +msgstr "Hériter d'un script" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "Nouveau %s" @@ -3327,13 +3328,6 @@ msgstr "Coller" msgid "Convert To %s" msgstr "Convertir en %s" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Open Editor" -msgstr "Ouvrir l'éditeur" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "Le nÅ“ud sélectionné n'est pas un Viewport !" @@ -3972,8 +3966,7 @@ msgstr "Impossible de charger le script de post-importation :" #: editor/import/resource_importer_scene.cpp msgid "Invalid/broken script for post-import (check console):" -msgstr "" -"Script de post-importation invalide ou corrompu (vérifiez la console) :" +msgstr "Script de post-importation invalide ou cassé (vérifier la console) :" #: editor/import/resource_importer_scene.cpp msgid "Error running post-import script:" @@ -4000,9 +3993,8 @@ msgid "Import As:" msgstr "Importer comme :" #: editor/import_dock.cpp -#, fuzzy msgid "Preset" -msgstr "Pré-réglages" +msgstr "Pré-réglage" #: editor/import_dock.cpp msgid "Reimport" @@ -4129,7 +4121,7 @@ msgstr "Nom du plugin :" msgid "Subfolder:" msgstr "Sous-dossier :" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "Langage :" @@ -4273,6 +4265,12 @@ msgstr "Point" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Open Editor" +msgstr "Ouvrir l'éditeur" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp msgid "Open Animation Node" msgstr "Ouvrir le NÅ“ud Animation" @@ -4624,7 +4622,6 @@ msgstr "Nom de l'animation :" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "Erreur !" @@ -4798,12 +4795,14 @@ msgid "Current:" msgstr "Actuel :" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "Ajouter une entrée" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Clear Auto-Advance" -msgstr "Réinitialiser la progression automatique" +msgstr "Effacer l'avance automatique" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Set Auto-Advance" @@ -5002,6 +5001,10 @@ msgid "All" msgstr "Tout" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp msgid "Import..." msgstr "Importer..." @@ -5294,28 +5297,34 @@ msgid "Pan Mode" msgstr "Mode navigation" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Ruler Mode" -msgstr "Mode d'exécution :" +msgstr "Mode Règle" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Toggle snapping." +#, fuzzy +msgid "Toggle smart snapping." msgstr "Activer/Désactiver le magnétisme." #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +#, fuzzy +msgid "Use Smart Snap" msgstr "Aligner sur la grille" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snapping Options" -msgstr "Options de magnétisme" +#, fuzzy +msgid "Toggle grid snapping." +msgstr "Activer/Désactiver le magnétisme." #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to Grid" +#, fuzzy +msgid "Use Grid Snap" msgstr "Aimanter à la grille" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snapping Options" +msgstr "Options de magnétisme" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Rotation Snap" msgstr "Rotation alignée" @@ -5368,7 +5377,7 @@ msgstr "Verrouiller l'objet sélectionné (il ne pourra plus être déplacé)." #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp msgid "Unlock the selected object (can be moved)." -msgstr "Déverouiller l'objet sélectionné (il pourra être déplacé de nouveau)." +msgstr "Déverrouiller l'objet sélectionné (il pourra être déplacé de nouveau)." #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -5402,8 +5411,8 @@ msgid "View" msgstr "Affichage" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +#, fuzzy +msgid "Always Show Grid" msgstr "Afficher la grille" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5477,7 +5486,7 @@ msgstr "Auto insertion de clé" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Insert Key (Existing Tracks)" -msgstr "Insérer une clé (pistes existantes)" +msgstr "Insérer clé (pistes existantes)" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Copy Pose" @@ -5670,6 +5679,11 @@ msgstr "Basculer vers tangente linéaire de courbe" msgid "Hold Shift to edit tangents individually" msgstr "Maintenez Maj. appuyée pour modifier les tangentes individuellement" +#: editor/plugins/curve_editor_plugin.cpp +#, fuzzy +msgid "Right click to add point" +msgstr "Clic droit : Supprimer un point" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "Créer sonde IG (Illumination Globale)" @@ -5854,19 +5868,19 @@ msgstr "" #: editor/plugins/multimesh_editor_plugin.cpp msgid "No surface source specified." -msgstr "Pas de surface source spécifiée." +msgstr "Aucune source de surface spécifiée." #: editor/plugins/multimesh_editor_plugin.cpp msgid "Surface source is invalid (invalid path)." -msgstr "La surface source est invalide (chemin non valide)." +msgstr "La source de surface est invalide (chemin non valide)." #: editor/plugins/multimesh_editor_plugin.cpp msgid "Surface source is invalid (no geometry)." -msgstr "La surface source est invalide (pas de géométrie)." +msgstr "La source de surface est invalide (pas de géométrie)." #: editor/plugins/multimesh_editor_plugin.cpp msgid "Surface source is invalid (no faces)." -msgstr "La surface source est invalide (pas de faces)." +msgstr "La source de surface est invalide (pas de faces)." #: editor/plugins/multimesh_editor_plugin.cpp msgid "Select a Source Mesh:" @@ -5878,11 +5892,11 @@ msgstr "Sélectionnez une surface cible :" #: editor/plugins/multimesh_editor_plugin.cpp msgid "Populate Surface" -msgstr "Peupler la surface" +msgstr "Remplir la surface" #: editor/plugins/multimesh_editor_plugin.cpp msgid "Populate MultiMesh" -msgstr "Peupler la MultiMesh" +msgstr "Remplir la MultiMesh" #: editor/plugins/multimesh_editor_plugin.cpp msgid "Target Surface:" @@ -5970,7 +5984,7 @@ msgstr "\"%s\" ne contient pas de géométrie." #: editor/plugins/particles_editor_plugin.cpp msgid "\"%s\" doesn't contain face geometry." -msgstr "Le maillage de \"%s\" ne contient aucunes faces." +msgstr "Le maillage \"%s\" ne contient aucunes faces." #: editor/plugins/particles_editor_plugin.cpp msgid "Create Emitter" @@ -6316,6 +6330,10 @@ msgid "Grid" msgstr "Grille" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "Afficher la grille" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Configure Grid:" msgstr "Configurer la grille :" @@ -6372,6 +6390,7 @@ msgstr "Instance :" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "Type :" @@ -6470,6 +6489,11 @@ msgid "Find Next" msgstr "Correspondance suivante" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "Correspondance précédente" + +#: editor/plugins/script_editor_plugin.cpp msgid "Filter scripts" msgstr "Filtrer les scripts" @@ -6739,6 +6763,11 @@ msgstr "Point d'arrêts" msgid "Cut" msgstr "Couper" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "Tout sélectionner" + #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "Supprimer ligne" @@ -6796,10 +6825,6 @@ msgid "Auto Indent" msgstr "Indentation automatique" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "Correspondance précédente" - -#: editor/plugins/script_text_editor.cpp msgid "Find in Files..." msgstr "Rechercher dans les fichiers…" @@ -7123,6 +7148,11 @@ msgid "Freelook Speed Modifier" msgstr "Modificateur de vitesse de la vue libre" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Freelook Slow Modifier" +msgstr "Modificateur de vitesse de la vue libre" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -7162,6 +7192,10 @@ msgid "Use Local Space" msgstr "Utiliser l'espace local" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "Aligner sur la grille" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "Vue de dessous" @@ -7228,7 +7262,7 @@ msgstr "2 vues" #: editor/plugins/spatial_editor_plugin.cpp msgid "2 Viewports (Alt)" -msgstr "2 vues (alt.)" +msgstr "2 vues (Alt)" #: editor/plugins/spatial_editor_plugin.cpp msgid "3 Viewports" @@ -7236,7 +7270,7 @@ msgstr "3 vues" #: editor/plugins/spatial_editor_plugin.cpp msgid "3 Viewports (Alt)" -msgstr "3 vues (alt.)" +msgstr "3 vues (Alt)" #: editor/plugins/spatial_editor_plugin.cpp msgid "4 Viewports" @@ -7390,6 +7424,11 @@ msgid "Simplification: " msgstr "Simplification : " #: editor/plugins/sprite_editor_plugin.cpp +#, fuzzy +msgid "Shrink (Pixels): " +msgstr "Croissance (Pixels) : " + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "Croissance (Pixels) : " @@ -7438,9 +7477,8 @@ msgid "(empty)" msgstr "(vide)" #: editor/plugins/sprite_frames_editor_plugin.cpp -#, fuzzy msgid "Move Frame" -msgstr "Coller une image" +msgstr "Déplacer le cadre" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Animations:" @@ -7472,11 +7510,11 @@ msgstr "Ajouter des trames depuis une feuille de Sprite" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" -msgstr "Insérer vide (avant)" +msgstr "Insérer vide (Avant)" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (After)" -msgstr "Insérer vide (après)" +msgstr "Insérer vide (Après)" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Move (Before)" @@ -7757,13 +7795,12 @@ msgid "Enable Priority" msgstr "Activer la priorité" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Filter tiles" -msgstr "Filtrer Fichiers..." +msgstr "Filtrer les tuiles" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Give a TileSet resource to this TileMap to use its tiles." -msgstr "" +msgstr "Donnez une ressource TileSet à cette TileMap pour utiliser ses tuiles." #: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" @@ -7902,6 +7939,8 @@ msgstr "Afficher les noms des tuiles (maintenez Alt enfoncé)" msgid "" "Add or select a texture on the left panel to edit the tiles bound to it." msgstr "" +"Ajoutez ou sélectionnez une texture sur le panneau de gauche pour modifier " +"les tuiles qui lui sont liées." #: editor/plugins/tile_set_editor_plugin.cpp msgid "Remove selected texture? This will remove all tiles which use it." @@ -8076,9 +8115,8 @@ msgid "TileSet" msgstr "TileSet" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "No VCS addons are available." -msgstr "Nom parent du nÅ“ud, si disponible" +msgstr "Aucun addon VCS n'est disponible." #: editor/plugins/version_control_editor_plugin.cpp editor/rename_dialog.cpp msgid "Error" @@ -8086,81 +8124,71 @@ msgstr "Erreur" #: editor/plugins/version_control_editor_plugin.cpp msgid "No commit message was provided" -msgstr "" +msgstr "Aucun message de livraison n'a été fourni" #: editor/plugins/version_control_editor_plugin.cpp msgid "No files added to stage" -msgstr "" +msgstr "Aucun fichier à ajouter" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Commit" -msgstr "Communauté" +msgstr "Enregistrer" #: editor/plugins/version_control_editor_plugin.cpp msgid "VCS Addon is not initialized" -msgstr "" +msgstr "VCS Addon n'est pas initialisé" #: editor/plugins/version_control_editor_plugin.cpp msgid "Version Control System" -msgstr "" +msgstr "Système de contrôle de version" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Initialize" -msgstr "Majuscule à chaque mot" +msgstr "initialiser" #: editor/plugins/version_control_editor_plugin.cpp msgid "Staging area" -msgstr "" +msgstr "Zone de transit" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Detect new changes" -msgstr "Créer un nouveau rectangle." +msgstr "Détecter de nouveaux changements" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Changes" -msgstr "Changer" +msgstr "Changements" #: editor/plugins/version_control_editor_plugin.cpp msgid "Modified" -msgstr "" +msgstr "Modifié" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Renamed" -msgstr "Renommer" +msgstr "Renommé" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Deleted" -msgstr "Supprimer" +msgstr "Supprimé" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Typechange" -msgstr "Changer" +msgstr "Changement de type" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Stage Selected" -msgstr "Supprimer la selection" +msgstr "Étape sélectionnée" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Stage All" -msgstr "Tout enregistrer" +msgstr "Tout ajouter" #: editor/plugins/version_control_editor_plugin.cpp msgid "Add a commit message" -msgstr "" +msgstr "Ajouter un message de livraison" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Commit Changes" -msgstr "Synchroniser les modifications des scripts" +msgstr "Commiter les changements" #: editor/plugins/version_control_editor_plugin.cpp #: modules/gdnative/gdnative_library_singleton_editor.cpp @@ -8170,25 +8198,24 @@ msgstr "État" #: editor/plugins/version_control_editor_plugin.cpp msgid "View file diffs before committing them to the latest version" msgstr "" +"Vérifier les différences de fichier avant de les soumettre à la dernière " +"version" #: editor/plugins/version_control_editor_plugin.cpp msgid "No file diff is active" -msgstr "" +msgstr "Aucun fichier diff n'est actif" #: editor/plugins/version_control_editor_plugin.cpp msgid "Detect changes in file diff" -msgstr "" +msgstr "Détecter les changements dans le fichier diff" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "(GLES3 only)" msgstr "(GLES3 seulement)" #: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add input +" -msgstr "Ajouter une entrée +" - -#: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add output +" +#, fuzzy +msgid "Add Output" msgstr "Ajouter une sortie +" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -8204,6 +8231,10 @@ msgid "Boolean" msgstr "Booléen" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sampler" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add input port" msgstr "Ajouter un port d'entrée" @@ -8318,7 +8349,7 @@ msgstr "Fonction Sepia." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Burn operator." -msgstr "Opérateur de gravure." +msgstr "Opérateur de surexposition." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Darken operator." @@ -8419,11 +8450,11 @@ msgstr "" "Renvoi un vecteur associé si la valeur booléen fournie est vrai ou fausse." #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "" "Returns an associated scalar if the provided boolean value is true or false." msgstr "" -"Renvoi un vecteur associé si la valeur booléen fournie est vrai ou fausse." +"Retourne un scalaire associé si la valeur booléenne fournie est vraie ou " +"fausse." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the boolean result of the comparison between two parameters." @@ -8971,7 +9002,6 @@ msgstr "" "déclarations de fonction à l'intérieur." #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "" "Returns falloff based on the dot product of surface normal and view " "direction of camera (pass associated inputs to it)." @@ -9142,15 +9172,19 @@ msgid "Resources to export:" msgstr "Ressources à exporter :" #: editor/project_export.cpp +#, fuzzy msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" "Filtres d'export de fichiers non ressources (séparés par des virgules, par " "exemple : *.json, *.txt) :" #: editor/project_export.cpp +#, fuzzy msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" "Filtres pour exclure des fichiers du projet (séparés par des virgules, par " "exemple: *.json, *.txt) :" @@ -9296,7 +9330,7 @@ msgstr "Impossible de créer le fichier project.godot dans le chemin du projet." #: editor/project_manager.cpp msgid "The following files failed extraction from package:" -msgstr "L'extraction des fichiers suivants a échoué depuis le paquetage :" +msgstr "L'extraction des fichiers suivants depuis le paquetage a échoué :" #: editor/project_manager.cpp msgid "Rename Project" @@ -9752,9 +9786,8 @@ msgid "Settings saved OK." msgstr "Paramètres enregistrés avec succès." #: editor/project_settings_editor.cpp -#, fuzzy msgid "Moved Input Action Event" -msgstr "Ajouter un événement d'action d'entrée" +msgstr "Événement d'action d'entrée déplacé" #: editor/project_settings_editor.cpp msgid "Override for Feature" @@ -9774,15 +9807,15 @@ msgstr "Ajouter un chemin remappé" #: editor/project_settings_editor.cpp msgid "Resource Remap Add Remap" -msgstr "Remap de ressources ajout de remap" +msgstr "Réaffectation des ressources ; Ajouter une réaffectation" #: editor/project_settings_editor.cpp msgid "Change Resource Remap Language" -msgstr "Modifier language de remap de ressource" +msgstr "Modifier le langage de réaffectation des ressources" #: editor/project_settings_editor.cpp msgid "Remove Resource Remap" -msgstr "Supprimer remap de ressource" +msgstr "Supprimer la réaffectation des ressources" #: editor/project_settings_editor.cpp msgid "Remove Resource Remap Option" @@ -10121,9 +10154,8 @@ msgid "Instance Scene(s)" msgstr "Instancier scène(s)" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Replace with Branch Scene" -msgstr "Sauvegarder la branche comme scène" +msgstr "Remplacer par une scène de branche" #: editor/scene_tree_dock.cpp msgid "Instance Child Scene" @@ -10168,22 +10200,20 @@ msgid "Make node as Root" msgstr "Choisir le nÅ“ud comme racine de scène" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete %d nodes?" -msgstr "Supprimer des nÅ“uds" +msgstr "Supprimer %d nÅ“uds ?" #: editor/scene_tree_dock.cpp msgid "Delete the root node \"%s\"?" -msgstr "" +msgstr "Supprimer le nÅ“ud racine \"%s\" ?" #: editor/scene_tree_dock.cpp msgid "Delete node \"%s\" and its children?" -msgstr "" +msgstr "Supprimer le nÅ“ud \"%s\" et ses enfants ?" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete node \"%s\"?" -msgstr "Supprimer des nÅ“uds" +msgstr "Supprimer le noeud \"%s\" ?" #: editor/scene_tree_dock.cpp msgid "Can not perform with the root node." @@ -10206,12 +10236,13 @@ msgstr "" "propriétés du nÅ“ud." #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "Enfants modifiables" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" -msgstr "Charger en tant qu'instance temporaire" +#, fuzzy +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." +msgstr "" +"Désactiver \"editable_instance\" implique la remise à zéro de toutes les " +"propriétés du nÅ“ud." #: editor/scene_tree_dock.cpp msgid "Make Local" @@ -10275,7 +10306,8 @@ msgstr "Erreur d'enregistrement de la scène." #: editor/scene_tree_dock.cpp msgid "Error duplicating scene to save it." -msgstr "Erreur de duplication de la scène afin de l'enregistrer." +msgstr "" +"Une erreur est survenue pendant la duplication de la scène à sauvegarder." #: editor/scene_tree_dock.cpp msgid "Sub-Resources" @@ -10286,6 +10318,14 @@ msgid "Clear Inheritance" msgstr "Effacer l'héritage" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "Enfants modifiables" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "Charger en tant qu'instance temporaire" + +#: editor/scene_tree_dock.cpp msgid "Open Documentation" msgstr "Ouvrir la documentation" @@ -10302,10 +10342,6 @@ msgid "Change Type" msgstr "Changer le type" #: editor/scene_tree_dock.cpp -msgid "Extend Script" -msgstr "Hériter d'un script" - -#: editor/scene_tree_dock.cpp msgid "Reparent to New Node" msgstr "Re-parenter le nÅ“ud" @@ -10343,8 +10379,7 @@ msgstr "" #: editor/scene_tree_dock.cpp msgid "Attach a new or existing script for the selected node." -msgstr "" -"Attacher un nouveau script ou un script existant pour le nÅ“ud sélectionné." +msgstr "Attacher un script (nouveau ou existant) pour le nÅ“ud sélectionné." #: editor/scene_tree_dock.cpp msgid "Clear a script for the selected node." @@ -10496,7 +10531,7 @@ msgstr "Erreur - Impossible de créer le script dans le système de fichiers." #: editor/script_create_dialog.cpp msgid "Error loading script from %s" -msgstr "Erreur de chargement de script depuis %s" +msgstr "Erreur de chargement du script depuis %s" #: editor/script_create_dialog.cpp msgid "Overrides" @@ -10547,23 +10582,18 @@ msgid "Will load an existing script file." msgstr "Va charger un fichier de script existant." #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "Langage" - -#: editor/script_create_dialog.cpp -msgid "Inherits" -msgstr "Hérité de" - -#: editor/script_create_dialog.cpp -msgid "Class Name" +#, fuzzy +msgid "Class Name:" msgstr "Nom de classe" #: editor/script_create_dialog.cpp -msgid "Template" +#, fuzzy +msgid "Template:" msgstr "Modèle" #: editor/script_create_dialog.cpp -msgid "Built-in Script" +#, fuzzy +msgid "Built-in Script:" msgstr "Script intégré" #: editor/script_create_dialog.cpp @@ -10579,39 +10609,32 @@ msgid "Bytes:" msgstr "Octets :" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Warning:" -msgstr "Avertissements :" +msgstr "Avertissement :" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Error:" -msgstr "Erreur" +msgstr "Erreur :" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Error" -msgstr "Copier l'erreur" +msgstr "Erreur C ++" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Error:" -msgstr "Copier l'erreur" +msgstr "Erreur C ++ :" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Source" -msgstr "Source" +msgstr "Source C++" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Source:" -msgstr "Source" +msgstr "Source :" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Source:" -msgstr "Source" +msgstr "Source C++ :" #: editor/script_editor_debugger.cpp msgid "Stack Trace" @@ -10622,18 +10645,16 @@ msgid "Errors" msgstr "Erreurs" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Child process connected." -msgstr "Processus enfant connecté" +msgstr "Processus enfant connecté." #: editor/script_editor_debugger.cpp msgid "Copy Error" msgstr "Copier l'erreur" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Skip Breakpoints" -msgstr "Point d'arrêts" +msgstr "Passer les points d'arrêt" #: editor/script_editor_debugger.cpp msgid "Inspect Previous Instance" @@ -10652,9 +10673,8 @@ msgid "Profiler" msgstr "Profileur" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Network Profiler" -msgstr "Profil d'exportation" +msgstr "Profileur réseau" #: editor/script_editor_debugger.cpp msgid "Monitor" @@ -10879,7 +10899,7 @@ msgstr "GDNative" #: modules/gdscript/gdscript_functions.cpp msgid "Expected a string of length 1 (a character)." -msgstr "" +msgstr "Attendu une chaîne de longueur 1 (un caractère)." #: modules/gdscript/gdscript_functions.cpp msgid "Step argument is zero!" @@ -11038,13 +11058,13 @@ msgid "Pick Distance:" msgstr "Choisissez distance :" #: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "Filter meshes" -msgstr "Méthodes de filtrage" +msgstr "Filtrer les mailles" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Give a MeshLibrary resource to this GridMap to use its meshes." msgstr "" +"Donnez une ressource MeshLibrary à cette GridMap pour utiliser ses maillages." #: modules/mono/csharp_script.cpp msgid "Class name can't be a reserved keyword" @@ -11221,6 +11241,11 @@ msgid "Add Function" msgstr "Ajouter une fonction" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Delete input port" +msgstr "Supprimer le port d'entrée" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "Ajouter une variable" @@ -11229,6 +11254,26 @@ msgid "Add Signal" msgstr "Ajouter un signal" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Input Port" +msgstr "Ajouter un port d'entrée" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Output Port" +msgstr "Ajouter un port de sortie" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Input Port" +msgstr "Supprimer le port d'entrée" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Output Port" +msgstr "Supprimer le port de sortie" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "Changer l'expression" @@ -11273,10 +11318,20 @@ msgid "Add Preload Node" msgstr "Ajouter un nÅ“ud préchargé" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "Ajouter un nÅ“ud à partir de l'arbre" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "Ajouter une propriété accesseur" @@ -11301,6 +11356,11 @@ msgid "Connect Nodes" msgstr "Connecter nÅ“ud" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Disconnect Nodes" +msgstr "Connecter nÅ“ud" + +#: modules/visual_script/visual_script_editor.cpp msgid "Connect Node Data" msgstr "Données de connexion du nÅ“ud" @@ -11333,6 +11393,28 @@ msgid "Paste VisualScript Nodes" msgstr "Coller les nÅ“uds VisualScript" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Can't create function with a function node." +msgstr "Impossible de copier le nÅ“ud de fonction." + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Create Function" +msgstr "Renommer la fonction" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "Supprimer la fonction" @@ -11353,21 +11435,17 @@ msgid "Editing Signal:" msgstr "Modification du signal :" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Make Tool:" -msgstr "Rendre local" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "Type de base :" +msgstr "Fabriquer l'outil :" #: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "Membres :" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" -msgstr "NÅ“uds disponibles :" +#, fuzzy +msgid "function_name" +msgstr "Fonctions :" #: modules/visual_script/visual_script_editor.cpp msgid "Select or create a function to edit its graph." @@ -11390,6 +11468,16 @@ msgid "Cut Nodes" msgstr "Couper les nÅ“uds" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Make Function" +msgstr "Renommer la fonction" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Refresh Graph" +msgstr "Rafraîchir" + +#: modules/visual_script/visual_script_editor.cpp msgid "Edit Member" msgstr "Modifier le membre" @@ -11493,6 +11581,10 @@ msgid "The package must have at least one '.' separator." msgstr "Le paquet doit comporter au moins un séparateur « . »." #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "Sélectionner appareil depuis la liste" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "L'exécutable ADB n'est pas configuré dans les Paramètres de l'éditeur." @@ -11520,13 +11612,12 @@ msgstr "" "paramètres de l'éditeur." #: platform/android/export/export.cpp -#, fuzzy msgid "" "Android build template not installed in the project. Install it from the " "Project menu." msgstr "" -"Le projet Android n'est pas installé et ne peut donc pas être compilé. " -"Installez-le depuis le menu Éditeur." +"Le modèle de compilation Android n'est pas installé dans le projet. " +"Installez-le à partir du menu Projet." #: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." @@ -11617,6 +11708,10 @@ msgid "Required icon is not specified in the preset." msgstr "L'icône requise n'est pas spécifiée dans le préréglage." #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "Exécuter dans le navigateur" @@ -12303,10 +12398,6 @@ msgstr "" "nÅ“ud de type Control afin qu'il en obtienne une taille. Sinon, faites-en une " "RenderTarget et assignez sa texture à un nÅ“ud pouvant l'afficher." -#: scene/resources/visual_shader.cpp -msgid "Input" -msgstr "Entrée" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for preview." msgstr "Source invalide pour la prévisualisation." @@ -12335,6 +12426,27 @@ msgstr "Les variations ne peuvent être affectées que dans la fonction vertex." msgid "Constants cannot be modified." msgstr "Les constantes ne peuvent être modifiées." +#~ msgid "Snap to Grid" +#~ msgstr "Aimanter à la grille" + +#~ msgid "Add input +" +#~ msgstr "Ajouter une entrée +" + +#~ msgid "Language" +#~ msgstr "Langage" + +#~ msgid "Inherits" +#~ msgstr "Hérité de" + +#~ msgid "Base Type:" +#~ msgstr "Type de base :" + +#~ msgid "Available Nodes:" +#~ msgstr "NÅ“uds disponibles :" + +#~ msgid "Input" +#~ msgstr "Entrée" + #~ msgid "Properties:" #~ msgstr "Propriétés :" @@ -12553,9 +12665,6 @@ msgstr "Les constantes ne peuvent être modifiées." #~ msgid "Go to parent folder" #~ msgstr "Aller au dossier parent" -#~ msgid "Select device from the list" -#~ msgstr "Sélectionner appareil depuis la liste" - #~ msgid "Open Scene(s)" #~ msgstr "Ouvrir une(des) scène(s)" diff --git a/editor/translations/ga.po b/editor/translations/ga.po index c749cd35f8..ea55d235b7 100644 --- a/editor/translations/ga.po +++ b/editor/translations/ga.po @@ -349,6 +349,7 @@ msgstr "" #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "Cruthaigh" @@ -474,15 +475,6 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "" - -#: editor/animation_track_editor.cpp -msgid "Select None" -msgstr "" - #: editor/animation_track_editor.cpp msgid "Select an AnimationPlayer node to create and edit animations." msgstr "" @@ -617,7 +609,7 @@ msgid "Scale Ratio:" msgstr "" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" +msgid "Select Tracks to Copy" msgstr "" #: editor/animation_track_editor.cpp editor/editor_log.cpp @@ -629,6 +621,10 @@ msgstr "" msgid "Copy" msgstr "" +#: editor/animation_track_editor.cpp +msgid "Select All/None" +msgstr "" + #: editor/animation_track_editor_plugins.cpp msgid "Add Audio Track Clip" msgstr "" @@ -945,7 +941,7 @@ msgid "Resource" msgstr "Acmhainn" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "Cosán" @@ -1400,7 +1396,8 @@ msgstr "" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "" @@ -1454,7 +1451,7 @@ msgstr "" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "" @@ -1838,6 +1835,7 @@ msgid "Class:" msgstr "" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "" @@ -2829,7 +2827,7 @@ msgstr "" msgid "Expand Bottom Panel" msgstr "" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "" @@ -3065,6 +3063,10 @@ msgstr "" msgid "New Script" msgstr "" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +msgid "Extend Script" +msgstr "" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "" @@ -3091,13 +3093,6 @@ msgstr "" msgid "Convert To %s" msgstr "" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Open Editor" -msgstr "" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "" @@ -3872,7 +3867,7 @@ msgstr "" msgid "Subfolder:" msgstr "" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "" @@ -4007,6 +4002,12 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Open Editor" +msgstr "" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp msgid "Open Animation Node" msgstr "" @@ -4348,7 +4349,6 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "" @@ -4516,6 +4516,8 @@ msgid "Current:" msgstr "" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "Cuir ionchur leis" @@ -4720,6 +4722,10 @@ msgid "All" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp msgid "Import..." msgstr "" @@ -4998,20 +5004,23 @@ msgid "Ruler Mode" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Toggle snapping." +msgid "Toggle smart snapping." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +msgid "Use Smart Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snapping Options" +msgid "Toggle grid snapping." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to Grid" +msgid "Use Grid Snap" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snapping Options" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5101,8 +5110,7 @@ msgid "View" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +msgid "Always Show Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5362,6 +5370,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/curve_editor_plugin.cpp +msgid "Right click to add point" +msgstr "" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "" @@ -5991,6 +6003,10 @@ msgid "Grid" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Configure Grid:" msgstr "" @@ -6047,6 +6063,7 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "" @@ -6145,6 +6162,11 @@ msgid "Find Next" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Filter scripts" msgstr "" @@ -6410,6 +6432,11 @@ msgstr "" msgid "Cut" msgstr "" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "" @@ -6467,10 +6494,6 @@ msgid "Auto Indent" msgstr "" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "" - -#: editor/plugins/script_text_editor.cpp msgid "Find in Files..." msgstr "" @@ -6790,6 +6813,10 @@ msgid "Freelook Speed Modifier" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Slow Modifier" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -6823,6 +6850,10 @@ msgid "Use Local Space" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "" @@ -7049,6 +7080,10 @@ msgid "Simplification: " msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Shrink (Pixels): " +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "" @@ -7813,12 +7848,9 @@ msgid "(GLES3 only)" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add input +" -msgstr "" - -#: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add output +" -msgstr "" +#, fuzzy +msgid "Add Output" +msgstr "Cuir ionchur leis" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Scalar" @@ -7833,6 +7865,10 @@ msgid "Boolean" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sampler" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add input port" msgstr "" @@ -8689,12 +8725,14 @@ msgstr "" #: editor/project_export.cpp msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp @@ -9676,11 +9714,9 @@ msgid "" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." msgstr "" #: editor/scene_tree_dock.cpp @@ -9754,6 +9790,14 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "" + +#: editor/scene_tree_dock.cpp msgid "Open Documentation" msgstr "" @@ -9770,10 +9814,6 @@ msgid "Change Type" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Extend Script" -msgstr "" - -#: editor/scene_tree_dock.cpp msgid "Reparent to New Node" msgstr "" @@ -10000,23 +10040,15 @@ msgid "Will load an existing script file." msgstr "" #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Inherits" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Class Name" +msgid "Class Name:" msgstr "" #: editor/script_create_dialog.cpp -msgid "Template" +msgid "Template:" msgstr "" #: editor/script_create_dialog.cpp -msgid "Built-in Script" +msgid "Built-in Script:" msgstr "" #: editor/script_create_dialog.cpp @@ -10652,6 +10684,11 @@ msgid "Add Function" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Delete input port" +msgstr "Scrios ionchur" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "" @@ -10660,6 +10697,23 @@ msgid "Add Signal" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Input Port" +msgstr "Cuir ionchur leis" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Add Output Port" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Remove Input Port" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Remove Output Port" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "" @@ -10700,10 +10754,20 @@ msgid "Add Preload Node" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "" @@ -10728,6 +10792,10 @@ msgid "Connect Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Disconnect Nodes" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Connect Node Data" msgstr "" @@ -10760,6 +10828,27 @@ msgid "Paste VisualScript Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function with a function node." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Create Function" +msgstr "Cruthaigh" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "" @@ -10784,15 +10873,11 @@ msgid "Make Tool:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" +msgid "function_name" msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -10816,6 +10901,14 @@ msgid "Cut Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Make Function" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Refresh Graph" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Edit Member" msgstr "" @@ -10910,6 +11003,10 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "" @@ -11009,6 +11106,10 @@ msgid "Required icon is not specified in the preset." msgstr "" #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "" @@ -11546,10 +11647,6 @@ msgid "" "texture to some node for display." msgstr "" -#: scene/resources/visual_shader.cpp -msgid "Input" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for preview." msgstr "" diff --git a/editor/translations/he.po b/editor/translations/he.po index bb7ef89008..501c0c731e 100644 --- a/editor/translations/he.po +++ b/editor/translations/he.po @@ -382,6 +382,7 @@ msgstr "×”×× ×œ×™×¦×•×¨ %d רצועות חדשות ×•×œ×”×›× ×™×¡ מפתחות #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "יצירה" @@ -518,16 +519,6 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "לבחור הכול" - -#: editor/animation_track_editor.cpp -#, fuzzy -msgid "Select None" -msgstr "בחירה" - #: editor/animation_track_editor.cpp msgid "Select an AnimationPlayer node to create and edit animations." msgstr "" @@ -669,8 +660,9 @@ msgid "Scale Ratio:" msgstr "יחס מתיחה:" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" -msgstr "" +#, fuzzy +msgid "Select Tracks to Copy" +msgstr "הגדרת ×ž×¢×‘×¨×•× ×™× ×ל:" #: editor/animation_track_editor.cpp editor/editor_log.cpp #: editor/editor_properties.cpp @@ -681,6 +673,11 @@ msgstr "" msgid "Copy" msgstr "העתקה" +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Select All/None" +msgstr "בחירה" + #: editor/animation_track_editor_plugins.cpp #, fuzzy msgid "Add Audio Track Clip" @@ -1009,7 +1006,7 @@ msgid "Resource" msgstr "מש×ב" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "× ×ª×™×‘" @@ -1476,7 +1473,8 @@ msgstr "הוספת ×˜×¢×™× ×” ×וטומטית" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "× ×ª×™×‘:" @@ -1531,7 +1529,7 @@ msgstr "יצירת תיקייה" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "ש×:" @@ -1950,6 +1948,7 @@ msgid "Class:" msgstr "מחלקה:" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "ירושה:" @@ -2994,7 +2993,7 @@ msgstr "חוקר" msgid "Expand Bottom Panel" msgstr "להרחיב הכול" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "פלט" @@ -3236,6 +3235,11 @@ msgstr "" msgid "New Script" msgstr "" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +#, fuzzy +msgid "Extend Script" +msgstr "הרצת סקריפט" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "" @@ -3262,14 +3266,6 @@ msgstr "הדבקה" msgid "Convert To %s" msgstr "" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy -msgid "Open Editor" -msgstr "פתיחת עורך דו־ממד" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "" @@ -4091,7 +4087,7 @@ msgstr "" msgid "Subfolder:" msgstr "" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "" @@ -4238,6 +4234,13 @@ msgstr "הזזת × ×§×•×“×”" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +#, fuzzy +msgid "Open Editor" +msgstr "פתיחת עורך דו־ממד" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp #, fuzzy msgid "Open Animation Node" @@ -4603,7 +4606,6 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "" @@ -4780,6 +4782,8 @@ msgid "Current:" msgstr "" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "" @@ -4993,6 +4997,10 @@ msgid "All" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy msgid "Import..." msgstr "ייבו×" @@ -5291,24 +5299,28 @@ msgstr "מצב ×©×™× ×•×™ ×§× ×” מידה (R)" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Toggle snapping." +msgid "Toggle smart snapping." msgstr "החלפת מצב × ×§×•×“×ª עצירה" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +msgid "Use Smart Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Snapping Options" -msgstr "הגדרות הצמדה" +msgid "Toggle grid snapping." +msgstr "החלפת מצב × ×§×•×“×ª עצירה" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to Grid" +msgid "Use Grid Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Snapping Options" +msgstr "הגדרות הצמדה" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Rotation Snap" msgstr "" @@ -5400,8 +5412,7 @@ msgid "View" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +msgid "Always Show Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5672,6 +5683,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/curve_editor_plugin.cpp +msgid "Right click to add point" +msgstr "" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "" @@ -6316,6 +6331,10 @@ msgid "Grid" msgstr "רשת" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy msgid "Configure Grid:" msgstr "הגדרת הצמדה…" @@ -6374,6 +6393,7 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "" @@ -6482,6 +6502,11 @@ msgid "Find Next" msgstr "×יתור הב×" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "×יתור הקוד×" + +#: editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Filter scripts" msgstr "מ××¤×™×™× ×™ פריט." @@ -6765,6 +6790,11 @@ msgstr "מחיקת × ×§×•×“×•×ª" msgid "Cut" msgstr "גזירה" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "לבחור הכול" + #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "מחיקת שורה" @@ -6825,10 +6855,6 @@ msgid "Auto Indent" msgstr "×”×–×—×” ×וטומטית" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "×יתור הקוד×" - -#: editor/plugins/script_text_editor.cpp #, fuzzy msgid "Find in Files..." msgstr "×יתור…" @@ -7169,6 +7195,10 @@ msgid "Freelook Speed Modifier" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Slow Modifier" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -7207,6 +7237,10 @@ msgid "Use Local Space" msgstr "מצב מרחב מקומי (%s)" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "מבט תחתי" @@ -7442,6 +7476,10 @@ msgid "Simplification: " msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Shrink (Pixels): " +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "" @@ -8270,12 +8308,8 @@ msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy -msgid "Add input +" -msgstr "הוספת ×ירוע" - -#: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add output +" -msgstr "" +msgid "Add Output" +msgstr "פלט" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Scalar" @@ -8291,6 +8325,10 @@ msgid "Boolean" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sampler" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy msgid "Add input port" msgstr "מועדפי×:" @@ -9174,12 +9212,14 @@ msgstr "" #: editor/project_export.cpp msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp @@ -10196,11 +10236,9 @@ msgid "" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." msgstr "" #: editor/scene_tree_dock.cpp @@ -10280,6 +10318,14 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "" + +#: editor/scene_tree_dock.cpp #, fuzzy msgid "Open Documentation" msgstr "פתיחת התיעוד המקוון של Godot" @@ -10299,11 +10345,6 @@ msgstr "" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Extend Script" -msgstr "הרצת סקריפט" - -#: editor/scene_tree_dock.cpp -#, fuzzy msgid "Reparent to New Node" msgstr "יצירת %s חדש" @@ -10550,24 +10591,19 @@ msgid "Will load an existing script file." msgstr "×˜×¢×™× ×ª פריסת ×פיקי שמע." #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Inherits" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Class Name" -msgstr "" +#, fuzzy +msgid "Class Name:" +msgstr "מחלקה:" #: editor/script_create_dialog.cpp -msgid "Template" -msgstr "" +#, fuzzy +msgid "Template:" +msgstr "×ª×‘× ×™×•×ª" #: editor/script_create_dialog.cpp -msgid "Built-in Script" -msgstr "" +#, fuzzy +msgid "Built-in Script:" +msgstr "הרצת סקריפט" #: editor/script_create_dialog.cpp msgid "Attach Node Script" @@ -11219,6 +11255,11 @@ msgid "Add Function" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Delete input port" +msgstr "הסרת × ×§×•×“×” ×‘× ×ª×™×‘" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "" @@ -11227,6 +11268,26 @@ msgid "Add Signal" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Input Port" +msgstr "מועדפי×:" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Output Port" +msgstr "מועדפי×:" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Input Port" +msgstr "הסרת × ×§×•×“×” ×‘× ×ª×™×‘" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Output Port" +msgstr "הסרת × ×§×•×“×” ×‘× ×ª×™×‘" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "" @@ -11267,10 +11328,20 @@ msgid "Add Preload Node" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "" @@ -11296,6 +11367,11 @@ msgstr "" #: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Disconnect Nodes" +msgstr "×ž× ×•×ª×§" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Connect Node Data" msgstr "התחברות למפרק:" @@ -11330,6 +11406,27 @@ msgid "Paste VisualScript Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function with a function node." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Create Function" +msgstr "יצירת %s חדש" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "" @@ -11354,16 +11451,13 @@ msgid "Make Tool:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "חברי×:" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" -msgstr "" +#, fuzzy +msgid "function_name" +msgstr "×¤×•× ×§×¦×™×•×ª:" #: modules/visual_script/visual_script_editor.cpp msgid "Select or create a function to edit its graph." @@ -11387,6 +11481,16 @@ msgstr "גזירת מפרקי×" #: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Make Function" +msgstr "×¤×•× ×§×¦×™×•×ª:" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Refresh Graph" +msgstr "×¨×¢× ×•×Ÿ" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Edit Member" msgstr "חברי×" @@ -11482,6 +11586,10 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "× × ×œ×‘×—×•×¨ התקן מהרשימה" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "" @@ -11583,6 +11691,10 @@ msgid "Required icon is not specified in the preset." msgstr "" #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "הפעלה בדפדפן" @@ -12133,10 +12245,6 @@ msgid "" "texture to some node for display." msgstr "" -#: scene/resources/visual_shader.cpp -msgid "Input" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp #, fuzzy msgid "Invalid source for preview." @@ -12169,6 +12277,10 @@ msgid "Constants cannot be modified." msgstr "" #, fuzzy +#~ msgid "Add input +" +#~ msgstr "הוספת ×ירוע" + +#, fuzzy #~ msgid "Methods:" #~ msgstr "שיטות" @@ -12298,9 +12410,6 @@ msgstr "" #~ msgid "Go to parent folder" #~ msgstr "מעבר לתיקייה שמעל" -#~ msgid "Select device from the list" -#~ msgstr "× × ×œ×‘×—×•×¨ התקן מהרשימה" - #~ msgid "Open Scene(s)" #~ msgstr "פתיחת ×¡×¦× ×•×ª" @@ -12431,9 +12540,6 @@ msgstr "" #~ msgid "Error: Missing Input Connections" #~ msgstr "שגי××”: ×—×¡×¨×™× ×—×™×‘×•×¨×™ קלט" -#~ msgid "Set Transitions to:" -#~ msgstr "הגדרת ×ž×¢×‘×¨×•× ×™× ×ל:" - #~ msgid "In" #~ msgstr "×›× ×™×¡×”" diff --git a/editor/translations/hi.po b/editor/translations/hi.po index 053555ba11..cd3acd484e 100644 --- a/editor/translations/hi.po +++ b/editor/translations/hi.po @@ -6,12 +6,14 @@ # Suryansh5545 <suryanshpathak5545@gmail.com>, 2018. # Vikram1323 <vikram1323@gmail.com>, 2018. # vkubre <v@kubre.in>, 2019. +# Abhay Patel <abhay111patel@gmail.com>, 2019. +# Lakshmi-Jayakumar <lakshmi.jayakumar.tkm@gmail.com>, 2019. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-05-04 13:48+0000\n" -"Last-Translator: vkubre <v@kubre.in>\n" +"PO-Revision-Date: 2019-10-17 04:52+0000\n" +"Last-Translator: Lakshmi-Jayakumar <lakshmi.jayakumar.tkm@gmail.com>\n" "Language-Team: Hindi <https://hosted.weblate.org/projects/godot-engine/godot/" "hi/>\n" "Language: hi\n" @@ -19,7 +21,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 3.7-dev\n" +"X-Generator: Weblate 3.9\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -62,31 +64,32 @@ msgstr "'%s ' को कॉल करने पर:" #: core/ustring.cpp msgid "B" -msgstr "" +msgstr "B" #: core/ustring.cpp msgid "KiB" -msgstr "" +msgstr "KiB" #: core/ustring.cpp +#, fuzzy msgid "MiB" -msgstr "" +msgstr "MiB" #: core/ustring.cpp msgid "GiB" -msgstr "" +msgstr "GiB" #: core/ustring.cpp msgid "TiB" -msgstr "" +msgstr "TiB" #: core/ustring.cpp msgid "PiB" -msgstr "" +msgstr "PiB" #: core/ustring.cpp msgid "EiB" -msgstr "" +msgstr "EiB" #: editor/animation_bezier_editor.cpp msgid "Free" @@ -102,7 +105,7 @@ msgstr "पà¥à¤°à¤¤à¤¿à¤®à¤¾" #: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp msgid "Time:" -msgstr "" +msgstr "समय" #: editor/animation_bezier_editor.cpp msgid "Value:" @@ -371,6 +374,7 @@ msgstr "" #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "" @@ -501,16 +505,6 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "" - -#: editor/animation_track_editor.cpp -#, fuzzy -msgid "Select None" -msgstr "डà¥à¤ªà¥à¤²à¤¿à¤•à¥‡à¤Ÿ चयन" - #: editor/animation_track_editor.cpp msgid "Select an AnimationPlayer node to create and edit animations." msgstr "" @@ -647,7 +641,7 @@ msgid "Scale Ratio:" msgstr "" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" +msgid "Select Tracks to Copy" msgstr "" #: editor/animation_track_editor.cpp editor/editor_log.cpp @@ -659,6 +653,11 @@ msgstr "" msgid "Copy" msgstr "" +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Select All/None" +msgstr "डà¥à¤ªà¥à¤²à¤¿à¤•à¥‡à¤Ÿ चयन" + #: editor/animation_track_editor_plugins.cpp #, fuzzy msgid "Add Audio Track Clip" @@ -1006,7 +1005,7 @@ msgid "Resource" msgstr "संसाधन" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "पथ" @@ -1181,9 +1180,8 @@ msgid "Donors" msgstr "दाताओं" #: editor/editor_about.cpp -#, fuzzy msgid "License" -msgstr "License" +msgstr "लाइसेंस" #: editor/editor_about.cpp #, fuzzy @@ -1486,7 +1484,8 @@ msgstr "" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "" @@ -1540,7 +1539,7 @@ msgstr "" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "" @@ -1932,6 +1931,7 @@ msgid "Class:" msgstr "" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "" @@ -2937,7 +2937,7 @@ msgstr "" msgid "Expand Bottom Panel" msgstr "" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "" @@ -3177,6 +3177,10 @@ msgstr "" msgid "New Script" msgstr "" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +msgid "Extend Script" +msgstr "" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "" @@ -3203,14 +3207,6 @@ msgstr "" msgid "Convert To %s" msgstr "" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy -msgid "Open Editor" -msgstr "निरà¥à¤à¤°à¤¤à¤¾ संपादक" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "" @@ -4010,7 +4006,7 @@ msgstr "" msgid "Subfolder:" msgstr "" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "" @@ -4150,6 +4146,13 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +#, fuzzy +msgid "Open Editor" +msgstr "निरà¥à¤à¤°à¤¤à¤¾ संपादक" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp msgid "Open Animation Node" msgstr "" @@ -4498,7 +4501,6 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "" @@ -4673,6 +4675,8 @@ msgid "Current:" msgstr "" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "" @@ -4879,6 +4883,10 @@ msgid "All" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp msgid "Import..." msgstr "" @@ -5167,20 +5175,23 @@ msgid "Ruler Mode" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Toggle snapping." +msgid "Toggle smart snapping." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +msgid "Use Smart Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snapping Options" +msgid "Toggle grid snapping." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to Grid" +msgid "Use Grid Snap" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snapping Options" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5270,8 +5281,7 @@ msgid "View" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +msgid "Always Show Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5535,6 +5545,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/curve_editor_plugin.cpp +msgid "Right click to add point" +msgstr "" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "" @@ -6171,6 +6185,10 @@ msgid "Grid" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Configure Grid:" msgstr "" @@ -6227,6 +6245,7 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "" @@ -6332,6 +6351,11 @@ msgid "Find Next" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Filter scripts" msgstr "" @@ -6606,6 +6630,11 @@ msgstr "à¤à¤• नया बनाà¤à¤‚" msgid "Cut" msgstr "" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "" @@ -6664,10 +6693,6 @@ msgid "Auto Indent" msgstr "" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "" - -#: editor/plugins/script_text_editor.cpp msgid "Find in Files..." msgstr "" @@ -6988,6 +7013,10 @@ msgid "Freelook Speed Modifier" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Slow Modifier" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -7021,6 +7050,10 @@ msgid "Use Local Space" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "" @@ -7253,6 +7286,10 @@ msgid "Simplification: " msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Shrink (Pixels): " +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "" @@ -8046,12 +8083,9 @@ msgid "(GLES3 only)" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add input +" -msgstr "" - -#: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add output +" -msgstr "" +#, fuzzy +msgid "Add Output" +msgstr "पसंदीदा:" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Scalar" @@ -8066,6 +8100,10 @@ msgid "Boolean" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sampler" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy msgid "Add input port" msgstr "पसंदीदा:" @@ -8938,12 +8976,14 @@ msgstr "" #: editor/project_export.cpp msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp @@ -9935,11 +9975,9 @@ msgid "" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." msgstr "" #: editor/scene_tree_dock.cpp @@ -10016,6 +10054,14 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "" + +#: editor/scene_tree_dock.cpp msgid "Open Documentation" msgstr "" @@ -10032,10 +10078,6 @@ msgid "Change Type" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Extend Script" -msgstr "" - -#: editor/scene_tree_dock.cpp #, fuzzy msgid "Reparent to New Node" msgstr "à¤à¤• नया बनाà¤à¤‚" @@ -10270,24 +10312,17 @@ msgid "Will load an existing script file." msgstr "" #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Inherits" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Class Name" +msgid "Class Name:" msgstr "" #: editor/script_create_dialog.cpp -msgid "Template" +msgid "Template:" msgstr "" #: editor/script_create_dialog.cpp -msgid "Built-in Script" -msgstr "" +#, fuzzy +msgid "Built-in Script:" +msgstr "निरà¥à¤à¤°à¤¤à¤¾ संपादक" #: editor/script_create_dialog.cpp msgid "Attach Node Script" @@ -10932,6 +10967,11 @@ msgid "Add Function" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Delete input port" +msgstr "मिटाना" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "" @@ -10940,6 +10980,26 @@ msgid "Add Signal" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Input Port" +msgstr "पसंदीदा:" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Output Port" +msgstr "पसंदीदा:" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Input Port" +msgstr "मिटाना" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Output Port" +msgstr "मिटाना" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "" @@ -10980,10 +11040,20 @@ msgid "Add Preload Node" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "" @@ -11008,6 +11078,11 @@ msgid "Connect Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Disconnect Nodes" +msgstr "डिसà¥à¤•à¤¨à¥‡à¤•à¥à¤Ÿ" + +#: modules/visual_script/visual_script_editor.cpp msgid "Connect Node Data" msgstr "" @@ -11040,6 +11115,27 @@ msgid "Paste VisualScript Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function with a function node." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Create Function" +msgstr "à¤à¤• नया बनाà¤à¤‚" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "" @@ -11064,16 +11160,13 @@ msgid "Make Tool:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" -msgstr "" +#, fuzzy +msgid "function_name" +msgstr "कारà¥à¤¯à¥‹à¤‚:" #: modules/visual_script/visual_script_editor.cpp msgid "Select or create a function to edit its graph." @@ -11096,6 +11189,15 @@ msgid "Cut Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Make Function" +msgstr "कारà¥à¤¯à¥‹à¤‚:" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Refresh Graph" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Edit Member" msgstr "" @@ -11190,6 +11292,10 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "" @@ -11291,6 +11397,10 @@ msgid "Required icon is not specified in the preset." msgstr "" #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "" @@ -11833,10 +11943,6 @@ msgid "" "texture to some node for display." msgstr "" -#: scene/resources/visual_shader.cpp -msgid "Input" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp #, fuzzy msgid "Invalid source for preview." diff --git a/editor/translations/hr.po b/editor/translations/hr.po index 841272aed4..6322a85090 100644 --- a/editor/translations/hr.po +++ b/editor/translations/hr.po @@ -352,6 +352,7 @@ msgstr "Napravi %d NOVIH staza i umetni kljuÄeve?" #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "Stvori" @@ -478,15 +479,6 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "" - -#: editor/animation_track_editor.cpp -msgid "Select None" -msgstr "" - #: editor/animation_track_editor.cpp msgid "Select an AnimationPlayer node to create and edit animations." msgstr "" @@ -621,7 +613,7 @@ msgid "Scale Ratio:" msgstr "" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" +msgid "Select Tracks to Copy" msgstr "" #: editor/animation_track_editor.cpp editor/editor_log.cpp @@ -633,6 +625,10 @@ msgstr "" msgid "Copy" msgstr "" +#: editor/animation_track_editor.cpp +msgid "Select All/None" +msgstr "" + #: editor/animation_track_editor_plugins.cpp msgid "Add Audio Track Clip" msgstr "" @@ -956,7 +952,7 @@ msgid "Resource" msgstr "Resurs" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "" @@ -1414,7 +1410,8 @@ msgstr "" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "" @@ -1468,7 +1465,7 @@ msgstr "" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "" @@ -1852,6 +1849,7 @@ msgid "Class:" msgstr "" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "" @@ -2844,7 +2842,7 @@ msgstr "" msgid "Expand Bottom Panel" msgstr "" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "" @@ -3081,6 +3079,10 @@ msgstr "" msgid "New Script" msgstr "" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +msgid "Extend Script" +msgstr "" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "" @@ -3107,13 +3109,6 @@ msgstr "" msgid "Convert To %s" msgstr "" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Open Editor" -msgstr "" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "" @@ -3887,7 +3882,7 @@ msgstr "" msgid "Subfolder:" msgstr "" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "" @@ -4022,6 +4017,12 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Open Editor" +msgstr "" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp msgid "Open Animation Node" msgstr "" @@ -4363,7 +4364,6 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "" @@ -4531,6 +4531,8 @@ msgid "Current:" msgstr "" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "" @@ -4735,6 +4737,10 @@ msgid "All" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp msgid "Import..." msgstr "" @@ -5015,20 +5021,23 @@ msgid "Ruler Mode" msgstr "NaÄin Interpolacije" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Toggle snapping." +msgid "Toggle smart snapping." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +msgid "Use Smart Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snapping Options" +msgid "Toggle grid snapping." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to Grid" +msgid "Use Grid Snap" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snapping Options" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5118,8 +5127,7 @@ msgid "View" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +msgid "Always Show Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5383,6 +5391,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/curve_editor_plugin.cpp +msgid "Right click to add point" +msgstr "" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "" @@ -6013,6 +6025,10 @@ msgid "Grid" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Configure Grid:" msgstr "" @@ -6069,6 +6085,7 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "" @@ -6167,6 +6184,11 @@ msgid "Find Next" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Filter scripts" msgstr "" @@ -6432,6 +6454,11 @@ msgstr "" msgid "Cut" msgstr "" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "" @@ -6489,10 +6516,6 @@ msgid "Auto Indent" msgstr "" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "" - -#: editor/plugins/script_text_editor.cpp msgid "Find in Files..." msgstr "" @@ -6812,6 +6835,10 @@ msgid "Freelook Speed Modifier" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Slow Modifier" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -6845,6 +6872,10 @@ msgid "Use Local Space" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "" @@ -7071,6 +7102,10 @@ msgid "Simplification: " msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Shrink (Pixels): " +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "" @@ -7843,11 +7878,7 @@ msgid "(GLES3 only)" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add input +" -msgstr "" - -#: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add output +" +msgid "Add Output" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -7863,6 +7894,10 @@ msgid "Boolean" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sampler" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add input port" msgstr "" @@ -8720,12 +8755,14 @@ msgstr "" #: editor/project_export.cpp msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp @@ -9709,11 +9746,9 @@ msgid "" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." msgstr "" #: editor/scene_tree_dock.cpp @@ -9787,6 +9822,14 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "" + +#: editor/scene_tree_dock.cpp msgid "Open Documentation" msgstr "" @@ -9803,10 +9846,6 @@ msgid "Change Type" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Extend Script" -msgstr "" - -#: editor/scene_tree_dock.cpp msgid "Reparent to New Node" msgstr "" @@ -10035,24 +10074,17 @@ msgid "Will load an existing script file." msgstr "" #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Inherits" +msgid "Class Name:" msgstr "" #: editor/script_create_dialog.cpp -msgid "Class Name" +msgid "Template:" msgstr "" #: editor/script_create_dialog.cpp -msgid "Template" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Built-in Script" -msgstr "" +#, fuzzy +msgid "Built-in Script:" +msgstr "Spoji sa skriptom:" #: editor/script_create_dialog.cpp msgid "Attach Node Script" @@ -10688,6 +10720,11 @@ msgid "Add Function" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Delete input port" +msgstr "Promijeni Korak Animacije" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "" @@ -10696,6 +10733,25 @@ msgid "Add Signal" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Input Port" +msgstr "Dodaj Bezier ToÄku" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Add Output Port" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Input Port" +msgstr "Pomakni Bezier ToÄke" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Output Port" +msgstr "Pomakni Bezier ToÄke" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "" @@ -10736,10 +10792,20 @@ msgid "Add Preload Node" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "" @@ -10764,6 +10830,11 @@ msgid "Connect Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Disconnect Nodes" +msgstr "Odspoji" + +#: modules/visual_script/visual_script_editor.cpp msgid "Connect Node Data" msgstr "" @@ -10796,6 +10867,27 @@ msgid "Paste VisualScript Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function with a function node." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Create Function" +msgstr "Stvori" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "" @@ -10820,16 +10912,13 @@ msgid "Make Tool:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" -msgstr "" +#, fuzzy +msgid "function_name" +msgstr "Funkcije:" #: modules/visual_script/visual_script_editor.cpp msgid "Select or create a function to edit its graph." @@ -10852,6 +10941,15 @@ msgid "Cut Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Make Function" +msgstr "Funkcije:" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Refresh Graph" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Edit Member" msgstr "" @@ -10946,6 +11044,10 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "" @@ -11045,6 +11147,10 @@ msgid "Required icon is not specified in the preset." msgstr "" #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "" @@ -11582,10 +11688,6 @@ msgid "" "texture to some node for display." msgstr "" -#: scene/resources/visual_shader.cpp -msgid "Input" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for preview." msgstr "" diff --git a/editor/translations/hu.po b/editor/translations/hu.po index 2935d5cb92..bc1ab1bdd1 100644 --- a/editor/translations/hu.po +++ b/editor/translations/hu.po @@ -382,6 +382,7 @@ msgstr "Létrehoz %d ÚJ nyomvonalat és beilleszti a kulcsokat?" #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "Létrehozás" @@ -515,16 +516,6 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "Összes Kijelölése" - -#: editor/animation_track_editor.cpp -#, fuzzy -msgid "Select None" -msgstr "Kiválasztó Mód" - #: editor/animation_track_editor.cpp #, fuzzy msgid "Select an AnimationPlayer node to create and edit animations." @@ -669,8 +660,9 @@ msgid "Scale Ratio:" msgstr "Méretezési arány:" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" -msgstr "" +#, fuzzy +msgid "Select Tracks to Copy" +msgstr "Ãtmenet beállÃtása erre:" #: editor/animation_track_editor.cpp editor/editor_log.cpp #: editor/editor_properties.cpp @@ -681,6 +673,11 @@ msgstr "" msgid "Copy" msgstr "Másolás" +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Select All/None" +msgstr "Kiválasztó Mód" + #: editor/animation_track_editor_plugins.cpp #, fuzzy msgid "Add Audio Track Clip" @@ -1022,7 +1019,7 @@ msgid "Resource" msgstr "Forrás" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "Útvonal" @@ -1497,7 +1494,8 @@ msgstr "AutoLoad Hozzáadása" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "Útvonal:" @@ -1552,7 +1550,7 @@ msgstr "Mappa Létrehozása" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "Név:" @@ -1972,6 +1970,7 @@ msgid "Class:" msgstr "Osztály:" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "Örököl:" @@ -3091,7 +3090,7 @@ msgstr "MegfigyelÅ‘" msgid "Expand Bottom Panel" msgstr "Összes kibontása" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "Kimenet" @@ -3334,6 +3333,11 @@ msgstr "" msgid "New Script" msgstr "" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +#, fuzzy +msgid "Extend Script" +msgstr "Szkript Futtatása" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "" @@ -3360,14 +3364,6 @@ msgstr "Beillesztés" msgid "Convert To %s" msgstr "" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy -msgid "Open Editor" -msgstr "Megnyitás SzerkesztÅ‘ben" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "" @@ -4201,7 +4197,7 @@ msgstr "BÅ‘vÃtmények" msgid "Subfolder:" msgstr "" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "" @@ -4355,6 +4351,13 @@ msgstr "Pont Mozgatása" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +#, fuzzy +msgid "Open Editor" +msgstr "Megnyitás SzerkesztÅ‘ben" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp #, fuzzy msgid "Open Animation Node" @@ -4724,7 +4727,6 @@ msgstr "Animáció Neve:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "Hiba!" @@ -4901,6 +4903,8 @@ msgid "Current:" msgstr "Jelenlegi:" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "Bemenet Hozzáadása" @@ -5117,6 +5121,10 @@ msgid "All" msgstr "Mind" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy msgid "Import..." msgstr "Importálás" @@ -5435,23 +5443,28 @@ msgstr "Kiválasztó Mód" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Toggle snapping." +msgid "Toggle smart snapping." msgstr "Illesztés be- és kikapcsolása" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +#, fuzzy +msgid "Use Smart Snap" msgstr "Illesztés Használata" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Snapping Options" -msgstr "Illesztési beállÃtások" +msgid "Toggle grid snapping." +msgstr "Illesztés be- és kikapcsolása" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Snap to Grid" -msgstr "Rácshoz illesztés" +msgid "Use Grid Snap" +msgstr "Illesztés Használata" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Snapping Options" +msgstr "Illesztési beállÃtások" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Rotation Snap" @@ -5549,8 +5562,8 @@ msgid "View" msgstr "Nézet" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +#, fuzzy +msgid "Always Show Grid" msgstr "Rács MegjelenÃtése" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5826,6 +5839,11 @@ msgstr "Görbe Lineáris ÉrintÅ‘jének Kapcsolása" msgid "Hold Shift to edit tangents individually" msgstr "Tartsa lenyomva a Shift gombot az érintÅ‘k egyenkénti szerkesztéséhez" +#: editor/plugins/curve_editor_plugin.cpp +#, fuzzy +msgid "Right click to add point" +msgstr "Jobb Kattintás: Pont Törlése" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "GI Szonda Besütése" @@ -6481,6 +6499,10 @@ msgid "Grid" msgstr "Rács" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "Rács MegjelenÃtése" + +#: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy msgid "Configure Grid:" msgstr "Illesztés BeállÃtása" @@ -6543,6 +6565,7 @@ msgstr "Példány:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "TÃpus:" @@ -6653,6 +6676,11 @@ msgid "Find Next" msgstr "KövetkezÅ‘ Keresése" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "ElÅ‘zÅ‘ Keresése" + +#: editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Filter scripts" msgstr "Objektumtulajdonságok." @@ -6938,6 +6966,11 @@ msgstr "Pontok Törlése" msgid "Cut" msgstr "Kivágás" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "Összes Kijelölése" + #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "Sor Törlése" @@ -6998,10 +7031,6 @@ msgid "Auto Indent" msgstr "Automatikus Behúzás" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "ElÅ‘zÅ‘ Keresése" - -#: editor/plugins/script_text_editor.cpp #, fuzzy msgid "Find in Files..." msgstr "Fájlok Szűrése..." @@ -7340,6 +7369,10 @@ msgid "Freelook Speed Modifier" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Slow Modifier" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -7374,6 +7407,10 @@ msgid "Use Local Space" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "Illesztés Használata" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "" @@ -7611,6 +7648,10 @@ msgid "Simplification: " msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Shrink (Pixels): " +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "" @@ -8447,12 +8488,7 @@ msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy -msgid "Add input +" -msgstr "Bemenet Hozzáadása" - -#: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy -msgid "Add output +" +msgid "Add Output" msgstr "Bemenet Hozzáadása" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -8470,6 +8506,10 @@ msgid "Boolean" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sampler" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy msgid "Add input port" msgstr "Bemenet Hozzáadása" @@ -9364,12 +9404,14 @@ msgstr "" #: editor/project_export.cpp msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp @@ -10382,11 +10424,9 @@ msgid "" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." msgstr "" #: editor/scene_tree_dock.cpp @@ -10466,6 +10506,14 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "" + +#: editor/scene_tree_dock.cpp #, fuzzy msgid "Open Documentation" msgstr "Godot online dokumentáció megnyitása" @@ -10485,11 +10533,6 @@ msgstr "" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Extend Script" -msgstr "Szkript Futtatása" - -#: editor/scene_tree_dock.cpp -#, fuzzy msgid "Reparent to New Node" msgstr "Új %s Létrehozása" @@ -10736,24 +10779,19 @@ msgid "Will load an existing script file." msgstr "MeglévÅ‘ Busz Elrendezés betöltése." #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Inherits" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Class Name" -msgstr "" +#, fuzzy +msgid "Class Name:" +msgstr "Osztály:" #: editor/script_create_dialog.cpp -msgid "Template" -msgstr "" +#, fuzzy +msgid "Template:" +msgstr "Sablon EltávolÃtása" #: editor/script_create_dialog.cpp -msgid "Built-in Script" -msgstr "" +#, fuzzy +msgid "Built-in Script:" +msgstr "Szkript Futtatása" #: editor/script_create_dialog.cpp msgid "Attach Node Script" @@ -11415,6 +11453,11 @@ msgid "Add Function" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Delete input port" +msgstr "Pont eltávolÃtása" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "" @@ -11423,6 +11466,26 @@ msgid "Add Signal" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Input Port" +msgstr "Bemenet Hozzáadása" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Output Port" +msgstr "Bemenet Hozzáadása" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Input Port" +msgstr "Pont eltávolÃtása" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Output Port" +msgstr "Pont eltávolÃtása" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "" @@ -11463,10 +11526,20 @@ msgid "Add Preload Node" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "" @@ -11492,6 +11565,11 @@ msgstr "" #: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Disconnect Nodes" +msgstr "Kapcsolat bontva" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Connect Node Data" msgstr "Csatlakoztatás Node-hoz:" @@ -11526,6 +11604,27 @@ msgid "Paste VisualScript Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function with a function node." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Create Function" +msgstr "Körvonal KészÃtése" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "" @@ -11551,16 +11650,13 @@ msgid "Make Tool:" msgstr "Csontok Létrehozása" #: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "Tagok:" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" -msgstr "" +#, fuzzy +msgid "function_name" +msgstr "Funkciók:" #: modules/visual_script/visual_script_editor.cpp msgid "Select or create a function to edit its graph." @@ -11584,6 +11680,16 @@ msgstr "" #: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Make Function" +msgstr "Funkciók:" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Refresh Graph" +msgstr "FrissÃtés" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Edit Member" msgstr "Tagok" @@ -11679,6 +11785,10 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "Válasszon készüléket a listából" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "" @@ -11780,6 +11890,10 @@ msgid "Required icon is not specified in the preset." msgstr "" #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "" @@ -12332,11 +12446,6 @@ msgstr "" "gyermekévé, hogy Ãgy kapjon méretet. EllenkezÅ‘ esetben tegye RenderTarget-" "té, és állÃtsa hozzá a belsÅ‘ textúráját valamilyen node-hoz kirajzolásra." -#: scene/resources/visual_shader.cpp -#, fuzzy -msgid "Input" -msgstr "Bemenet Hozzáadása" - #: scene/resources/visual_shader_nodes.cpp #, fuzzy msgid "Invalid source for preview." @@ -12369,6 +12478,18 @@ msgid "Constants cannot be modified." msgstr "" #, fuzzy +#~ msgid "Snap to Grid" +#~ msgstr "Rácshoz illesztés" + +#, fuzzy +#~ msgid "Add input +" +#~ msgstr "Bemenet Hozzáadása" + +#, fuzzy +#~ msgid "Input" +#~ msgstr "Bemenet Hozzáadása" + +#, fuzzy #~ msgid "Methods:" #~ msgstr "Metódusok" @@ -12482,9 +12603,6 @@ msgstr "" #~ msgid "Go to parent folder" #~ msgstr "Ugrás a szülÅ‘mappába" -#~ msgid "Select device from the list" -#~ msgstr "Válasszon készüléket a listából" - #~ msgid "Open Scene(s)" #~ msgstr "Scene(k) megnyitás" @@ -12683,9 +12801,6 @@ msgstr "" #~ msgid "Move Anim Track Down" #~ msgstr "Animáció nyomvonal lefelé mozgatás" -#~ msgid "Set Transitions to:" -#~ msgstr "Ãtmenet beállÃtása erre:" - #~ msgid "Anim Track Rename" #~ msgstr "Animáció nyomvonal átnevezés" diff --git a/editor/translations/id.po b/editor/translations/id.po index 36aeec932e..dc8e5c10d5 100644 --- a/editor/translations/id.po +++ b/editor/translations/id.po @@ -25,7 +25,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-09-13 16:50+0000\n" +"PO-Revision-Date: 2019-10-04 03:15+0000\n" "Last-Translator: Sofyan Sugianto <sofyanartem@gmail.com>\n" "Language-Team: Indonesian <https://hosted.weblate.org/projects/godot-engine/" "godot/id/>\n" @@ -79,32 +79,31 @@ msgstr "Pada pemanggilan '%s':" #: core/ustring.cpp msgid "B" -msgstr "" +msgstr "B" #: core/ustring.cpp msgid "KiB" -msgstr "" +msgstr "KiB" #: core/ustring.cpp -#, fuzzy msgid "MiB" -msgstr "Bercampur" +msgstr "MiB" #: core/ustring.cpp msgid "GiB" -msgstr "" +msgstr "GiB" #: core/ustring.cpp msgid "TiB" -msgstr "" +msgstr "TiB" #: core/ustring.cpp msgid "PiB" -msgstr "" +msgstr "PiB" #: core/ustring.cpp msgid "EiB" -msgstr "" +msgstr "EiB" #: editor/animation_bezier_editor.cpp msgid "Free" @@ -370,6 +369,7 @@ msgstr "Buat track BARU %d dan masukkan tombol-tombol?" #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "Buat" @@ -511,17 +511,7 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "Peringatan: Menyunting animasi yang diimpor" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "Pilih Semua" - #: editor/animation_track_editor.cpp -msgid "Select None" -msgstr "Pilih Tidak Ada" - -#: editor/animation_track_editor.cpp -#, fuzzy msgid "Select an AnimationPlayer node to create and edit animations." msgstr "" "Lokasi untuk node AnimationPlayer yang mengandung animasi belum diatur." @@ -656,7 +646,8 @@ msgid "Scale Ratio:" msgstr "Rasio Skala:" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" +#, fuzzy +msgid "Select Tracks to Copy" msgstr "Pilih track untuk disalin:" #: editor/animation_track_editor.cpp editor/editor_log.cpp @@ -668,6 +659,11 @@ msgstr "Pilih track untuk disalin:" msgid "Copy" msgstr "Kopy" +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Select All/None" +msgstr "Pilih Tidak Ada" + #: editor/animation_track_editor_plugins.cpp msgid "Add Audio Track Clip" msgstr "Tambah Clip Trek Audio" @@ -991,7 +987,7 @@ msgid "Resource" msgstr "Resource" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "Path" @@ -1005,7 +1001,7 @@ msgstr "Perbaiki yang Rusak" #: editor/dependency_editor.cpp msgid "Dependency Editor" -msgstr "Penyunting Dependensi" +msgstr "Editor Dependensi" #: editor/dependency_editor.cpp msgid "Search Replacement Resource:" @@ -1261,9 +1257,8 @@ msgid "Delete Bus Effect" msgstr "Hapus Effect Bus" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Drag & drop to rearrange." -msgstr "Suara Bus, Geser dan Taruh untuk atur ulang." +msgstr "Seret dan Lepas untuk menyusun ulang." #: editor/editor_audio_buses.cpp msgid "Solo" @@ -1454,7 +1449,8 @@ msgstr "Tambahkan AutoLoad" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "Path:" @@ -1508,7 +1504,7 @@ msgstr "Buat Folder" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "Nama:" @@ -1583,11 +1579,11 @@ msgstr "Pada ekspor 32-bit PCK yang ditanamkan tidak boleh lebih dari 4GiB." #: editor/editor_feature_profile.cpp msgid "3D Editor" -msgstr "Penyunting 3D" +msgstr "Editor 3D" #: editor/editor_feature_profile.cpp msgid "Script Editor" -msgstr "Penyunting Skrip" +msgstr "Editor Skrip" #: editor/editor_feature_profile.cpp msgid "Asset Library" @@ -1623,7 +1619,7 @@ msgstr "Sudah ada profil dengan nama seperti ini." #: editor/editor_feature_profile.cpp msgid "(Editor Disabled, Properties Disabled)" -msgstr "(Penyunting Dinonaktifkan, Properti Dinonaktifkan)" +msgstr "(Editor Dinonaktifkan, Properti Dinonaktifkan)" #: editor/editor_feature_profile.cpp msgid "(Properties Disabled)" @@ -1631,7 +1627,7 @@ msgstr "(Properti Dinonaktifkan)" #: editor/editor_feature_profile.cpp msgid "(Editor Disabled)" -msgstr "(Penyunting Dinonaktifkan)" +msgstr "(Editor Dinonaktifkan)" #: editor/editor_feature_profile.cpp msgid "Class Options:" @@ -1639,7 +1635,7 @@ msgstr "Opsi Kelas:" #: editor/editor_feature_profile.cpp msgid "Enable Contextual Editor" -msgstr "Aktifkan Penyunting Kontekstual" +msgstr "Aktifkan Editor Kontekstual" #: editor/editor_feature_profile.cpp msgid "Enabled Properties:" @@ -1722,7 +1718,7 @@ msgstr "Ekspor Profil" #: editor/editor_feature_profile.cpp msgid "Manage Editor Feature Profiles" -msgstr "Kelola Penyunting Fitur Profil" +msgstr "Kelola Editor Fitur Profil" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" @@ -1855,7 +1851,7 @@ msgstr "Beralih visibilitas berkas yang tersembunyi." #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails." -msgstr "Tampilkan item sebagai grid thumbnail" +msgstr "Tampilkan item sebagai grid thumbnail." #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a list." @@ -1904,6 +1900,7 @@ msgid "Class:" msgstr "Kelas:" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "Turunan:" @@ -1912,9 +1909,8 @@ msgid "Inherited by:" msgstr "Diturunkan oleh:" #: editor/editor_help.cpp -#, fuzzy msgid "Brief Description" -msgstr "Deskripsi Singkat:" +msgstr "Deskripsi Singkat" #: editor/editor_help.cpp msgid "Properties" @@ -1945,9 +1941,8 @@ msgid "Class Description" msgstr "Deskripsi Kelas" #: editor/editor_help.cpp -#, fuzzy msgid "Online Tutorials" -msgstr "Tutorial Daring:" +msgstr "Tutorial Daring" #: editor/editor_help.cpp msgid "" @@ -2070,16 +2065,15 @@ msgstr "Mulai" #: editor/editor_network_profiler.cpp msgid "%s/s" -msgstr "" +msgstr "%s / s" #: editor/editor_network_profiler.cpp -#, fuzzy msgid "Down" -msgstr "Unduh" +msgstr "Turunkan" #: editor/editor_network_profiler.cpp msgid "Up" -msgstr "" +msgstr "Naikkan" #: editor/editor_network_profiler.cpp editor/editor_node.cpp msgid "Node" @@ -2087,19 +2081,19 @@ msgstr "Node" #: editor/editor_network_profiler.cpp msgid "Incoming RPC" -msgstr "" +msgstr "RPC masuk" #: editor/editor_network_profiler.cpp msgid "Incoming RSET" -msgstr "" +msgstr "RSET masuk" #: editor/editor_network_profiler.cpp msgid "Outgoing RPC" -msgstr "" +msgstr "RPC Keluar" #: editor/editor_network_profiler.cpp msgid "Outgoing RSET" -msgstr "" +msgstr "RSET Keluar" #: editor/editor_node.cpp editor/project_manager.cpp msgid "New Window" @@ -2688,17 +2682,16 @@ msgid "Project Settings..." msgstr "Pengaturan Proyek…" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Version Control" -msgstr "Versi:" +msgstr "Kontrol Versi" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Set Up Version Control" -msgstr "" +msgstr "Atur Kontrol Versi" #: editor/editor_node.cpp msgid "Shut Down Version Control" -msgstr "" +msgstr "Matikan Kontrol Versi" #: editor/editor_node.cpp msgid "Export..." @@ -2822,7 +2815,7 @@ msgstr "Editor" #: editor/editor_node.cpp msgid "Editor Settings..." -msgstr "Pengaturan Penyunting…" +msgstr "Pengaturan Editor…" #: editor/editor_node.cpp msgid "Editor Layout" @@ -2834,7 +2827,7 @@ msgstr "Ambil Tangkapan Layar" #: editor/editor_node.cpp msgid "Screenshots are stored in the Editor Data/Settings Folder." -msgstr "Screenshot disimpan di folder Editor Data/Settings" +msgstr "Tangkapan Layar disimpan di folder Data/Pengaturan Editor." #: editor/editor_node.cpp msgid "Toggle Fullscreen" @@ -2846,7 +2839,7 @@ msgstr "Jungkitkan Konsol Sistem" #: editor/editor_node.cpp msgid "Open Editor Data/Settings Folder" -msgstr "Buka Penyunting Direktori Data/Pengaturan" +msgstr "Buka Direktori Editor Data/Pengaturan" #: editor/editor_node.cpp msgid "Open Editor Data Folder" @@ -2854,11 +2847,11 @@ msgstr "Buka Folder Data Editor" #: editor/editor_node.cpp msgid "Open Editor Settings Folder" -msgstr "Buka Penyunting Direktori Pengaturan" +msgstr "Buka Direktori Editor Pengaturan" #: editor/editor_node.cpp msgid "Manage Editor Features..." -msgstr "Kelola Penyunting Fitur…" +msgstr "Kelola Editor Fitur…" #: editor/editor_node.cpp msgid "Manage Export Templates..." @@ -2945,7 +2938,7 @@ msgstr "Simpan & Mulai Ulang" #: editor/editor_node.cpp msgid "Spins when the editor window redraws." -msgstr "Putar ketika jendela penyunting digambar ulang." +msgstr "Putar ketika jendela editor digambar ulang." #: editor/editor_node.cpp msgid "Update Continuously" @@ -2971,7 +2964,7 @@ msgstr "Inspektur" msgid "Expand Bottom Panel" msgstr "Perluas Panel Bawah" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "Luaran" @@ -2997,9 +2990,16 @@ msgid "" "the \"Use Custom Build\" option should be enabled in the Android export " "preset." msgstr "" +"Ini akan mengatur proyek Anda untuk build Android khusus dengan memasang " +"templat sumber ke \"res://android/build\".\n" +"Anda kemudian dapat menerapkan modifikasi dan membangun APK khusus Anda " +"sendiri pada saat ekspor (menambahkan modul, mengubah AndroidManifest.xml, " +"dll.).\n" +"Perhatikan bahwa untuk membuat build khusus alih-alih menggunakan APK yang " +"sudah dibuat sebelumnya, opsi \"Use Custom Build\" harus diaktifkan di " +"preset ekspor Android." #: editor/editor_node.cpp -#, fuzzy msgid "" "The Android build template is already installed in this project and it won't " "be overwritten.\n" @@ -3007,8 +3007,8 @@ msgid "" "operation again." msgstr "" "Templat build Android sudah terpasang sebelumnya dan tidak akan ditimpa.\n" -"Hapus direktori \"build\" secara manual sebelum menjalankan perintah ini " -"lagi." +"Hapus direktori \"res://android/build\" secara manual sebelum menjalankan " +"perintah ini lagi." #: editor/editor_node.cpp msgid "Import Templates From ZIP File" @@ -3048,15 +3048,15 @@ msgstr "Pilih" #: editor/editor_node.cpp msgid "Open 2D Editor" -msgstr "Buka Penyunting 2D" +msgstr "Buka Editor 2D" #: editor/editor_node.cpp msgid "Open 3D Editor" -msgstr "Buka Penyunting 3D" +msgstr "Buka Editor 3D" #: editor/editor_node.cpp msgid "Open Script Editor" -msgstr "Buka Penyunting Skrip" +msgstr "Buka Editor Skrip" #: editor/editor_node.cpp editor/project_manager.cpp msgid "Open Asset Library" @@ -3064,16 +3064,15 @@ msgstr "Buka Pustaka Aset" #: editor/editor_node.cpp msgid "Open the next Editor" -msgstr "Buka Penyunting Selanjutnya" +msgstr "Buka Editor Selanjutnya" #: editor/editor_node.cpp msgid "Open the previous Editor" -msgstr "Buka Penyunting Sebelumnya" +msgstr "Buka Editor Sebelumnya" #: editor/editor_path.cpp -#, fuzzy msgid "No sub-resources found." -msgstr "Sumber permukaan tidak ditentukan." +msgstr "Tidak ada sub-sumber yang ditemukan." #: editor/editor_plugin.cpp msgid "Creating Mesh Previews" @@ -3084,9 +3083,8 @@ msgid "Thumbnail..." msgstr "Gambar Kecil..." #: editor/editor_plugin_settings.cpp -#, fuzzy msgid "Main Script:" -msgstr "Buka Cepat Script..." +msgstr "Skrip Utama:" #: editor/editor_plugin_settings.cpp msgid "Edit Plugin" @@ -3222,6 +3220,10 @@ msgstr "Pilih Viewport" msgid "New Script" msgstr "Skrip Baru" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +msgid "Extend Script" +msgstr "Extend Skrip" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "%s baru" @@ -3248,13 +3250,6 @@ msgstr "Tempel" msgid "Convert To %s" msgstr "Konversikan ke %s" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Open Editor" -msgstr "Buka Penyunting" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "Node yang terpilih bukanlah Viewport!" @@ -3814,7 +3809,7 @@ msgstr "Grup yang kosong akan dihapus secara otomatis." #: editor/groups_editor.cpp msgid "Group Editor" -msgstr "Penyunting Grup" +msgstr "Editor Grup" #: editor/groups_editor.cpp msgid "Manage Groups" @@ -3914,7 +3909,6 @@ msgid "Import As:" msgstr "Impor sebagai:" #: editor/import_dock.cpp -#, fuzzy msgid "Preset" msgstr "Prasetel" @@ -3928,7 +3922,7 @@ msgstr "Simpan skena, impor ulang, dan mulai ulang" #: editor/import_dock.cpp msgid "Changing the type of an imported file requires editor restart." -msgstr "Mengubah jenis berkas yang diimpor butuh menyalakan ulang penyunting." +msgstr "Mengubah jenis berkas yang diimpor, editor harus dimulai ulang." #: editor/import_dock.cpp msgid "" @@ -4040,9 +4034,9 @@ msgstr "Nama Plugin:" #: editor/plugin_config_dialog.cpp msgid "Subfolder:" -msgstr "Subfolder:" +msgstr "Subdirektori:" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "Bahasa:" @@ -4183,6 +4177,12 @@ msgstr "Titik" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Open Editor" +msgstr "Buka Editor" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp msgid "Open Animation Node" msgstr "Buka Node Animasi" @@ -4529,7 +4529,6 @@ msgstr "Nama Animasi:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "Kesalahan!" @@ -4700,6 +4699,8 @@ msgid "Current:" msgstr "Saat ini:" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "Tambah Masukan" @@ -4905,6 +4906,10 @@ msgid "All" msgstr "Semua" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp msgid "Import..." msgstr "Impor…" @@ -4968,9 +4973,8 @@ msgid "Failed creating lightmap images, make sure path is writable." msgstr "Gagal membuat gambar lightmap, pastikan path dapat ditulis." #: editor/plugins/baked_lightmap_editor_plugin.cpp -#, fuzzy msgid "Bake Lightmaps" -msgstr "Ganti Radius Lampu" +msgstr "Panggang Lightmaps" #: editor/plugins/camera_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp @@ -5194,26 +5198,32 @@ msgid "Pan Mode" msgstr "Mode Geser Pandangan" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Ruler Mode" -msgstr "Mode Menjalankan:" +msgstr "Mode Penggaris" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Toggle snapping." +#, fuzzy +msgid "Toggle smart snapping." msgstr "Jungkitkan Pengancingan." #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +#, fuzzy +msgid "Use Smart Snap" msgstr "Gunakan Snap" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snapping Options" -msgstr "Opsi-opsi Snap" +#, fuzzy +msgid "Toggle grid snapping." +msgstr "Jungkitkan Pengancingan." #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to Grid" -msgstr "Kancing ke Kisi" +#, fuzzy +msgid "Use Grid Snap" +msgstr "Pengancingan Kisi" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snapping Options" +msgstr "Opsi-opsi Snap" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Rotation Snap" @@ -5302,8 +5312,8 @@ msgid "View" msgstr "Pandangan" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +#, fuzzy +msgid "Always Show Grid" msgstr "Tampilkan Kotak-kotak" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5570,6 +5580,11 @@ msgstr "Beralih Kurva Linear Tangen" msgid "Hold Shift to edit tangents individually" msgstr "Tahan Shift untuk menyunting tangen kurva satu-persatu" +#: editor/plugins/curve_editor_plugin.cpp +#, fuzzy +msgid "Right click to add point" +msgstr "Klik Kanan: Hapus Titik" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "Panggang GI Probe" @@ -5588,7 +5603,7 @@ msgstr "Item" #: editor/plugins/item_list_editor_plugin.cpp msgid "Item List Editor" -msgstr "Penyunting Daftar Item" +msgstr "Editor Daftar Item" #: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Occluder Polygon" @@ -6105,11 +6120,11 @@ msgstr "Gambar Pembobotan Tulang" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Open Polygon 2D UV editor." -msgstr "Buka Penyunting UV Poligon 2D." +msgstr "Buka Editor UV Poligon 2D." #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Polygon 2D UV Editor" -msgstr "Penyunting UV Poligon 2D" +msgstr "Editor UV Poligon 2D" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "UV" @@ -6208,6 +6223,10 @@ msgid "Grid" msgstr "Kisi" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "Tampilkan Kotak-kotak" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Configure Grid:" msgstr "Konfigurasikan Kisi:" @@ -6264,13 +6283,14 @@ msgstr "Instansi:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "Jenis:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/scene_tree_dock.cpp editor/scene_tree_editor.cpp msgid "Open in Editor" -msgstr "Buka dalam Penyunting" +msgstr "Buka dalam Editor" #: editor/plugins/resource_preloader_editor_plugin.cpp msgid "Load Resource" @@ -6362,6 +6382,11 @@ msgid "Find Next" msgstr "Pencarian Selanjutnya" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "Cari Sebelumnya" + +#: editor/plugins/script_editor_plugin.cpp msgid "Filter scripts" msgstr "Penyaring Skrip" @@ -6485,7 +6510,7 @@ msgstr "Biarkan Pengawakutu Terbuka" #: editor/plugins/script_editor_plugin.cpp msgid "Debug with External Editor" -msgstr "Awakutu menggunakan Penyunting Eksternal" +msgstr "Awakutu menggunakan Editor Eksternal" #: editor/plugins/script_editor_plugin.cpp msgid "Open Godot online documentation." @@ -6631,6 +6656,11 @@ msgstr "Breakpoint" msgid "Cut" msgstr "Potong" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "Pilih Semua" + #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "Hapus Baris" @@ -6688,10 +6718,6 @@ msgid "Auto Indent" msgstr "Indentasi Otomatis" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "Cari Sebelumnya" - -#: editor/plugins/script_text_editor.cpp msgid "Find in Files..." msgstr "Cari Dalam Berkas..." @@ -7014,11 +7040,16 @@ msgid "Freelook Speed Modifier" msgstr "Pengubah Kecepatan TampilanBebas" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Freelook Slow Modifier" +msgstr "Pengubah Kecepatan TampilanBebas" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." msgstr "" -"Catatan: Nilai FPS yang ditampilkan adalah framerate-nya penyunting.\n" +"Catatan: Nilai FPS yang ditampilkan adalah framerate-nya editor.\n" "Tidak bisa digunakan sebagai indikasi kinerja game yang dapat dihandalkan." #: editor/plugins/spatial_editor_plugin.cpp @@ -7053,6 +7084,10 @@ msgid "Use Local Space" msgstr "Gunakan Ruang Lokal" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "Gunakan Snap" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "Tampilan Bawah" @@ -7279,6 +7314,11 @@ msgid "Simplification: " msgstr "Penyederhanaan: " #: editor/plugins/sprite_editor_plugin.cpp +#, fuzzy +msgid "Shrink (Pixels): " +msgstr "Pertumbuhan (Piksel): " + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "Pertumbuhan (Piksel): " @@ -7327,9 +7367,8 @@ msgid "(empty)" msgstr "(kosong)" #: editor/plugins/sprite_frames_editor_plugin.cpp -#, fuzzy msgid "Move Frame" -msgstr "Rekat Frame" +msgstr "Geser Frame" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Animations:" @@ -7482,11 +7521,11 @@ msgstr "Buat Templat Kosong" #: editor/plugins/theme_editor_plugin.cpp msgid "Create Empty Editor Template" -msgstr "Buat Templat Penyunting Kosong" +msgstr "Buat Templat Editor Kosong" #: editor/plugins/theme_editor_plugin.cpp msgid "Create From Current Editor Theme" -msgstr "Buat dari Tema Penyunting Saat Ini" +msgstr "Buat dari Tema Editor Saat Ini" #: editor/plugins/theme_editor_plugin.cpp msgid "Toggle Button" @@ -7646,13 +7685,12 @@ msgid "Enable Priority" msgstr "Aktifkan Prioritas" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Filter tiles" -msgstr "Saring berkas..." +msgstr "Saring tile" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Give a TileSet resource to this TileMap to use its tiles." -msgstr "" +msgstr "Berikan sumber TileSet untuk TileMap ini untuk menggunakan Tile-nya." #: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" @@ -7966,27 +8004,24 @@ msgid "TileSet" msgstr "TileSet" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "No VCS addons are available." -msgstr "Nama node induk, jika tersedia" +msgstr "Tidak ada ekstensi VCS yang tersedia." #: editor/plugins/version_control_editor_plugin.cpp editor/rename_dialog.cpp msgid "Error" msgstr "Galat" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "No commit message was provided" -msgstr "Nama masih kosong" +msgstr "Tidak ada pesan komit yang diberikan" #: editor/plugins/version_control_editor_plugin.cpp msgid "No files added to stage" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Commit" -msgstr "Komunitas" +msgstr "Komit" #: editor/plugins/version_control_editor_plugin.cpp msgid "VCS Addon is not initialized" @@ -7997,61 +8032,52 @@ msgid "Version Control System" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Initialize" -msgstr "Kapitalisasi" +msgstr "Inisialisasi" #: editor/plugins/version_control_editor_plugin.cpp msgid "Staging area" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Detect new changes" -msgstr "Buat persegi panjang baru." +msgstr "Deteksi perubahan baru" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Changes" -msgstr "Ubah" +msgstr "Perubahan" #: editor/plugins/version_control_editor_plugin.cpp msgid "Modified" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Renamed" -msgstr "Ubah Nama" +msgstr "Berganti nama" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Deleted" -msgstr "Hapus" +msgstr "Dihapus" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Typechange" -msgstr "Ubah" +msgstr "Jenis perubahan" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Stage Selected" -msgstr "Hapus yang Dipilih" +msgstr "Stage Hanya yang Dipilih" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Stage All" -msgstr "Simpan Semua" +msgstr "Stage Semua" #: editor/plugins/version_control_editor_plugin.cpp msgid "Add a commit message" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Commit Changes" -msgstr "Sinkronkan Perubahan Script" +msgstr "Komit Perubahan" #: editor/plugins/version_control_editor_plugin.cpp #: modules/gdnative/gdnative_library_singleton_editor.cpp @@ -8075,11 +8101,8 @@ msgid "(GLES3 only)" msgstr "(Hanya GLES3)" #: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add input +" -msgstr "Tambah masukan +" - -#: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add output +" +#, fuzzy +msgid "Add Output" msgstr "Tambah keluaran +" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -8095,6 +8118,10 @@ msgid "Boolean" msgstr "Boolean" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sampler" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add input port" msgstr "Tambah port masukan" @@ -8311,7 +8338,6 @@ msgstr "" "salah." #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "" "Returns an associated scalar if the provided boolean value is true or false." msgstr "" @@ -9032,15 +9058,19 @@ msgid "Resources to export:" msgstr "Sumber daya yang akan diexpor:" #: editor/project_export.cpp +#, fuzzy msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" "Penyaringan untuk mengekspor berkas non-sumber (dipisahkan koma, contoh: *." "json, *.txt)" #: editor/project_export.cpp +#, fuzzy msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" "Penyaringan untuk mengecualikan berkas dalam proyek (dipisahkan koma, " "contoh: *.json, *.txt)" @@ -9387,7 +9417,7 @@ msgid "" "The interface will update after restarting the editor or project manager." msgstr "" "Bahasa diubah.\n" -"Antarmuka akan diperbarui setelah menjalankan ulang penyunting atau manajer " +"Antarmuka akan diperbarui setelah menjalankan ulang editor atau manajer " "proyek." #: editor/project_manager.cpp @@ -9635,9 +9665,8 @@ msgid "Settings saved OK." msgstr "OK, Pengaturan telah disimpan." #: editor/project_settings_editor.cpp -#, fuzzy msgid "Moved Input Action Event" -msgstr "Tambah Input Action Event" +msgstr "Input Action Event Dipindahkan" #: editor/project_settings_editor.cpp msgid "Override for Feature" @@ -9693,7 +9722,7 @@ msgstr "Timpa untuk..." #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp msgid "The editor must be restarted for changes to take effect." -msgstr "Penyunting harus dimulai ulang untuk menerapkan perubahan." +msgstr "Editor harus dimulai ulang untuk menerapkan perubahan." #: editor/project_settings_editor.cpp msgid "Input Map" @@ -9960,7 +9989,6 @@ msgid "Keep Global Transform" msgstr "Pertahankan Transformasi Global" #: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp -#, fuzzy msgid "Reparent" msgstr "Pengindukan Ulang" @@ -10051,9 +10079,8 @@ msgid "Make node as Root" msgstr "Jadikan node sebagai Dasar" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete %d nodes?" -msgstr "Hapus Node" +msgstr "Hapus %d node?" #: editor/scene_tree_dock.cpp msgid "Delete the root node \"%s\"?" @@ -10064,9 +10091,8 @@ msgid "Delete node \"%s\" and its children?" msgstr "" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete node \"%s\"?" -msgstr "Hapus Node" +msgstr "Hapus node \"%s\"?" #: editor/scene_tree_dock.cpp msgid "Can not perform with the root node." @@ -10087,11 +10113,9 @@ msgid "" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." msgstr "" #: editor/scene_tree_dock.cpp @@ -10103,28 +10127,24 @@ msgid "New Scene Root" msgstr "Skena Dasar Baru" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Create Root Node:" -msgstr "Buat Folder" +msgstr "Buat Node Root:" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "2D Scene" -msgstr "Suasana" +msgstr "Skena 2D" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "3D Scene" -msgstr "Suasana" +msgstr "Skena 3D" #: editor/scene_tree_dock.cpp msgid "User Interface" msgstr "" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Other Node" -msgstr "Metode Publik:" +msgstr "Node Lainnya" #: editor/scene_tree_dock.cpp msgid "Can't operate on nodes from a foreign scene!" @@ -10143,9 +10163,8 @@ msgid "Remove Node(s)" msgstr "" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Change type of node(s)" -msgstr "Ubah nama port keluaran" +msgstr "Ubah jenis node" #: editor/scene_tree_dock.cpp msgid "" @@ -10164,39 +10183,39 @@ msgstr "" #: editor/scene_tree_dock.cpp #, fuzzy msgid "Sub-Resources" -msgstr "Resource" +msgstr "Sub-Sumber Daya" #: editor/scene_tree_dock.cpp msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp -#, fuzzy +msgid "Editable Children" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "" + +#: editor/scene_tree_dock.cpp msgid "Open Documentation" -msgstr "Buka baru-baru ini" +msgstr "Buka Dokumentasi" #: editor/scene_tree_dock.cpp msgid "Add Child Node" msgstr "" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Expand/Collapse All" -msgstr "Ciutkan Semua" +msgstr "Bentangkan/Ciutkan Semua" #: editor/scene_tree_dock.cpp msgid "Change Type" msgstr "" #: editor/scene_tree_dock.cpp -#, fuzzy -msgid "Extend Script" -msgstr "Buka Cepat Script..." - -#: editor/scene_tree_dock.cpp -#, fuzzy msgid "Reparent to New Node" -msgstr "Buat Baru %s" +msgstr "Pengindukan Ulang ke Node Baru" #: editor/scene_tree_dock.cpp msgid "Make Scene Root" @@ -10211,18 +10230,16 @@ msgid "Save Branch as Scene" msgstr "" #: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp -#, fuzzy msgid "Copy Node Path" -msgstr "Salin Resource" +msgstr "Salin Lokasi Node" #: editor/scene_tree_dock.cpp msgid "Delete (No Confirm)" msgstr "" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Add/Create a New Node." -msgstr "Buat Baru %s" +msgstr "Tambah / Buat Node Baru." #: editor/scene_tree_dock.cpp msgid "" @@ -10239,9 +10256,8 @@ msgid "Clear a script for the selected node." msgstr "" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Remote" -msgstr "Hapus" +msgstr "Remot" #: editor/scene_tree_dock.cpp msgid "Local" @@ -10257,19 +10273,16 @@ msgid "Toggle Visible" msgstr "Beralih File Tersembunyi" #: editor/scene_tree_editor.cpp -#, fuzzy msgid "Unlock Node" -msgstr "Metode Publik:" +msgstr "Buka Kunci Node" #: editor/scene_tree_editor.cpp -#, fuzzy msgid "Button Group" -msgstr "Tambahkan ke Grup" +msgstr "Tombol Grup" #: editor/scene_tree_editor.cpp -#, fuzzy msgid "(Connecting From)" -msgstr "Gangguan Koneksi" +msgstr "(Menghubungkan dari)" #: editor/scene_tree_editor.cpp msgid "Node configuration warning:" @@ -10294,9 +10307,8 @@ msgid "" msgstr "" #: editor/scene_tree_editor.cpp -#, fuzzy msgid "Open Script:" -msgstr "Buka Cepat Script..." +msgstr "Buka Skrip:" #: editor/scene_tree_editor.cpp msgid "" @@ -10341,92 +10353,76 @@ msgid "Select a Node" msgstr "" #: editor/script_create_dialog.cpp -#, fuzzy msgid "Path is empty." -msgstr "Papan klip kosong" +msgstr "Lokasi kosong." #: editor/script_create_dialog.cpp -#, fuzzy msgid "Filename is empty." -msgstr "Papan klip kosong" +msgstr "Nama berkas kosong." #: editor/script_create_dialog.cpp -#, fuzzy msgid "Path is not local." -msgstr "Path tidak menunjukkan Node!" +msgstr "Lokasi bukan lokal." #: editor/script_create_dialog.cpp -#, fuzzy msgid "Invalid base path." -msgstr "Path Tidak Sah." +msgstr "Basis lokasinya tidak valid." #: editor/script_create_dialog.cpp -#, fuzzy msgid "A directory with the same name exists." -msgstr "Sudah ada nama berkas atau folder seperti itu." +msgstr "Sudah ada nama direktori seperti itu." #: editor/script_create_dialog.cpp -#, fuzzy msgid "Invalid extension." -msgstr "Harus menggunakan ekstensi yang sah." +msgstr "Ekstensi tidak valid." #: editor/script_create_dialog.cpp msgid "Wrong extension chosen." msgstr "" #: editor/script_create_dialog.cpp -#, fuzzy msgid "Error loading template '%s'" -msgstr "Error memuat font." +msgstr "Galat saat memuat templat '%s'" #: editor/script_create_dialog.cpp -#, fuzzy msgid "Error - Could not create script in filesystem." -msgstr "Tidak dapat membuat folder." +msgstr "Galat - Tidak dapat membuat skrip di berkas sistem." #: editor/script_create_dialog.cpp -#, fuzzy msgid "Error loading script from %s" -msgstr "Error memuat font." +msgstr "Galat saat memuat skrip dari %s" #: editor/script_create_dialog.cpp -#, fuzzy msgid "Overrides" -msgstr "Timpa" +msgstr "Menimpa" #: editor/script_create_dialog.cpp msgid "N/A" msgstr "" #: editor/script_create_dialog.cpp -#, fuzzy msgid "Open Script / Choose Location" -msgstr "Buka Penyunting Skrip" +msgstr "Buka Skrip / Pilih Lokasi" #: editor/script_create_dialog.cpp -#, fuzzy msgid "Open Script" -msgstr "Buka Cepat Script..." +msgstr "Buka Skrip" #: editor/script_create_dialog.cpp -#, fuzzy msgid "File exists, it will be reused." -msgstr "File telah ada, Overwrite?" +msgstr "Berkas sudah ada, itu akan digunakan kembali." #: editor/script_create_dialog.cpp -#, fuzzy msgid "Invalid class name." -msgstr "Nama tidak sah." +msgstr "Nama kelas tidak valid." #: editor/script_create_dialog.cpp -#, fuzzy msgid "Invalid inherited parent name or path." -msgstr "Nama properti index tidak sah." +msgstr "Nama atau lokasi parent yang diwariskan tidak valid." #: editor/script_create_dialog.cpp -#, fuzzy msgid "Script is valid." -msgstr "Pohon animasi valid." +msgstr "Skrip valid." #: editor/script_create_dialog.cpp msgid "Allowed: a-z, A-Z, 0-9, _ and ." @@ -10437,85 +10433,67 @@ msgid "Built-in script (into scene file)." msgstr "Skrip tanam (ke dalam berkas skena)." #: editor/script_create_dialog.cpp -#, fuzzy msgid "Will create a new script file." -msgstr "Buat Subskribsi" +msgstr "Akan membuat berkas skrip baru." #: editor/script_create_dialog.cpp -#, fuzzy msgid "Will load an existing script file." -msgstr "Muat Layout Bus yang ada." - -#: editor/script_create_dialog.cpp -msgid "Language" -msgstr "" +msgstr "Akan memuat berkas skrip yang ada." #: editor/script_create_dialog.cpp #, fuzzy -msgid "Inherits" -msgstr "Turunan:" +msgid "Class Name:" +msgstr "Nama Kelas" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Class Name" -msgstr "Kelas:" +msgid "Template:" +msgstr "Templat" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Template" -msgstr "Hapus Pilihan" - -#: editor/script_create_dialog.cpp -msgid "Built-in Script" -msgstr "" +msgid "Built-in Script:" +msgstr "Skrip Utama:" #: editor/script_create_dialog.cpp msgid "Attach Node Script" msgstr "Lampirkan Skrip Node" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Remote " -msgstr "Hapus" +msgstr "Remot " #: editor/script_editor_debugger.cpp msgid "Bytes:" msgstr "" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Warning:" msgstr "Peringatan:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Error:" -msgstr "Galat" +msgstr "Galat:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Error" -msgstr "Muat Galat" +msgstr "Galat C++" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Error:" -msgstr "Muat Galat" +msgstr "Galat C++ :" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Source" -msgstr "Sumber" +msgstr "Kode Sumber C++" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Source:" -msgstr "Sumber" +msgstr "Sumber:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Source:" -msgstr "Sumber" +msgstr "Sumber C++ :" #: editor/script_editor_debugger.cpp msgid "Stack Trace" @@ -10526,19 +10504,16 @@ msgid "Errors" msgstr "" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Child process connected." -msgstr "Node Terputus" +msgstr "Proses anak terhubung." #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Copy Error" -msgstr "Muat Galat" +msgstr "Salin Galat" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Skip Breakpoints" -msgstr "Breakpoint" +msgstr "Lewati Breakpoint" #: editor/script_editor_debugger.cpp msgid "Inspect Previous Instance" @@ -10557,9 +10532,8 @@ msgid "Profiler" msgstr "" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Network Profiler" -msgstr "Ekspor Profil" +msgstr "Profiler Jaringan" #: editor/script_editor_debugger.cpp msgid "Monitor" @@ -10631,9 +10605,8 @@ msgid "Export measures as CSV" msgstr "" #: editor/settings_config_dialog.cpp -#, fuzzy msgid "Erase Shortcut" -msgstr "Beri Skala Seleksi" +msgstr "Hapus Pintasan" #: editor/settings_config_dialog.cpp msgid "Restore Shortcut" @@ -10664,14 +10637,12 @@ msgid "Change AudioStreamPlayer3D Emission Angle" msgstr "" #: editor/spatial_editor_gizmos.cpp -#, fuzzy msgid "Change Camera FOV" -msgstr "Ganti FOV Kamera" +msgstr "Ubah FOV Kamera" #: editor/spatial_editor_gizmos.cpp -#, fuzzy msgid "Change Camera Size" -msgstr "Ganti Ukuran Kamera" +msgstr "Ubah Ukuran Kamera" #: editor/spatial_editor_gizmos.cpp msgid "Change Notifier AABB" @@ -10702,38 +10673,32 @@ msgid "Change Capsule Shape Height" msgstr "" #: editor/spatial_editor_gizmos.cpp -#, fuzzy msgid "Change Cylinder Shape Radius" -msgstr "Ganti Radius Bentuk Bola" +msgstr "Ubah Radius Bentuk Silinder" #: editor/spatial_editor_gizmos.cpp -#, fuzzy msgid "Change Cylinder Shape Height" -msgstr "Ganti Radius Bentuk Bola" +msgstr "Ubah Tinggi Bentuk Silinder" #: editor/spatial_editor_gizmos.cpp msgid "Change Ray Shape Length" msgstr "" #: modules/csg/csg_gizmos.cpp -#, fuzzy msgid "Change Cylinder Radius" -msgstr "Ganti Radius Lampu" +msgstr "Ubah Radius Silinder" #: modules/csg/csg_gizmos.cpp -#, fuzzy msgid "Change Cylinder Height" -msgstr "Ubah Waktu Blend" +msgstr "Ubah Tinggi Silinder" #: modules/csg/csg_gizmos.cpp -#, fuzzy msgid "Change Torus Inner Radius" -msgstr "Ganti Radius Bentuk Bola" +msgstr "Ubah Torus Radius Dalam" #: modules/csg/csg_gizmos.cpp -#, fuzzy msgid "Change Torus Outer Radius" -msgstr "Ganti Radius Lampu" +msgstr "Ubah Torus Radius Luar" #: modules/gdnative/gdnative_library_editor_plugin.cpp msgid "Select the dynamic library for this entry" @@ -10744,9 +10709,8 @@ msgid "Select dependencies of the library for this entry" msgstr "" #: modules/gdnative/gdnative_library_editor_plugin.cpp -#, fuzzy msgid "Remove current entry" -msgstr "Hapus Sinyal" +msgstr "Hapus entri saat ini" #: modules/gdnative/gdnative_library_editor_plugin.cpp msgid "Double click to create a new entry" @@ -10761,32 +10725,28 @@ msgid "Platform" msgstr "" #: modules/gdnative/gdnative_library_editor_plugin.cpp -#, fuzzy msgid "Dynamic Library" -msgstr "Ekspor Pustaka" +msgstr "Pustaka Dinamis" #: modules/gdnative/gdnative_library_editor_plugin.cpp msgid "Add an architecture entry" msgstr "" #: modules/gdnative/gdnative_library_editor_plugin.cpp -#, fuzzy msgid "GDNativeLibrary" -msgstr "Ekspor Pustaka" +msgstr "Pustaka GDNative" #: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Enabled GDNative Singleton" msgstr "" #: modules/gdnative/gdnative_library_singleton_editor.cpp -#, fuzzy msgid "Disabled GDNative Singleton" -msgstr "Nonaktifkan Perbaruan Spinner" +msgstr "Dinonaktifkan Singleton GDNative" #: modules/gdnative/gdnative_library_singleton_editor.cpp -#, fuzzy msgid "Library" -msgstr "Ekspor Pustaka" +msgstr "Pustaka" #: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Libraries: " @@ -10801,9 +10761,8 @@ msgid "Expected a string of length 1 (a character)." msgstr "" #: modules/gdscript/gdscript_functions.cpp -#, fuzzy msgid "Step argument is zero!" -msgstr "Argumen langkah adalah nol!" +msgstr "Argumen step adalah nol!" #: modules/gdscript/gdscript_functions.cpp msgid "Not a script with an instance" @@ -11018,27 +10977,27 @@ msgstr "" #: modules/recast/navigation_mesh_generator.cpp msgid "Creating contours..." -msgstr "" +msgstr "Membuat kontur..." #: modules/recast/navigation_mesh_generator.cpp msgid "Creating polymesh..." -msgstr "" +msgstr "Membuat polymesh..." #: modules/recast/navigation_mesh_generator.cpp msgid "Converting to native navigation mesh..." -msgstr "" +msgstr "Mengkonversi ke mesh navigasi native..." #: modules/recast/navigation_mesh_generator.cpp msgid "Navigation Mesh Generator Setup:" -msgstr "" +msgstr "Pengaturan Generator Navigasi Mesh:" #: modules/recast/navigation_mesh_generator.cpp msgid "Parsing Geometry..." -msgstr "" +msgstr "Mengurai Geometri..." #: modules/recast/navigation_mesh_generator.cpp msgid "Done!" -msgstr "" +msgstr "Selesai!" #: modules/visual_script/visual_script.cpp msgid "" @@ -11079,28 +11038,24 @@ msgid "Stack overflow with stack depth: " msgstr "Tumpukan melimpah dengan kedalaman tumpukan: " #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Change Signal Arguments" -msgstr "Edit Argumen-argumen Sinyal:" +msgstr "Ubah Argumen Sinyal" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Change Argument Type" -msgstr "Ubah Tipe Nilai Array" +msgstr "Ubah Jenis Argumen" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Change Argument name" -msgstr "Ubah Nilai Array" +msgstr "Ubah Nama Argumen" #: modules/visual_script/visual_script_editor.cpp msgid "Set Variable Default Value" -msgstr "" +msgstr "Tetapkan Nilai Baku Variabel" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Set Variable Type" -msgstr "Edit Variabel:" +msgstr "Atur Jenis variabel" #: modules/visual_script/visual_script_editor.cpp #, fuzzy @@ -11155,6 +11110,11 @@ msgid "Add Function" msgstr "Tambahkan Fungsi" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Delete input port" +msgstr "Hapus port masukan" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "Tambahkan Variabel" @@ -11163,6 +11123,26 @@ msgid "Add Signal" msgstr "Tambahkan Sinyal" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Input Port" +msgstr "Tambah port masukan" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Output Port" +msgstr "Tambah port keluaran" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Input Port" +msgstr "Hapus port masukan" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Output Port" +msgstr "Hapus port keluaran" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "Ubah Pernyataan" @@ -11208,10 +11188,20 @@ msgid "Add Preload Node" msgstr "Tambahkan Node" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "Tambahkan Node (Node-node) dari Tree" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "Tambahkan Properti Getter" @@ -11241,6 +11231,11 @@ msgstr "Sambungkan Ke Node:" #: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Disconnect Nodes" +msgstr "Sambungkan Ke Node:" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Connect Node Data" msgstr "Sambungkan Ke Node:" @@ -11277,6 +11272,27 @@ msgid "Paste VisualScript Nodes" msgstr "Path ke Node:" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function with a function node." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Create Function" +msgstr "Namai kembali Fungsi" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "Hapus Fungsi" @@ -11301,16 +11317,13 @@ msgid "Make Tool:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "Tipe Dasar:" - -#: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "Member-member:" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" -msgstr "Node-node yang Tersedia:" +#, fuzzy +msgid "function_name" +msgstr "Fungsi-fungsi:" #: modules/visual_script/visual_script_editor.cpp #, fuzzy @@ -11337,6 +11350,16 @@ msgstr "" #: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Make Function" +msgstr "Namai kembali Fungsi" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Refresh Graph" +msgstr "Segarkan" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Edit Member" msgstr "Anggota" @@ -11435,6 +11458,10 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "Pilih perangkat pada daftar" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "" @@ -11538,6 +11565,10 @@ msgid "Required icon is not specified in the preset." msgstr "" #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "" @@ -12063,7 +12094,6 @@ msgid "No root AnimationNode for the graph is set." msgstr "Akar AnimationNode untuk grafik belum diatur." #: scene/animation/animation_tree.cpp -#, fuzzy msgid "Path to an AnimationPlayer node containing animations is not set." msgstr "" "Lokasi untuk node AnimationPlayer yang mengandung animasi belum diatur." @@ -12185,10 +12215,6 @@ msgstr "" "tidak, jadikan sebagai RenderTarget dan tetapkan tekstur internal nya ke " "beberapa node untuk ditampilkan." -#: scene/resources/visual_shader.cpp -msgid "Input" -msgstr "Masukan" - #: scene/resources/visual_shader_nodes.cpp #, fuzzy msgid "Invalid source for preview." @@ -12200,22 +12226,18 @@ msgid "Invalid source for shader." msgstr "Ukuran font tidak sah." #: scene/resources/visual_shader_nodes.cpp -#, fuzzy msgid "Invalid comparison function for that type." -msgstr "Ukuran font tidak sah." +msgstr "Fungsi perbandingan tidak valid untuk jenis tersebut." #: servers/visual/shader_language.cpp -#, fuzzy msgid "Assignment to function." msgstr "Penugasan ke fungsi." #: servers/visual/shader_language.cpp -#, fuzzy msgid "Assignment to uniform." -msgstr "Penugasan untuk menyeragamkan." +msgstr "Pemberian nilai untuk uniform." #: servers/visual/shader_language.cpp -#, fuzzy msgid "Varyings can only be assigned in vertex function." msgstr "Variasi hanya bisa ditetapkan dalam fungsi vertex." @@ -12223,6 +12245,24 @@ msgstr "Variasi hanya bisa ditetapkan dalam fungsi vertex." msgid "Constants cannot be modified." msgstr "Konstanta tidak dapat dimodifikasi." +#~ msgid "Snap to Grid" +#~ msgstr "Kancing ke Kisi" + +#~ msgid "Add input +" +#~ msgstr "Tambah masukan +" + +#~ msgid "Inherits" +#~ msgstr "Mewarisi" + +#~ msgid "Base Type:" +#~ msgstr "Tipe Dasar:" + +#~ msgid "Available Nodes:" +#~ msgstr "Node-node yang Tersedia:" + +#~ msgid "Input" +#~ msgstr "Masukan" + #~ msgid "Properties:" #~ msgstr "Properti:" @@ -12414,9 +12454,6 @@ msgstr "Konstanta tidak dapat dimodifikasi." #~ msgid "Go to parent folder" #~ msgstr "Pergi ke direktori induk" -#~ msgid "Select device from the list" -#~ msgstr "Pilih perangkat pada daftar" - #~ msgid "Open Scene(s)" #~ msgstr "Buka Scene" diff --git a/editor/translations/is.po b/editor/translations/is.po index 36fbcdd3e3..77ca21f932 100644 --- a/editor/translations/is.po +++ b/editor/translations/is.po @@ -370,6 +370,7 @@ msgstr "" #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "" @@ -500,16 +501,6 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "" - -#: editor/animation_track_editor.cpp -#, fuzzy -msgid "Select None" -msgstr "Afrita val" - #: editor/animation_track_editor.cpp msgid "Select an AnimationPlayer node to create and edit animations." msgstr "" @@ -648,7 +639,7 @@ msgid "Scale Ratio:" msgstr "" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" +msgid "Select Tracks to Copy" msgstr "" #: editor/animation_track_editor.cpp editor/editor_log.cpp @@ -660,6 +651,11 @@ msgstr "" msgid "Copy" msgstr "" +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Select All/None" +msgstr "Afrita val" + #: editor/animation_track_editor_plugins.cpp #, fuzzy msgid "Add Audio Track Clip" @@ -978,7 +974,7 @@ msgid "Resource" msgstr "" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "" @@ -1434,7 +1430,8 @@ msgstr "" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "" @@ -1488,7 +1485,7 @@ msgstr "" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "" @@ -1875,6 +1872,7 @@ msgid "Class:" msgstr "" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "" @@ -2871,7 +2869,7 @@ msgstr "" msgid "Expand Bottom Panel" msgstr "" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "" @@ -3108,6 +3106,10 @@ msgstr "" msgid "New Script" msgstr "" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +msgid "Extend Script" +msgstr "" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "" @@ -3134,13 +3136,6 @@ msgstr "" msgid "Convert To %s" msgstr "" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Open Editor" -msgstr "" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "" @@ -3916,7 +3911,7 @@ msgstr "" msgid "Subfolder:" msgstr "" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "" @@ -4053,6 +4048,12 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Open Editor" +msgstr "" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp msgid "Open Animation Node" msgstr "" @@ -4398,7 +4399,6 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "" @@ -4571,6 +4571,8 @@ msgid "Current:" msgstr "" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "" @@ -4775,6 +4777,10 @@ msgid "All" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp msgid "Import..." msgstr "" @@ -5059,20 +5065,23 @@ msgid "Ruler Mode" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Toggle snapping." +msgid "Toggle smart snapping." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +msgid "Use Smart Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snapping Options" +msgid "Toggle grid snapping." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to Grid" +msgid "Use Grid Snap" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snapping Options" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5162,8 +5171,7 @@ msgid "View" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +msgid "Always Show Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5425,6 +5433,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/curve_editor_plugin.cpp +msgid "Right click to add point" +msgstr "" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "" @@ -6059,6 +6071,10 @@ msgid "Grid" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Configure Grid:" msgstr "" @@ -6115,6 +6131,7 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "" @@ -6213,6 +6230,11 @@ msgid "Find Next" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Filter scripts" msgstr "" @@ -6478,6 +6500,11 @@ msgstr "" msgid "Cut" msgstr "" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "" @@ -6536,10 +6563,6 @@ msgid "Auto Indent" msgstr "" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "" - -#: editor/plugins/script_text_editor.cpp msgid "Find in Files..." msgstr "" @@ -6859,6 +6882,10 @@ msgid "Freelook Speed Modifier" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Slow Modifier" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -6892,6 +6919,10 @@ msgid "Use Local Space" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "" @@ -7121,6 +7152,10 @@ msgid "Simplification: " msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Shrink (Pixels): " +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "" @@ -7905,11 +7940,7 @@ msgid "(GLES3 only)" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add input +" -msgstr "" - -#: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add output +" +msgid "Add Output" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -7925,6 +7956,10 @@ msgid "Boolean" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sampler" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add input port" msgstr "" @@ -8789,12 +8824,14 @@ msgstr "" #: editor/project_export.cpp msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp @@ -9785,11 +9822,9 @@ msgid "" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." msgstr "" #: editor/scene_tree_dock.cpp @@ -9864,6 +9899,14 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "" + +#: editor/scene_tree_dock.cpp msgid "Open Documentation" msgstr "" @@ -9880,10 +9923,6 @@ msgid "Change Type" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Extend Script" -msgstr "" - -#: editor/scene_tree_dock.cpp msgid "Reparent to New Node" msgstr "" @@ -10111,23 +10150,15 @@ msgid "Will load an existing script file." msgstr "" #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Inherits" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Class Name" +msgid "Class Name:" msgstr "" #: editor/script_create_dialog.cpp -msgid "Template" +msgid "Template:" msgstr "" #: editor/script_create_dialog.cpp -msgid "Built-in Script" +msgid "Built-in Script:" msgstr "" #: editor/script_create_dialog.cpp @@ -10765,6 +10796,11 @@ msgid "Add Function" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Delete input port" +msgstr "Fjarlægja val" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "" @@ -10773,6 +10809,26 @@ msgid "Add Signal" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Input Port" +msgstr "Stillið breyting á:" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Output Port" +msgstr "Fjarlægja val" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Input Port" +msgstr "Fjarlægja val" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Output Port" +msgstr "Fjarlægja val" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "" @@ -10813,10 +10869,20 @@ msgid "Add Preload Node" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "" @@ -10841,6 +10907,11 @@ msgid "Connect Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Disconnect Nodes" +msgstr "TvÃteknir lyklar" + +#: modules/visual_script/visual_script_editor.cpp msgid "Connect Node Data" msgstr "" @@ -10873,6 +10944,27 @@ msgid "Paste VisualScript Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function with a function node." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Create Function" +msgstr "Val á kvarða" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "" @@ -10897,15 +10989,11 @@ msgid "Make Tool:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" +msgid "function_name" msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -10929,6 +11017,15 @@ msgid "Cut Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Make Function" +msgstr "Val á kvarða" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Refresh Graph" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Edit Member" msgstr "" @@ -11023,6 +11120,10 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "" @@ -11122,6 +11223,10 @@ msgid "Required icon is not specified in the preset." msgstr "" #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "" @@ -11659,10 +11764,6 @@ msgid "" "texture to some node for display." msgstr "" -#: scene/resources/visual_shader.cpp -msgid "Input" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for preview." msgstr "" diff --git a/editor/translations/it.po b/editor/translations/it.po index e2fc3693f8..1341981a73 100644 --- a/editor/translations/it.po +++ b/editor/translations/it.po @@ -43,7 +43,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-09-07 13:51+0000\n" +"PO-Revision-Date: 2019-10-04 03:15+0000\n" "Last-Translator: Micila Micillotto <micillotto@gmail.com>\n" "Language-Team: Italian <https://hosted.weblate.org/projects/godot-engine/" "godot/it/>\n" @@ -97,32 +97,31 @@ msgstr "Alla chiamata di '%s':" #: core/ustring.cpp msgid "B" -msgstr "" +msgstr "B" #: core/ustring.cpp msgid "KiB" -msgstr "" +msgstr "KiB" #: core/ustring.cpp -#, fuzzy msgid "MiB" -msgstr "Mischia" +msgstr "MiB" #: core/ustring.cpp msgid "GiB" -msgstr "" +msgstr "GiB" #: core/ustring.cpp msgid "TiB" -msgstr "" +msgstr "TiB" #: core/ustring.cpp msgid "PiB" -msgstr "" +msgstr "PiB" #: core/ustring.cpp msgid "EiB" -msgstr "" +msgstr "EiB" #: editor/animation_bezier_editor.cpp msgid "Free" @@ -388,6 +387,7 @@ msgstr "Creare %d NUOVE tracce e inserire la chiave?" #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "Crea" @@ -530,20 +530,9 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "Attenzione: stai modificando un'animazione importata" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "Seleziona tutti" - -#: editor/animation_track_editor.cpp -msgid "Select None" -msgstr "Seleziona Nulla" - #: editor/animation_track_editor.cpp -#, fuzzy msgid "Select an AnimationPlayer node to create and edit animations." -msgstr "" -"Il Percorso di un nodo AnimationPlayer contenente animazioni non è impostato." +msgstr "Seleziona un nodo AnimationPlayer per creare e modificare animazioni." #: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." @@ -675,7 +664,8 @@ msgid "Scale Ratio:" msgstr "Fattore di scalatura:" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" +#, fuzzy +msgid "Select Tracks to Copy" msgstr "Seleziona le tracce da copiare:" #: editor/animation_track_editor.cpp editor/editor_log.cpp @@ -687,6 +677,11 @@ msgstr "Seleziona le tracce da copiare:" msgid "Copy" msgstr "Copia" +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Select All/None" +msgstr "Seleziona Nulla" + #: editor/animation_track_editor_plugins.cpp msgid "Add Audio Track Clip" msgstr "Aggiungi traccia clip audio" @@ -1011,7 +1006,7 @@ msgid "Resource" msgstr "Risorsa" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "Percorso" @@ -1281,9 +1276,8 @@ msgid "Delete Bus Effect" msgstr "Cancella effetto bus" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Drag & drop to rearrange." -msgstr "Bus audio, trascina e rilascia per riordinare." +msgstr "Trascina e rilascia per riordinare." #: editor/editor_audio_buses.cpp msgid "Solo" @@ -1476,7 +1470,8 @@ msgstr "Aggiungi Autoload" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "Percorso:" @@ -1530,7 +1525,7 @@ msgstr "Crea cartella" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "Nome:" @@ -1927,6 +1922,7 @@ msgid "Class:" msgstr "Classe:" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "Eredita:" @@ -1935,9 +1931,8 @@ msgid "Inherited by:" msgstr "Ereditato da:" #: editor/editor_help.cpp -#, fuzzy msgid "Brief Description" -msgstr "Breve descrizione:" +msgstr "Breve descrizione" #: editor/editor_help.cpp msgid "Properties" @@ -1968,9 +1963,8 @@ msgid "Class Description" msgstr "Descrizione della classe" #: editor/editor_help.cpp -#, fuzzy msgid "Online Tutorials" -msgstr "Guide online:" +msgstr "Tutorial Online" #: editor/editor_help.cpp msgid "" @@ -2093,7 +2087,7 @@ msgstr "Inizia" #: editor/editor_network_profiler.cpp msgid "%s/s" -msgstr "" +msgstr "%s/s" #: editor/editor_network_profiler.cpp msgid "Down" @@ -2109,19 +2103,19 @@ msgstr "Nodo" #: editor/editor_network_profiler.cpp msgid "Incoming RPC" -msgstr "" +msgstr "RPC in arrivo" #: editor/editor_network_profiler.cpp msgid "Incoming RSET" -msgstr "" +msgstr "RSET in arrivo" #: editor/editor_network_profiler.cpp msgid "Outgoing RPC" -msgstr "" +msgstr "RPC in uscita" #: editor/editor_network_profiler.cpp msgid "Outgoing RSET" -msgstr "" +msgstr "RSET in uscita" #: editor/editor_node.cpp editor/project_manager.cpp msgid "New Window" @@ -2720,17 +2714,16 @@ msgid "Project Settings..." msgstr "Impostazioni Progetto…" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Version Control" -msgstr "Versione:" +msgstr "Controllo Versione" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Set Up Version Control" -msgstr "" +msgstr "Imposta Controllo Versione" #: editor/editor_node.cpp msgid "Shut Down Version Control" -msgstr "" +msgstr "Arresta Controllo Versione" #: editor/editor_node.cpp msgid "Export..." @@ -3006,7 +2999,7 @@ msgstr "Ispettore" msgid "Expand Bottom Panel" msgstr "Espandi pannello inferiore" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "Output" @@ -3034,18 +3027,26 @@ msgid "" "the \"Use Custom Build\" option should be enabled in the Android export " "preset." msgstr "" +"Questo imposterà il tuo progetto per le build custom per Android, " +"installando i source templates in \"res://android/build\".\n" +"Puoi, allora, applicare le modifiche e costruire il tuo APK custom durante " +"l'esportazione (aggiungere moduli, cambiare il AndroidManifest.xml, ed " +"altro).\n" +"Nota che, in ordine per creare le build custom invece di usare gli APK pre-" +"costruiti, l'opzione \"Use Custom Build\" sarà abilitata nel preset " +"d'esportazione per Android." #: editor/editor_node.cpp -#, fuzzy msgid "" "The Android build template is already installed in this project and it won't " "be overwritten.\n" "Remove the \"res://android/build\" directory manually before attempting this " "operation again." msgstr "" -"Android build template è già installato e non sarà sovrascritto.\n" -"Rimuovi la cartella \"build\" manualmente prima di ritentare questa " -"operazione." +"Il template della build Android è già installato in questo progetto e non " +"sarà sovrascritto.\n" +"Rimuovi la cartella \"res://android/build\" manualmente prima di ritentare " +"questa operazione." #: editor/editor_node.cpp msgid "Import Templates From ZIP File" @@ -3108,9 +3109,8 @@ msgid "Open the previous Editor" msgstr "Apri l'Editor precedente" #: editor/editor_path.cpp -#, fuzzy msgid "No sub-resources found." -msgstr "Nessuna sorgente di superficie specificata." +msgstr "Nessuna sottorisorsa trovata." #: editor/editor_plugin.cpp msgid "Creating Mesh Previews" @@ -3121,9 +3121,8 @@ msgid "Thumbnail..." msgstr "Miniatura..." #: editor/editor_plugin_settings.cpp -#, fuzzy msgid "Main Script:" -msgstr "Apri script:" +msgstr "Script Principale:" #: editor/editor_plugin_settings.cpp msgid "Edit Plugin" @@ -3258,6 +3257,10 @@ msgstr "Scegli una Vista" msgid "New Script" msgstr "Nuovo Script" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +msgid "Extend Script" +msgstr "Estendi Script" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "Nuovo %s" @@ -3284,13 +3287,6 @@ msgstr "Incolla" msgid "Convert To %s" msgstr "Converti In %s" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Open Editor" -msgstr "Apri Editor" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "Il nodo selezionato non è una Viewport!" @@ -3953,9 +3949,8 @@ msgid "Import As:" msgstr "Importa Come:" #: editor/import_dock.cpp -#, fuzzy msgid "Preset" -msgstr "Presets" +msgstr "Preimpostazione" #: editor/import_dock.cpp msgid "Reimport" @@ -4081,7 +4076,7 @@ msgstr "Nome Plugin:" msgid "Subfolder:" msgstr "Sottocartella:" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "Lingua:" @@ -4225,6 +4220,12 @@ msgstr "Punto" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Open Editor" +msgstr "Apri Editor" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp msgid "Open Animation Node" msgstr "Apri Nodo Animazione" @@ -4575,7 +4576,6 @@ msgstr "Nome Animazione:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "Errore!" @@ -4748,6 +4748,8 @@ msgid "Current:" msgstr "Corrente:" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "Aggiungi Input" @@ -4952,6 +4954,10 @@ msgid "All" msgstr "Tutti" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp msgid "Import..." msgstr "Importa…" @@ -5244,26 +5250,32 @@ msgid "Pan Mode" msgstr "Modalità di Pan" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Ruler Mode" -msgstr "Modalità esecuzione:" +msgstr "Modalità Righello" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Toggle snapping." +#, fuzzy +msgid "Toggle smart snapping." msgstr "Abilita snapping." #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +#, fuzzy +msgid "Use Smart Snap" msgstr "Usa lo Snap" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snapping Options" -msgstr "Opzioni di Snapping" +#, fuzzy +msgid "Toggle grid snapping." +msgstr "Abilita snapping." + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Use Grid Snap" +msgstr "Snap Griglia" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to Grid" -msgstr "Snap alla griglia" +msgid "Snapping Options" +msgstr "Opzioni di Snapping" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Rotation Snap" @@ -5352,8 +5364,8 @@ msgid "View" msgstr "Vista" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +#, fuzzy +msgid "Always Show Grid" msgstr "Mostra Griglia" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5620,6 +5632,11 @@ msgstr "Abilita Tangente di Curva Lineare" msgid "Hold Shift to edit tangents individually" msgstr "Tenere Premuto Shift per modificare le tangenti singolarmente" +#: editor/plugins/curve_editor_plugin.cpp +#, fuzzy +msgid "Right click to add point" +msgstr "Click Destro: Elimina Punto" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "Preprocessa GI Probe" @@ -6262,6 +6279,10 @@ msgid "Grid" msgstr "Griglia" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "Mostra Griglia" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Configure Grid:" msgstr "Configura Griglia:" @@ -6318,6 +6339,7 @@ msgstr "Istanza:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "Tipo:" @@ -6416,6 +6438,11 @@ msgid "Find Next" msgstr "Trova Successivo" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "Trova Precedente" + +#: editor/plugins/script_editor_plugin.cpp msgid "Filter scripts" msgstr "Filtra script" @@ -6684,6 +6711,11 @@ msgstr "Punti di rottura" msgid "Cut" msgstr "Taglia" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "Seleziona tutti" + #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "Elimina Linea" @@ -6741,10 +6773,6 @@ msgid "Auto Indent" msgstr "Auto Indenta" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "Trova Precedente" - -#: editor/plugins/script_text_editor.cpp msgid "Find in Files..." msgstr "Cerca nei File..." @@ -7066,6 +7094,11 @@ msgid "Freelook Speed Modifier" msgstr "Modificatore Velocità Vista Libera" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Freelook Slow Modifier" +msgstr "Modificatore Velocità Vista Libera" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -7105,6 +7138,10 @@ msgid "Use Local Space" msgstr "Usa lo Spazio Locale" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "Usa lo Snap" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "Vista dal Basso" @@ -7333,6 +7370,11 @@ msgid "Simplification: " msgstr "Semplificazione: " #: editor/plugins/sprite_editor_plugin.cpp +#, fuzzy +msgid "Shrink (Pixels): " +msgstr "Aumento (Pixels): " + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "Aumento (Pixels): " @@ -7381,9 +7423,8 @@ msgid "(empty)" msgstr "(vuoto)" #: editor/plugins/sprite_frames_editor_plugin.cpp -#, fuzzy msgid "Move Frame" -msgstr "Incolla Frame" +msgstr "Sposta Frame" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Animations:" @@ -7700,13 +7741,13 @@ msgid "Enable Priority" msgstr "Abilita Priorità Tile" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Filter tiles" -msgstr "Filtra file..." +msgstr "Filtra tiles" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Give a TileSet resource to this TileMap to use its tiles." msgstr "" +"Assegna una risorsa TileSet a questo TileMap per usare i suoi riquadri." #: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" @@ -7844,6 +7885,8 @@ msgstr "Mostra i Nomi delle Tile (Tenere Premuto Tasto Alt)" msgid "" "Add or select a texture on the left panel to edit the tiles bound to it." msgstr "" +"Aggiungi o seleziona una texture nel pannello sulla sinistra per modificare " +"i suoi riquadri associati." #: editor/plugins/tile_set_editor_plugin.cpp msgid "Remove selected texture? This will remove all tiles which use it." @@ -8020,92 +8063,80 @@ msgid "TileSet" msgstr "TileSet" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "No VCS addons are available." -msgstr "Nome del genitore del Nodo, se disponibile" +msgstr "Non sono disponibili addons VCS." #: editor/plugins/version_control_editor_plugin.cpp editor/rename_dialog.cpp msgid "Error" msgstr "Errore" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "No commit message was provided" -msgstr "Nessun nome fornito" +msgstr "Non è stato inserito alcun messaggio di commit" #: editor/plugins/version_control_editor_plugin.cpp msgid "No files added to stage" -msgstr "" +msgstr "Nessun file aggiunto allo stage" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Commit" -msgstr "Comunità " +msgstr "Commit" #: editor/plugins/version_control_editor_plugin.cpp msgid "VCS Addon is not initialized" -msgstr "" +msgstr "L'Addon VCS non è inizializzato" #: editor/plugins/version_control_editor_plugin.cpp msgid "Version Control System" -msgstr "" +msgstr "Sistema di Controllo delle Versioni" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Initialize" -msgstr "Aggiungi maiuscola iniziale" +msgstr "Inizializza" #: editor/plugins/version_control_editor_plugin.cpp msgid "Staging area" -msgstr "" +msgstr "Area di Staging" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Detect new changes" -msgstr "Crea un nuovo rettangolo." +msgstr "Rileva nuove modifiche" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Changes" -msgstr "Cambia" +msgstr "Cambiamenti" #: editor/plugins/version_control_editor_plugin.cpp msgid "Modified" -msgstr "" +msgstr "Modificato" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Renamed" -msgstr "Rinomina" +msgstr "Rinominato" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Deleted" -msgstr "Elimina" +msgstr "Eliminato" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Typechange" -msgstr "Cambia" +msgstr "Cambio di tipo" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Stage Selected" -msgstr "Elimina selezionati" +msgstr "Stage selezionato" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Stage All" -msgstr "Salva Tutto" +msgstr "Stage Tutto" #: editor/plugins/version_control_editor_plugin.cpp msgid "Add a commit message" -msgstr "" +msgstr "Aggiungi un messaggio di commit" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Commit Changes" -msgstr "Sincronizza cambiamenti script" +msgstr "Commit Cambiamenti" #: editor/plugins/version_control_editor_plugin.cpp #: modules/gdnative/gdnative_library_singleton_editor.cpp @@ -8115,26 +8146,24 @@ msgstr "Stato" #: editor/plugins/version_control_editor_plugin.cpp msgid "View file diffs before committing them to the latest version" msgstr "" +"Visualizza i file diffs prima di eseguire il commit nella versione più " +"recente" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "No file diff is active" -msgstr "Nessun File selezionato!" +msgstr "Nessun file diff è attivo" #: editor/plugins/version_control_editor_plugin.cpp msgid "Detect changes in file diff" -msgstr "" +msgstr "Individua cambiamenti nei file diff" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "(GLES3 only)" msgstr "(Solo GLES3)" #: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add input +" -msgstr "Aggiungi Input +" - -#: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add output +" +#, fuzzy +msgid "Add Output" msgstr "Aggiungi ouput +" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -8150,6 +8179,11 @@ msgid "Boolean" msgstr "Booleano" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Sampler" +msgstr "Samples" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add input port" msgstr "Aggiungi porta di Input" @@ -8363,11 +8397,9 @@ msgstr "" "Ritorna un vettore associato se il valore booleano fornito è vero o falso." #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "" "Returns an associated scalar if the provided boolean value is true or false." -msgstr "" -"Ritorna un vettore associato se il valore booleano fornito è vero o falso." +msgstr "Ritorna uno scalare associato se il booleano provvisto è vero o falso." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the boolean result of the comparison between two parameters." @@ -9083,15 +9115,19 @@ msgid "Resources to export:" msgstr "Risorse da esportare:" #: editor/project_export.cpp +#, fuzzy msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" "Filtri per esportare file che non son risorse (separati con virgola, es.: *." "json, *.txt)" #: editor/project_export.cpp +#, fuzzy msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" "Filtri per escludere dall'esportazione (separati con virgola, es.: *.json, *." "txt)" @@ -9690,9 +9726,8 @@ msgid "Settings saved OK." msgstr "Impostazioni salvate OK." #: editor/project_settings_editor.cpp -#, fuzzy msgid "Moved Input Action Event" -msgstr "Aggiungi Evento di Azione Input" +msgstr "Evento d'Azione di Input Spostato" #: editor/project_settings_editor.cpp msgid "Override for Feature" @@ -10059,9 +10094,8 @@ msgid "Instance Scene(s)" msgstr "Istanzia Scena(e)" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Replace with Branch Scene" -msgstr "Salva Ramo come Scena" +msgstr "Sostituisci con la Scena Branch" #: editor/scene_tree_dock.cpp msgid "Instance Child Scene" @@ -10106,23 +10140,20 @@ msgid "Make node as Root" msgstr "Rendi il nodo come Radice" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete %d nodes?" -msgstr "Elimina Nodi" +msgstr "Elimina %d nodi?" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete the root node \"%s\"?" -msgstr "Elimina Nodo(i) Grafico di Shader" +msgstr "Elimina il nodo root \"%s\"?" #: editor/scene_tree_dock.cpp msgid "Delete node \"%s\" and its children?" -msgstr "" +msgstr "Elimina il nodo \"%s\" e tutti i suoi figli?" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete node \"%s\"?" -msgstr "Elimina Nodi" +msgstr "Elimina il nodo \"%s\"?" #: editor/scene_tree_dock.cpp msgid "Can not perform with the root node." @@ -10145,12 +10176,13 @@ msgstr "" "riportate al loro valore predefinito." #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "Figlio Modificabile" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" -msgstr "Carica come placeholder" +#, fuzzy +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." +msgstr "" +"Disabilitando \"editable_instance\" tutte le proprietà del nodo saranno " +"riportate al loro valore predefinito." #: editor/scene_tree_dock.cpp msgid "Make Local" @@ -10225,6 +10257,14 @@ msgid "Clear Inheritance" msgstr "Liberare ereditarietà " #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "Figlio Modificabile" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "Carica come placeholder" + +#: editor/scene_tree_dock.cpp msgid "Open Documentation" msgstr "Apri la documentazione" @@ -10241,10 +10281,6 @@ msgid "Change Type" msgstr "Cambia Tipo" #: editor/scene_tree_dock.cpp -msgid "Extend Script" -msgstr "Estendi Script" - -#: editor/scene_tree_dock.cpp msgid "Reparent to New Node" msgstr "Reparent a Nuovo Nodo" @@ -10485,23 +10521,18 @@ msgid "Will load an existing script file." msgstr "Caricherà un file di script esistente." #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "Linguaggio" - -#: editor/script_create_dialog.cpp -msgid "Inherits" -msgstr "Eredita" - -#: editor/script_create_dialog.cpp -msgid "Class Name" +#, fuzzy +msgid "Class Name:" msgstr "Nome Classe" #: editor/script_create_dialog.cpp -msgid "Template" +#, fuzzy +msgid "Template:" msgstr "Template" #: editor/script_create_dialog.cpp -msgid "Built-in Script" +#, fuzzy +msgid "Built-in Script:" msgstr "Script Built-In" #: editor/script_create_dialog.cpp @@ -10517,38 +10548,32 @@ msgid "Bytes:" msgstr "Bytes:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Warning:" -msgstr "Avvertimento" +msgstr "Attenzione:" #: editor/script_editor_debugger.cpp msgid "Error:" msgstr "Errore:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Error" -msgstr "Errore di Copia" +msgstr "Errore C++" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Error:" -msgstr "Errore:" +msgstr "Errore C++:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Source" -msgstr "Sorgente" +msgstr "Sorgente C++" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Source:" -msgstr "Sorgente" +msgstr "Sorgente:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Source:" -msgstr "Sorgente" +msgstr "Sorgente C++:" #: editor/script_editor_debugger.cpp msgid "Stack Trace" @@ -10559,18 +10584,16 @@ msgid "Errors" msgstr "Errori" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Child process connected." -msgstr "Processo Figlio Connesso" +msgstr "Processo Figlio Connesso." #: editor/script_editor_debugger.cpp msgid "Copy Error" msgstr "Errore di Copia" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Skip Breakpoints" -msgstr "Punti di rottura" +msgstr "Salta Punti di rottura" #: editor/script_editor_debugger.cpp msgid "Inspect Previous Instance" @@ -10589,9 +10612,8 @@ msgid "Profiler" msgstr "Profiler" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Network Profiler" -msgstr "Esporta profilo" +msgstr "Profiler di Rete" #: editor/script_editor_debugger.cpp msgid "Monitor" @@ -10815,7 +10837,7 @@ msgstr "GDNative" #: modules/gdscript/gdscript_functions.cpp msgid "Expected a string of length 1 (a character)." -msgstr "" +msgstr "Prevista una stringa di lunghezza 1 (singolo carattere)." #: modules/gdscript/gdscript_functions.cpp msgid "Step argument is zero!" @@ -10971,13 +10993,12 @@ msgid "Pick Distance:" msgstr "Scegli la Distanza:" #: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "Filter meshes" -msgstr "Modalità di filtraggio" +msgstr "Filtra mesh" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Give a MeshLibrary resource to this GridMap to use its meshes." -msgstr "" +msgstr "Dai una risorsa MeshLibrary a questa GridMap per usare le sue mesh." #: modules/mono/csharp_script.cpp msgid "Class name can't be a reserved keyword" @@ -11152,6 +11173,11 @@ msgid "Add Function" msgstr "Aggiungi Funzione" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Delete input port" +msgstr "Rimuovi porta input" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "Aggiungi Variabile" @@ -11160,6 +11186,26 @@ msgid "Add Signal" msgstr "Aggiungi Segnale" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Input Port" +msgstr "Aggiungi porta di Input" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Output Port" +msgstr "Aggiungi porta di Output" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Input Port" +msgstr "Rimuovi porta input" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Output Port" +msgstr "Rimuovi porta output" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "Cambia Espressione" @@ -11204,10 +11250,20 @@ msgid "Add Preload Node" msgstr "Aggiungi Nodo Preload" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "Aggiungi Nodo(i) Da Albero" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "Aggiungi Proprietà Getter" @@ -11232,6 +11288,11 @@ msgid "Connect Nodes" msgstr "Connetti Nodi" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Disconnect Nodes" +msgstr "Disconnetti Nodi Grafico" + +#: modules/visual_script/visual_script_editor.cpp msgid "Connect Node Data" msgstr "Connetti Dati del Nodo" @@ -11264,6 +11325,28 @@ msgid "Paste VisualScript Nodes" msgstr "Incolla Nodi VisualScript" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Can't create function with a function node." +msgstr "Non è possibile copiare il nodo della funzione." + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Create Function" +msgstr "Rinomina Funzione" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "Rimuovi Funzione" @@ -11284,21 +11367,17 @@ msgid "Editing Signal:" msgstr "Modifica Segnale:" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Make Tool:" -msgstr "Rendi Locale" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "Tipo Base:" +msgstr "Crea Tool:" #: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "Membri:" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" -msgstr "Nodi Disponibili:" +#, fuzzy +msgid "function_name" +msgstr "Funzione:" #: modules/visual_script/visual_script_editor.cpp msgid "Select or create a function to edit its graph." @@ -11321,6 +11400,16 @@ msgid "Cut Nodes" msgstr "Taglia Nodi" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Make Function" +msgstr "Rinomina Funzione" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Refresh Graph" +msgstr "Aggiorna" + +#: modules/visual_script/visual_script_editor.cpp msgid "Edit Member" msgstr "Modifica Membro" @@ -11424,6 +11513,10 @@ msgid "The package must have at least one '.' separator." msgstr "Il pacchetto deve avere almeno un '.' separatore." #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "Seleziona il dispositivo dall'elenco" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "Eseguibile ADB non configurato nelle Impostazioni dell'Editor." @@ -11449,13 +11542,12 @@ msgstr "" "dell'editor non è valido." #: platform/android/export/export.cpp -#, fuzzy msgid "" "Android build template not installed in the project. Install it from the " "Project menu." msgstr "" -"Android Project non è installato per la compilazione. Installalo dal menu " -"Editor." +"Il template build di Android non è installato in questo progetto. Installalo " +"dal menu Progetto." #: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." @@ -11547,6 +11639,10 @@ msgid "Required icon is not specified in the preset." msgstr "L'icona richiesta non è specificata nel preset." #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "Esegui nel Browser" @@ -12225,10 +12321,6 @@ msgstr "" "Control, in modo che possa ottenere una dimensione. Altrimenti, renderlo un " "RenderTarget e assegnare alla sua texture interna qualche nodo da mostrare." -#: scene/resources/visual_shader.cpp -msgid "Input" -msgstr "Ingresso" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for preview." msgstr "Fonte non valida per l'anteprima." @@ -12257,6 +12349,27 @@ msgstr "Varyings può essere assegnato soltanto nella funzione del vertice." msgid "Constants cannot be modified." msgstr "Le constanti non possono essere modificate." +#~ msgid "Snap to Grid" +#~ msgstr "Snap alla griglia" + +#~ msgid "Add input +" +#~ msgstr "Aggiungi Input +" + +#~ msgid "Language" +#~ msgstr "Linguaggio" + +#~ msgid "Inherits" +#~ msgstr "Eredita" + +#~ msgid "Base Type:" +#~ msgstr "Tipo Base:" + +#~ msgid "Available Nodes:" +#~ msgstr "Nodi Disponibili:" + +#~ msgid "Input" +#~ msgstr "Ingresso" + #~ msgid "Properties:" #~ msgstr "Proprietà :" @@ -12477,9 +12590,6 @@ msgstr "Le constanti non possono essere modificate." #~ msgid "Go to parent folder" #~ msgstr "Va' alla cartella superiore" -#~ msgid "Select device from the list" -#~ msgstr "Seleziona il dispositivo dall'elenco" - #~ msgid "Open Scene(s)" #~ msgstr "Apri Scena/e" @@ -12719,9 +12829,6 @@ msgstr "Le constanti non possono essere modificate." #~ msgid "Warning" #~ msgstr "Avvertimento" -#~ msgid "Function:" -#~ msgstr "Funzione:" - #~ msgid "Variable" #~ msgstr "Valiabile" @@ -12789,9 +12896,6 @@ msgstr "Le constanti non possono essere modificate." #~ msgid "Connect Graph Nodes" #~ msgstr "Connetti Nodi Grafico" -#~ msgid "Disconnect Graph Nodes" -#~ msgstr "Disconnetti Nodi Grafico" - #~ msgid "Remove Shader Graph Node" #~ msgstr "Rimuovi Nodo Grafico di Shader" @@ -13934,9 +14038,6 @@ msgstr "Le constanti non possono essere modificate." #~ msgid "Group" #~ msgstr "Gruppo" -#~ msgid "Samples" -#~ msgstr "Samples" - #~ msgid "Sample Conversion Mode: (.wav files):" #~ msgstr "Modalità Conversione Sample (file .wav):" diff --git a/editor/translations/ja.po b/editor/translations/ja.po index 18e99b4730..319458d634 100644 --- a/editor/translations/ja.po +++ b/editor/translations/ja.po @@ -27,12 +27,13 @@ # Sodium11 <Sodium11.for.gitserver@gmail.com>, 2019. # leela <53352@protonmail.com>, 2019. # Tarou Yamada <mizuningyou@yahoo.co.jp>, 2019. +# kazuma kondo <kazmax7@gmail.com>, 2019. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-09-26 11:50+0000\n" -"Last-Translator: Tarou Yamada <mizuningyou@yahoo.co.jp>\n" +"PO-Revision-Date: 2019-10-29 12:49+0000\n" +"Last-Translator: kazuma kondo <kazmax7@gmail.com>\n" "Language-Team: Japanese <https://hosted.weblate.org/projects/godot-engine/" "godot/ja/>\n" "Language: ja\n" @@ -40,7 +41,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 3.9-dev\n" +"X-Generator: Weblate 3.9.1\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -83,32 +84,31 @@ msgstr "'%s' ã¸ã®å‘¼ã³å‡ºã—:" #: core/ustring.cpp msgid "B" -msgstr "" +msgstr "\\ B" #: core/ustring.cpp msgid "KiB" -msgstr "" +msgstr "\\ KiB" #: core/ustring.cpp -#, fuzzy msgid "MiB" -msgstr "ミックス" +msgstr "\\ MiB" #: core/ustring.cpp msgid "GiB" -msgstr "" +msgstr "\\ GiB" #: core/ustring.cpp msgid "TiB" -msgstr "" +msgstr "\\ TiB" #: core/ustring.cpp msgid "PiB" -msgstr "" +msgstr "\\ PiB" #: core/ustring.cpp msgid "EiB" -msgstr "" +msgstr "\\ EiB" #: editor/animation_bezier_editor.cpp msgid "Free" @@ -179,29 +179,24 @@ msgid "Anim Change Call" msgstr "アニメーション呼出ã—ã®å¤‰æ›´" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Anim Multi Change Keyframe Time" -msgstr "アニメーションã‚ーフレームã®æ™‚間を変更" +msgstr "アニメーションã‚ーフレームã®æ™‚間を複数変更" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Anim Multi Change Transition" -msgstr "アニメーションã®ãƒˆãƒ©ãƒ³ã‚¸ã‚·ãƒ§ãƒ³ã‚’変更" +msgstr "アニメーションã®ãƒˆãƒ©ãƒ³ã‚¸ã‚·ãƒ§ãƒ³ã‚’複数変更" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Anim Multi Change Transform" -msgstr "アニメーションã®ãƒˆãƒ©ãƒ³ã‚¹ãƒ•ã‚©ãƒ¼ãƒ を変更" +msgstr "アニメーションã®ãƒˆãƒ©ãƒ³ã‚¹ãƒ•ã‚©ãƒ¼ãƒ を複数変更" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Anim Multi Change Keyframe Value" -msgstr "アニメーションã‚ーフレームã®å€¤ã‚’変更" +msgstr "アニメーションã‚ーフレームã®å€¤ã‚’複数変更" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Anim Multi Change Call" -msgstr "アニメーション呼出ã—ã®å¤‰æ›´" +msgstr "アニメーション呼出ã—を複数変更" #: editor/animation_track_editor.cpp msgid "Change Animation Length" @@ -356,9 +351,8 @@ msgid "Change Animation Interpolation Mode" msgstr "アニメーション補間モードã®å¤‰æ›´" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Change Animation Loop Mode" -msgstr "アニメーションã®ãƒ«ãƒ¼ãƒ—を変更" +msgstr "アニメーションã®ãƒ«ãƒ¼ãƒ—モードを変更" #: editor/animation_track_editor.cpp msgid "Remove Anim Track" @@ -380,6 +374,7 @@ msgstr "%d æ–°è¦ãƒˆãƒ©ãƒƒã‚¯ã‚’作æˆã—ã€ã‚ーを挿入ã—ã¾ã™ã‹ï¼Ÿ" #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "作æˆ" @@ -406,14 +401,12 @@ msgid "Anim Insert Key" msgstr "アニメーションã‚ーを挿入" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Change Animation Step" -msgstr "アニメーションã®FPSを変更" +msgstr "アニメーションã®ã‚¹ãƒ†ãƒƒãƒ—を変更" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Rearrange Tracks" -msgstr "自動èªè¾¼ã¿ã®ä¸¦ã¹æ›¿ãˆ" +msgstr "トラックã®ä¸¦ã¹æ›¿ãˆ" #: editor/animation_track_editor.cpp msgid "Transform tracks only apply to Spatial-based nodes." @@ -526,20 +519,11 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "è¦å‘Š:インãƒãƒ¼ãƒˆã—ãŸã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³ã‚’編集ã—ã¦ã„ã¾ã™" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "ã™ã¹ã¦é¸æŠž" - #: editor/animation_track_editor.cpp -msgid "Select None" -msgstr "é¸æŠžè§£é™¤" - -#: editor/animation_track_editor.cpp -#, fuzzy msgid "Select an AnimationPlayer node to create and edit animations." msgstr "" -"アニメーションをå«ã‚“ã AnimationPlayer ノードã¸ã®ãƒ‘スãŒè¨å®šã•ã‚Œã¦ã„ã¾ã›ã‚“。" +"アニメーションを作ã£ã¦ç·¨é›†ã™ã‚‹ãŸã‚ã« AnimationPlayer ノードã¸ã®ãƒ‘スをé¸æŠžã—ã¦" +"下ã•ã„。" #: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." @@ -672,7 +656,8 @@ msgid "Scale Ratio:" msgstr "スケール比:" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" +#, fuzzy +msgid "Select Tracks to Copy" msgstr "コピーã™ã‚‹ãƒˆãƒ©ãƒƒã‚¯ã‚’é¸æŠž:" #: editor/animation_track_editor.cpp editor/editor_log.cpp @@ -684,6 +669,11 @@ msgstr "コピーã™ã‚‹ãƒˆãƒ©ãƒƒã‚¯ã‚’é¸æŠž:" msgid "Copy" msgstr "コピー" +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Select All/None" +msgstr "é¸æŠžè§£é™¤" + #: editor/animation_track_editor_plugins.cpp msgid "Add Audio Track Clip" msgstr "オーディオトラッククリップã®è¿½åŠ " @@ -721,12 +711,10 @@ msgid "Replaced %d occurrence(s)." msgstr "%d 箇所を置æ›ã—ã¾ã—ãŸã€‚" #: editor/code_editor.cpp editor/editor_help.cpp -#, fuzzy msgid "%d match." msgstr "ï¼…d件ã®ä¸€è‡´ãŒè¦‹ã¤ã‹ã‚Šã¾ã—ãŸã€‚" #: editor/code_editor.cpp editor/editor_help.cpp -#, fuzzy msgid "%d matches." msgstr "ï¼…d件ã®ä¸€è‡´ãŒè¦‹ã¤ã‹ã‚Šã¾ã—ãŸã€‚" @@ -1008,7 +996,7 @@ msgid "Resource" msgstr "リソース" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "パス" @@ -1180,7 +1168,6 @@ msgid "License" msgstr "ライセンス" #: editor/editor_about.cpp -#, fuzzy msgid "Third-party Licenses" msgstr "サードパーティーライセンス" @@ -1210,9 +1197,8 @@ msgid "Licenses" msgstr "ライセンス" #: editor/editor_asset_installer.cpp editor/project_manager.cpp -#, fuzzy msgid "Error opening package file, not in ZIP format." -msgstr "パッケージファイルを開ã‘ã¾ã›ã‚“ã§ã—ãŸã€‚zip å½¢å¼ã§ã¯ã‚ã‚Šã¾ã›ã‚“。" +msgstr "パッケージファイルを開ã‘ã¾ã›ã‚“ã§ã—ãŸã€zip å½¢å¼ã§ã¯ã‚ã‚Šã¾ã›ã‚“。" #: editor/editor_asset_installer.cpp msgid "Uncompressing Assets" @@ -1473,7 +1459,8 @@ msgstr "自動èªè¾¼ã¿ã‚’è¿½åŠ " #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "パス:" @@ -1527,7 +1514,7 @@ msgstr "フォルダーを作æˆ" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "åå‰:" @@ -1550,7 +1537,7 @@ msgstr "エクスãƒãƒ¼ãƒˆ テンプレートãŒäºˆæƒ³ã•ã‚ŒãŸãƒ‘スã«è¦‹ã¤ã #: editor/editor_export.cpp msgid "Packing" -msgstr "パックã™ã‚‹" +msgstr "パックä¸" #: editor/editor_export.cpp msgid "" @@ -1924,6 +1911,7 @@ msgid "Class:" msgstr "クラス:" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "継承元:" @@ -1965,9 +1953,8 @@ msgid "Class Description" msgstr "クラスã®èª¬æ˜Ž" #: editor/editor_help.cpp -#, fuzzy msgid "Online Tutorials" -msgstr "オンラインãƒãƒ¥ãƒ¼ãƒˆãƒªã‚¢ãƒ«:" +msgstr "オンラインãƒãƒ¥ãƒ¼ãƒˆãƒªã‚¢ãƒ«" #: editor/editor_help.cpp msgid "" @@ -2090,7 +2077,7 @@ msgstr "開始" #: editor/editor_network_profiler.cpp msgid "%s/s" -msgstr "" +msgstr "%s/s" #: editor/editor_network_profiler.cpp msgid "Down" @@ -2106,24 +2093,23 @@ msgstr "ノード" #: editor/editor_network_profiler.cpp msgid "Incoming RPC" -msgstr "" +msgstr "RPC入力" #: editor/editor_network_profiler.cpp msgid "Incoming RSET" -msgstr "" +msgstr "入力RSET" #: editor/editor_network_profiler.cpp msgid "Outgoing RPC" -msgstr "" +msgstr "出力RPC" #: editor/editor_network_profiler.cpp msgid "Outgoing RSET" -msgstr "" +msgstr "出力RSET" #: editor/editor_node.cpp editor/project_manager.cpp -#, fuzzy msgid "New Window" -msgstr "ウィンドウ" +msgstr "æ–°è¦ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦" #: editor/editor_node.cpp msgid "Project export failed with error code %d." @@ -2450,9 +2436,8 @@ msgid "Close Scene" msgstr "シーンを閉ã˜ã‚‹" #: editor/editor_node.cpp -#, fuzzy msgid "Reopen Closed Scene" -msgstr "シーンを閉ã˜ã‚‹" +msgstr "é–‰ã˜ãŸã‚·ãƒ¼ãƒ³ã‚’å†ã³é–‹ã" #: editor/editor_node.cpp msgid "Unable to enable addon plugin at: '%s' parsing of config failed." @@ -2569,9 +2554,8 @@ msgid "Close Tab" msgstr "タブを閉ã˜ã‚‹" #: editor/editor_node.cpp -#, fuzzy msgid "Undo Close Tab" -msgstr "タブを閉ã˜ã‚‹" +msgstr "é–‰ã˜ãŸã‚¿ãƒ–を戻ã™" #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp msgid "Close Other Tabs" @@ -2704,32 +2688,28 @@ msgid "Project" msgstr "プãƒã‚¸ã‚§ã‚¯ãƒˆ" #: editor/editor_node.cpp -#, fuzzy msgid "Project Settings..." -msgstr "プãƒã‚¸ã‚§ã‚¯ãƒˆè¨å®š" +msgstr "プãƒã‚¸ã‚§ã‚¯ãƒˆè¨å®š..." #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Version Control" -msgstr "ãƒãƒ¼ã‚¸ãƒ§ãƒ³:" +msgstr "ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚³ãƒ³ãƒˆãƒãƒ¼ãƒ«" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Set Up Version Control" -msgstr "" +msgstr "ãƒãƒ¼ã‚¸ãƒ§ãƒ³ç®¡ç†ã®ã‚»ãƒƒãƒˆã‚¢ãƒƒãƒ—" #: editor/editor_node.cpp msgid "Shut Down Version Control" -msgstr "" +msgstr "ãƒãƒ¼ã‚¸ãƒ§ãƒ³ç®¡ç†ã®çµ‚了" #: editor/editor_node.cpp -#, fuzzy msgid "Export..." -msgstr "エクスãƒãƒ¼ãƒˆ" +msgstr "エクスãƒãƒ¼ãƒˆ..." #: editor/editor_node.cpp -#, fuzzy msgid "Install Android Build Template..." -msgstr "Androidビルドテンプレートã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«" +msgstr "Androidビルドテンプレートã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«..." #: editor/editor_node.cpp msgid "Open Project Data Folder" @@ -2844,9 +2824,8 @@ msgid "Editor" msgstr "エディタ" #: editor/editor_node.cpp -#, fuzzy msgid "Editor Settings..." -msgstr "エディタè¨å®š" +msgstr "エディタè¨å®š..." #: editor/editor_node.cpp msgid "Editor Layout" @@ -2881,14 +2860,12 @@ msgid "Open Editor Settings Folder" msgstr "エディタè¨å®šã®ãƒ•ã‚©ãƒ«ãƒ€ã‚’é–‹ã" #: editor/editor_node.cpp -#, fuzzy msgid "Manage Editor Features..." -msgstr "エディタ機能ã®ç®¡ç†" +msgstr "エディタ機能ã®ç®¡ç†..." #: editor/editor_node.cpp -#, fuzzy msgid "Manage Export Templates..." -msgstr "エクスãƒãƒ¼ãƒˆãƒ†ãƒ³ãƒ—レートã®ç®¡ç†" +msgstr "エクスãƒãƒ¼ãƒˆãƒ†ãƒ³ãƒ—レートã®ç®¡ç†..." #: editor/editor_node.cpp editor/plugins/shader_editor_plugin.cpp msgid "Help" @@ -2997,7 +2974,7 @@ msgstr "インスペクタ" msgid "Expand Bottom Panel" msgstr "下パãƒãƒ«ã‚’展開" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "出力" @@ -3025,9 +3002,15 @@ msgid "" "the \"Use Custom Build\" option should be enabled in the Android export " "preset." msgstr "" +"ã“ã®æ“作㯠\"res://android/build\" ã«ã‚½ãƒ¼ã‚¹ãƒ†ãƒ³ãƒ—レートをインストールã—アンド" +"ãƒã‚¤ãƒ‰ã®ã‚«ã‚¹ã‚¿ãƒ ビルドをè¨å®šã—ã¾ã™ã€‚\n" +"後ã‹ã‚‰è¨å®šã«å¤‰æ›´ã‚’åŠ ãˆãŸã‚Šã€ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆæ™‚ã«ã‚«ã‚¹ã‚¿ãƒ APKをビルドã§ãã¾ã™ã€‚(モ" +"ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’è¿½åŠ ã™ã‚‹ã€AndroidManifest.xmlを変更ã™ã‚‹ç‰)\n" +"APKビルドã®åˆæœŸè¨å®šã®ä»£ã‚ã‚Šã«ã‚«ã‚¹ã‚¿ãƒ ビルドè¨å®šã‚’使ã†ãŸã‚ã«ã¯ã€ã‚¢ãƒ³ãƒ‰ãƒã‚¤ãƒ‰ã®" +"エクスãƒãƒ¼ãƒˆè¨å®šã®ã€Œã‚«ã‚¹ã‚¿ãƒ ビルドを使用ã™ã‚‹ã€ã®ã‚ªãƒ—ションãŒæœ‰åŠ¹åŒ–ã•ã‚Œã¦ã„ã‚‹" +"å¿…è¦ãŒã‚ã‚‹ã“ã¨ã«æ³¨æ„ã—ã¦ãã ã•ã„。" #: editor/editor_node.cpp -#, fuzzy msgid "" "The Android build template is already installed in this project and it won't " "be overwritten.\n" @@ -3035,7 +3018,8 @@ msgid "" "operation again." msgstr "" "Androidビルドテンプレートã¯ã™ã§ã«ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•ã‚Œã¦ãŠã‚Šã€ä¸Šæ›¸ãã•ã‚Œã¾ã›ã‚“。\n" -"ã“ã®æ“作をå†è©¦è¡Œã™ã‚‹å‰ã«ã€ \"build\"ディレクトリを手動ã§å‰Šé™¤ã—ã¦ãã ã•ã„。" +"ã“ã®æ“作をå†è©¦è¡Œã™ã‚‹å‰ã«ã€ \"res://android/build\" ディレクトリを手動ã§å‰Šé™¤ã—" +"ã¦ãã ã•ã„。" #: editor/editor_node.cpp msgid "Import Templates From ZIP File" @@ -3111,9 +3095,8 @@ msgid "Thumbnail..." msgstr "サムãƒã‚¤ãƒ«..." #: editor/editor_plugin_settings.cpp -#, fuzzy msgid "Main Script:" -msgstr "スクリプトを開ã:" +msgstr "メインスクリプト:" #: editor/editor_plugin_settings.cpp msgid "Edit Plugin" @@ -3248,6 +3231,10 @@ msgstr "ビューãƒãƒ¼ãƒˆã‚’é¸ã¶" msgid "New Script" msgstr "æ–°è¦ã‚¹ã‚¯ãƒªãƒ—ト" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +msgid "Extend Script" +msgstr "スクリプトを拡張" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "æ–°è¦ %s" @@ -3274,13 +3261,6 @@ msgstr "貼り付ã‘" msgid "Convert To %s" msgstr "%s ã«å¤‰æ›" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Open Editor" -msgstr "エディタã§é–‹ã" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "é¸æŠžã—ãŸãƒŽãƒ¼ãƒ‰ã¯ãƒ“ューãƒãƒ¼ãƒˆã§ã¯ã‚ã‚Šã¾ã›ã‚“ï¼" @@ -3359,7 +3339,6 @@ msgid "Import From Node:" msgstr "ノードã‹ã‚‰ã‚¤ãƒ³ãƒãƒ¼ãƒˆ:" #: editor/export_template_manager.cpp -#, fuzzy msgid "Redownload" msgstr "å†ãƒ€ã‚¦ãƒ³ãƒãƒ¼ãƒ‰" @@ -3378,7 +3357,7 @@ msgstr "ダウンãƒãƒ¼ãƒ‰" #: editor/export_template_manager.cpp msgid "Official export templates aren't available for development builds." -msgstr "" +msgstr "å…¬å¼ã®æ›¸ã出ã—テンプレートã¯é–‹ç™ºç”¨ãƒ“ルドã®å ´åˆã¯ä½¿ç”¨ã§ãã¾ã›ã‚“。" #: editor/export_template_manager.cpp msgid "(Missing)" @@ -3461,9 +3440,8 @@ msgid "Download Complete." msgstr "ダウンãƒãƒ¼ãƒ‰ãŒå®Œäº†ã—ã¾ã—ãŸã€‚" #: editor/export_template_manager.cpp -#, fuzzy msgid "Cannot remove temporary file:" -msgstr "ファイルã«ãƒ†ãƒ¼ãƒžã‚’ä¿å˜ã§ãã¾ã›ã‚“:" +msgstr "一時ファイルを削除ã§ãã¾ã›ã‚“:" #: editor/export_template_manager.cpp #, fuzzy @@ -3475,9 +3453,8 @@ msgstr "" "'%s' ã«ã‚ã‚Šã¾ã™ã€‚" #: editor/export_template_manager.cpp -#, fuzzy msgid "Error requesting URL:" -msgstr "URL リクエストã®ã‚¨ãƒ©ãƒ¼: " +msgstr "URL リクエストã®ã‚¨ãƒ©ãƒ¼:" #: editor/export_template_manager.cpp msgid "Connecting to Mirror..." @@ -3664,9 +3641,8 @@ msgid "Move To..." msgstr "移動..." #: editor/filesystem_dock.cpp -#, fuzzy msgid "New Scene..." -msgstr "æ–°è¦ã‚·ãƒ¼ãƒ³" +msgstr "æ–°è¦ã‚·ãƒ¼ãƒ³..." #: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp msgid "New Script..." @@ -3735,9 +3711,8 @@ msgid "Overwrite" msgstr "上書ã" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Create Scene" -msgstr "シーンã‹ã‚‰ç”Ÿæˆ" +msgstr "シーンを生æˆ" #: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp msgid "Create Script" @@ -3816,23 +3791,20 @@ msgid "Invalid group name." msgstr "無効ãªã‚°ãƒ«ãƒ¼ãƒ—åã§ã™ã€‚" #: editor/groups_editor.cpp -#, fuzzy msgid "Rename Group" -msgstr "グループã®ç®¡ç†" +msgstr "グループã®åå‰å¤‰æ›´" #: editor/groups_editor.cpp -#, fuzzy msgid "Delete Group" -msgstr "レイアウトã®å‰Šé™¤" +msgstr "グループã®å‰Šé™¤" #: editor/groups_editor.cpp editor/node_dock.cpp msgid "Groups" msgstr "グループ" #: editor/groups_editor.cpp -#, fuzzy msgid "Nodes Not in Group" -msgstr "グループã«ãªã„ノード" +msgstr "グループãŒãƒŽãƒ¼ãƒ‰ã‚ã‚Šã¾ã›ã‚“" #: editor/groups_editor.cpp editor/scene_tree_dock.cpp #: editor/scene_tree_editor.cpp @@ -3845,12 +3817,11 @@ msgstr "グループ内ノード" #: editor/groups_editor.cpp msgid "Empty groups will be automatically removed." -msgstr "" +msgstr "空ã®ã‚°ãƒ«ãƒ¼ãƒ—ã¯è‡ªå‹•çš„ã«å‰Šé™¤ã•ã‚Œã¾ã™ã€‚" #: editor/groups_editor.cpp -#, fuzzy msgid "Group Editor" -msgstr "スクリプトエディタ" +msgstr "グループエディタ" #: editor/groups_editor.cpp msgid "Manage Groups" @@ -4059,9 +4030,8 @@ msgid "MultiNode Set" msgstr "マルãƒãƒŽãƒ¼ãƒ‰ セット" #: editor/node_dock.cpp -#, fuzzy msgid "Select a single node to edit its signals and groups." -msgstr "シグナルã¨ã‚°ãƒ«ãƒ¼ãƒ—を編集ã™ã‚‹ãƒŽãƒ¼ãƒ‰ã‚’é¸æŠžã€‚" +msgstr "ノードを1ã¤é¸æŠžã—ã¦ã‚·ã‚°ãƒŠãƒ«ã¨ã‚°ãƒ«ãƒ¼ãƒ—を編集ã—ã¾ã™ã€‚" #: editor/plugin_config_dialog.cpp msgid "Edit a Plugin" @@ -4079,7 +4049,7 @@ msgstr "プラグインå:" msgid "Subfolder:" msgstr "サブフォルダ:" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "言語:" @@ -4220,6 +4190,12 @@ msgstr "点" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Open Editor" +msgstr "エディタã§é–‹ã" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp msgid "Open Animation Node" msgstr "アニメーションノードを開ã" @@ -4297,9 +4273,8 @@ msgstr "BlendTreeã«ãƒŽãƒ¼ãƒ‰ã‚’è¿½åŠ " #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Node Moved" -msgstr "è¿½åŠ ã—ãŸã‚ーを移動" +msgstr "ノードを移動" #: editor/plugins/animation_blend_tree_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." @@ -4307,15 +4282,13 @@ msgstr "接続ã§ãã¾ã›ã‚“。ãƒãƒ¼ãƒˆãŒä½¿ç”¨ä¸ã‹ã€æŽ¥ç¶šãŒç„¡åŠ¹ã§ã‚ #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Nodes Connected" -msgstr "接続ã—ã¾ã—ãŸ" +msgstr "ノードを接続ã—ã¾ã—ãŸ" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Nodes Disconnected" -msgstr "切æ–ã•ã‚Œã¾ã—ãŸ" +msgstr "ノードãŒåˆ‡æ–ã•ã‚Œã¾ã—ãŸ" #: editor/plugins/animation_blend_tree_editor_plugin.cpp msgid "Set Animation" @@ -4568,7 +4541,6 @@ msgstr "アニメーションå:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "エラーï¼" @@ -4741,6 +4713,8 @@ msgid "Current:" msgstr "ç¾åœ¨:" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "å…¥åŠ›ã‚’è¿½åŠ " @@ -4841,7 +4815,6 @@ msgid "Request failed, return code:" msgstr "リクエスト失敗。リターンコード:" #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Request failed." msgstr "リクエストã¯å¤±æ•—ã—ã¾ã—ãŸã€‚" @@ -4852,7 +4825,7 @@ msgstr "ファイルã«ãƒ†ãƒ¼ãƒžã‚’ä¿å˜ã§ãã¾ã›ã‚“:" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Write error." -msgstr "" +msgstr "エラーを書ã„ã¦ãã ã•ã„。" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, too many redirects" @@ -4864,14 +4837,12 @@ msgid "Redirect loop." msgstr "リダイレクトã®ãƒ«ãƒ¼ãƒ—。" #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Request failed, timeout" -msgstr "リクエスト失敗。リターンコード:" +msgstr "リクエスト失敗ã€æ™‚間切れ" #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Timeout." -msgstr "時間" +msgstr "時間切れ。" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Bad download hash, assuming file has been tampered with." @@ -4951,14 +4922,16 @@ msgid "All" msgstr "ã™ã¹ã¦" #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp msgid "Import..." -msgstr "å†ã‚¤ãƒ³ãƒãƒ¼ãƒˆ..." +msgstr "インãƒãƒ¼ãƒˆ..." #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Plugins..." -msgstr "プラグイン" +msgstr "プラグイン..." #: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" @@ -4974,9 +4947,8 @@ msgid "Site:" msgstr "サイト:" #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Support" -msgstr "サãƒãƒ¼ãƒˆ..." +msgstr "サãƒãƒ¼ãƒˆ" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Official" @@ -4987,9 +4959,8 @@ msgid "Testing" msgstr "テストä¸" #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Loading..." -msgstr "èªã¿è¾¼ã‚€.." +msgstr "èªã¿è¾¼ã¿ä¸..." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Assets ZIP File" @@ -5249,21 +5220,28 @@ msgid "Ruler Mode" msgstr "実行モード:" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Toggle snapping." +#, fuzzy +msgid "Toggle smart snapping." msgstr "スナッピングを切り替ãˆã‚‹ã€‚" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +#, fuzzy +msgid "Use Smart Snap" msgstr "スナップを使ã†" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snapping Options" -msgstr "スナッピングオプション" +#, fuzzy +msgid "Toggle grid snapping." +msgstr "スナッピングを切り替ãˆã‚‹ã€‚" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to Grid" -msgstr "グリッドã«ã‚¹ãƒŠãƒƒãƒ—" +#, fuzzy +msgid "Use Grid Snap" +msgstr "グリッドスナップ" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snapping Options" +msgstr "スナッピングオプション" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Rotation Snap" @@ -5352,8 +5330,8 @@ msgid "View" msgstr "ビュー" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +#, fuzzy +msgid "Always Show Grid" msgstr "グリッドを表示" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5501,7 +5479,6 @@ msgstr "ãƒãƒ³ãƒ‰ãƒ«ã‚’è¨å®šã™ã‚‹" #: editor/plugins/cpu_particles_2d_editor_plugin.cpp #: editor/plugins/particles_2d_editor_plugin.cpp -#, fuzzy msgid "Load Emission Mask" msgstr "発光(Emission)マスクをèªã¿è¾¼ã‚€" @@ -5514,7 +5491,6 @@ msgstr "å†èµ·å‹•" #: editor/plugins/cpu_particles_2d_editor_plugin.cpp #: editor/plugins/particles_2d_editor_plugin.cpp -#, fuzzy msgid "Clear Emission Mask" msgstr "発光(Emission)マスクをクリア" @@ -5625,6 +5601,11 @@ msgstr "直線曲線を切り替ãˆã‚‹" msgid "Hold Shift to edit tangents individually" msgstr "接線を個別ã«ç·¨é›†ã™ã‚‹ã«ã¯ã‚·ãƒ•ãƒˆã‚’押ã™" +#: editor/plugins/curve_editor_plugin.cpp +#, fuzzy +msgid "Right click to add point" +msgstr "å³ã‚¯ãƒªãƒƒã‚¯: 点を削除" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "ã‚°ãƒãƒ¼ãƒãƒ«ã‚¤ãƒ«ãƒŸãƒãƒ¼ã‚·ãƒ§ãƒ³ã®äº‹å‰è¨ˆç®—" @@ -5655,7 +5636,7 @@ msgstr "メッシュãŒã‚ã‚Šã¾ã›ã‚“!" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Static Trimesh Body" -msgstr "スタティック(ä¸å¤‰ï¼‰ä¸‰è§’形メッシュ ボディを作æˆ" +msgstr "é™çš„三角形メッシュ ボディを作æˆ" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Static Convex Body" @@ -5666,9 +5647,8 @@ msgid "This doesn't work on scene root!" msgstr "シーンã®ãƒ«ãƒ¼ãƒˆã§ã¯ç„¡åŠ¹ã§ã™!" #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Create Trimesh Static Shape" -msgstr "三角形メッシュ ã®ã‚·ã‚§ã‚¤ãƒ—を生æˆ" +msgstr "é™çš„三角形メッシュ シェイプを生æˆ" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Failed creating shapes!" @@ -5788,11 +5768,10 @@ msgstr "" "ん)。" #: editor/plugins/multimesh_editor_plugin.cpp -#, fuzzy msgid "No mesh source specified (and MultiMesh contains no Mesh)." msgstr "" -"メッシュã®ã‚½ãƒ¼ã‚¹ãŒæŒ‡å®šã•ã‚Œã¦ã„ã¾ã›ã‚“(ãã—ã¦MultiMesh set内ã«ã¯ã¯ãƒ¡ãƒƒã‚·ãƒ¥ãŒå˜" -"在ã—ã¾ã›ã‚“)." +"メッシュã®ã‚½ãƒ¼ã‚¹ãŒæŒ‡å®šã•ã‚Œã¦ã„ã¾ã›ã‚“(ãã—ã¦MultiMeshã«ã¯ãƒ¡ãƒƒã‚·ãƒ¥ãŒå«ã¾ã‚Œã¦ã„" +"ã¾ã›ã‚“)。" #: editor/plugins/multimesh_editor_plugin.cpp msgid "Mesh source is invalid (invalid path)." @@ -5831,9 +5810,8 @@ msgid "Select a Target Surface:" msgstr "ターゲットサーフェスをé¸æŠž:" #: editor/plugins/multimesh_editor_plugin.cpp -#, fuzzy msgid "Populate Surface" -msgstr "サーフェスã«åˆæœŸå€¤ã‚’è¨å®š" +msgstr "サーフェスを満ãŸã™" #: editor/plugins/multimesh_editor_plugin.cpp msgid "Populate MultiMesh" @@ -5860,9 +5838,8 @@ msgid "Z-Axis" msgstr "Z軸" #: editor/plugins/multimesh_editor_plugin.cpp -#, fuzzy msgid "Mesh Up Axis:" -msgstr "メッシュã®ã‚¢ãƒƒãƒ—軸:" +msgstr "メッシュã®ä¸Šè»¸:" #: editor/plugins/multimesh_editor_plugin.cpp msgid "Random Rotation:" @@ -5877,9 +5854,8 @@ msgid "Random Scale:" msgstr "ランダムãªç¸®å°º:" #: editor/plugins/multimesh_editor_plugin.cpp -#, fuzzy msgid "Populate" -msgstr "åˆæœŸå€¤ã‚’è¨å®š" +msgstr "データã®æŠ•å…¥" #: editor/plugins/navigation_polygon_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp @@ -5892,12 +5868,10 @@ msgid "Convert to CPUParticles" msgstr "CPUパーティクルã«å¤‰æ›" #: editor/plugins/particles_2d_editor_plugin.cpp -#, fuzzy msgid "Generating Visibility Rect" -msgstr "å¯è¦–性ã®çŸ©å½¢ã‚’生æˆ" +msgstr "矩形ã®å¯è¦–性を生æˆä¸" #: editor/plugins/particles_2d_editor_plugin.cpp -#, fuzzy msgid "Generate Visibility Rect" msgstr "å¯è¦–性ã®çŸ©å½¢ã‚’生æˆ" @@ -5912,7 +5886,7 @@ msgstr "生æˆæ™‚é–“ (秒):" #: editor/plugins/particles_editor_plugin.cpp msgid "The geometry's faces don't contain any area." -msgstr "" +msgstr "ジオメトリã®é¢ã¯é¢ç©ã‚’æŒã¡ã¾ã›ã‚“。" #: editor/plugins/particles_editor_plugin.cpp #, fuzzy @@ -5921,22 +5895,19 @@ msgstr "ノードã¯ã‚¸ã‚ªãƒ¡ãƒˆãƒªãƒ¼ (é¢) ã‚’å«ã‚“ã§ã„ã¾ã›ã‚“。" #: editor/plugins/particles_editor_plugin.cpp msgid "\"%s\" doesn't inherit from Spatial." -msgstr "" +msgstr "\"%s\" ã¯Spatialを継承ã—ã¦ã„ã¾ã›ã‚“。" #: editor/plugins/particles_editor_plugin.cpp -#, fuzzy msgid "\"%s\" doesn't contain geometry." -msgstr "ノードã¯ã‚¸ã‚ªãƒ¡ãƒˆãƒªãƒ¼ã‚’å«ã‚“ã§ã„ã¾ã›ã‚“。" +msgstr "\"%s\" ã¯ã‚¸ã‚ªãƒ¡ãƒˆãƒªãƒ¼ã‚’å«ã‚“ã§ã„ã¾ã›ã‚“。" #: editor/plugins/particles_editor_plugin.cpp -#, fuzzy msgid "\"%s\" doesn't contain face geometry." -msgstr "ノードã¯ã‚¸ã‚ªãƒ¡ãƒˆãƒªãƒ¼ã‚’å«ã‚“ã§ã„ã¾ã›ã‚“。" +msgstr "\"%s\" ã¯ãƒ•ã‚§ã‚¤ã‚¹ã‚¸ã‚ªãƒ¡ãƒˆãƒªãƒ¼ã‚’å«ã‚“ã§ã„ã¾ã›ã‚“。" #: editor/plugins/particles_editor_plugin.cpp -#, fuzzy msgid "Create Emitter" -msgstr "発光物を生æˆ" +msgstr "放出器を作æˆ" #: editor/plugins/particles_editor_plugin.cpp msgid "Emission Points:" @@ -5955,9 +5926,8 @@ msgid "Volume" msgstr "ボリューム" #: editor/plugins/particles_editor_plugin.cpp -#, fuzzy msgid "Emission Source: " -msgstr "発光æº: " +msgstr "放出æº: " #: editor/plugins/particles_editor_plugin.cpp msgid "A processor material of type 'ParticlesMaterial' is required." @@ -5968,9 +5938,8 @@ msgid "Generating AABB" msgstr "AABBを生æˆä¸" #: editor/plugins/particles_editor_plugin.cpp -#, fuzzy msgid "Generate Visibility AABB" -msgstr "å¯è¦–性ã®è»¸å¹³è¡Œå¢ƒç•Œãƒœãƒƒã‚¯ã‚¹ã‚’生æˆ" +msgstr "軸平行境界ボックスã®å¯è¦–性を生æˆã™ã‚‹" #: editor/plugins/particles_editor_plugin.cpp msgid "Generate AABB" @@ -6278,6 +6247,10 @@ msgid "Grid" msgstr "グリッド" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "グリッドを表示" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Configure Grid:" msgstr "グリッドã®è¨å®š:" @@ -6334,6 +6307,7 @@ msgstr "インスタンス:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "åž‹:" @@ -6371,9 +6345,8 @@ msgid "Error writing TextFile:" msgstr "テã‚ストファイルã®æ›¸ãè¾¼ã¿ã‚¨ãƒ©ãƒ¼:" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Could not load file at:" -msgstr "タイルãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ:" +msgstr "ファイルãŒèªã¿è¾¼ã‚ã¾ã›ã‚“ã§ã—ãŸ:" #: editor/plugins/script_editor_plugin.cpp msgid "Error saving file!" @@ -6396,7 +6369,6 @@ msgid "Error Importing" msgstr "インãƒãƒ¼ãƒˆä¸ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "New Text File..." msgstr "æ–°è¦ãƒ†ã‚ストファイル..." @@ -6434,6 +6406,11 @@ msgid "Find Next" msgstr "次を検索" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "å‰ã‚’検索" + +#: editor/plugins/script_editor_plugin.cpp msgid "Filter scripts" msgstr "フィルタスクリプト" @@ -6478,9 +6455,8 @@ msgid "Open..." msgstr "é–‹ã..." #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Reopen Closed Script" -msgstr "スクリプトを開ã" +msgstr "é–‰ã˜ãŸã‚¹ã‚¯ãƒªãƒ—トをå†ã³é–‹ã" #: editor/plugins/script_editor_plugin.cpp msgid "Save All" @@ -6562,7 +6538,7 @@ msgstr "外部エディタã§ãƒ‡ãƒãƒƒã‚°" #: editor/plugins/script_editor_plugin.cpp msgid "Open Godot online documentation." -msgstr "Godotã®ã‚ªãƒ³ãƒ©ã‚¤ãƒ³ãƒ‰ã‚ュメントを開ã" +msgstr "Godotã®ã‚ªãƒ³ãƒ©ã‚¤ãƒ³ãƒ‰ã‚ュメントを開ã。" #: editor/plugins/script_editor_plugin.cpp msgid "Request Docs" @@ -6690,7 +6666,7 @@ msgstr "シンタックスãƒã‚¤ãƒ©ã‚¤ãƒˆ" #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp msgid "Go To" -msgstr "" +msgstr "å‚ç…§" #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp @@ -6706,6 +6682,11 @@ msgstr "ブレークãƒã‚¤ãƒ³ãƒˆ" msgid "Cut" msgstr "切りå–ã‚Š" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "ã™ã¹ã¦é¸æŠž" + #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "行を削除" @@ -6764,10 +6745,6 @@ msgid "Auto Indent" msgstr "自動インデント" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "å‰ã‚’検索" - -#: editor/plugins/script_text_editor.cpp msgid "Find in Files..." msgstr "複数ファイル内を検索..." @@ -6901,9 +6878,8 @@ msgid "Scaling: " msgstr "縮尺: " #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Translating: " -msgstr "翻訳:" +msgstr "ä½ç½®ã®å¤‰æ›´: " #: editor/plugins/spatial_editor_plugin.cpp msgid "Rotating %s degrees." @@ -7003,11 +6979,11 @@ msgstr "回転をビューã«åˆã‚ã›ã‚‹" #: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp msgid "No parent to instance a child at." -msgstr "åインスタンスを生æˆã™ã‚‹ãŸã‚ã®è¦ªãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" +msgstr "åインスタンスを生æˆã™ã‚‹ãŸã‚ã®è¦ªãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“。" #: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp msgid "This operation requires a single selected node." -msgstr "å˜ä¸€ã®é¸æŠžã•ã‚ŒãŸãƒŽãƒ¼ãƒ‰ãŒãªã„ã¨ã€ã“ã®æ“作ã¯è¡Œãˆã¾ã›ã‚“" +msgstr "å˜ä¸€ã®é¸æŠžã•ã‚ŒãŸãƒŽãƒ¼ãƒ‰ãŒãªã„ã¨ã€ã“ã®æ“作ã¯è¡Œãˆã¾ã›ã‚“。" #: editor/plugins/spatial_editor_plugin.cpp msgid "Lock View Rotation" @@ -7071,9 +7047,8 @@ msgid "Freelook Right" msgstr "フリールックå³" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Freelook Forward" -msgstr "フリールックå‰æ–¹" +msgstr "å‰æ–¹ã‚’フリールックã§è¦‹ã‚‹" #: editor/plugins/spatial_editor_plugin.cpp msgid "Freelook Backwards" @@ -7092,6 +7067,11 @@ msgid "Freelook Speed Modifier" msgstr "フリールックã®é€Ÿåº¦ã‚’調整" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Freelook Slow Modifier" +msgstr "フリールックã®é€Ÿåº¦ã‚’調整" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -7109,13 +7089,12 @@ msgid "XForm Dialog" msgstr "Xformダイアãƒã‚°" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Snap Nodes To Floor" -msgstr "Snapモード:" +msgstr "ノードを底é¢ã«ã‚¹ãƒŠãƒƒãƒ—ã•ã›ã‚‹" #: editor/plugins/spatial_editor_plugin.cpp msgid "Couldn't find a solid floor to snap the selection to." -msgstr "" +msgstr "é¸æŠžã‚’スナップã™ã‚‹å‰›ä½“ã®åºŠã‚’見ã¤ã‘ã‚Œã¾ã›ã‚“。" #: editor/plugins/spatial_editor_plugin.cpp msgid "" @@ -7133,6 +7112,10 @@ msgid "Use Local Space" msgstr "ãƒãƒ¼ã‚«ãƒ«ç©ºé–“モード (%s)" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "スナップを使ã†" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "下é¢å›³" @@ -7182,7 +7165,6 @@ msgid "Transform" msgstr "変形" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Snap Object to Floor" msgstr "オブジェクトを底é¢ã«ã‚¹ãƒŠãƒƒãƒ—" @@ -7228,9 +7210,8 @@ msgstr "ビューã®ã‚°ãƒªãƒƒãƒ‰" #: editor/plugins/spatial_editor_plugin.cpp #: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "Settings..." -msgstr "è¨å®š" +msgstr "è¨å®š..." #: editor/plugins/spatial_editor_plugin.cpp msgid "Snap Settings" @@ -7269,9 +7250,8 @@ msgid "Transform Change" msgstr "変æ›ã®å¤‰æ›´" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Translate:" -msgstr "移動(translate):" +msgstr "移動:" #: editor/plugins/spatial_editor_plugin.cpp msgid "Rotate (deg.):" @@ -7295,7 +7275,7 @@ msgstr "後" #: editor/plugins/spatial_editor_plugin.cpp msgid "Nameless gizmo" -msgstr "" +msgstr "ç„¡åã®ã‚®ã‚ºãƒ¢" #: editor/plugins/sprite_editor_plugin.cpp msgid "Create Mesh2D" @@ -7359,7 +7339,12 @@ msgstr "スプライト" #: editor/plugins/sprite_editor_plugin.cpp msgid "Simplification: " -msgstr "簡略化:" +msgstr "簡略化: " + +#: editor/plugins/sprite_editor_plugin.cpp +#, fuzzy +msgid "Shrink (Pixels): " +msgstr "拡大(ピクセル): " #: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " @@ -7410,9 +7395,8 @@ msgid "(empty)" msgstr "(空)" #: editor/plugins/sprite_frames_editor_plugin.cpp -#, fuzzy msgid "Move Frame" -msgstr "フレームを貼り付ã‘" +msgstr "フレームã®ç§»å‹•" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Animations:" @@ -7467,9 +7451,8 @@ msgid "Horizontal:" msgstr "æ°´å¹³:" #: editor/plugins/sprite_frames_editor_plugin.cpp -#, fuzzy msgid "Vertical:" -msgstr "é ‚ç‚¹" +msgstr "åž‚ç›´:" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Select/Clear All Frames" @@ -7502,12 +7485,11 @@ msgstr "None" #: editor/plugins/texture_region_editor_plugin.cpp msgid "Pixel Snap" -msgstr "ピクセルSnap" +msgstr "ピクセルスナップ" #: editor/plugins/texture_region_editor_plugin.cpp -#, fuzzy msgid "Grid Snap" -msgstr "グリッドSnap" +msgstr "グリッドスナップ" #: editor/plugins/texture_region_editor_plugin.cpp msgid "Auto Slice" @@ -7523,7 +7505,7 @@ msgstr "ステップ:" #: editor/plugins/texture_region_editor_plugin.cpp msgid "Sep.:" -msgstr "" +msgstr "分類:" #: editor/plugins/texture_region_editor_plugin.cpp msgid "TextureRegion" @@ -7609,29 +7591,27 @@ msgstr "ãƒã‚§ãƒƒã‚¯æ¸ˆã¿ã‚¢ã‚¤ãƒ†ãƒ " #: editor/plugins/theme_editor_plugin.cpp msgid "Named Sep." -msgstr "" +msgstr "åå‰ä»˜ã分類。" #: editor/plugins/theme_editor_plugin.cpp msgid "Submenu" msgstr "サブメニュー" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Subitem 1" -msgstr "アイテム1" +msgstr "サブアイテム1" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Subitem 2" -msgstr "アイテム2" +msgstr "サブアイテム2" #: editor/plugins/theme_editor_plugin.cpp msgid "Has" -msgstr "" +msgstr "å«ã‚“ã§ã„ã‚‹" #: editor/plugins/theme_editor_plugin.cpp msgid "Many" -msgstr "" +msgstr "多ãã®" #: editor/plugins/theme_editor_plugin.cpp msgid "Disabled LineEdit" @@ -7724,9 +7704,8 @@ msgid "Find Tile" msgstr "タイルを検索ã™ã‚‹" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Transpose" -msgstr "転置" +msgstr "行列(縦横)入れ替ãˆ" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Disable Autotile" @@ -7737,26 +7716,26 @@ msgid "Enable Priority" msgstr "å„ªå…ˆé †ä½ã‚’有効化" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Filter tiles" -msgstr "ファイルを絞り込む..." +msgstr "タイルを絞り込む" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Give a TileSet resource to this TileMap to use its tiles." msgstr "" +"タイルãƒãƒƒãƒ—を使ã†ã«ã¯ã“ã®ã‚¿ã‚¤ãƒ«ãƒžãƒƒãƒ—ã«ã‚¿ã‚¤ãƒ«ã‚»ãƒƒãƒˆãƒªã‚½ãƒ¼ã‚¹ã‚’è¨å®šã—ã¦ãã ã•" +"ã„。" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" msgstr "タイルを塗る" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "" "Shift+LMB: Line Draw\n" "Shift+Ctrl+LMB: Rectangle Paint" msgstr "" -"Shift+å³ãƒžã‚¦ã‚¹ãƒœã‚¿ãƒ³:ç·šã®æç”»\n" -"Shift+Ctrl+å³ãƒžã‚¦ã‚¹ãƒœã‚¿ãƒ³:矩形ペイント" +"Shift+左マウスボタン:ç·šã®æç”»\n" +"Shift+Ctrl+左マウスボタン:矩形ペイント" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Pick Tile" @@ -7784,11 +7763,11 @@ msgstr "変æ›ã‚’クリア" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Add Texture(s) to TileSet." -msgstr "テクスãƒãƒ£ã‚’タイルセットã«è¿½åŠ ã™ã‚‹" +msgstr "テクスãƒãƒ£ã‚’タイルセットã«è¿½åŠ ã™ã‚‹ã€‚" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Remove selected Texture from TileSet." -msgstr "é¸æŠžã—ãŸãƒ†ã‚¯ã‚¹ãƒãƒ£ã‚’タイルセットã‹ã‚‰å‰Šé™¤ã™ã‚‹" +msgstr "é¸æŠžã—ãŸãƒ†ã‚¯ã‚¹ãƒãƒ£ã‚’タイルセットã‹ã‚‰å‰Šé™¤ã™ã‚‹ã€‚" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Create from Scene" @@ -7819,9 +7798,8 @@ msgid "Region Mode" msgstr "é ˜åŸŸãƒ¢ãƒ¼ãƒ‰" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Collision Mode" -msgstr "補間モード" +msgstr "コリジョンモード" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Occlusion Mode" @@ -7857,12 +7835,11 @@ msgstr "ビットマスクを貼り付ã‘。" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Erase bitmask." -msgstr "ビットマスクを消去" +msgstr "ビットマスクを消去。" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Create a new rectangle." -msgstr "æ–°è¦ãƒŽãƒ¼ãƒ‰ã‚’作æˆã€‚" +msgstr "æ–°è¦çŸ©å½¢ã‚’作æˆã€‚" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Create a new polygon." @@ -7884,6 +7861,8 @@ msgstr "タイルåを表示 (Altã‚ーを長押ã—)" msgid "" "Add or select a texture on the left panel to edit the tiles bound to it." msgstr "" +"è¨å®šã•ã‚ŒãŸã‚¿ã‚¤ãƒ«ã‚’編集ã™ã‚‹ã«ã¯ã€å·¦ã®ãƒ‘ãƒãƒ«ã‹ã‚‰ãƒ†ã‚¯ã‚¹ãƒãƒ£ã‚’è¿½åŠ ã™ã‚‹ã‹ã€é¸æŠžã—" +"ã¦ãã ã•ã„。" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Remove selected texture? This will remove all tiles which use it." @@ -8076,53 +8055,47 @@ msgstr "åå‰ãŒä»˜ã„ã¦ã„ã¾ã›ã‚“" #: editor/plugins/version_control_editor_plugin.cpp msgid "No files added to stage" -msgstr "" +msgstr "ステージã«è¿½åŠ ã•ã‚Œã¦ã„るファイルãŒã‚ã‚Šã¾ã›ã‚“" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Commit" -msgstr "コミュニティ" +msgstr "委託" #: editor/plugins/version_control_editor_plugin.cpp msgid "VCS Addon is not initialized" -msgstr "" +msgstr "VCSアドオンã¯åˆæœŸåŒ–ã•ã‚Œã¦ã„ã¾ã›ã‚“" #: editor/plugins/version_control_editor_plugin.cpp msgid "Version Control System" -msgstr "" +msgstr "ãƒãƒ¼ã‚¸ãƒ§ãƒ³ç®¡ç†ã‚·ã‚¹ãƒ†ãƒ " #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Initialize" -msgstr "å˜èªžã®å…ˆé æ–‡å—を大文å—ã«" +msgstr "åˆæœŸåŒ–" #: editor/plugins/version_control_editor_plugin.cpp msgid "Staging area" -msgstr "" +msgstr "ステージングエリア" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Detect new changes" -msgstr "æ–°è¦ãƒŽãƒ¼ãƒ‰ã‚’作æˆã€‚" +msgstr "æ–°ã—ã„変更点を検出" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Changes" -msgstr "変更" +msgstr "変更点" #: editor/plugins/version_control_editor_plugin.cpp msgid "Modified" -msgstr "" +msgstr "変更ã•ã‚ŒãŸç®‡æ‰€" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Renamed" -msgstr "åå‰ã®å¤‰æ›´" +msgstr "åå‰ã®å¤‰æ›´ã•ã‚ŒãŸ" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Deleted" -msgstr "削除" +msgstr "削除ã•ã‚ŒãŸ" #: editor/plugins/version_control_editor_plugin.cpp #, fuzzy @@ -8130,18 +8103,16 @@ msgid "Typechange" msgstr "変更" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Stage Selected" -msgstr "é¸æŠžæ¸ˆã¿ã‚’削除" +msgstr "é¸æŠžã•ã‚ŒãŸã‚‚ã®ã‚’公開ã™ã‚‹" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Stage All" -msgstr "ã™ã¹ã¦ä¿å˜" +msgstr "ã™ã¹ã¦ã‚’公開ã™ã‚‹" #: editor/plugins/version_control_editor_plugin.cpp msgid "Add a commit message" -msgstr "" +msgstr "ã‚³ãƒŸãƒƒãƒˆãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’è¿½åŠ ã™ã‚‹" #: editor/plugins/version_control_editor_plugin.cpp #, fuzzy @@ -8155,7 +8126,7 @@ msgstr "ステータス" #: editor/plugins/version_control_editor_plugin.cpp msgid "View file diffs before committing them to the latest version" -msgstr "" +msgstr "最新ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã«ã‚³ãƒŸãƒƒãƒˆã™ã‚‹å‰ã«ãƒ•ã‚¡ã‚¤ãƒ«ã®å·®åˆ†ã‚’見る" #: editor/plugins/version_control_editor_plugin.cpp #, fuzzy @@ -8164,18 +8135,15 @@ msgstr "ファイルãŒé¸æŠžã•ã‚Œã¦ã„ã¾ã›ã‚“!" #: editor/plugins/version_control_editor_plugin.cpp msgid "Detect changes in file diff" -msgstr "" +msgstr "ファイルã®å·®åˆ†ã«å¤‰æ›´ã‚’確èª" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "(GLES3 only)" msgstr "(GLES3ã®ã¿)" #: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add input +" -msgstr "å…¥åŠ›ã‚’è¿½åŠ +" - -#: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add output +" +#, fuzzy +msgid "Add Output" msgstr "å‡ºåŠ›ã‚’è¿½åŠ +" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -8191,6 +8159,11 @@ msgid "Boolean" msgstr "ブール" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Sampler" +msgstr "ã‚µãƒ³ãƒ—ãƒ«ã‚’è¿½åŠ " + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add input port" msgstr "入力ãƒãƒ¼ãƒˆã®è¿½åŠ " @@ -8232,7 +8205,7 @@ msgstr "ビジュアルシェーダーノードã®ã‚µã‚¤ã‚ºã‚’変更ã™ã‚‹" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" -msgstr "" +msgstr "統一åã‚’è¨å®š" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Input Default Port" @@ -8273,9 +8246,8 @@ msgid "Light" msgstr "å³å´é¢" #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Show resulted shader code." -msgstr "シェーダーノードã®ä½œæˆ" +msgstr "シェーダーコードã®çµæžœã‚’表示。" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Create Shader Node" @@ -8303,7 +8275,7 @@ msgstr "RGBベクトルをHSVベクトルã«å¤‰æ›ã—ã¾ã™ã€‚" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Sepia function." -msgstr "セピア関数" +msgstr "セピア関数。" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Burn operator." @@ -8331,7 +8303,7 @@ msgstr "Lighten演算å。" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Overlay operator." -msgstr "" +msgstr "オーãƒãƒ¼ãƒ¬ã‚¤å‡¦ç†ã€‚" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Screen operator." @@ -8405,11 +8377,10 @@ msgstr "" "指定ã•ã‚ŒãŸãƒ–ール値ãŒtrueã¾ãŸã¯falseã®å ´åˆã€é–¢é€£ä»˜ã‘られãŸãƒ™ã‚¯ãƒˆãƒ«ã‚’è¿”ã—ã¾ã™ã€‚" #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "" "Returns an associated scalar if the provided boolean value is true or false." msgstr "" -"指定ã•ã‚ŒãŸãƒ–ール値ãŒtrueã¾ãŸã¯falseã®å ´åˆã€é–¢é€£ä»˜ã‘られãŸãƒ™ã‚¯ãƒˆãƒ«ã‚’è¿”ã—ã¾ã™ã€‚" +"指定ã•ã‚ŒãŸãƒ–ール値ãŒtrueã¾ãŸã¯falseã®å ´åˆã€é–¢é€£ä»˜ã‘られãŸã‚¹ã‚«ãƒ©ãƒ¼ã‚’è¿”ã—ã¾ã™ã€‚" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the boolean result of the comparison between two parameters." @@ -8427,7 +8398,7 @@ msgstr "ブール定数。" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Boolean uniform." -msgstr "" +msgstr "真å½å€¤ã®uniform変数。" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "'%s' input parameter for all shader modes." @@ -8440,6 +8411,7 @@ msgstr "入力パラメータ。" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "'%s' input parameter for vertex and fragment shader modes." msgstr "" +"'%s' ã¯é ‚点シェーダーã¨ãƒ•ãƒ©ã‚°ãƒ¡ãƒ³ãƒˆã‚·ã‚§ãƒ¼ãƒ€ãƒ¼ã®ãŸã‚ã®ãƒ‘ラメータを入力ã—ã¾ã™ã€‚" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "'%s' input parameter for fragment and light shader modes." @@ -8460,6 +8432,7 @@ msgstr "é ‚ç‚¹ã‚·ã‚§ãƒ¼ãƒ€ãƒ¢ãƒ¼ãƒ‰ã® '%s' 入力パラメータ。" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "'%s' input parameter for vertex and fragment shader mode." msgstr "" +"é ‚ç‚¹ã‚·ã‚§ãƒ¼ãƒ€ãƒ¼ãƒ¢ãƒ¼ãƒ‰ã€ãƒ•ãƒ©ã‚°ãƒ¡ãƒ³ãƒˆã‚·ã‚§ãƒ¼ãƒ€ãƒ¼ãƒ¢ãƒ¼ãƒ‰ã® '%s' 入力パラメータ。" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Scalar function." @@ -8844,9 +8817,8 @@ msgid "Linear interpolation between two vectors." msgstr "2ã¤ã®ãƒ™ã‚¯ãƒˆãƒ«é–“ã®ãƒªãƒ‹ã‚¢è£œé–“。" #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Linear interpolation between two vectors using scalar." -msgstr "2ã¤ã®ãƒ™ã‚¯ãƒˆãƒ«é–“ã®ãƒªãƒ‹ã‚¢è£œé–“。" +msgstr "スカラーを使ã£ãŸã€2ã¤ã®ãƒ™ã‚¯ãƒˆãƒ«é–“ã®ãƒªãƒ‹ã‚¢è£œé–“。" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Calculates the normalize product of vector." @@ -8971,11 +8943,15 @@ msgstr "" "è¿”ã—ã¾ã™ã€‚" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy msgid "" "Custom Godot Shader Language expression, which placed on top of the resulted " "shader. You can place various function definitions inside and call it later " "in the Expressions. You can also declare varyings, uniforms and constants." msgstr "" +"カスタムGodotシェーダー言語ã®è¡¨ç¾ã¯ã€ã‚·ã‚§ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°çµæžœã®æœ€å¾Œã«ä½ç½®ã—ã¾ã™ã€‚" +"様々ãªé–¢æ•°ã‚’ãã®ä¸ã§å®šç¾©ã—ã€è¡¨ç¾ã®ä¸ã§å‘¼ã³å‡ºã™ã“ã¨ãŒã§ãã¾ã™ã€‚ã¾ãŸvarying変" +"æ•°ã€uniform変数ã€å®šæ•°ã‚’宣言ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "(Fragment/Light mode only) Scalar derivative function." @@ -9129,14 +9105,18 @@ msgid "Resources to export:" msgstr "エクスãƒãƒ¼ãƒˆã™ã‚‹ãƒªã‚½ãƒ¼ã‚¹:" #: editor/project_export.cpp +#, fuzzy msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" "エクスãƒãƒ¼ãƒˆã™ã‚‹éžãƒªã‚½ãƒ¼ã‚¹ãƒ•ã‚¡ã‚¤ãƒ«ã®ãƒ•ã‚£ãƒ«ã‚¿ (コンマ区切り, 例*.json, *.txt)" #: editor/project_export.cpp +#, fuzzy msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" "プãƒã‚¸ã‚§ã‚¯ãƒˆã‹ã‚‰é™¤å¤–ã™ã‚‹ãƒ•ã‚¡ã‚¤ãƒ«ã®ãƒ•ã‚£ãƒ«ã‚¿ (コンマ区切り, 例*.json, *.txt)" @@ -9194,9 +9174,8 @@ msgid "Export PCK/Zip" msgstr "PCK/Zipã®ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆ" #: editor/project_export.cpp -#, fuzzy msgid "Export mode?" -msgstr "エクスãƒãƒ¼ãƒˆ モード?" +msgstr "エクスãƒãƒ¼ãƒˆ モード?" #: editor/project_export.cpp msgid "Export All" @@ -9376,7 +9355,7 @@ msgstr "æ—¢å˜ã®ãƒ—ãƒã‚¸ã‚§ã‚¯ãƒˆã‚’インãƒãƒ¼ãƒˆ" #: editor/project_manager.cpp msgid "Error: Project is missing on the filesystem." -msgstr "" +msgstr "エラー: プãƒã‚¸ã‚§ã‚¯ãƒˆã¯ãƒ•ã‚¡ã‚¤ãƒ«ã‚·ã‚¹ãƒ†ãƒ を見ã¤ã‘られã¾ã›ã‚“。" #: editor/project_manager.cpp msgid "Can't open project at '%s'." @@ -9501,7 +9480,6 @@ msgid "Project Manager" msgstr "プãƒã‚¸ã‚§ã‚¯ãƒˆãƒžãƒãƒ¼ã‚¸ãƒ£ãƒ¼" #: editor/project_manager.cpp -#, fuzzy msgid "Projects" msgstr "プãƒã‚¸ã‚§ã‚¯ãƒˆ" @@ -9686,9 +9664,8 @@ msgid "Middle Button." msgstr "ä¸ã‚¯ãƒªãƒƒã‚¯" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Wheel Up." -msgstr "マウスホイールを上ã¸." +msgstr "マウスホイールを上." #: editor/project_settings_editor.cpp msgid "Wheel Down." @@ -9752,16 +9729,14 @@ msgid "Remove Translation" msgstr "翻訳を除去" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Add Remapped Path" -msgstr "リマップã•ã‚ŒãŸãƒ‘ã‚¹ã‚’è¿½åŠ " +msgstr "å†ãƒžãƒƒãƒ—ã•ã‚ŒãŸãƒ‘ã‚¹ã‚’è¿½åŠ " #: editor/project_settings_editor.cpp msgid "Resource Remap Add Remap" -msgstr "" +msgstr "リソースå†ãƒžãƒƒãƒ—ãŒå†ãƒžãƒƒãƒ—ã‚’è¿½åŠ " #: editor/project_settings_editor.cpp -#, fuzzy msgid "Change Resource Remap Language" msgstr "リソースリマップ言語を変更" @@ -9770,9 +9745,8 @@ msgid "Remove Resource Remap" msgstr "リソースã®ãƒªãƒžãƒƒãƒ—を削除" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Remove Resource Remap Option" -msgstr "リソースã®ãƒªãƒžãƒƒãƒ—オプションを除去" +msgstr "リソースå†ãƒžãƒƒãƒ—オプションを削除" #: editor/project_settings_editor.cpp msgid "Changed Locale Filter" @@ -9792,7 +9766,7 @@ msgstr "一般" #: editor/project_settings_editor.cpp msgid "Override For..." -msgstr "" +msgstr "上書ãã—ã¾ã™..." #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp msgid "The editor must be restarted for changes to take effect." @@ -10130,9 +10104,8 @@ msgid "Move Node In Parent" msgstr "ノードを親ã«ç§»å‹•" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Move Nodes In Parent" -msgstr "親ã®ãƒŽãƒ¼ãƒ‰ã‚’移動" +msgstr "複数ã®ãƒŽãƒ¼ãƒ‰ã‚’親ã«ç§»å‹•" #: editor/scene_tree_dock.cpp msgid "Duplicate Node(s)" @@ -10156,9 +10129,8 @@ msgid "Make node as Root" msgstr "ノードをルートã«ã™ã‚‹" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete %d nodes?" -msgstr "ノードを削除" +msgstr "%d ノードを削除ã—ã¾ã™ã‹ï¼Ÿ" #: editor/scene_tree_dock.cpp #, fuzzy @@ -10167,12 +10139,11 @@ msgstr "シェーダーグラフノードを消去" #: editor/scene_tree_dock.cpp msgid "Delete node \"%s\" and its children?" -msgstr "" +msgstr "\"%s\" ノードã¨ãã®åノードを削除ã—ã¾ã™ã‹ï¼Ÿ" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete node \"%s\"?" -msgstr "ノードを削除" +msgstr "\"%s\" ノードを削除ã—ã¾ã™ã‹ï¼Ÿ" #: editor/scene_tree_dock.cpp msgid "Can not perform with the root node." @@ -10195,12 +10166,13 @@ msgstr "" "ã«æˆ»ã‚Šã¾ã™ã€‚" #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "編集å¯èƒ½ãªå" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" -msgstr "プレースホルダーã¨ã—ã¦ãƒãƒ¼ãƒ‰" +#, fuzzy +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." +msgstr "" +"\"editable_instance\" を無効ã«ã™ã‚‹ã¨ã€ãƒŽãƒ¼ãƒ‰ã®ã™ã¹ã¦ã®ãƒ—ãƒãƒ‘ティãŒãƒ‡ãƒ•ã‚©ãƒ«ãƒˆ" +"ã«æˆ»ã‚Šã¾ã™ã€‚" #: editor/scene_tree_dock.cpp msgid "Make Local" @@ -10276,6 +10248,14 @@ msgid "Clear Inheritance" msgstr "継承をクリア" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "編集å¯èƒ½ãªå" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "プレースホルダーã¨ã—ã¦ãƒãƒ¼ãƒ‰" + +#: editor/scene_tree_dock.cpp msgid "Open Documentation" msgstr "ドã‚ュメントを開ã" @@ -10292,10 +10272,6 @@ msgid "Change Type" msgstr "型を変更" #: editor/scene_tree_dock.cpp -msgid "Extend Script" -msgstr "スクリプトを拡張" - -#: editor/scene_tree_dock.cpp #, fuzzy msgid "Reparent to New Node" msgstr "親ノードを変更" @@ -10382,22 +10358,20 @@ msgstr "" "クリックã§ã‚·ã‚°ãƒŠãƒ« ドックを表示。" #: editor/scene_tree_editor.cpp -#, fuzzy msgid "" "Node has %s connection(s).\n" "Click to show signals dock." msgstr "" -"ノードã«æŽ¥ç¶šãŒã‚ã‚Šã¾ã™ã€‚\n" +"ノード㫠%s 個接続ãŒã‚ã‚Šã¾ã™ã€‚\n" "クリックã§ã‚·ã‚°ãƒŠãƒ« ドックを表示。" #: editor/scene_tree_editor.cpp -#, fuzzy msgid "" "Node is in %s group(s).\n" "Click to show groups dock." msgstr "" -"ノードã¯ã‚°ãƒ«ãƒ¼ãƒ—ã«å±žã—ã¦ã„ã¾ã™ã€‚\n" -"クリックã—ã¦ã‚°ãƒ«ãƒ¼ãƒ—ドックを表示ã—ã¦ãã ã•ã„。" +"ノード㯠%s グループã«å±žã—ã¦ã„ã¾ã™ã€‚\n" +"クリックã—ã¦ã‚°ãƒ«ãƒ¼ãƒ—ドックを表示。" #: editor/scene_tree_editor.cpp msgid "Open Script:" @@ -10542,23 +10516,18 @@ msgid "Will load an existing script file." msgstr "æ—¢å˜ã®ã‚¹ã‚¯ãƒªãƒ—トファイルをèªã¿è¾¼ã‚€ã€‚" #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "言語" - -#: editor/script_create_dialog.cpp -msgid "Inherits" -msgstr "継承" - -#: editor/script_create_dialog.cpp -msgid "Class Name" +#, fuzzy +msgid "Class Name:" msgstr "クラスå" #: editor/script_create_dialog.cpp -msgid "Template" +#, fuzzy +msgid "Template:" msgstr "テンプレート" #: editor/script_create_dialog.cpp -msgid "Built-in Script" +#, fuzzy +msgid "Built-in Script:" msgstr "組ã¿è¾¼ã¿ã‚¹ã‚¯ãƒªãƒ—ト" #: editor/script_create_dialog.cpp @@ -10574,7 +10543,6 @@ msgid "Bytes:" msgstr "ãƒã‚¤ãƒˆ:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Warning:" msgstr "è¦å‘Š:" @@ -10583,29 +10551,24 @@ msgid "Error:" msgstr "エラー:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Error" -msgstr "エラーをコピー" +msgstr "C++ エラー" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Error:" -msgstr "エラー:" +msgstr "C++ エラー:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Source" -msgstr "ソース" +msgstr "C++ ソース" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Source:" -msgstr "ソース" +msgstr "ソース:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Source:" -msgstr "ソース" +msgstr "C++ ソース:" #: editor/script_editor_debugger.cpp msgid "Stack Trace" @@ -10616,18 +10579,16 @@ msgid "Errors" msgstr "エラー" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Child process connected." -msgstr "åプãƒã‚»ã‚¹æŽ¥ç¶š" +msgstr "åプãƒã‚»ã‚¹ãŒæŽ¥ç¶šã•ã‚ŒãŸã€‚" #: editor/script_editor_debugger.cpp msgid "Copy Error" msgstr "エラーをコピー" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Skip Breakpoints" -msgstr "ブレークãƒã‚¤ãƒ³ãƒˆ" +msgstr "ブレークãƒã‚¤ãƒ³ãƒˆã‚’スã‚ップã™ã‚‹" #: editor/script_editor_debugger.cpp msgid "Inspect Previous Instance" @@ -10646,9 +10607,8 @@ msgid "Profiler" msgstr "プãƒãƒ•ã‚¡ã‚¤ãƒ©ãƒ¼" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Network Profiler" -msgstr "プãƒãƒ•ã‚¡ã‚¤ãƒ«ã®ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆ" +msgstr "ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒ—ãƒãƒ•ã‚¡ã‚¤ãƒ©ãƒ¼" #: editor/script_editor_debugger.cpp msgid "Monitor" @@ -10873,7 +10833,7 @@ msgstr "GDNative" #: modules/gdscript/gdscript_functions.cpp msgid "Expected a string of length 1 (a character)." -msgstr "" +msgstr "é•·ã•ãŒ1ã®æ–‡å—列(文å—)を予期ã—ã¾ã—ãŸã€‚" #: modules/gdscript/gdscript_functions.cpp msgid "Step argument is zero!" @@ -10912,14 +10872,12 @@ msgid "Object can't provide a length." msgstr "オブジェクトã«é•·ã•ãŒã‚ã‚Šã¾ã›ã‚“." #: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "Next Plane" -msgstr "次ã®ã‚¿ãƒ–" +msgstr "次ã®å¹³é¢" #: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "Previous Plane" -msgstr "以å‰ã®ã‚¿ãƒ–" +msgstr "å‰ã®å¹³é¢" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Plane:" @@ -11045,6 +11003,8 @@ msgstr "フィルタメソッド" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Give a MeshLibrary resource to this GridMap to use its meshes." msgstr "" +"メッシュを使ã†ã«ã¯ãƒ¡ãƒƒã‚·ãƒ¥ãƒ©ã‚¤ãƒ–ラリリソースをã“ã®ã‚°ãƒªãƒƒãƒ‰ãƒžãƒƒãƒ—ã«è¨å®šã—ã¦ã" +"ã ã•ã„。" #: modules/mono/csharp_script.cpp msgid "Class name can't be a reserved keyword" @@ -11172,32 +11132,28 @@ msgid "Set Variable Type" msgstr "変数ã®åž‹ã‚’è¨å®š" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Override an existing built-in function." -msgstr "æ—¢å˜ã®çµ„è¾¼ã¿åž‹åã¨é‡è¤‡ã—ã¦ã¯ã„ã‘ã¾ã›ã‚“。" +msgstr "æ—¢å˜ã®çµ„è¾¼ã¿é–¢æ•°ã‚’オーãƒãƒ¼ãƒ©ã‚¤ãƒ‰ã€‚" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Create a new function." -msgstr "æ–°è¦ãƒŽãƒ¼ãƒ‰ã‚’作æˆã€‚" +msgstr "æ–°è¦é–¢æ•°ã‚’作æˆã€‚" #: modules/visual_script/visual_script_editor.cpp msgid "Variables:" msgstr "変数を作æˆ:" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Create a new variable." -msgstr "æ–°è¦ãƒŽãƒ¼ãƒ‰ã‚’作æˆã€‚" +msgstr "æ–°è¦å¤‰æ•°ã‚’作æˆã€‚" #: modules/visual_script/visual_script_editor.cpp msgid "Signals:" msgstr "シグナル:" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Create a new signal." -msgstr "æ–°è¦ãƒãƒªã‚´ãƒ³ã‚’生æˆã€‚" +msgstr "æ–°è¦ã‚·ã‚°ãƒŠãƒ«ã‚’生æˆã€‚" #: modules/visual_script/visual_script_editor.cpp msgid "Name is not a valid identifier:" @@ -11224,6 +11180,11 @@ msgid "Add Function" msgstr "é–¢æ•°ã‚’è¿½åŠ " #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Delete input port" +msgstr "入力ãƒãƒ¼ãƒˆã®å‰Šé™¤" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "å¤‰æ•°ã‚’è¿½åŠ " @@ -11232,6 +11193,26 @@ msgid "Add Signal" msgstr "ã‚·ã‚°ãƒŠãƒ«ã‚’è¿½åŠ " #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Input Port" +msgstr "入力ãƒãƒ¼ãƒˆã®è¿½åŠ " + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Output Port" +msgstr "出力ãƒãƒ¼ãƒˆã‚’è¿½åŠ " + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Input Port" +msgstr "入力ãƒãƒ¼ãƒˆã®å‰Šé™¤" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Output Port" +msgstr "出力ãƒãƒ¼ãƒˆã®å‰Šé™¤" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "å¼ã‚’変更" @@ -11280,10 +11261,20 @@ msgid "Add Preload Node" msgstr "プリãƒãƒ¼ãƒ‰ãƒŽãƒ¼ãƒ‰ã‚’è¿½åŠ " #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "ツリーã‹ã‚‰ãƒŽãƒ¼ãƒ‰ã‚’è¿½åŠ " #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "ゲッタープãƒãƒ‘ティã®è¿½åŠ " @@ -11308,6 +11299,11 @@ msgid "Connect Nodes" msgstr "ノードã«æŽ¥ç¶š" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Disconnect Nodes" +msgstr "グラフノードを切æ–" + +#: modules/visual_script/visual_script_editor.cpp msgid "Connect Node Data" msgstr "ノードデータã«æŽ¥ç¶š" @@ -11340,6 +11336,28 @@ msgid "Paste VisualScript Nodes" msgstr "VisualScriptノードを貼り付ã‘" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Can't create function with a function node." +msgstr "ファンクションノードをコピーã§ãã¾ã›ã‚“。" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Create Function" +msgstr "関数åを変更" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "関数を除去" @@ -11365,16 +11383,13 @@ msgid "Make Tool:" msgstr "ãƒãƒ¼ã‚«ãƒ«ã«ã™ã‚‹" #: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "基本タイプ:" - -#: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "メンãƒãƒ¼:" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" -msgstr "利用å¯èƒ½ãªãƒŽãƒ¼ãƒ‰:" +#, fuzzy +msgid "function_name" +msgstr "関数:" #: modules/visual_script/visual_script_editor.cpp msgid "Select or create a function to edit its graph." @@ -11397,6 +11412,16 @@ msgid "Cut Nodes" msgstr "ノードを切りå–ã‚‹" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Make Function" +msgstr "関数åを変更" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Refresh Graph" +msgstr "å†èªè¾¼" + +#: modules/visual_script/visual_script_editor.cpp msgid "Edit Member" msgstr "メンãƒãƒ¼ã‚’編集" @@ -11494,6 +11519,10 @@ msgid "The package must have at least one '.' separator." msgstr "パッケージã«ã¯ä¸€ã¤ä»¥ä¸Šã®åŒºåˆ‡ã‚Šæ–‡å— '.' ãŒå¿…è¦ã§ã™ã€‚" #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "一覧ã‹ã‚‰ãƒ‡ãƒã‚¤ã‚¹ã‚’é¸æŠž" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "ADB実行å¯èƒ½ãƒ•ã‚¡ã‚¤ãƒ«ãŒã‚¨ãƒ‡ã‚£ã‚¿è¨å®šã§è¨å®šã•ã‚Œã¦ã„ã¾ã›ã‚“。" @@ -11566,7 +11595,7 @@ msgstr "" #: platform/android/export/export.cpp msgid "No build apk generated at: " -msgstr "ビルドAPKã¯ç”Ÿæˆã•ã‚Œã¦ã„ã¾ã›ã‚“:" +msgstr "ビルドAPKã¯ç”Ÿæˆã•ã‚Œã¦ã„ã¾ã›ã‚“: " #: platform/iphone/export/export.cpp msgid "Identifier is missing." @@ -11606,6 +11635,10 @@ msgid "Required icon is not specified in the preset." msgstr "å¿…é ˆã‚¢ã‚¤ã‚³ãƒ³ãŒãƒ—リセットã«æŒ‡å®šã•ã‚Œã¦ã„ã¾ã›ã‚“。" #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "ブラウザã§å®Ÿè¡Œ" @@ -11659,34 +11692,29 @@ msgid "Invalid Store Logo image dimensions (should be 50x50)." msgstr "ä¸æ£ãªStoreãƒã‚´ã‚¤ãƒ¡ãƒ¼ã‚¸(縦横50x50ã§ãªã„ã¨ã„ã‘ã¾ã›ã‚“)" #: platform/uwp/export/export.cpp -#, fuzzy msgid "Invalid square 44x44 logo image dimensions (should be 44x44)." -msgstr "ä¸æ£ãª44X44æ£æ–¹ãƒã‚´ã‚¤ãƒ¡ãƒ¼ã‚¸ï¼ˆç¸¦æ¨ª44x44ã§ãªã„ã¨ã„ã‘ã¾ã›ã‚“)" +msgstr "無効ãª44X44四角ãƒã‚´ã‚¤ãƒ¡ãƒ¼ã‚¸ï¼ˆç¸¦æ¨ª44x44ã§ãªã„ã¨ã„ã‘ã¾ã›ã‚“)。" #: platform/uwp/export/export.cpp -#, fuzzy msgid "Invalid square 71x71 logo image dimensions (should be 71x71)." -msgstr "ä¸æ£ãª71x71æ£æ–¹ãƒã‚´ã‚¤ãƒ¡ãƒ¼ã‚¸ï¼ˆç¸¦æ¨ª71x71ã§ãªã„ã¨ã„ã‘ã¾ã›ã‚“)" +msgstr "無効ãª71x71四角ãƒã‚´ã‚¤ãƒ¡ãƒ¼ã‚¸ï¼ˆç¸¦æ¨ª71x71ã§ãªã„ã¨ã„ã‘ã¾ã›ã‚“)。" #: platform/uwp/export/export.cpp -#, fuzzy msgid "Invalid square 150x150 logo image dimensions (should be 150x150)." -msgstr "ä¸æ£ãª150X150æ£æ–¹ãƒã‚´ã‚¤ãƒ¡ãƒ¼ã‚¸ï¼ˆç¸¦æ¨ª150x150ã§ãªã„ã¨ã„ã‘ã¾ã›ã‚“)" +msgstr "無効ãª150X150四角ãƒã‚´ã‚¤ãƒ¡ãƒ¼ã‚¸ï¼ˆç¸¦æ¨ª150x150ã§ãªã„ã¨ã„ã‘ã¾ã›ã‚“)。" #: platform/uwp/export/export.cpp -#, fuzzy msgid "Invalid square 310x310 logo image dimensions (should be 310x310)." -msgstr "ä¸æ£ãª310X310æ£æ–¹ãƒã‚´ã‚¤ãƒ¡ãƒ¼ã‚¸ï¼ˆç¸¦æ¨ª310x310ã§ãªã„ã¨ã„ã‘ã¾ã›ã‚“)" +msgstr "無効ãª310X310四角ãƒã‚´ã‚¤ãƒ¡ãƒ¼ã‚¸ï¼ˆç¸¦æ¨ª310x310ã§ãªã„ã¨ã„ã‘ã¾ã›ã‚“)。" #: platform/uwp/export/export.cpp -#, fuzzy msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)." -msgstr "ä¸æ£ãª310X150幅広ãƒã‚´ã‚¤ãƒ¡ãƒ¼ã‚¸ï¼ˆç¸¦æ¨ª310x150ã§ãªã„ã¨ã„ã‘ã¾ã›ã‚“)" +msgstr "無効ãª310X150ワイドãƒã‚´ã‚¤ãƒ¡ãƒ¼ã‚¸ï¼ˆç¸¦æ¨ª310x150ã§ãªã„ã¨ã„ã‘ã¾ã›ã‚“)。" #: platform/uwp/export/export.cpp -#, fuzzy msgid "Invalid splash screen image dimensions (should be 620x300)." -msgstr "ä¸æ£ãªã‚¹ãƒ—ラッシュスクリーンイメージ(縦横620x300ã§ãªã„ã¨ã„ã‘ã¾ã›ã‚“)" +msgstr "" +"無効ãªã‚¹ãƒ—ラッシュスクリーンイメージ(縦横620x300ã§ãªã„ã¨ã„ã‘ã¾ã›ã‚“)。" #: scene/2d/animated_sprite.cpp #, fuzzy @@ -11923,16 +11951,15 @@ msgstr "(Time Left: %d分%02d秒)" #: scene/3d/baked_lightmap.cpp msgid "Plotting Meshes: " -msgstr "メッシュã®ãƒ—ãƒãƒƒãƒˆ: " +msgstr "メッシュをæç”»ä¸: " #: scene/3d/baked_lightmap.cpp -#, fuzzy msgid "Plotting Lights:" -msgstr "イメージをé…ç½®(Blit)" +msgstr "å…‰æºã‚’æç”»ä¸:" #: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp msgid "Finishing Plot" -msgstr "プãƒãƒƒãƒˆå®Œäº†" +msgstr "æ画完了" #: scene/3d/baked_lightmap.cpp msgid "Lighting Meshes: " @@ -12123,6 +12150,8 @@ msgid "" "WorldEnvironment requires its \"Environment\" property to contain an " "Environment to have a visible effect." msgstr "" +"EnvironmentãŒå¯è¦–エフェクトをæŒã¤ãŸã‚ã«ã€WorldEnvironmentã®ã€ŒEnvironmentã€ãƒ—" +"ãƒãƒ‘ティãŒå¿…è¦ã§ã™ã€‚" #: scene/3d/world_environment.cpp msgid "" @@ -12189,7 +12218,7 @@ msgstr "スクリーンã‹ã‚‰è‰²ã‚’é¸æŠžã—ã¦ãã ã•ã„。" #: scene/gui/color_picker.cpp msgid "HSV" -msgstr "" +msgstr "HSV" #: scene/gui/color_picker.cpp msgid "Raw" @@ -12204,7 +12233,6 @@ msgid "Add current color as a preset." msgstr "ç¾åœ¨ã®è‰²ã‚’プリセットã¨ã—ã¦è¿½åŠ ã—ã¾ã™ã€‚" #: scene/gui/container.cpp -#, fuzzy msgid "" "Container by itself serves no purpose unless a script configures its " "children placement behavior.\n" @@ -12212,8 +12240,8 @@ msgid "" msgstr "" "コンテナ自体ã¯ã€ã‚¹ã‚¯ãƒªãƒ—トã§åã®é…置動作をè¨å®šã—ãªã„é™ã‚Šã€ä½•ã®å½¹å‰²ã‚‚æžœãŸã—ã¾" "ã›ã‚“。\n" -"ã‚¹ã‚¯ãƒªãƒ—ãƒˆã‚’è¿½åŠ ã—ãªã„å ´åˆã¯ã€ä»£ã‚ã‚Šã«ãƒ—レーン「コントãƒãƒ¼ãƒ« ã€ãƒŽãƒ¼ãƒ‰ã‚’使用ã—" -"ã¦ãã ã•ã„。" +"ã‚¹ã‚¯ãƒªãƒ—ãƒˆã‚’è¿½åŠ ã—ãªã„å ´åˆã¯ã€ä»£ã‚ã‚Šã«æ™®é€šã®ã€Œã‚³ãƒ³ãƒˆãƒãƒ¼ãƒ« ã€ãƒŽãƒ¼ãƒ‰ã‚’使用ã—ã¦" +"ãã ã•ã„。" #: scene/gui/control.cpp msgid "" @@ -12282,10 +12310,6 @@ msgstr "" "ãã‚Šã¾ã™ã€‚ãれ以外ã®å ´åˆã€ãƒ¬ãƒ³ãƒ€ãƒ¼ ターゲットã—ã€ãã®å†…部ã®ãƒ†ã‚¯ã‚¹ãƒãƒ£è¡¨ç¤ºã®ã„" "ãã¤ã‹ã®ãƒŽãƒ¼ãƒ‰ã«å‰²ã‚Šå½“ã¦ã¾ã™ã€‚" -#: scene/resources/visual_shader.cpp -msgid "Input" -msgstr "入力" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for preview." msgstr "プレビューã®ã‚½ãƒ¼ã‚¹ãŒç„¡åŠ¹ã§ã™ã€‚" @@ -12315,6 +12339,27 @@ msgstr "Varyingã¯é ‚点関数ã«ã®ã¿å‰²ã‚Šå½“ã¦ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚" msgid "Constants cannot be modified." msgstr "定数ã¯å¤‰æ›´ã§ãã¾ã›ã‚“。" +#~ msgid "Snap to Grid" +#~ msgstr "グリッドã«ã‚¹ãƒŠãƒƒãƒ—" + +#~ msgid "Add input +" +#~ msgstr "å…¥åŠ›ã‚’è¿½åŠ +" + +#~ msgid "Language" +#~ msgstr "言語" + +#~ msgid "Inherits" +#~ msgstr "継承" + +#~ msgid "Base Type:" +#~ msgstr "基本タイプ:" + +#~ msgid "Available Nodes:" +#~ msgstr "利用å¯èƒ½ãªãƒŽãƒ¼ãƒ‰:" + +#~ msgid "Input" +#~ msgstr "入力" + #~ msgid "Properties:" #~ msgstr "プãƒãƒ‘ティ:" @@ -12542,9 +12587,6 @@ msgstr "定数ã¯å¤‰æ›´ã§ãã¾ã›ã‚“。" #~ msgid "Go to parent folder" #~ msgstr "親フォルダã¸" -#~ msgid "Select device from the list" -#~ msgstr "一覧ã‹ã‚‰ãƒ‡ãƒã‚¤ã‚¹ã‚’é¸æŠž" - #~ msgid "Open Scene(s)" #~ msgstr "シーンを開ã" @@ -12789,9 +12831,6 @@ msgstr "定数ã¯å¤‰æ›´ã§ãã¾ã›ã‚“。" #~ msgid "Warning" #~ msgstr "è¦å‘Š" -#~ msgid "Function:" -#~ msgstr "関数:" - #~ msgid "Variable" #~ msgstr "変数" @@ -12868,10 +12907,6 @@ msgstr "定数ã¯å¤‰æ›´ã§ãã¾ã›ã‚“。" #~ msgstr "グラフノードを接続" #, fuzzy -#~ msgid "Disconnect Graph Nodes" -#~ msgstr "グラフノードを切æ–" - -#, fuzzy #~ msgid "Remove Shader Graph Node" #~ msgstr "シェーダーグラフノードを除去" @@ -13815,9 +13850,6 @@ msgstr "定数ã¯å¤‰æ›´ã§ãã¾ã›ã‚“。" #~ msgid "ERROR: Couldn't load sample!" #~ msgstr "エラー:サンプルをèªã¿è¾¼ã‚ã¾ã›ã‚“!" -#~ msgid "Add Sample" -#~ msgstr "ã‚µãƒ³ãƒ—ãƒ«ã‚’è¿½åŠ " - #~ msgid "Rename Sample" #~ msgstr "サンプルã®åå‰ã‚’変ãˆã‚‹" diff --git a/editor/translations/ka.po b/editor/translations/ka.po index 7e9f4513aa..f703153803 100644 --- a/editor/translations/ka.po +++ b/editor/translations/ka.po @@ -379,6 +379,7 @@ msgstr "áƒáƒ®áƒáƒšáƒ˜ %d ჩáƒáƒœáƒáƒ¬áƒ”რების შექმნრ#: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "შექმნáƒ" @@ -516,16 +517,6 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "" - -#: editor/animation_track_editor.cpp -#, fuzzy -msgid "Select None" -msgstr "მáƒáƒœáƒ˜áƒ¨áƒ•áƒœáƒ˜áƒ¡ áƒáƒ¡áƒšáƒ˜áƒ¡ შექმნáƒ" - #: editor/animation_track_editor.cpp #, fuzzy msgid "Select an AnimationPlayer node to create and edit animations." @@ -665,8 +656,9 @@ msgid "Scale Ratio:" msgstr "მáƒáƒ¡áƒ¨áƒ¢áƒáƒ‘ის თáƒáƒœáƒáƒ¤áƒáƒ დáƒáƒ‘áƒ:" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" -msgstr "" +#, fuzzy +msgid "Select Tracks to Copy" +msgstr "დáƒáƒ§áƒ”ნდეს გáƒáƒ“áƒáƒ¡áƒ•áƒšáƒ”ბი შემდეგზე:" #: editor/animation_track_editor.cpp editor/editor_log.cpp #: editor/editor_properties.cpp @@ -677,6 +669,11 @@ msgstr "" msgid "Copy" msgstr "" +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Select All/None" +msgstr "მáƒáƒœáƒ˜áƒ¨áƒ•áƒœáƒ˜áƒ¡ áƒáƒ¡áƒšáƒ˜áƒ¡ შექმნáƒ" + #: editor/animation_track_editor_plugins.cpp #, fuzzy msgid "Add Audio Track Clip" @@ -1015,7 +1012,7 @@ msgid "Resource" msgstr "რესურსი" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "გზáƒ" @@ -1485,7 +1482,8 @@ msgstr "" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "" @@ -1539,7 +1537,7 @@ msgstr "" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "" @@ -1937,6 +1935,7 @@ msgid "Class:" msgstr "" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "" @@ -2946,7 +2945,7 @@ msgstr "" msgid "Expand Bottom Panel" msgstr "" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "" @@ -3185,6 +3184,10 @@ msgstr "" msgid "New Script" msgstr "" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +msgid "Extend Script" +msgstr "" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "" @@ -3211,14 +3214,6 @@ msgstr "" msgid "Convert To %s" msgstr "" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy -msgid "Open Editor" -msgstr "დáƒáƒ›áƒáƒ™áƒ˜áƒ“ებულებების შემსწáƒáƒ ებელი" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "" @@ -4012,7 +4007,7 @@ msgstr "" msgid "Subfolder:" msgstr "" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "" @@ -4152,6 +4147,13 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +#, fuzzy +msgid "Open Editor" +msgstr "დáƒáƒ›áƒáƒ™áƒ˜áƒ“ებულებების შემსწáƒáƒ ებელი" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp #, fuzzy msgid "Open Animation Node" @@ -4504,7 +4506,6 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "" @@ -4679,6 +4680,8 @@ msgid "Current:" msgstr "" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "" @@ -4885,6 +4888,10 @@ msgid "All" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp msgid "Import..." msgstr "" @@ -5175,20 +5182,23 @@ msgid "Ruler Mode" msgstr "მáƒáƒ¡áƒ¨áƒ¢áƒáƒ‘ის თáƒáƒœáƒáƒ¤áƒáƒ დáƒáƒ‘áƒ:" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Toggle snapping." +msgid "Toggle smart snapping." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +msgid "Use Smart Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snapping Options" +msgid "Toggle grid snapping." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to Grid" +msgid "Use Grid Snap" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snapping Options" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5279,8 +5289,7 @@ msgid "View" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +msgid "Always Show Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5548,6 +5557,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/curve_editor_plugin.cpp +msgid "Right click to add point" +msgstr "" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "" @@ -6184,6 +6197,10 @@ msgid "Grid" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Configure Grid:" msgstr "" @@ -6240,6 +6257,7 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "" @@ -6344,6 +6362,11 @@ msgid "Find Next" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Filter scripts" msgstr "" @@ -6619,6 +6642,11 @@ msgstr "შექმნáƒ" msgid "Cut" msgstr "" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "" @@ -6677,10 +6705,6 @@ msgid "Auto Indent" msgstr "" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "" - -#: editor/plugins/script_text_editor.cpp msgid "Find in Files..." msgstr "" @@ -7007,6 +7031,10 @@ msgid "Freelook Speed Modifier" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Slow Modifier" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -7040,6 +7068,10 @@ msgid "Use Local Space" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "" @@ -7272,6 +7304,10 @@ msgid "Simplification: " msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Shrink (Pixels): " +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "" @@ -8071,12 +8107,9 @@ msgid "(GLES3 only)" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add input +" -msgstr "" - -#: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add output +" -msgstr "" +#, fuzzy +msgid "Add Output" +msgstr "სáƒáƒ§áƒ•áƒáƒ ლები:" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Scalar" @@ -8091,6 +8124,10 @@ msgid "Boolean" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sampler" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy msgid "Add input port" msgstr "სáƒáƒ§áƒ•áƒáƒ ლები:" @@ -8967,12 +9004,14 @@ msgstr "" #: editor/project_export.cpp msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp @@ -9964,11 +10003,9 @@ msgid "" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." msgstr "" #: editor/scene_tree_dock.cpp @@ -10044,6 +10081,14 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "" + +#: editor/scene_tree_dock.cpp msgid "Open Documentation" msgstr "" @@ -10061,10 +10106,6 @@ msgid "Change Type" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Extend Script" -msgstr "" - -#: editor/scene_tree_dock.cpp #, fuzzy msgid "Reparent to New Node" msgstr "áƒáƒ®áƒáƒšáƒ˜ %s შექმნáƒ" @@ -10301,24 +10342,17 @@ msgid "Will load an existing script file." msgstr "" #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Inherits" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Class Name" +msgid "Class Name:" msgstr "" #: editor/script_create_dialog.cpp -msgid "Template" +msgid "Template:" msgstr "" #: editor/script_create_dialog.cpp -msgid "Built-in Script" -msgstr "" +#, fuzzy +msgid "Built-in Script:" +msgstr "დáƒáƒ›áƒáƒ™áƒ˜áƒ“ებულებების შემსწáƒáƒ ებელი" #: editor/script_create_dialog.cpp msgid "Attach Node Script" @@ -10963,6 +10997,11 @@ msgid "Add Function" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Delete input port" +msgstr "მáƒáƒœáƒ˜áƒ¨áƒ•áƒœáƒ˜áƒ¡ მáƒáƒ¨áƒáƒ ებáƒ" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "" @@ -10971,6 +11010,26 @@ msgid "Add Signal" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Input Port" +msgstr "სáƒáƒ§áƒ•áƒáƒ ლები:" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Output Port" +msgstr "სáƒáƒ§áƒ•áƒáƒ ლები:" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Input Port" +msgstr "მáƒáƒœáƒ˜áƒ¨áƒ•áƒœáƒ˜áƒ¡ მáƒáƒ¨áƒáƒ ებáƒ" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Output Port" +msgstr "მáƒáƒœáƒ˜áƒ¨áƒ•áƒœáƒ˜áƒ¡ მáƒáƒ¨áƒáƒ ებáƒ" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "" @@ -11011,10 +11070,20 @@ msgid "Add Preload Node" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "" @@ -11040,6 +11109,11 @@ msgstr "" #: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Disconnect Nodes" +msgstr "კáƒáƒ•áƒ¨áƒ˜áƒ ის გáƒáƒ¬áƒ§áƒ•áƒ”ტáƒ" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Connect Node Data" msgstr "კვáƒáƒœáƒ«áƒ—áƒáƒœ დáƒáƒ™áƒáƒ•áƒ¨áƒ˜áƒ ებáƒ:" @@ -11073,6 +11147,27 @@ msgid "Paste VisualScript Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function with a function node." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Create Function" +msgstr "áƒáƒ®áƒáƒšáƒ˜ %s შექმნáƒ" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "" @@ -11097,16 +11192,13 @@ msgid "Make Tool:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" -msgstr "" +#, fuzzy +msgid "function_name" +msgstr "ფუნქციები:" #: modules/visual_script/visual_script_editor.cpp msgid "Select or create a function to edit its graph." @@ -11129,6 +11221,15 @@ msgid "Cut Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Make Function" +msgstr "ფუნქციები:" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Refresh Graph" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Edit Member" msgstr "" @@ -11223,6 +11324,10 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "" @@ -11324,6 +11429,10 @@ msgid "Required icon is not specified in the preset." msgstr "" #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "" @@ -11868,10 +11977,6 @@ msgid "" "texture to some node for display." msgstr "" -#: scene/resources/visual_shader.cpp -msgid "Input" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp #, fuzzy msgid "Invalid source for preview." @@ -11959,9 +12064,6 @@ msgstr "" #~ msgid "Move Anim Track Down" #~ msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ თრექის ქვემáƒáƒ— გáƒáƒ“áƒáƒáƒ“გილებáƒ" -#~ msgid "Set Transitions to:" -#~ msgstr "დáƒáƒ§áƒ”ნდეს გáƒáƒ“áƒáƒ¡áƒ•áƒšáƒ”ბი შემდეგზე:" - #~ msgid "Anim Track Rename" #~ msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ თრექის გáƒáƒ“áƒáƒ ქმევáƒ" diff --git a/editor/translations/ko.po b/editor/translations/ko.po index 77226cff26..d2e68e1d71 100644 --- a/editor/translations/ko.po +++ b/editor/translations/ko.po @@ -13,11 +13,12 @@ # JY <yimjisoo@mailfence.com>, 2018. # Ch. <ccwpc@hanmail.net>, 2018. # moolow <copyhyeon@gmail.com>, 2019. +# Jiyoon Kim <kimjiy@dickinson.edu>, 2019. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-09-13 16:50+0000\n" +"PO-Revision-Date: 2019-10-29 12:49+0000\n" "Last-Translator: ì†¡íƒœì„ <xotjq237@gmail.com>\n" "Language-Team: Korean <https://hosted.weblate.org/projects/godot-engine/" "godot/ko/>\n" @@ -26,13 +27,13 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 3.9-dev\n" +"X-Generator: Weblate 3.9.1\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Invalid type argument to convert(), use TYPE_* constants." msgstr "" -"convert()를 사용하기 위한 ì¸ìˆ˜ ìœ í˜•ì´ ìž˜ëª»ë˜ì—ˆì–´ìš”, TYPE_* ìƒìˆ˜ë¥¼ 사용하세요." +"conver() ë©”ì„œë“œì˜ ì¸ìˆ˜ íƒ€ìž…ì´ ìž˜ 못ë˜ì—ˆìŠµë‹ˆë‹¤, TYPE_* ìƒìˆ˜ë¥¼ 사용하세요." #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/mono/glue/gd_glue.cpp @@ -70,32 +71,31 @@ msgstr "'%s'ì„(를) 호출 ì‹œ:" #: core/ustring.cpp msgid "B" -msgstr "" +msgstr "B" #: core/ustring.cpp msgid "KiB" -msgstr "" +msgstr "KiB" #: core/ustring.cpp -#, fuzzy msgid "MiB" -msgstr "믹스" +msgstr "MiB" #: core/ustring.cpp msgid "GiB" -msgstr "" +msgstr "GiB" #: core/ustring.cpp msgid "TiB" -msgstr "" +msgstr "TiB" #: core/ustring.cpp msgid "PiB" -msgstr "" +msgstr "PiB" #: core/ustring.cpp msgid "EiB" -msgstr "" +msgstr "EiB" #: editor/animation_bezier_editor.cpp msgid "Free" @@ -361,6 +361,7 @@ msgstr "%dê°œì˜ ìƒˆ íŠ¸ëž™ì„ ë§Œë“¤ê³ í‚¤ë¥¼ ì‚½ìž…í• ê¹Œìš”?" #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "만들기" @@ -501,20 +502,9 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "ê²½ê³ : ê°€ì ¸ì˜¨ ì• ë‹ˆë©”ì´ì…˜ì„ 편집 중" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "ëª¨ë‘ ì„ íƒí•˜ê¸°" - -#: editor/animation_track_editor.cpp -msgid "Select None" -msgstr "ëª¨ë‘ ì„ íƒí•˜ì§€ 않기" - #: editor/animation_track_editor.cpp -#, fuzzy msgid "Select an AnimationPlayer node to create and edit animations." -msgstr "" -"ì• ë‹ˆë©”ì´ì…˜ì„ ê°–ê³ ìžˆëŠ” AnimationPlayer ë…¸ë“œì˜ ê²½ë¡œë¥¼ ì„¤ì •í•˜ì§€ 않았어요." +msgstr "ì• ë‹ˆë©”ì´ì…˜ì„ ë§Œë“¤ê³ íŽ¸ì§‘í•˜ë ¤ë©´ AnimationPlayer노드를 ì„ íƒí•˜ì„¸ìš”." #: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." @@ -559,11 +549,11 @@ msgstr "트랙 복사하기" #: editor/animation_track_editor.cpp msgid "Scale Selection" -msgstr "ì„ íƒ í•ëª© í¬ê¸° ì¡°ì ˆí•˜ê¸°" +msgstr "ì„ íƒ í•ëª© ê¸¸ì´ ì¡°ì ˆí•˜ê¸°" #: editor/animation_track_editor.cpp msgid "Scale From Cursor" -msgstr "커서 위치ì—ì„œ í¬ê¸° ì¡°ì ˆí•˜ê¸°" +msgstr "커서 위치ì—ì„œ ê¸¸ì´ ì¡°ì ˆí•˜ê¸°" #: editor/animation_track_editor.cpp modules/gridmap/grid_map_editor_plugin.cpp msgid "Duplicate Selection" @@ -643,10 +633,11 @@ msgstr "ì—†ì• ê¸°" #: editor/animation_track_editor.cpp msgid "Scale Ratio:" -msgstr "규모 비율:" +msgstr "ê¸¸ì´ ë¹„ìœ¨:" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" +#, fuzzy +msgid "Select Tracks to Copy" msgstr "ë³µì‚¬í• íŠ¸ëž™ì„ ì„ íƒí•˜ì„¸ìš”:" #: editor/animation_track_editor.cpp editor/editor_log.cpp @@ -658,6 +649,11 @@ msgstr "ë³µì‚¬í• íŠ¸ëž™ì„ ì„ íƒí•˜ì„¸ìš”:" msgid "Copy" msgstr "복사하기" +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Select All/None" +msgstr "ëª¨ë‘ ì„ íƒí•˜ì§€ 않기" + #: editor/animation_track_editor_plugins.cpp msgid "Add Audio Track Clip" msgstr "오디오 트랙 í´ë¦½ 추가하기" @@ -981,7 +977,7 @@ msgid "Resource" msgstr "리소스" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "경로" @@ -1249,9 +1245,8 @@ msgid "Delete Bus Effect" msgstr "버스 효과 ì‚ì œí•˜ê¸°" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Drag & drop to rearrange." -msgstr "오디오 버스, 드래그 앤 ë“œë¡ìœ¼ë¡œ 다시 ì •ë ¬í•´ìš”." +msgstr "드래그 & ë“œë¡ìœ¼ë¡œ 다시 ì •ë ¬í•´ìš”." #: editor/editor_audio_buses.cpp msgid "Solo" @@ -1284,7 +1279,7 @@ msgstr "효과 ì‚ì œí•˜ê¸°" #: editor/editor_audio_buses.cpp msgid "Audio" -msgstr "오디오" +msgstr "오디오(Audio)" #: editor/editor_audio_buses.cpp msgid "Add Audio Bus" @@ -1442,7 +1437,8 @@ msgstr "ì˜¤í† ë¡œë“œ 추가하기" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "경로:" @@ -1496,7 +1492,7 @@ msgstr "í´ë” 만들기" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "ì´ë¦„:" @@ -1672,7 +1668,7 @@ msgstr "í˜„ìž¬ì˜ ê²ƒìœ¼ë¡œ 만들기" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/version_control_editor_plugin.cpp msgid "New" -msgstr "새 것" +msgstr "새로 만들기" #: editor/editor_feature_profile.cpp editor/editor_node.cpp #: editor/project_manager.cpp @@ -1889,6 +1885,7 @@ msgid "Class:" msgstr "í´ëž˜ìŠ¤:" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "ìƒì†:" @@ -1897,9 +1894,8 @@ msgid "Inherited by:" msgstr "ìƒì†í•œ í´ëž˜ìŠ¤:" #: editor/editor_help.cpp -#, fuzzy msgid "Brief Description" -msgstr "간단한 설명:" +msgstr "간단한 설명" #: editor/editor_help.cpp msgid "Properties" @@ -1930,9 +1926,8 @@ msgid "Class Description" msgstr "í´ëž˜ìŠ¤ 설명" #: editor/editor_help.cpp -#, fuzzy msgid "Online Tutorials" -msgstr "온ë¼ì¸ íŠœí† ë¦¬ì–¼:" +msgstr "온ë¼ì¸ íŠœí† ë¦¬ì–¼" #: editor/editor_help.cpp msgid "" @@ -2055,7 +2050,7 @@ msgstr "시작" #: editor/editor_network_profiler.cpp msgid "%s/s" -msgstr "" +msgstr "%s/s" #: editor/editor_network_profiler.cpp msgid "Down" @@ -2071,19 +2066,19 @@ msgstr "노드" #: editor/editor_network_profiler.cpp msgid "Incoming RPC" -msgstr "" +msgstr "ìˆ˜ì‹ RPC" #: editor/editor_network_profiler.cpp msgid "Incoming RSET" -msgstr "" +msgstr "ìˆ˜ì‹ RSET" #: editor/editor_network_profiler.cpp msgid "Outgoing RPC" -msgstr "" +msgstr "ë°œì‹ RPC" #: editor/editor_network_profiler.cpp msgid "Outgoing RSET" -msgstr "" +msgstr "ë°œì‹ RSET" #: editor/editor_node.cpp editor/project_manager.cpp msgid "New Window" @@ -2179,8 +2174,7 @@ msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." msgstr "" -"ì”¬ì„ ì €ìž¥í• ìˆ˜ 없어요. ì¢…ì† ê´€ê³„ (ì¸ìŠ¤í„´ìŠ¤ ë˜ëŠ” ìƒì†)ê°€ 만족스럽지 않나 ë³´êµ°" -"ìš”." +"ì”¬ì„ ì €ìž¥í• ìˆ˜ 없어요. ì¢…ì† ê´€ê³„ (ì¸ìŠ¤í„´ìŠ¤ ë˜ëŠ” ìƒì†)ê°€ 만족스럽지 않나ë´ìš”." #: editor/editor_node.cpp editor/scene_tree_dock.cpp msgid "Can't overwrite scene that is still open!" @@ -2403,7 +2397,7 @@ msgstr "" #: editor/editor_node.cpp msgid "Pick a Main Scene" -msgstr "기본 씬 ê³ ë¥´ê¸°" +msgstr "ë©”ì¸ ì”¬ì„ ê³ ë¥´ì„¸ìš”" #: editor/editor_node.cpp msgid "Close Scene" @@ -2477,7 +2471,7 @@ msgid "" "You can change it later in \"Project Settings\" under the 'application' " "category." msgstr "" -"기본 ì”¬ì„ ì§€ì •í•˜ì§€ 않았네요. 하나 ì •í• ê¹Œìš”?\n" +"ë©”ì¸ ì”¬ì„ ì§€ì •í•˜ì§€ 않았네요. 하나 ì •í• ê¹Œìš”?\n" "ì´ê±´ ë‚˜ì¤‘ì— \"프로ì 트 ì„¤ì •\"ì˜ 'application' ì¹´í…Œê³ ë¦¬ì—ì„œ 바꿀 수 있어요." #: editor/editor_node.cpp @@ -2663,17 +2657,16 @@ msgid "Project Settings..." msgstr "프로ì 트 ì„¤ì •..." #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Version Control" -msgstr "ë²„ì „:" +msgstr "ë²„ì „ 컨트롤" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Set Up Version Control" -msgstr "" +msgstr "ë²„ì „ 컨트롤 설치하기" #: editor/editor_node.cpp msgid "Shut Down Version Control" -msgstr "" +msgstr "ë²„ì „ 컨트롤 종료하기" #: editor/editor_node.cpp msgid "Export..." @@ -2941,7 +2934,7 @@ msgstr "ì¸ìŠ¤íŽ™í„°" msgid "Expand Bottom Panel" msgstr "하단 íŒ¨ë„ íŽ¼ì¹˜ê¸°" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "ì¶œë ¥" @@ -2967,9 +2960,14 @@ msgid "" "the \"Use Custom Build\" option should be enabled in the Android export " "preset." msgstr "" +"\"res://android/build\"ì— ì†ŒìŠ¤ í…œí”Œë¦¿ì„ ì„¤ì¹˜í•´ì„œ, 프로ì 트를 맞춤 안드로ì´ë“œ " +"ë¹Œë“œì— ë§žê²Œ ì„¤ì •í• ê±°ì—ìš”.\n" +"그런 ë‹¤ìŒ ìˆ˜ì • 사í•ì„ ì ìš©í•˜ê³ ë§žì¶¤ APK를 만들어 내보낼 수 있어요 (모듈 추가" +"하기, AndroidManifest.xml 바꾸기 등).\n" +"미리 ë¹Œë“œëœ APK를 사용하는 ëŒ€ì‹ ë§žì¶¤ 빌드를 ë§Œë“¤ë ¤ë©´, 안드로ì´ë“œ 내보내기 프" +"리셋ì—ì„œ \"맞춤 빌드 사용하기\" ì„¤ì •ì„ ì¼œ 놓아야 í•´ìš”." #: editor/editor_node.cpp -#, fuzzy msgid "" "The Android build template is already installed in this project and it won't " "be overwritten.\n" @@ -2977,7 +2975,7 @@ msgid "" "operation again." msgstr "" "안드로ì´ë“œ 빌드 í…œí”Œë¦¿ì„ ì´ë¯¸ 설치한 ë°ë‹¤ê°€ ë®ì–´ 쓸 수 없네요.\n" -"ì´ ëª…ë ¹ì„ ë‹¤ì‹œ 실행하기 ì „ì— ìˆ˜ë™ìœ¼ë¡œ \"build\" ë””ë ‰í† ë¦¬ë¥¼ ì‚ì œí•˜ì„¸ìš”." +"ì´ ëª…ë ¹ì„ ë‹¤ì‹œ 실행하기 ì „ì— \"res://android/build\" ë””ë ‰í† ë¦¬ë¥¼ ì‚ì œí•˜ì„¸ìš”." #: editor/editor_node.cpp msgid "Import Templates From ZIP File" @@ -3040,9 +3038,8 @@ msgid "Open the previous Editor" msgstr "ì´ì „ 편집기 열기" #: editor/editor_path.cpp -#, fuzzy msgid "No sub-resources found." -msgstr "표면 소스를 ì§€ì •í•˜ì§€ 않았네요." +msgstr "하위 리소스를 ì°¾ì„ ìˆ˜ 없어요." #: editor/editor_plugin.cpp msgid "Creating Mesh Previews" @@ -3053,9 +3050,8 @@ msgid "Thumbnail..." msgstr "ì¸ë„¤ì¼..." #: editor/editor_plugin_settings.cpp -#, fuzzy msgid "Main Script:" -msgstr "스í¬ë¦½íŠ¸ 열기:" +msgstr "기본 스í¬ë¦½íŠ¸:" #: editor/editor_plugin_settings.cpp msgid "Edit Plugin" @@ -3188,13 +3184,17 @@ msgstr "ë·°í¬íŠ¸ ì„ íƒí•˜ê¸°" msgid "New Script" msgstr "새 스í¬ë¦½íŠ¸" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +msgid "Extend Script" +msgstr "스í¬ë¦½íŠ¸ 펼치기" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "새 %s" #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Make Unique" -msgstr "ê³ ìœ í•˜ê²Œ 만들기" +msgstr "ìœ ì¼í•˜ê²Œ 만들기" #: editor/editor_properties.cpp #: editor/plugins/animation_blend_space_1d_editor.cpp @@ -3214,13 +3214,6 @@ msgstr "붙여넣기" msgid "Convert To %s" msgstr "%s(으)ë¡œ 변환하기" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Open Editor" -msgstr "편집기 열기" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "ì„ íƒëœ 노드는 ë·°í¬íŠ¸ê°€ 아닙니다!" @@ -3759,7 +3752,7 @@ msgstr "그룹 ì‚ì œí•˜ê¸°" #: editor/groups_editor.cpp editor/node_dock.cpp msgid "Groups" -msgstr "그룹" +msgstr "그룹(Group)" #: editor/groups_editor.cpp msgid "Nodes Not in Group" @@ -3880,7 +3873,6 @@ msgid "Import As:" msgstr "ë‹¤ìŒ í˜•ì‹ìœ¼ë¡œ ê°€ì ¸ì˜¤ê¸°:" #: editor/import_dock.cpp -#, fuzzy msgid "Preset" msgstr "프리셋" @@ -4008,7 +4000,7 @@ msgstr "í”ŒëŸ¬ê·¸ì¸ ì´ë¦„:" msgid "Subfolder:" msgstr "하위 í´ë”:" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "언어:" @@ -4148,6 +4140,12 @@ msgstr "ì " #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Open Editor" +msgstr "편집기 열기" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp msgid "Open Animation Node" msgstr "ì• ë‹ˆë©”ì´ì…˜ 노드 열기" @@ -4401,7 +4399,7 @@ msgstr "ì• ë‹ˆë©”ì´ì…˜ 위치 (ì´ˆ)." #: editor/plugins/animation_player_editor_plugin.cpp msgid "Scale animation playback globally for the node." -msgstr "ë…¸ë“œì— ëŒ€í•œ ì• ë‹ˆë©”ì´ì…˜ ìž¬ìƒ ê·œëª¨ë¥¼ ì „ì²´ì 으로 ì¡°ì ˆí•˜ê¸°." +msgstr "ë…¸ë“œì˜ ì• ë‹ˆë©”ì´ì…˜ ìž¬ìƒ ê¸¸ì´ë¥¼ ì „ì²´ì 으로 ì¡°ì ˆí•˜ê¸°." #: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Tools" @@ -4410,7 +4408,7 @@ msgstr "ì• ë‹ˆë©”ì´ì…˜ ë„구" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Animation" -msgstr "ì• ë‹ˆë©”ì´ì…˜" +msgstr "ì• ë‹ˆë©”ì´ì…˜(Animation)" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Edit Transitions..." @@ -4492,7 +4490,6 @@ msgstr "ì• ë‹ˆë©”ì´ì…˜ ì´ë¦„:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "오류!" @@ -4608,7 +4605,7 @@ msgstr "새 ì´ë¦„:" #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/multimesh_editor_plugin.cpp msgid "Scale:" -msgstr "규모:" +msgstr "í¬ê¸°:" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Fade In (s):" @@ -4664,6 +4661,8 @@ msgid "Current:" msgstr "현재:" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "ìž…ë ¥ 추가하기" @@ -4868,6 +4867,10 @@ msgid "All" msgstr "모ë‘" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp msgid "Import..." msgstr "ê°€ì ¸ì˜¤ê¸°..." @@ -5087,7 +5090,7 @@ msgstr "IK ì²´ì¸ ì§€ìš°ê¸°" msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." -msgstr "ê²½ê³ : 컨테ì´ë„ˆì˜ ìžì‹ 규모와 위치는 ë¶€ëª¨ì— ì˜í•´ ê²°ì •ë˜ìš”." +msgstr "ê²½ê³ : 컨테ì´ë„ˆì˜ ìžì‹ 규모와 위치는 ë¶€ëª¨ì— ì˜í•´ ê²°ì •ë˜ì–´ìš”." #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp @@ -5129,7 +5132,7 @@ msgstr "íšŒì „ 모드" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp msgid "Scale Mode" -msgstr "규모 모드" +msgstr "í¬ê¸° ì¡°ì ˆ 모드" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -5149,26 +5152,32 @@ msgid "Pan Mode" msgstr "팬 모드" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Ruler Mode" -msgstr "실행 모드:" +msgstr "ìž ëª¨ë“œ" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Toggle snapping." +#, fuzzy +msgid "Toggle smart snapping." msgstr "스냅 í† ê¸€." #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +#, fuzzy +msgid "Use Smart Snap" msgstr "스냅 사용하기" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snapping Options" -msgstr "스냅 ì„¤ì •" +#, fuzzy +msgid "Toggle grid snapping." +msgstr "스냅 í† ê¸€." + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Use Grid Snap" +msgstr "ê²©ìž ìŠ¤ëƒ…" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to Grid" -msgstr "격ìžì— 스냅" +msgid "Snapping Options" +msgstr "스냅 ì„¤ì •" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Rotation Snap" @@ -5257,8 +5266,8 @@ msgid "View" msgstr "보기" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +#, fuzzy +msgid "Always Show Grid" msgstr "ê²©ìž ë³´ê¸°" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5287,11 +5296,11 @@ msgstr "그룹과 ìž ê¸ˆ ì•„ì´ì½˜ ë³´ì´ê¸°" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Selection" -msgstr "ì„ íƒ í•ëª© 화면 ì¤‘ì•™ì— í‘œì‹œí•˜ê¸°" +msgstr "ì„ íƒ í•ëª© 중앙으로" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Frame Selection" -msgstr "ì„ íƒ í•ëª© 화면 꽉 차게 표시하기" +msgstr "ì„ íƒ í•ëª© ì „ì²´ 화면으로" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Preview Canvas Scale" @@ -5307,7 +5316,7 @@ msgstr "키를 삽입하기 위한 íšŒì „ 마스í¬." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Scale mask for inserting keys." -msgstr "키를 삽입하기 위한 규모 마스í¬." +msgstr "키를 삽입하기 위한 í¬ê¸° ì¡°ì ˆ 마스í¬." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Insert keys (based on mask)." @@ -5524,6 +5533,11 @@ msgstr "커브 ì„ í˜• 탄ì 트 í† ê¸€" msgid "Hold Shift to edit tangents individually" msgstr "Shift키를 눌러서 탄ì 트를 개별ì 으로 편집하기" +#: editor/plugins/curve_editor_plugin.cpp +#, fuzzy +msgid "Right click to add point" +msgstr "ìš°í´ë¦: ì ì‚ì œí•˜ê¸°" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "GI 프로브 굽기" @@ -6158,6 +6172,10 @@ msgid "Grid" msgstr "격ìž" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "ê²©ìž ë³´ê¸°" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Configure Grid:" msgstr "ê²©ìž ì„¤ì •:" @@ -6214,6 +6232,7 @@ msgstr "ì¸ìŠ¤í„´ìŠ¤:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "ìœ í˜•:" @@ -6312,6 +6331,11 @@ msgid "Find Next" msgstr "ë‹¤ìŒ ì°¾ê¸°" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "ì´ì „ 찾기" + +#: editor/plugins/script_editor_plugin.cpp msgid "Filter scripts" msgstr "스í¬ë¦½íŠ¸ í•„í„°" @@ -6581,6 +6605,11 @@ msgstr "중단ì " msgid "Cut" msgstr "잘ë¼ë‚´ê¸°" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "ëª¨ë‘ ì„ íƒí•˜ê¸°" + #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "í–‰ ì‚ì œí•˜ê¸°" @@ -6638,10 +6667,6 @@ msgid "Auto Indent" msgstr "ìžë™ 들여쓰기" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "ì´ì „ 찾기" - -#: editor/plugins/script_text_editor.cpp msgid "Find in Files..." msgstr "파ì¼ì—ì„œ 찾기..." @@ -6963,6 +6988,11 @@ msgid "Freelook Speed Modifier" msgstr "ìžìœ ì‹œì ì†ë„ ìˆ˜ì •ìž" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Freelook Slow Modifier" +msgstr "ìžìœ ì‹œì ì†ë„ ìˆ˜ì •ìž" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -7001,6 +7031,10 @@ msgid "Use Local Space" msgstr "로컬 스페ì´ìŠ¤ 사용하기" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "스냅 사용하기" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "하단 ë·°" @@ -7227,6 +7261,11 @@ msgid "Simplification: " msgstr "단순화: " #: editor/plugins/sprite_editor_plugin.cpp +#, fuzzy +msgid "Shrink (Pixels): " +msgstr "성장 (픽셀): " + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "성장 (픽셀): " @@ -7275,9 +7314,8 @@ msgid "(empty)" msgstr "(비었ìŒ)" #: editor/plugins/sprite_frames_editor_plugin.cpp -#, fuzzy msgid "Move Frame" -msgstr "í”„ë ˆìž„ 붙여넣기" +msgstr "í”„ë ˆìž„ ì´ë™í•˜ê¸°" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Animations:" @@ -7594,13 +7632,12 @@ msgid "Enable Priority" msgstr "ìš°ì„ ìˆœìœ„ 편집" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Filter tiles" -msgstr "íŒŒì¼ í•„í„°..." +msgstr "íƒ€ì¼ í•„í„°" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Give a TileSet resource to this TileMap to use its tiles." -msgstr "" +msgstr "타ì¼ì„ ì‚¬ìš©í•˜ë ¤ë©´ ì´ TileMapì—게 TileSet 리소스를 주세요." #: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" @@ -7738,6 +7775,7 @@ msgstr "íƒ€ì¼ ì´ë¦„ ë³´ì´ê¸° (Alt키를 누르세요)" msgid "" "Add or select a texture on the left panel to edit the tiles bound to it." msgstr "" +"타ì¼ì„ ê²½ê³„ì— ë§žê²Œ íŽ¸ì§‘í•˜ë ¤ë©´ 왼쪽 패ë„ì—ì„œ í…스처를 추가하거나 ì„ íƒí•˜ì„¸ìš”." #: editor/plugins/tile_set_editor_plugin.cpp msgid "Remove selected texture? This will remove all tiles which use it." @@ -7911,92 +7949,80 @@ msgid "TileSet" msgstr "타ì¼ì…‹" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "No VCS addons are available." -msgstr "ë…¸ë“œì˜ ë¶€ëª¨ ì´ë¦„ (사용 가능한 경우)" +msgstr "ì´ìš©í• 수 있는 ë²„ì „ 관리 시스템(VCS)ì´ ì—†ì–´ìš”." #: editor/plugins/version_control_editor_plugin.cpp editor/rename_dialog.cpp msgid "Error" msgstr "오류" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "No commit message was provided" -msgstr "ì´ë¦„ì´ ì§€ì •ë˜ì§€ ì•ŠìŒ" +msgstr "커밋 메시지를 ì œê³µí•˜ì§€ 않았어요" #: editor/plugins/version_control_editor_plugin.cpp msgid "No files added to stage" -msgstr "" +msgstr "스테ì´ì§€ì— ì¶”ê°€ëœ íŒŒì¼ì´ 없어요" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Commit" -msgstr "커뮤니티" +msgstr "커밋" #: editor/plugins/version_control_editor_plugin.cpp msgid "VCS Addon is not initialized" -msgstr "" +msgstr "ë²„ì „ 관리 시스템(VCS)ì´ ì´ˆê¸°í™”ë˜ì§€ 않았어요" #: editor/plugins/version_control_editor_plugin.cpp msgid "Version Control System" -msgstr "" +msgstr "ë²„ì „ 관리 시스템" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Initialize" -msgstr "대문ìžë¡œ 시작하기" +msgstr "초기화" #: editor/plugins/version_control_editor_plugin.cpp msgid "Staging area" -msgstr "" +msgstr "스테ì´ì§• ì˜ì—" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Detect new changes" -msgstr "새로운 사ê°í˜• 만들기." +msgstr "새 변경 ì‚¬í• ê°ì§€" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Changes" -msgstr "변경하기" +msgstr "변경 사í•" #: editor/plugins/version_control_editor_plugin.cpp msgid "Modified" -msgstr "" +msgstr "ìˆ˜ì •ë¨" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Renamed" -msgstr "ì´ë¦„ 바꾸기" +msgstr "ì´ë¦„ 변경ë¨" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Deleted" -msgstr "ì‚ì œí•˜ê¸°" +msgstr "ì‚ì œë¨" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Typechange" -msgstr "변경하기" +msgstr "타입체ì¸ì§€" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Stage Selected" -msgstr "ì„ íƒ í•ëª© ì‚ì œí•˜ê¸°" +msgstr "ì„ íƒ í•ëª© 스테ì´ì§€ë¡œ 보내기" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Stage All" -msgstr "ëª¨ë‘ ì €ìž¥í•˜ê¸°" +msgstr "ëª¨ë‘ ìŠ¤í…Œì´ì§€ë¡œ 보내기" #: editor/plugins/version_control_editor_plugin.cpp msgid "Add a commit message" -msgstr "" +msgstr "커밋 메시지 추가하기" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Commit Changes" -msgstr "스í¬ë¦½íŠ¸ 변경 ì‚¬í• ë™ê¸°í™”하기" +msgstr "커밋 변경 사í•" #: editor/plugins/version_control_editor_plugin.cpp #: modules/gdnative/gdnative_library_singleton_editor.cpp @@ -8005,27 +8031,23 @@ msgstr "ìƒíƒœ" #: editor/plugins/version_control_editor_plugin.cpp msgid "View file diffs before committing them to the latest version" -msgstr "" +msgstr "ìµœì‹ ë²„ì „ìœ¼ë¡œ 커밋하기 ì „ì— íŒŒì¼ diff 보기" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "No file diff is active" -msgstr "파ì¼ì´ ì„ íƒë˜ì§€ 않았습니다!" +msgstr "íŒŒì¼ diffê°€ ì¼œì ¸ 있지 ì•Šì•„ìš”" #: editor/plugins/version_control_editor_plugin.cpp msgid "Detect changes in file diff" -msgstr "" +msgstr "íŒŒì¼ diffì—ì„œ ê°ì§€í•œ 변경 사í•" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "(GLES3 only)" msgstr "(GLES3만 가능)" #: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add input +" -msgstr "ìž…ë ¥ 추가하기 +" - -#: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add output +" +#, fuzzy +msgid "Add Output" msgstr "ì¶œë ¥ 추가하기 +" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -8041,6 +8063,11 @@ msgid "Boolean" msgstr "불리언" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Sampler" +msgstr "샘플" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add input port" msgstr "ìž…ë ¥ í¬íŠ¸ 추가하기" @@ -8250,10 +8277,9 @@ msgid "" msgstr "불리언 ê°’ì´ ì°¸ì´ê±°ë‚˜ 거짓ì´ë©´ ê´€ë ¨ 벡터를 반환해요." #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "" "Returns an associated scalar if the provided boolean value is true or false." -msgstr "불리언 ê°’ì´ ì°¸ì´ê±°ë‚˜ 거짓ì´ë©´ ê´€ë ¨ 벡터를 반환해요." +msgstr "불리언 ê°’ì´ ì°¸ì´ê±°ë‚˜ 거짓ì´ë©´ ê´€ë ¨ 스칼ë¼ë¥¼ 반환해요." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the boolean result of the comparison between two parameters." @@ -8946,13 +8972,17 @@ msgid "Resources to export:" msgstr "내보낼 리소스:" #: editor/project_export.cpp +#, fuzzy msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "리소스가 ì•„ë‹Œ íŒŒì¼ ë‚´ë³´ë‚´ê¸° í•„í„° (쉼표로 구분, 예: *.json, *.txt)" #: editor/project_export.cpp +#, fuzzy msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "프로ì 트ì—ì„œ ì œì™¸ì‹œí‚¬ íŒŒì¼ í•„í„° (쉼표로 구분, 예: *.json, *.txt)" #: editor/project_export.cpp @@ -9247,8 +9277,8 @@ msgid "" "Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" -"프로ì 트를 ì‹¤í–‰í• ìˆ˜ ì—†ìŒ: 기본 ì”¬ì„ ì •ì˜í•˜ì§€ 않았어요.\n" -"프로ì 트를 íŽ¸ì§‘í•˜ê³ í”„ë¡œì 트 ì„¤ì •ì˜ \"Application\" ì¹´í…Œê³ ë¦¬ì—ì„œ 기본 ì”¬ì„ ì„¤" +"프로ì 트를 ì‹¤í–‰í• ìˆ˜ ì—†ìŒ: ë©”ì¸ ì”¬ì„ ì •ì˜í•˜ì§€ 않았어요.\n" +"프로ì 트를 íŽ¸ì§‘í•˜ê³ í”„ë¡œì 트 ì„¤ì •ì˜ \"Application\" ì¹´í…Œê³ ë¦¬ì—ì„œ ë©”ì¸ ì”¬ì„ ì„¤" "ì •í•´ì£¼ì„¸ìš”." #: editor/project_manager.cpp @@ -9476,7 +9506,7 @@ msgstr "ì´ë²¤íŠ¸ 추가하기" #: editor/project_settings_editor.cpp msgid "Button" -msgstr "버튼" +msgstr "Button" #: editor/project_settings_editor.cpp msgid "Left Button." @@ -9538,9 +9568,8 @@ msgid "Settings saved OK." msgstr "ì„¤ì • ì €ìž¥ 완료." #: editor/project_settings_editor.cpp -#, fuzzy msgid "Moved Input Action Event" -msgstr "ìž…ë ¥ ì•¡ì…˜ ì´ë²¤íŠ¸ 추가하기" +msgstr "ìž…ë ¥ ì•¡ì…˜ ì´ë²¤íŠ¸ ì´ë™í•¨" #: editor/project_settings_editor.cpp msgid "Override for Feature" @@ -9676,7 +9705,7 @@ msgstr "ì˜¤í† ë¡œë“œ" #: editor/project_settings_editor.cpp msgid "Plugins" -msgstr "플러그ì¸" +msgstr "플러그ì¸(Plugin)" #: editor/property_editor.cpp msgid "Preset..." @@ -9876,11 +9905,11 @@ msgstr "현재 씬" #: editor/run_settings_dialog.cpp msgid "Main Scene" -msgstr "기본 씬" +msgstr "ë©”ì¸ ì”¬" #: editor/run_settings_dialog.cpp msgid "Main Scene Arguments:" -msgstr "기본 씬 ì¸ìˆ˜:" +msgstr "ë©”ì¸ ì”¬ ì¸ìˆ˜:" #: editor/run_settings_dialog.cpp msgid "Scene Run Settings" @@ -9905,9 +9934,8 @@ msgid "Instance Scene(s)" msgstr "씬 ì¸ìŠ¤í„´ìŠ¤" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Replace with Branch Scene" -msgstr "분기를 다른 씬으로 ì €ìž¥" +msgstr "분기 씬으로 êµì²´í•˜ê¸°" #: editor/scene_tree_dock.cpp msgid "Instance Child Scene" @@ -9951,23 +9979,20 @@ msgid "Make node as Root" msgstr "노드를 루트로 만들기" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete %d nodes?" -msgstr "노드 ì‚ì œí•˜ê¸°" +msgstr "%dê°œì˜ ë…¸ë“œë¥¼ ì‚ì œí• ê¹Œìš”?" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete the root node \"%s\"?" -msgstr "ì…°ì´ë” 그래프 노드 ì‚ì œ" +msgstr "루트 노드 \"%s\"ì„(를) ì‚ì œí• ê¹Œìš”?" #: editor/scene_tree_dock.cpp msgid "Delete node \"%s\" and its children?" -msgstr "" +msgstr "노드 \"%s\"와(ê³¼) ìžì‹ì„ ì‚ì œí• ê¹Œìš”?" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete node \"%s\"?" -msgstr "노드 ì‚ì œí•˜ê¸°" +msgstr "노드 \"%s\"ì„(를) ì‚ì œí• ê¹Œìš”?" #: editor/scene_tree_dock.cpp msgid "Can not perform with the root node." @@ -9989,12 +10014,12 @@ msgstr "" "\"editable_instance\"를 ë„게 ë˜ë©´ ë…¸ë“œì˜ ëª¨ë“ ì†ì„±ì´ 기본 값으로 ë˜ëŒì•„와요." #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "ìžì‹ë…¸ë“œ 편집 가능" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" -msgstr "ìžë¦¬ 표시ìžë¡œ 불러오기" +#, fuzzy +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." +msgstr "" +"\"editable_instance\"를 ë„게 ë˜ë©´ ë…¸ë“œì˜ ëª¨ë“ ì†ì„±ì´ 기본 값으로 ë˜ëŒì•„와요." #: editor/scene_tree_dock.cpp msgid "Make Local" @@ -10068,6 +10093,14 @@ msgid "Clear Inheritance" msgstr "ìƒì† 지우기" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "ìžì‹ë…¸ë“œ 편집 가능" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "ìžë¦¬ 표시ìžë¡œ 불러오기" + +#: editor/scene_tree_dock.cpp msgid "Open Documentation" msgstr "문서 열기" @@ -10084,10 +10117,6 @@ msgid "Change Type" msgstr "ìœ í˜• 바꾸기" #: editor/scene_tree_dock.cpp -msgid "Extend Script" -msgstr "스í¬ë¦½íŠ¸ 펼치기" - -#: editor/scene_tree_dock.cpp msgid "Reparent to New Node" msgstr "새 ë…¸ë“œì— ë¶€ëª¨ 노드 다시 ì§€ì •í•˜ê¸°" @@ -10327,23 +10356,18 @@ msgid "Will load an existing script file." msgstr "기존 스í¬ë¦½íŠ¸ 파ì¼ì„ 불러와요." #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "언어" - -#: editor/script_create_dialog.cpp -msgid "Inherits" -msgstr "ìƒì†" - -#: editor/script_create_dialog.cpp -msgid "Class Name" +#, fuzzy +msgid "Class Name:" msgstr "í´ëž˜ìŠ¤ ì´ë¦„" #: editor/script_create_dialog.cpp -msgid "Template" +#, fuzzy +msgid "Template:" msgstr "템플릿" #: editor/script_create_dialog.cpp -msgid "Built-in Script" +#, fuzzy +msgid "Built-in Script:" msgstr "내장 스í¬ë¦½íŠ¸" #: editor/script_create_dialog.cpp @@ -10359,7 +10383,6 @@ msgid "Bytes:" msgstr "ë°”ì´íŠ¸:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Warning:" msgstr "ê²½ê³ :" @@ -10368,29 +10391,24 @@ msgid "Error:" msgstr "ì—러:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Error" -msgstr "복사하기 오류" +msgstr "C++ 오류" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Error:" -msgstr "ì—러:" +msgstr "C++ 오류:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Source" -msgstr "소스" +msgstr "C++ 소스" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Source:" -msgstr "소스" +msgstr "소스:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Source:" -msgstr "소스" +msgstr "C++ 소스:" #: editor/script_editor_debugger.cpp msgid "Stack Trace" @@ -10401,18 +10419,16 @@ msgid "Errors" msgstr "오류" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Child process connected." -msgstr "ìžì‹ 프로세스 ì—°ê²°ë¨" +msgstr "ìžì‹ 프로세스 ì—°ê²°ë¨." #: editor/script_editor_debugger.cpp msgid "Copy Error" msgstr "복사하기 오류" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Skip Breakpoints" -msgstr "중단ì " +msgstr "중단ì 넘기기" #: editor/script_editor_debugger.cpp msgid "Inspect Previous Instance" @@ -10431,9 +10447,8 @@ msgid "Profiler" msgstr "프로파ì¼ëŸ¬" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Network Profiler" -msgstr "프로필 내보내기" +msgstr "ë„¤íŠ¸ì›Œí¬ í”„ë¡œíŒŒì¼ëŸ¬" #: editor/script_editor_debugger.cpp msgid "Monitor" @@ -10657,7 +10672,7 @@ msgstr "GDNative" #: modules/gdscript/gdscript_functions.cpp msgid "Expected a string of length 1 (a character)." -msgstr "" +msgstr "길ì´ê°€ 1ì¸ ë¬¸ìžì—´ (문ìž)ì´ í•„ìš”í•´ìš”." #: modules/gdscript/gdscript_functions.cpp msgid "Step argument is zero!" @@ -10812,13 +10827,12 @@ msgid "Pick Distance:" msgstr "거리 ì„ íƒí•˜ê¸°:" #: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "Filter meshes" -msgstr "메서드 í•„í„°" +msgstr "메시 í•„í„°" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Give a MeshLibrary resource to this GridMap to use its meshes." -msgstr "" +msgstr "메시를 ì‚¬ìš©í•˜ë ¤ë©´ ì´ GridMapì— MeshLibrary 리소스를 주세요." #: modules/mono/csharp_script.cpp msgid "Class name can't be a reserved keyword" @@ -10994,6 +11008,11 @@ msgid "Add Function" msgstr "함수 추가하기" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Delete input port" +msgstr "ìž…ë ¥ í¬íŠ¸ ì‚ì œí•˜ê¸°" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "변수 추가하기" @@ -11002,6 +11021,26 @@ msgid "Add Signal" msgstr "ì‹œê·¸ë„ ì¶”ê°€í•˜ê¸°" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Input Port" +msgstr "ìž…ë ¥ í¬íŠ¸ 추가하기" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Output Port" +msgstr "ì¶œë ¥ í¬íŠ¸ 추가하기" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Input Port" +msgstr "ìž…ë ¥ í¬íŠ¸ ì‚ì œí•˜ê¸°" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Output Port" +msgstr "ì¶œë ¥ í¬íŠ¸ ì‚ì œí•˜ê¸°" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "í‘œí˜„ì‹ ë°”ê¾¸ê¸°" @@ -11046,10 +11085,20 @@ msgid "Add Preload Node" msgstr "Preload 노드 추가하기" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "트리ì—ì„œ 노드 추가하기" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "Getter ì†ì„± 추가하기" @@ -11074,6 +11123,11 @@ msgid "Connect Nodes" msgstr "노드 연결하기" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Disconnect Nodes" +msgstr "그래프 노드 ì—°ê²° í•´ì œ" + +#: modules/visual_script/visual_script_editor.cpp msgid "Connect Node Data" msgstr "노드 ë°ì´í„° 연결하기" @@ -11106,6 +11160,28 @@ msgid "Paste VisualScript Nodes" msgstr "비주얼 스í¬ë¦½íŠ¸ 노드 붙여넣기" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Can't create function with a function node." +msgstr "함수 노드를 ë³µì‚¬í• ìˆ˜ 없어요." + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Create Function" +msgstr "함수명 바꾸기" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "함수 ì‚ì œí•˜ê¸°" @@ -11126,21 +11202,17 @@ msgid "Editing Signal:" msgstr "ì‹œê·¸ë„ íŽ¸ì§‘í•˜ê¸°:" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Make Tool:" -msgstr "로컬로 만들기" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "기본 ìœ í˜•:" +msgstr "ë„구 만들기:" #: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "멤버:" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" -msgstr "사용 가능한 노드:" +#, fuzzy +msgid "function_name" +msgstr "함수:" #: modules/visual_script/visual_script_editor.cpp msgid "Select or create a function to edit its graph." @@ -11163,6 +11235,16 @@ msgid "Cut Nodes" msgstr "노드 잘ë¼ë‚´ê¸°" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Make Function" +msgstr "함수명 바꾸기" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Refresh Graph" +msgstr "ìƒˆë¡œê³ ì¹¨" + +#: modules/visual_script/visual_script_editor.cpp msgid "Edit Member" msgstr "멤버 편집하기" @@ -11259,6 +11341,10 @@ msgid "The package must have at least one '.' separator." msgstr "패키지는 ì ì–´ë„ í•˜ë‚˜ì˜ '.' 분리 기호가 있어야 í•´ìš”." #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "목ë¡ì—ì„œ 기기를 ì„ íƒí•˜ì„¸ìš”" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "ADB 실행 파ì¼ì„ 편집기 ì„¤ì •ì—ì„œ ì„¤ì •í•˜ì§€ 않았어요." @@ -11279,12 +11365,11 @@ msgid "Invalid Android SDK path for custom build in Editor Settings." msgstr "편집기 ì„¤ì •ì—ì„œ 맞춤 ë¹Œë“œì— ìž˜ëª»ëœ ì•ˆë“œë¡œì´ë“œ SDK 경로ì´ì—ìš”." #: platform/android/export/export.cpp -#, fuzzy msgid "" "Android build template not installed in the project. Install it from the " "Project menu." msgstr "" -"컴파ì¼í•˜ê¸° 위한 안드로ì´ë“œ 프로ì 트를 설치하지 않았어요. 편집기 메뉴ì—ì„œ 설치" +"프로ì íŠ¸ì— ì•ˆë“œë¡œì´ë“œ 빌드 í…œí”Œë¦¿ì„ ì„¤ì¹˜í•˜ì§€ 않았네요. 프로ì 트 메뉴ì—ì„œ 설치" "하세요." #: platform/android/export/export.cpp @@ -11369,6 +11454,10 @@ msgid "Required icon is not specified in the preset." msgstr "요구하는 ì•„ì´ì½˜ì„ 프리셋ì—ì„œ ì§€ì •í•˜ì§€ 않았어요." #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "브ë¼ìš°ì €ì—ì„œ 실행하기" @@ -12006,10 +12095,6 @@ msgstr "" "ìš°, í™”ë©´ì— í‘œì‹œí•˜ê¸° 위해서는 RenderTarget으로 ì„¤ì •í•˜ê³ ë‚´ë¶€ì ì¸ í…스처를 다" "른 ë…¸ë“œì— ì§€ì •í•´ì•¼ í•´ìš”." -#: scene/resources/visual_shader.cpp -msgid "Input" -msgstr "ìž…ë ¥" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for preview." msgstr "미리 ë³´ê¸°ì— ìž˜ëª»ëœ ì†ŒìŠ¤." @@ -12038,6 +12123,27 @@ msgstr "Varyings는 ì˜¤ì§ ê¼ì§“ì 함수ì—서만 ì§€ì •í• ìˆ˜ 있어요." msgid "Constants cannot be modified." msgstr "ìƒìˆ˜ëŠ” ìˆ˜ì •í• ìˆ˜ 없어요." +#~ msgid "Snap to Grid" +#~ msgstr "격ìžì— 스냅" + +#~ msgid "Add input +" +#~ msgstr "ìž…ë ¥ 추가하기 +" + +#~ msgid "Language" +#~ msgstr "언어" + +#~ msgid "Inherits" +#~ msgstr "ìƒì†" + +#~ msgid "Base Type:" +#~ msgstr "기본 ìœ í˜•:" + +#~ msgid "Available Nodes:" +#~ msgstr "사용 가능한 노드:" + +#~ msgid "Input" +#~ msgstr "ìž…ë ¥" + #~ msgid "Properties:" #~ msgstr "ì†ì„±:" @@ -12423,9 +12529,6 @@ msgstr "ìƒìˆ˜ëŠ” ìˆ˜ì •í• ìˆ˜ 없어요." #~ msgid "Go to parent folder" #~ msgstr "부모 í´ë”ë¡œ ì´ë™" -#~ msgid "Select device from the list" -#~ msgstr "목ë¡ì—ì„œ 기기를 ì„ íƒí•˜ì„¸ìš”" - #~ msgid "Open Scene(s)" #~ msgstr "씬(들) 열기" @@ -12661,9 +12764,6 @@ msgstr "ìƒìˆ˜ëŠ” ìˆ˜ì •í• ìˆ˜ 없어요." #~ msgid "Warning" #~ msgstr "ê²½ê³ " -#~ msgid "Function:" -#~ msgstr "함수:" - #~ msgid "Variable" #~ msgstr "변수" @@ -12730,9 +12830,6 @@ msgstr "ìƒìˆ˜ëŠ” ìˆ˜ì •í• ìˆ˜ 없어요." #~ msgid "Connect Graph Nodes" #~ msgstr "그래프 노드 ì—°ê²°" -#~ msgid "Disconnect Graph Nodes" -#~ msgstr "그래프 노드 ì—°ê²° í•´ì œ" - #~ msgid "Remove Shader Graph Node" #~ msgstr "ì…°ì´ë” 그래프 노드 ì‚ì œ" @@ -13820,9 +13917,6 @@ msgstr "ìƒìˆ˜ëŠ” ìˆ˜ì •í• ìˆ˜ 없어요." #~ msgid "Group" #~ msgstr "그룹" -#~ msgid "Samples" -#~ msgstr "샘플" - #~ msgid "Sample Conversion Mode: (.wav files):" #~ msgstr "샘플 변환 모드: (.wav 파ì¼):" diff --git a/editor/translations/lt.po b/editor/translations/lt.po index 4a7551e5b2..3d9a7bdd68 100644 --- a/editor/translations/lt.po +++ b/editor/translations/lt.po @@ -372,6 +372,7 @@ msgstr "" #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "Sukurti" @@ -501,16 +502,6 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "" - -#: editor/animation_track_editor.cpp -#, fuzzy -msgid "Select None" -msgstr "Pasirinkite Nodus, kuriuos norite importuoti" - #: editor/animation_track_editor.cpp #, fuzzy msgid "Select an AnimationPlayer node to create and edit animations." @@ -651,7 +642,7 @@ msgid "Scale Ratio:" msgstr "" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" +msgid "Select Tracks to Copy" msgstr "" #: editor/animation_track_editor.cpp editor/editor_log.cpp @@ -663,6 +654,11 @@ msgstr "" msgid "Copy" msgstr "" +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Select All/None" +msgstr "Pasirinkite Nodus, kuriuos norite importuoti" + #: editor/animation_track_editor_plugins.cpp #, fuzzy msgid "Add Audio Track Clip" @@ -993,7 +989,7 @@ msgid "Resource" msgstr "" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "" @@ -1449,7 +1445,8 @@ msgstr "" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "" @@ -1503,7 +1500,7 @@ msgstr "" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "" @@ -1905,6 +1902,7 @@ msgid "Class:" msgstr "" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "" @@ -2913,7 +2911,7 @@ msgstr "" msgid "Expand Bottom Panel" msgstr "" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "" @@ -3155,6 +3153,11 @@ msgstr "" msgid "New Script" msgstr "" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +#, fuzzy +msgid "Extend Script" +msgstr "Atidaryti Skriptų Editorių" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "" @@ -3181,14 +3184,6 @@ msgstr "" msgid "Convert To %s" msgstr "" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy -msgid "Open Editor" -msgstr "Atidaryti 2D Editorių" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "" @@ -3990,7 +3985,7 @@ msgstr "Priedai" msgid "Subfolder:" msgstr "" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "" @@ -4130,6 +4125,13 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +#, fuzzy +msgid "Open Editor" +msgstr "Atidaryti 2D Editorių" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp #, fuzzy msgid "Open Animation Node" @@ -4483,7 +4485,6 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "" @@ -4661,6 +4662,8 @@ msgid "Current:" msgstr "" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "" @@ -4870,6 +4873,10 @@ msgid "All" msgstr "Visi" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy msgid "Import..." msgstr "Importuoti Animacijas..." @@ -5162,20 +5169,23 @@ msgid "Ruler Mode" msgstr "TimeScale Nodas" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Toggle snapping." +msgid "Toggle smart snapping." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +msgid "Use Smart Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snapping Options" +msgid "Toggle grid snapping." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Use Grid Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to Grid" +msgid "Snapping Options" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5265,8 +5275,7 @@ msgid "View" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +msgid "Always Show Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5530,6 +5539,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/curve_editor_plugin.cpp +msgid "Right click to add point" +msgstr "" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "" @@ -6169,6 +6182,10 @@ msgid "Grid" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Configure Grid:" msgstr "" @@ -6226,6 +6243,7 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "" @@ -6331,6 +6349,11 @@ msgid "Find Next" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Filter scripts" msgstr "Filtrai..." @@ -6606,6 +6629,11 @@ msgstr "Sukurti" msgid "Cut" msgstr "" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "" @@ -6664,10 +6692,6 @@ msgid "Auto Indent" msgstr "" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "" - -#: editor/plugins/script_text_editor.cpp #, fuzzy msgid "Find in Files..." msgstr "Filtrai..." @@ -6989,6 +7013,10 @@ msgid "Freelook Speed Modifier" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Slow Modifier" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -7022,6 +7050,10 @@ msgid "Use Local Space" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "" @@ -7254,6 +7286,10 @@ msgid "Simplification: " msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Shrink (Pixels): " +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "" @@ -8059,12 +8095,9 @@ msgid "(GLES3 only)" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add input +" -msgstr "" - -#: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add output +" -msgstr "" +#, fuzzy +msgid "Add Output" +msgstr "MÄ—gstamiausi:" #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy @@ -8080,6 +8113,10 @@ msgid "Boolean" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sampler" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy msgid "Add input port" msgstr "MÄ—gstamiausi:" @@ -8953,12 +8990,14 @@ msgstr "" #: editor/project_export.cpp msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp @@ -9955,11 +9994,9 @@ msgid "" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." msgstr "" #: editor/scene_tree_dock.cpp @@ -10035,6 +10072,14 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "" + +#: editor/scene_tree_dock.cpp msgid "Open Documentation" msgstr "" @@ -10052,11 +10097,6 @@ msgstr "" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Extend Script" -msgstr "Atidaryti Skriptų Editorių" - -#: editor/scene_tree_dock.cpp -#, fuzzy msgid "Reparent to New Node" msgstr "Sukurti NaujÄ…" @@ -10292,24 +10332,18 @@ msgid "Will load an existing script file." msgstr "" #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Inherits" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Class Name" -msgstr "" +#, fuzzy +msgid "Class Name:" +msgstr "Priedai" #: editor/script_create_dialog.cpp -msgid "Template" +msgid "Template:" msgstr "" #: editor/script_create_dialog.cpp -msgid "Built-in Script" -msgstr "" +#, fuzzy +msgid "Built-in Script:" +msgstr "Atidaryti Skriptų Editorių" #: editor/script_create_dialog.cpp msgid "Attach Node Script" @@ -10953,6 +10987,11 @@ msgid "Add Function" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Delete input port" +msgstr "Panaikinti pasirinkimÄ…" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "" @@ -10961,6 +11000,26 @@ msgid "Add Signal" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Input Port" +msgstr "MÄ—gstamiausi:" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Output Port" +msgstr "MÄ—gstamiausi:" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Input Port" +msgstr "Panaikinti pasirinkimÄ…" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Output Port" +msgstr "Panaikinti pasirinkimÄ…" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "" @@ -11001,10 +11060,20 @@ msgid "Add Preload Node" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "" @@ -11030,6 +11099,11 @@ msgstr "" #: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Disconnect Nodes" +msgstr "Atsijungti" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Connect Node Data" msgstr "Prijunkite prie Nodo:" @@ -11063,6 +11137,27 @@ msgid "Paste VisualScript Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function with a function node." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Create Function" +msgstr "Sukurti NaujÄ…" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "" @@ -11087,15 +11182,11 @@ msgid "Make Tool:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" +msgid "function_name" msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -11120,6 +11211,15 @@ msgstr "" #: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Make Function" +msgstr "(Esama)" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Refresh Graph" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Edit Member" msgstr "Redaguoti Filtrus" @@ -11214,6 +11314,10 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "" @@ -11315,6 +11419,10 @@ msgid "Required icon is not specified in the preset." msgstr "" #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "" @@ -11862,10 +11970,6 @@ msgid "" "texture to some node for display." msgstr "" -#: scene/resources/visual_shader.cpp -msgid "Input" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp #, fuzzy msgid "Invalid source for preview." diff --git a/editor/translations/lv.po b/editor/translations/lv.po index 2ffe68acc5..26a3d6d7d1 100644 --- a/editor/translations/lv.po +++ b/editor/translations/lv.po @@ -359,6 +359,7 @@ msgstr "Izveidot %d JAUNU celiņu un ievietot atslÄ“gievietni?" #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "Izveidot" @@ -494,16 +495,6 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "" - -#: editor/animation_track_editor.cpp -#, fuzzy -msgid "Select None" -msgstr "DzÄ“st izvÄ“lÄ“tos" - #: editor/animation_track_editor.cpp msgid "Select an AnimationPlayer node to create and edit animations." msgstr "" @@ -642,7 +633,7 @@ msgid "Scale Ratio:" msgstr "MÄ“roga AttiecÄ«ba:" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" +msgid "Select Tracks to Copy" msgstr "" #: editor/animation_track_editor.cpp editor/editor_log.cpp @@ -654,6 +645,11 @@ msgstr "" msgid "Copy" msgstr "" +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Select All/None" +msgstr "DzÄ“st izvÄ“lÄ“tos" + #: editor/animation_track_editor_plugins.cpp #, fuzzy msgid "Add Audio Track Clip" @@ -980,7 +976,7 @@ msgid "Resource" msgstr "Resurs" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "" @@ -1458,7 +1454,8 @@ msgstr "" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "" @@ -1512,7 +1509,7 @@ msgstr "" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "" @@ -1909,6 +1906,7 @@ msgid "Class:" msgstr "" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "" @@ -2914,7 +2912,7 @@ msgstr "" msgid "Expand Bottom Panel" msgstr "" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "" @@ -3153,6 +3151,10 @@ msgstr "" msgid "New Script" msgstr "" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +msgid "Extend Script" +msgstr "" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "" @@ -3179,13 +3181,6 @@ msgstr "" msgid "Convert To %s" msgstr "" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Open Editor" -msgstr "" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "" @@ -3979,7 +3974,7 @@ msgstr "" msgid "Subfolder:" msgstr "" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "" @@ -4120,6 +4115,12 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Open Editor" +msgstr "" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp #, fuzzy msgid "Open Animation Node" @@ -4470,7 +4471,6 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "" @@ -4643,6 +4643,8 @@ msgid "Current:" msgstr "" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "" @@ -4849,6 +4851,10 @@ msgid "All" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp msgid "Import..." msgstr "" @@ -5138,20 +5144,23 @@ msgid "Ruler Mode" msgstr "MÄ“roga AttiecÄ«ba:" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Toggle snapping." +msgid "Toggle smart snapping." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +msgid "Use Smart Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snapping Options" +msgid "Toggle grid snapping." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Use Grid Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to Grid" +msgid "Snapping Options" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5241,8 +5250,7 @@ msgid "View" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +msgid "Always Show Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5510,6 +5518,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/curve_editor_plugin.cpp +msgid "Right click to add point" +msgstr "" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "" @@ -6145,6 +6157,10 @@ msgid "Grid" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Configure Grid:" msgstr "" @@ -6201,6 +6217,7 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "" @@ -6306,6 +6323,11 @@ msgid "Find Next" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Filter scripts" msgstr "" @@ -6579,6 +6601,11 @@ msgstr "Izveidot" msgid "Cut" msgstr "" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "" @@ -6637,10 +6664,6 @@ msgid "Auto Indent" msgstr "" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "" - -#: editor/plugins/script_text_editor.cpp msgid "Find in Files..." msgstr "" @@ -6967,6 +6990,10 @@ msgid "Freelook Speed Modifier" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Slow Modifier" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -7000,6 +7027,10 @@ msgid "Use Local Space" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "" @@ -7232,6 +7263,10 @@ msgid "Simplification: " msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Shrink (Pixels): " +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "" @@ -8032,12 +8067,9 @@ msgid "(GLES3 only)" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add input +" -msgstr "" - -#: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add output +" -msgstr "" +#, fuzzy +msgid "Add Output" +msgstr "FavorÄ«ti:" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Scalar" @@ -8052,6 +8084,10 @@ msgid "Boolean" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sampler" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy msgid "Add input port" msgstr "FavorÄ«ti:" @@ -8924,12 +8960,14 @@ msgstr "" #: editor/project_export.cpp msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp @@ -9918,11 +9956,9 @@ msgid "" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." msgstr "" #: editor/scene_tree_dock.cpp @@ -9998,6 +10034,14 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "" + +#: editor/scene_tree_dock.cpp msgid "Open Documentation" msgstr "" @@ -10014,10 +10058,6 @@ msgid "Change Type" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Extend Script" -msgstr "" - -#: editor/scene_tree_dock.cpp #, fuzzy msgid "Reparent to New Node" msgstr "Izveidot Jaunu %s" @@ -10254,24 +10294,17 @@ msgid "Will load an existing script file." msgstr "IelÄdÄ“t eksistÄ“joÅ¡u Kopnes IzkÄrtojumu." #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Inherits" +msgid "Class Name:" msgstr "" #: editor/script_create_dialog.cpp -msgid "Class Name" +msgid "Template:" msgstr "" #: editor/script_create_dialog.cpp -msgid "Template" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Built-in Script" -msgstr "" +#, fuzzy +msgid "Built-in Script:" +msgstr "Savieno SignÄlu:" #: editor/script_create_dialog.cpp msgid "Attach Node Script" @@ -10919,6 +10952,11 @@ msgid "Add Function" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Delete input port" +msgstr "Noņemt IzvÄ“lÄ“to" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "" @@ -10927,6 +10965,26 @@ msgid "Add Signal" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Input Port" +msgstr "FavorÄ«ti:" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Output Port" +msgstr "FavorÄ«ti:" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Input Port" +msgstr "Noņemt IzvÄ“lÄ“to" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Output Port" +msgstr "Noņemt IzvÄ“lÄ“to" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "" @@ -10967,10 +11025,20 @@ msgid "Add Preload Node" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "" @@ -10995,6 +11063,11 @@ msgid "Connect Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Disconnect Nodes" +msgstr "Savienot" + +#: modules/visual_script/visual_script_editor.cpp msgid "Connect Node Data" msgstr "" @@ -11027,6 +11100,27 @@ msgid "Paste VisualScript Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function with a function node." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Create Function" +msgstr "Izveidot Jaunu %s" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "" @@ -11051,16 +11145,13 @@ msgid "Make Tool:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" -msgstr "" +#, fuzzy +msgid "function_name" +msgstr "Funkcijas:" #: modules/visual_script/visual_script_editor.cpp msgid "Select or create a function to edit its graph." @@ -11083,6 +11174,15 @@ msgid "Cut Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Make Function" +msgstr "Funkcijas:" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Refresh Graph" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Edit Member" msgstr "" @@ -11177,6 +11277,10 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "" @@ -11278,6 +11382,10 @@ msgid "Required icon is not specified in the preset." msgstr "" #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "" @@ -11823,10 +11931,6 @@ msgid "" "texture to some node for display." msgstr "" -#: scene/resources/visual_shader.cpp -msgid "Input" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp #, fuzzy msgid "Invalid source for preview." diff --git a/editor/translations/mi.po b/editor/translations/mi.po index 9b3110d3de..f78d6f5259 100644 --- a/editor/translations/mi.po +++ b/editor/translations/mi.po @@ -341,6 +341,7 @@ msgstr "" #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "" @@ -466,15 +467,6 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "" - -#: editor/animation_track_editor.cpp -msgid "Select None" -msgstr "" - #: editor/animation_track_editor.cpp msgid "Select an AnimationPlayer node to create and edit animations." msgstr "" @@ -609,7 +601,7 @@ msgid "Scale Ratio:" msgstr "" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" +msgid "Select Tracks to Copy" msgstr "" #: editor/animation_track_editor.cpp editor/editor_log.cpp @@ -621,6 +613,10 @@ msgstr "" msgid "Copy" msgstr "" +#: editor/animation_track_editor.cpp +msgid "Select All/None" +msgstr "" + #: editor/animation_track_editor_plugins.cpp msgid "Add Audio Track Clip" msgstr "" @@ -937,7 +933,7 @@ msgid "Resource" msgstr "" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "" @@ -1392,7 +1388,8 @@ msgstr "" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "" @@ -1446,7 +1443,7 @@ msgstr "" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "" @@ -1830,6 +1827,7 @@ msgid "Class:" msgstr "" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "" @@ -2820,7 +2818,7 @@ msgstr "" msgid "Expand Bottom Panel" msgstr "" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "" @@ -3056,6 +3054,10 @@ msgstr "" msgid "New Script" msgstr "" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +msgid "Extend Script" +msgstr "" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "" @@ -3082,13 +3084,6 @@ msgstr "" msgid "Convert To %s" msgstr "" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Open Editor" -msgstr "" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "" @@ -3861,7 +3856,7 @@ msgstr "" msgid "Subfolder:" msgstr "" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "" @@ -3996,6 +3991,12 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Open Editor" +msgstr "" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp msgid "Open Animation Node" msgstr "" @@ -4337,7 +4338,6 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "" @@ -4505,6 +4505,8 @@ msgid "Current:" msgstr "" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "" @@ -4709,6 +4711,10 @@ msgid "All" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp msgid "Import..." msgstr "" @@ -4987,20 +4993,23 @@ msgid "Ruler Mode" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Toggle snapping." +msgid "Toggle smart snapping." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +msgid "Use Smart Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snapping Options" +msgid "Toggle grid snapping." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to Grid" +msgid "Use Grid Snap" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snapping Options" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5090,8 +5099,7 @@ msgid "View" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +msgid "Always Show Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5351,6 +5359,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/curve_editor_plugin.cpp +msgid "Right click to add point" +msgstr "" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "" @@ -5980,6 +5992,10 @@ msgid "Grid" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Configure Grid:" msgstr "" @@ -6036,6 +6052,7 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "" @@ -6134,6 +6151,11 @@ msgid "Find Next" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Filter scripts" msgstr "" @@ -6399,6 +6421,11 @@ msgstr "" msgid "Cut" msgstr "" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "" @@ -6456,10 +6483,6 @@ msgid "Auto Indent" msgstr "" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "" - -#: editor/plugins/script_text_editor.cpp msgid "Find in Files..." msgstr "" @@ -6779,6 +6802,10 @@ msgid "Freelook Speed Modifier" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Slow Modifier" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -6812,6 +6839,10 @@ msgid "Use Local Space" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "" @@ -7038,6 +7069,10 @@ msgid "Simplification: " msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Shrink (Pixels): " +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "" @@ -7799,11 +7834,7 @@ msgid "(GLES3 only)" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add input +" -msgstr "" - -#: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add output +" +msgid "Add Output" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -7819,6 +7850,10 @@ msgid "Boolean" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sampler" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add input port" msgstr "" @@ -8675,12 +8710,14 @@ msgstr "" #: editor/project_export.cpp msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp @@ -9662,11 +9699,9 @@ msgid "" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." msgstr "" #: editor/scene_tree_dock.cpp @@ -9740,6 +9775,14 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "" + +#: editor/scene_tree_dock.cpp msgid "Open Documentation" msgstr "" @@ -9756,10 +9799,6 @@ msgid "Change Type" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Extend Script" -msgstr "" - -#: editor/scene_tree_dock.cpp msgid "Reparent to New Node" msgstr "" @@ -9986,23 +10025,15 @@ msgid "Will load an existing script file." msgstr "" #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Inherits" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Class Name" +msgid "Class Name:" msgstr "" #: editor/script_create_dialog.cpp -msgid "Template" +msgid "Template:" msgstr "" #: editor/script_create_dialog.cpp -msgid "Built-in Script" +msgid "Built-in Script:" msgstr "" #: editor/script_create_dialog.cpp @@ -10636,6 +10667,10 @@ msgid "Add Function" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Delete input port" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "" @@ -10644,6 +10679,22 @@ msgid "Add Signal" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Add Input Port" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Add Output Port" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Remove Input Port" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Remove Output Port" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "" @@ -10684,10 +10735,20 @@ msgid "Add Preload Node" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "" @@ -10712,6 +10773,10 @@ msgid "Connect Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Disconnect Nodes" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Connect Node Data" msgstr "" @@ -10744,6 +10809,26 @@ msgid "Paste VisualScript Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function with a function node." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Create Function" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "" @@ -10768,15 +10853,11 @@ msgid "Make Tool:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" +msgid "function_name" msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -10800,6 +10881,14 @@ msgid "Cut Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Make Function" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Refresh Graph" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Edit Member" msgstr "" @@ -10894,6 +10983,10 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "" @@ -10993,6 +11086,10 @@ msgid "Required icon is not specified in the preset." msgstr "" #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "" @@ -11530,10 +11627,6 @@ msgid "" "texture to some node for display." msgstr "" -#: scene/resources/visual_shader.cpp -msgid "Input" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for preview." msgstr "" diff --git a/editor/translations/ml.po b/editor/translations/ml.po index 842e96a160..d4b49c12cc 100644 --- a/editor/translations/ml.po +++ b/editor/translations/ml.po @@ -3,12 +3,13 @@ # Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) # This file is distributed under the same license as the Godot source code. # christy james <jkuttu@gmail.com>, 2018. +# Lakshmi-Jayakumar <lakshmi.jayakumar.tkm@gmail.com>, 2019. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2018-12-13 14:41+0100\n" -"Last-Translator: christy james <jkuttu@gmail.com>\n" +"PO-Revision-Date: 2019-10-17 04:52+0000\n" +"Last-Translator: Lakshmi-Jayakumar <lakshmi.jayakumar.tkm@gmail.com>\n" "Language-Team: Malayalam <https://hosted.weblate.org/projects/godot-engine/" "godot/ml/>\n" "Language: ml\n" @@ -16,7 +17,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: Poedit 2.2\n" +"X-Generator: Weblate 3.9\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -43,7 +44,7 @@ msgstr "à´ªàµà´°à´µàµ¼à´¤àµà´¤à´•à´¨àµ ചെയàµà´¯à´¾àµ» കൊടàµà´¤à #: core/math/expression.cpp msgid "Invalid index of type %s for base type %s" -msgstr "" +msgstr "à´…à´Ÿà´¿à´¸àµà´¥à´¾à´¨ തരം% sഇനൠഅസാധàµà´µà´¾à´¯ സൂചിക തരം" #: core/math/expression.cpp msgid "Invalid named index '%s' for base type %s" @@ -349,6 +350,7 @@ msgstr "" #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "" @@ -474,15 +476,6 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "" - -#: editor/animation_track_editor.cpp -msgid "Select None" -msgstr "" - #: editor/animation_track_editor.cpp msgid "Select an AnimationPlayer node to create and edit animations." msgstr "" @@ -617,7 +610,7 @@ msgid "Scale Ratio:" msgstr "" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" +msgid "Select Tracks to Copy" msgstr "" #: editor/animation_track_editor.cpp editor/editor_log.cpp @@ -629,6 +622,10 @@ msgstr "" msgid "Copy" msgstr "" +#: editor/animation_track_editor.cpp +msgid "Select All/None" +msgstr "" + #: editor/animation_track_editor_plugins.cpp msgid "Add Audio Track Clip" msgstr "" @@ -945,7 +942,7 @@ msgid "Resource" msgstr "" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "" @@ -1400,7 +1397,8 @@ msgstr "" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "" @@ -1454,7 +1452,7 @@ msgstr "" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "" @@ -1838,6 +1836,7 @@ msgid "Class:" msgstr "" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "" @@ -2828,7 +2827,7 @@ msgstr "" msgid "Expand Bottom Panel" msgstr "" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "" @@ -3064,6 +3063,10 @@ msgstr "" msgid "New Script" msgstr "" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +msgid "Extend Script" +msgstr "" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "" @@ -3090,13 +3093,6 @@ msgstr "" msgid "Convert To %s" msgstr "" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Open Editor" -msgstr "" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "" @@ -3869,7 +3865,7 @@ msgstr "" msgid "Subfolder:" msgstr "" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "" @@ -4004,6 +4000,12 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Open Editor" +msgstr "" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp msgid "Open Animation Node" msgstr "" @@ -4345,7 +4347,6 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "" @@ -4513,6 +4514,8 @@ msgid "Current:" msgstr "" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "" @@ -4717,6 +4720,10 @@ msgid "All" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp msgid "Import..." msgstr "" @@ -4995,20 +5002,23 @@ msgid "Ruler Mode" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Toggle snapping." +msgid "Toggle smart snapping." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +msgid "Use Smart Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snapping Options" +msgid "Toggle grid snapping." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to Grid" +msgid "Use Grid Snap" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snapping Options" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5098,8 +5108,7 @@ msgid "View" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +msgid "Always Show Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5359,6 +5368,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/curve_editor_plugin.cpp +msgid "Right click to add point" +msgstr "" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "" @@ -5988,6 +6001,10 @@ msgid "Grid" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Configure Grid:" msgstr "" @@ -6044,6 +6061,7 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "" @@ -6142,6 +6160,11 @@ msgid "Find Next" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Filter scripts" msgstr "" @@ -6407,6 +6430,11 @@ msgstr "" msgid "Cut" msgstr "" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "" @@ -6464,10 +6492,6 @@ msgid "Auto Indent" msgstr "" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "" - -#: editor/plugins/script_text_editor.cpp msgid "Find in Files..." msgstr "" @@ -6787,6 +6811,10 @@ msgid "Freelook Speed Modifier" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Slow Modifier" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -6820,6 +6848,10 @@ msgid "Use Local Space" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "" @@ -7046,6 +7078,10 @@ msgid "Simplification: " msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Shrink (Pixels): " +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "" @@ -7807,11 +7843,7 @@ msgid "(GLES3 only)" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add input +" -msgstr "" - -#: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add output +" +msgid "Add Output" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -7827,6 +7859,10 @@ msgid "Boolean" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sampler" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add input port" msgstr "" @@ -8683,12 +8719,14 @@ msgstr "" #: editor/project_export.cpp msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp @@ -9670,11 +9708,9 @@ msgid "" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." msgstr "" #: editor/scene_tree_dock.cpp @@ -9748,6 +9784,14 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "" + +#: editor/scene_tree_dock.cpp msgid "Open Documentation" msgstr "" @@ -9764,10 +9808,6 @@ msgid "Change Type" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Extend Script" -msgstr "" - -#: editor/scene_tree_dock.cpp msgid "Reparent to New Node" msgstr "" @@ -9994,23 +10034,15 @@ msgid "Will load an existing script file." msgstr "" #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Inherits" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Class Name" +msgid "Class Name:" msgstr "" #: editor/script_create_dialog.cpp -msgid "Template" +msgid "Template:" msgstr "" #: editor/script_create_dialog.cpp -msgid "Built-in Script" +msgid "Built-in Script:" msgstr "" #: editor/script_create_dialog.cpp @@ -10644,6 +10676,10 @@ msgid "Add Function" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Delete input port" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "" @@ -10652,6 +10688,22 @@ msgid "Add Signal" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Add Input Port" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Add Output Port" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Remove Input Port" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Remove Output Port" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "" @@ -10692,10 +10744,20 @@ msgid "Add Preload Node" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "" @@ -10720,6 +10782,10 @@ msgid "Connect Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Disconnect Nodes" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Connect Node Data" msgstr "" @@ -10752,6 +10818,26 @@ msgid "Paste VisualScript Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function with a function node." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Create Function" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "" @@ -10776,15 +10862,11 @@ msgid "Make Tool:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" +msgid "function_name" msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -10808,6 +10890,14 @@ msgid "Cut Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Make Function" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Refresh Graph" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Edit Member" msgstr "" @@ -10902,6 +10992,10 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "" @@ -11001,6 +11095,10 @@ msgid "Required icon is not specified in the preset." msgstr "" #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "" @@ -11538,10 +11636,6 @@ msgid "" "texture to some node for display." msgstr "" -#: scene/resources/visual_shader.cpp -msgid "Input" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for preview." msgstr "" diff --git a/editor/translations/ms.po b/editor/translations/ms.po index 2f28b92d55..74ade07fc8 100644 --- a/editor/translations/ms.po +++ b/editor/translations/ms.po @@ -362,6 +362,7 @@ msgstr "" #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "" @@ -491,16 +492,6 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "" - -#: editor/animation_track_editor.cpp -#, fuzzy -msgid "Select None" -msgstr "Semua Pilihan" - #: editor/animation_track_editor.cpp msgid "Select an AnimationPlayer node to create and edit animations." msgstr "" @@ -636,7 +627,7 @@ msgid "Scale Ratio:" msgstr "" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" +msgid "Select Tracks to Copy" msgstr "" #: editor/animation_track_editor.cpp editor/editor_log.cpp @@ -648,6 +639,11 @@ msgstr "" msgid "Copy" msgstr "" +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Select All/None" +msgstr "Semua Pilihan" + #: editor/animation_track_editor_plugins.cpp #, fuzzy msgid "Add Audio Track Clip" @@ -965,7 +961,7 @@ msgid "Resource" msgstr "" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "" @@ -1420,7 +1416,8 @@ msgstr "" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "" @@ -1474,7 +1471,7 @@ msgstr "" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "" @@ -1859,6 +1856,7 @@ msgid "Class:" msgstr "" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "" @@ -2852,7 +2850,7 @@ msgstr "" msgid "Expand Bottom Panel" msgstr "" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "" @@ -3088,6 +3086,10 @@ msgstr "" msgid "New Script" msgstr "" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +msgid "Extend Script" +msgstr "" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "" @@ -3114,13 +3116,6 @@ msgstr "" msgid "Convert To %s" msgstr "" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Open Editor" -msgstr "" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "" @@ -3894,7 +3889,7 @@ msgstr "" msgid "Subfolder:" msgstr "" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "" @@ -4030,6 +4025,12 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Open Editor" +msgstr "" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp msgid "Open Animation Node" msgstr "" @@ -4375,7 +4376,6 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "" @@ -4546,6 +4546,8 @@ msgid "Current:" msgstr "" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "" @@ -4750,6 +4752,10 @@ msgid "All" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp msgid "Import..." msgstr "" @@ -5033,20 +5039,23 @@ msgid "Ruler Mode" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Toggle snapping." +msgid "Toggle smart snapping." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +msgid "Use Smart Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snapping Options" +msgid "Toggle grid snapping." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to Grid" +msgid "Use Grid Snap" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snapping Options" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5136,8 +5145,7 @@ msgid "View" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +msgid "Always Show Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5399,6 +5407,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/curve_editor_plugin.cpp +msgid "Right click to add point" +msgstr "" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "" @@ -6028,6 +6040,10 @@ msgid "Grid" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Configure Grid:" msgstr "" @@ -6084,6 +6100,7 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "" @@ -6182,6 +6199,11 @@ msgid "Find Next" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Filter scripts" msgstr "" @@ -6447,6 +6469,11 @@ msgstr "" msgid "Cut" msgstr "" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "" @@ -6505,10 +6532,6 @@ msgid "Auto Indent" msgstr "" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "" - -#: editor/plugins/script_text_editor.cpp msgid "Find in Files..." msgstr "" @@ -6828,6 +6851,10 @@ msgid "Freelook Speed Modifier" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Slow Modifier" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -6861,6 +6888,10 @@ msgid "Use Local Space" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "" @@ -7088,6 +7119,10 @@ msgid "Simplification: " msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Shrink (Pixels): " +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "" @@ -7861,11 +7896,7 @@ msgid "(GLES3 only)" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add input +" -msgstr "" - -#: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add output +" +msgid "Add Output" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -7881,6 +7912,10 @@ msgid "Boolean" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sampler" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add input port" msgstr "" @@ -8742,12 +8777,14 @@ msgstr "" #: editor/project_export.cpp msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp @@ -9733,11 +9770,9 @@ msgid "" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." msgstr "" #: editor/scene_tree_dock.cpp @@ -9812,6 +9847,14 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "" + +#: editor/scene_tree_dock.cpp msgid "Open Documentation" msgstr "" @@ -9828,10 +9871,6 @@ msgid "Change Type" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Extend Script" -msgstr "" - -#: editor/scene_tree_dock.cpp msgid "Reparent to New Node" msgstr "" @@ -10058,23 +10097,15 @@ msgid "Will load an existing script file." msgstr "" #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Inherits" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Class Name" +msgid "Class Name:" msgstr "" #: editor/script_create_dialog.cpp -msgid "Template" +msgid "Template:" msgstr "" #: editor/script_create_dialog.cpp -msgid "Built-in Script" +msgid "Built-in Script:" msgstr "" #: editor/script_create_dialog.cpp @@ -10711,6 +10742,11 @@ msgid "Add Function" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Delete input port" +msgstr "Semua Pilihan" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "" @@ -10719,6 +10755,25 @@ msgid "Add Signal" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Input Port" +msgstr "Set Peralihan ke:" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Add Output Port" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Input Port" +msgstr "Buang Trek Anim" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Output Port" +msgstr "Buang Trek Anim" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "" @@ -10759,10 +10814,20 @@ msgid "Add Preload Node" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "" @@ -10787,6 +10852,11 @@ msgid "Connect Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Disconnect Nodes" +msgstr "Anim Menduakan Kunci" + +#: modules/visual_script/visual_script_editor.cpp msgid "Connect Node Data" msgstr "" @@ -10819,6 +10889,26 @@ msgid "Paste VisualScript Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function with a function node." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Create Function" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "" @@ -10843,15 +10933,11 @@ msgid "Make Tool:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" +msgid "function_name" msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -10875,6 +10961,14 @@ msgid "Cut Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Make Function" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Refresh Graph" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Edit Member" msgstr "" @@ -10969,6 +11063,10 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "" @@ -11068,6 +11166,10 @@ msgid "Required icon is not specified in the preset." msgstr "" #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "" @@ -11605,10 +11707,6 @@ msgid "" "texture to some node for display." msgstr "" -#: scene/resources/visual_shader.cpp -msgid "Input" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for preview." msgstr "" diff --git a/editor/translations/nb.po b/editor/translations/nb.po index 3bc8192461..d7a63a7f8c 100644 --- a/editor/translations/nb.po +++ b/editor/translations/nb.po @@ -19,7 +19,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-07-29 19:21+0000\n" +"PO-Revision-Date: 2019-10-29 12:49+0000\n" "Last-Translator: Allan Nordhøy <epost@anotheragency.no>\n" "Language-Team: Norwegian BokmÃ¥l <https://hosted.weblate.org/projects/godot-" "engine/godot/nb_NO/>\n" @@ -28,7 +28,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 3.8-dev\n" +"X-Generator: Weblate 3.9.1\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -71,32 +71,31 @@ msgstr "NÃ¥r \"%s\" ble anropt:" #: core/ustring.cpp msgid "B" -msgstr "" +msgstr "B" #: core/ustring.cpp msgid "KiB" -msgstr "" +msgstr "KiB" #: core/ustring.cpp -#, fuzzy msgid "MiB" -msgstr "Bland" +msgstr "MiB" #: core/ustring.cpp msgid "GiB" -msgstr "" +msgstr "GiB" #: core/ustring.cpp msgid "TiB" -msgstr "" +msgstr "TiB" #: core/ustring.cpp msgid "PiB" -msgstr "" +msgstr "PiB" #: core/ustring.cpp msgid "EiB" -msgstr "" +msgstr "EiB" #: editor/animation_bezier_editor.cpp msgid "Free" @@ -131,14 +130,12 @@ msgid "Delete Selected Key(s)" msgstr "Slett valgte nøkler/taster" #: editor/animation_bezier_editor.cpp -#, fuzzy msgid "Add Bezier Point" -msgstr "Legg til punkt" +msgstr "Legg til Bezier-punkt" #: editor/animation_bezier_editor.cpp -#, fuzzy msgid "Move Bezier Points" -msgstr "Flytt Punkt" +msgstr "Flytt Bezier-punkt" #: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp msgid "Anim Duplicate Keys" @@ -169,24 +166,20 @@ msgid "Anim Change Call" msgstr "Anim Forandre Kall" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Anim Multi Change Keyframe Time" -msgstr "Anim Endre Nøkkelbildetid" +msgstr "Anim Endre flere Nøkkelbildetider" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Anim Multi Change Transition" -msgstr "Anim Forandre Overgang" +msgstr "Anim Forandre flere Overganger" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Anim Multi Change Transform" -msgstr "Anim Forandre Omforming" +msgstr "Anim Forandre flere Omforminger" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Anim Multi Change Keyframe Value" -msgstr "Anim Endre Nøkkelbildeverdi" +msgstr "Anim Endre flere Nøkkelbildeverdier" #: editor/animation_track_editor.cpp #, fuzzy @@ -194,9 +187,8 @@ msgid "Anim Multi Change Call" msgstr "Anim Forandre Kall" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Change Animation Length" -msgstr "Endre Animasjonsnavn:" +msgstr "Endre Animasjonslengde" #: editor/animation_track_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -209,7 +201,6 @@ msgid "Property Track" msgstr "Egenskapsspor" #: editor/animation_track_editor.cpp -#, fuzzy msgid "3D Transform Track" msgstr "3D transformasjonsspor" @@ -234,19 +225,16 @@ msgid "Animation Playback Track" msgstr "Stopp avspilling av animasjon. (S)" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Animation length (frames)" -msgstr "Animasjon lengde (i sekunder)." +msgstr "Animasjon lengde (i rammer)" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Animation length (seconds)" -msgstr "Animasjon lengde (i sekunder)." +msgstr "Animasjonslengde (sekunder)" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Add Track" -msgstr "Anim Legg til Spor" +msgstr "Legg til Spor" #: editor/animation_track_editor.cpp #, fuzzy @@ -392,6 +380,7 @@ msgstr "Lag %d NYE spor og sett inn nøkler?" #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "Lag" @@ -535,16 +524,6 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "Velg Alle" - -#: editor/animation_track_editor.cpp -#, fuzzy -msgid "Select None" -msgstr "Kutt Noder" - #: editor/animation_track_editor.cpp #, fuzzy msgid "Select an AnimationPlayer node to create and edit animations." @@ -687,7 +666,8 @@ msgid "Scale Ratio:" msgstr "Skaler Størrelsesforhold:" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" +#, fuzzy +msgid "Select Tracks to Copy" msgstr "Velg spor Ã¥ kopiere:" #: editor/animation_track_editor.cpp editor/editor_log.cpp @@ -699,6 +679,11 @@ msgstr "Velg spor Ã¥ kopiere:" msgid "Copy" msgstr "Lim inn" +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Select All/None" +msgstr "Kutt Noder" + #: editor/animation_track_editor_plugins.cpp #, fuzzy msgid "Add Audio Track Clip" @@ -737,8 +722,9 @@ msgid "Replaced %d occurrence(s)." msgstr "Erstattet %d forekomst(er)." #: editor/code_editor.cpp editor/editor_help.cpp +#, fuzzy msgid "%d match." -msgstr "" +msgstr "%d samsvar." #: editor/code_editor.cpp editor/editor_help.cpp #, fuzzy @@ -1041,7 +1027,7 @@ msgid "Resource" msgstr "Ressurs" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "Bane" @@ -1395,7 +1381,7 @@ msgstr "Ã…pne Audio Bus oppsett" #: editor/editor_audio_buses.cpp msgid "There is no '%s' file." -msgstr "" +msgstr "Det finnes ingen «%s»-fil" #: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy @@ -1522,7 +1508,8 @@ msgstr "Legg til AutoLoad" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "Bane:" @@ -1577,7 +1564,7 @@ msgstr "Lag mappe" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "Navn:" @@ -1732,7 +1719,7 @@ msgstr "Egenskaper:" #: editor/editor_feature_profile.cpp msgid "Enabled Features:" -msgstr "" +msgstr "PÃ¥skrudde funksjoner:" #: editor/editor_feature_profile.cpp #, fuzzy @@ -2005,6 +1992,7 @@ msgid "Class:" msgstr "Klasse:" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "Arver:" @@ -2187,7 +2175,7 @@ msgstr "Start!" #: editor/editor_network_profiler.cpp msgid "%s/s" -msgstr "" +msgstr "%s/s" #: editor/editor_network_profiler.cpp #, fuzzy @@ -2196,7 +2184,7 @@ msgstr "Last ned" #: editor/editor_network_profiler.cpp msgid "Up" -msgstr "" +msgstr "Oppover" #: editor/editor_network_profiler.cpp editor/editor_node.cpp msgid "Node" @@ -2220,7 +2208,7 @@ msgstr "" #: editor/editor_node.cpp editor/project_manager.cpp msgid "New Window" -msgstr "" +msgstr "Nytt vindu" #: editor/editor_node.cpp msgid "Project export failed with error code %d." @@ -2684,7 +2672,7 @@ msgstr "Lukk Andre Faner" #: editor/editor_node.cpp msgid "Close Tabs to the Right" -msgstr "" +msgstr "Lukk faner til høyre" #: editor/editor_node.cpp #, fuzzy @@ -3124,7 +3112,7 @@ msgstr "Inspektør" msgid "Expand Bottom Panel" msgstr "Utvid alle" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "Output" @@ -3379,6 +3367,11 @@ msgstr "" msgid "New Script" msgstr "Nytt Skript" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +#, fuzzy +msgid "Extend Script" +msgstr "Kjør Skript" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "Ny %s" @@ -3405,14 +3398,6 @@ msgstr "Lim inn" msgid "Convert To %s" msgstr "Konverter Til %s" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy -msgid "Open Editor" -msgstr "Ã…pne i Redigeringsverktøy" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "" @@ -3482,7 +3467,7 @@ msgstr "Velg Node(r) for Importering" #: editor/editor_sub_scene.cpp editor/project_manager.cpp msgid "Browse" -msgstr "" +msgstr "Utforsk" #: editor/editor_sub_scene.cpp msgid "Scene Path:" @@ -4270,7 +4255,7 @@ msgstr "Plugins" msgid "Subfolder:" msgstr "Undermappe:" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "SprÃ¥k:" @@ -4425,6 +4410,13 @@ msgstr "Flytt Punkt" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +#, fuzzy +msgid "Open Editor" +msgstr "Ã…pne i Redigeringsverktøy" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp #, fuzzy msgid "Open Animation Node" @@ -4798,7 +4790,6 @@ msgstr "Animasjonsnavn:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "Error!" @@ -4979,6 +4970,8 @@ msgid "Current:" msgstr "Gjeldende:" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "Legg til Input" @@ -5201,6 +5194,10 @@ msgid "All" msgstr "Alle" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy msgid "Import..." msgstr "Importer" @@ -5511,23 +5508,28 @@ msgstr "Velg Modus" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Toggle snapping." +msgid "Toggle smart snapping." msgstr "SlÃ¥ av/pÃ¥ snapping" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +#, fuzzy +msgid "Use Smart Snap" msgstr "Bruk Snap" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Snapping Options" -msgstr "Snapping innstillinger" +msgid "Toggle grid snapping." +msgstr "SlÃ¥ av/pÃ¥ snapping" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Snap to Grid" -msgstr "Snap til rutenett" +msgid "Use Grid Snap" +msgstr "Bruk Snap" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Snapping Options" +msgstr "Snapping innstillinger" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Rotation Snap" @@ -5625,8 +5627,8 @@ msgid "View" msgstr "Visning" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +#, fuzzy +msgid "Always Show Grid" msgstr "Vis Rutenett" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5906,6 +5908,11 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "Hold Shift for Ã¥ endre tangenter individuelt" +#: editor/plugins/curve_editor_plugin.cpp +#, fuzzy +msgid "Right click to add point" +msgstr "Høyreklikk: Fjern Punkt" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "Bak GI Probe" @@ -6560,6 +6567,10 @@ msgid "Grid" msgstr "Rutenett" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "Vis Rutenett" + +#: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy msgid "Configure Grid:" msgstr "Konfigurer Snap" @@ -6622,6 +6633,7 @@ msgstr "Instans:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "Type:" @@ -6736,6 +6748,11 @@ msgid "Find Next" msgstr "Finn neste" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "Finn forrige" + +#: editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Filter scripts" msgstr "Lim inn Noder" @@ -7018,6 +7035,11 @@ msgstr "Slett punkter" msgid "Cut" msgstr "Klipp ut" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "Velg Alle" + #: editor/plugins/script_text_editor.cpp #, fuzzy msgid "Delete Line" @@ -7080,10 +7102,6 @@ msgid "Auto Indent" msgstr "Automatisk innrykk" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "Finn forrige" - -#: editor/plugins/script_text_editor.cpp #, fuzzy msgid "Find in Files..." msgstr "Filtrer Filer..." @@ -7424,6 +7442,10 @@ msgid "Freelook Speed Modifier" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Slow Modifier" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -7459,6 +7481,10 @@ msgid "Use Local Space" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "Bruk Snap" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "Bunnvisning" @@ -7694,6 +7720,10 @@ msgid "Simplification: " msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Shrink (Pixels): " +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "" @@ -8539,12 +8569,7 @@ msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy -msgid "Add input +" -msgstr "Legg til Input" - -#: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy -msgid "Add output +" +msgid "Add Output" msgstr "Legg til Input" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -8562,6 +8587,10 @@ msgid "Boolean" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sampler" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy msgid "Add input port" msgstr "Legg til Input" @@ -9450,12 +9479,14 @@ msgstr "" #: editor/project_export.cpp msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp @@ -10491,11 +10522,9 @@ msgid "" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." msgstr "" #: editor/scene_tree_dock.cpp @@ -10577,6 +10606,14 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "" + +#: editor/scene_tree_dock.cpp #, fuzzy msgid "Open Documentation" msgstr "Ã…pne Godots nettbaserte dokumentasjon" @@ -10596,11 +10633,6 @@ msgstr "" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Extend Script" -msgstr "Kjør Skript" - -#: editor/scene_tree_dock.cpp -#, fuzzy msgid "Reparent to New Node" msgstr "Lag ny %s" @@ -10851,24 +10883,19 @@ msgid "Will load an existing script file." msgstr "Last et eksisterende Bus oppsett." #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Inherits" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Class Name" -msgstr "" +#, fuzzy +msgid "Class Name:" +msgstr "Klasse:" #: editor/script_create_dialog.cpp -msgid "Template" -msgstr "" +#, fuzzy +msgid "Template:" +msgstr "Fjern Mal" #: editor/script_create_dialog.cpp -msgid "Built-in Script" -msgstr "" +#, fuzzy +msgid "Built-in Script:" +msgstr "Kjør Skript" #: editor/script_create_dialog.cpp msgid "Attach Node Script" @@ -11539,6 +11566,11 @@ msgid "Add Function" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Delete input port" +msgstr "Fjern punkt" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "" @@ -11547,6 +11579,26 @@ msgid "Add Signal" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Input Port" +msgstr "Legg til Input" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Output Port" +msgstr "Legg til Input" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Input Port" +msgstr "Fjern punkt" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Output Port" +msgstr "Fjern punkt" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "" @@ -11592,10 +11644,20 @@ msgid "Add Preload Node" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "Legg til node(r) fra tre" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "" @@ -11623,6 +11685,11 @@ msgstr "Kutt Noder" #: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Disconnect Nodes" +msgstr "Kutt Noder" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Connect Node Data" msgstr "Kutt Noder" @@ -11659,6 +11726,27 @@ msgid "Paste VisualScript Nodes" msgstr "Lim inn Noder" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function with a function node." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Create Function" +msgstr "Lag Abonnement" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "Fjern Funksjon" @@ -11684,16 +11772,13 @@ msgid "Make Tool:" msgstr "Lag Ben" #: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "Medlemmer:" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" -msgstr "Tilgjengelige Noder:" +#, fuzzy +msgid "function_name" +msgstr "Funksjoner:" #: modules/visual_script/visual_script_editor.cpp #, fuzzy @@ -11719,6 +11804,16 @@ msgstr "Kutt Noder" #: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Make Function" +msgstr "Fjern Funksjon" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Refresh Graph" +msgstr "Oppdater" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Edit Member" msgstr "Medlemmer" @@ -11814,6 +11909,10 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "Velg enhet fra listen" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "" @@ -11916,6 +12015,10 @@ msgid "Required icon is not specified in the preset." msgstr "" #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "" @@ -12466,11 +12569,6 @@ msgid "" "texture to some node for display." msgstr "" -#: scene/resources/visual_shader.cpp -#, fuzzy -msgid "Input" -msgstr "Legg til Input" - #: scene/resources/visual_shader_nodes.cpp #, fuzzy msgid "Invalid source for preview." @@ -12482,9 +12580,8 @@ msgid "Invalid source for shader." msgstr "Ugyldig fontstørrelse." #: scene/resources/visual_shader_nodes.cpp -#, fuzzy msgid "Invalid comparison function for that type." -msgstr "Ugyldig fontstørrelse." +msgstr "Ugyldig sammenligningsfunksjon for den typen." #: servers/visual/shader_language.cpp msgid "Assignment to function." @@ -12502,6 +12599,21 @@ msgstr "" msgid "Constants cannot be modified." msgstr "Konstanter kan ikke endres." +#, fuzzy +#~ msgid "Snap to Grid" +#~ msgstr "Snap til rutenett" + +#, fuzzy +#~ msgid "Add input +" +#~ msgstr "Legg til Input" + +#~ msgid "Available Nodes:" +#~ msgstr "Tilgjengelige Noder:" + +#, fuzzy +#~ msgid "Input" +#~ msgstr "Legg til Input" + #~ msgid "Properties:" #~ msgstr "Egenskaper:" @@ -12656,9 +12768,6 @@ msgstr "Konstanter kan ikke endres." #~ msgid "Go to parent folder" #~ msgstr "GÃ¥ til overnevnt mappe" -#~ msgid "Select device from the list" -#~ msgstr "Velg enhet fra listen" - #, fuzzy #~ msgid "Open Scene(s)" #~ msgstr "Ã…pne Scene" @@ -13045,9 +13154,6 @@ msgstr "Konstanter kan ikke endres." #~ msgid "Move Add Key" #~ msgstr "Flytt Legg-Til-Nøkkel" -#~ msgid "Create Subscription" -#~ msgstr "Lag Abonnement" - #~ msgid "List:" #~ msgstr "Liste:" diff --git a/editor/translations/nl.po b/editor/translations/nl.po index c100b343da..950e7f4573 100644 --- a/editor/translations/nl.po +++ b/editor/translations/nl.po @@ -36,12 +36,13 @@ # Bastiaan van der Plaat <bastiaan.v.d.plaat@gmail.com>, 2019. # Hector Peeters <hector.peeters@gmail.com>, 2019. # Shawn Gyina <gyina.shawn@gmail.com>, 2019. +# ebbe <ebbesteenhoudt@gmail.com>, 2019. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-08-04 14:23+0000\n" -"Last-Translator: Shawn Gyina <gyina.shawn@gmail.com>\n" +"PO-Revision-Date: 2019-10-18 18:02+0000\n" +"Last-Translator: ebbe <ebbesteenhoudt@gmail.com>\n" "Language-Team: Dutch <https://hosted.weblate.org/projects/godot-engine/godot/" "nl/>\n" "Language: nl\n" @@ -49,7 +50,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 3.8-dev\n" +"X-Generator: Weblate 3.9.1-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -93,32 +94,31 @@ msgstr "Tijdens invocatie van '%s':" #: core/ustring.cpp msgid "B" -msgstr "" +msgstr "B" #: core/ustring.cpp msgid "KiB" -msgstr "" +msgstr "KiB" #: core/ustring.cpp -#, fuzzy msgid "MiB" -msgstr "Mengen" +msgstr "MiB" #: core/ustring.cpp msgid "GiB" -msgstr "" +msgstr "GiB" #: core/ustring.cpp msgid "TiB" -msgstr "" +msgstr "TiB" #: core/ustring.cpp msgid "PiB" -msgstr "" +msgstr "PiB" #: core/ustring.cpp msgid "EiB" -msgstr "" +msgstr "EiB" #: editor/animation_bezier_editor.cpp msgid "Free" @@ -391,6 +391,7 @@ msgstr "Maak %d NIEUWE tracks aan en keys invoeren?" #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "Maken" @@ -534,15 +535,6 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "Waarschuwing: Geïmporteerde animatie bewerken" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "Alles Selecteren" - -#: editor/animation_track_editor.cpp -msgid "Select None" -msgstr "Niets Selecteren" - #: editor/animation_track_editor.cpp #, fuzzy msgid "Select an AnimationPlayer node to create and edit animations." @@ -680,7 +672,8 @@ msgid "Scale Ratio:" msgstr "Schaal Ratio:" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" +#, fuzzy +msgid "Select Tracks to Copy" msgstr "Selecteer sporen om te kopieren:" #: editor/animation_track_editor.cpp editor/editor_log.cpp @@ -692,6 +685,11 @@ msgstr "Selecteer sporen om te kopieren:" msgid "Copy" msgstr "Kopiëren" +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Select All/None" +msgstr "Niets Selecteren" + #: editor/animation_track_editor_plugins.cpp msgid "Add Audio Track Clip" msgstr "Voeg audiospoor clip toe" @@ -867,9 +865,8 @@ msgid "Disconnects the signal after its first emission." msgstr "" #: editor/connections_dialog.cpp -#, fuzzy msgid "Cannot connect signal" -msgstr "Verbind met Signaal: " +msgstr "Kan signaal niet verbinden" #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp @@ -891,9 +888,8 @@ msgid "Connect" msgstr "Verbinden" #: editor/connections_dialog.cpp -#, fuzzy msgid "Signal:" -msgstr "Signalen:" +msgstr "Signaal:" #: editor/connections_dialog.cpp msgid "Connect '%s' to '%s'" @@ -917,9 +913,8 @@ msgid "Disconnect" msgstr "Losmaken" #: editor/connections_dialog.cpp -#, fuzzy msgid "Connect a Signal to a Method" -msgstr "Verbind met Signaal: " +msgstr "Verbind een Signaal met een Methode" #: editor/connections_dialog.cpp #, fuzzy @@ -1029,7 +1024,7 @@ msgid "Resource" msgstr "Bron" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "Pad" @@ -1507,7 +1502,8 @@ msgstr "AutoLoad Toevoegen" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "Pad:" @@ -1562,7 +1558,7 @@ msgstr "Map Maken" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "Naam:" @@ -1980,6 +1976,7 @@ msgid "Class:" msgstr "Klasse:" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "Erft:" @@ -3086,7 +3083,7 @@ msgstr "Inspecteur" msgid "Expand Bottom Panel" msgstr "Vergroot onderste paneel" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "Output" @@ -3335,6 +3332,11 @@ msgstr "Kies een Aanzicht portaal" msgid "New Script" msgstr "Nieuw Script" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +#, fuzzy +msgid "Extend Script" +msgstr "Omschrijving:" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "Nieuw %s" @@ -3361,13 +3363,6 @@ msgstr "Plakken" msgid "Convert To %s" msgstr "Omzetten naar %s" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Open Editor" -msgstr "Editor Openen" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "Geselecteerde knoop is geen Viewport!" @@ -4180,7 +4175,7 @@ msgstr "Pluginnaam:" msgid "Subfolder:" msgstr "Submap:" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "Taal:" @@ -4328,6 +4323,12 @@ msgstr "Punt" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Open Editor" +msgstr "Editor Openen" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp msgid "Open Animation Node" msgstr "Animatieknoop openen" @@ -4696,7 +4697,6 @@ msgstr "Animatie Naam:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "Foutmelding!" @@ -4875,6 +4875,8 @@ msgid "Current:" msgstr "Huidig:" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "Voeg invoer toe" @@ -5087,6 +5089,10 @@ msgid "All" msgstr "Alle" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy msgid "Import..." msgstr "Importeren" @@ -5401,22 +5407,28 @@ msgid "Ruler Mode" msgstr "Uitvoermodus:" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Toggle snapping." +#, fuzzy +msgid "Toggle smart snapping." msgstr "Automatisch schikken omschakelen." #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +#, fuzzy +msgid "Use Smart Snap" msgstr "Gebruik Uitlijnen" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snapping Options" -msgstr "Opties voor automatisch schikken" +#, fuzzy +msgid "Toggle grid snapping." +msgstr "Automatisch schikken omschakelen." #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Snap to Grid" -msgstr "Uitlijnen op raster" +msgid "Use Grid Snap" +msgstr "Rooster Snap" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snapping Options" +msgstr "Opties voor automatisch schikken" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Rotation Snap" @@ -5517,8 +5529,8 @@ msgid "View" msgstr "Weergeven" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +#, fuzzy +msgid "Always Show Grid" msgstr "Raster Weergeven" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5803,6 +5815,11 @@ msgstr "Schakel Curve Lineaire Raaklijn" msgid "Hold Shift to edit tangents individually" msgstr "Houd Shift ingedrukt om de raaklijnen individueel te bewerken" +#: editor/plugins/curve_editor_plugin.cpp +#, fuzzy +msgid "Right click to add point" +msgstr "Rechter Klik: Verwijder Punt" + #: editor/plugins/gi_probe_editor_plugin.cpp #, fuzzy msgid "Bake GI Probe" @@ -6471,6 +6488,10 @@ msgid "Grid" msgstr "Grid" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "Raster Weergeven" + +#: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy msgid "Configure Grid:" msgstr "Configureer Snap" @@ -6533,6 +6554,7 @@ msgstr "Instantie:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "Type:" @@ -6643,6 +6665,11 @@ msgid "Find Next" msgstr "Vind Volgende" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "Vind Vorige" + +#: editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Filter scripts" msgstr "Filter eigenschappen" @@ -6930,6 +6957,11 @@ msgstr "Punten aanmaken." msgid "Cut" msgstr "Knippen" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "Alles Selecteren" + #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "Verwijder Regel" @@ -6990,10 +7022,6 @@ msgid "Auto Indent" msgstr "Auto Indentatie" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "Vind Vorige" - -#: editor/plugins/script_text_editor.cpp #, fuzzy msgid "Find in Files..." msgstr "Bestanden Filteren..." @@ -7339,6 +7367,11 @@ msgid "Freelook Speed Modifier" msgstr "Vrijekijk Snelheid Modificator" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Freelook Slow Modifier" +msgstr "Vrijekijk Snelheid Modificator" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -7382,6 +7415,10 @@ msgid "Use Local Space" msgstr "Lokale Ruimtemodus (%s)" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "Gebruik Uitlijnen" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "Onderaanzicht" @@ -7626,6 +7663,11 @@ msgid "Simplification: " msgstr "Simplificatie: " #: editor/plugins/sprite_editor_plugin.cpp +#, fuzzy +msgid "Shrink (Pixels): " +msgstr "Vergroot (Pixels): " + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "Vergroot (Pixels): " @@ -8481,12 +8523,7 @@ msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy -msgid "Add input +" -msgstr "Voeg invoer toe" - -#: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy -msgid "Add output +" +msgid "Add Output" msgstr "Voeg invoer toe" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -8504,6 +8541,10 @@ msgid "Boolean" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sampler" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy msgid "Add input port" msgstr "Voeg invoer toe" @@ -9412,15 +9453,19 @@ msgid "Resources to export:" msgstr "Bronnen te exporteren:" #: editor/project_export.cpp +#, fuzzy msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" "Filters voor het exporteren van bestanden dat geen bron zijn (scheiden met " "een komma, bijv.: *.json, *.txt)" #: editor/project_export.cpp +#, fuzzy msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" "Filters voor het uitsluiten van bestanden van het project (scheiden met een " "komma, bijv.: *.json, *.txt)" @@ -10522,11 +10567,9 @@ msgid "" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." msgstr "" #: editor/scene_tree_dock.cpp @@ -10609,6 +10652,14 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "" + +#: editor/scene_tree_dock.cpp #, fuzzy msgid "Open Documentation" msgstr "Open Godot online documentatie" @@ -10629,11 +10680,6 @@ msgstr "Verander Type" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Extend Script" -msgstr "Omschrijving:" - -#: editor/scene_tree_dock.cpp -#, fuzzy msgid "Reparent to New Node" msgstr "Voeg nieuwe knooppunt aan" @@ -10890,23 +10936,18 @@ msgid "Will load an existing script file." msgstr "Laad bestaand script" #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "Taal" - -#: editor/script_create_dialog.cpp -msgid "Inherits" -msgstr "Erft" - -#: editor/script_create_dialog.cpp -msgid "Class Name" +#, fuzzy +msgid "Class Name:" msgstr "Klasse Naam" #: editor/script_create_dialog.cpp -msgid "Template" +#, fuzzy +msgid "Template:" msgstr "Sjabloon" #: editor/script_create_dialog.cpp -msgid "Built-in Script" +#, fuzzy +msgid "Built-in Script:" msgstr "Ingebouwd Script" #: editor/script_create_dialog.cpp @@ -11585,6 +11626,11 @@ msgid "Add Function" msgstr "Functie Toevoegen" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Delete input port" +msgstr "Punt verwijderen" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "Variabele Toevoegen" @@ -11593,6 +11639,26 @@ msgid "Add Signal" msgstr "Signaal Toevoegen" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Input Port" +msgstr "Voeg invoer toe" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Output Port" +msgstr "Voeg invoer toe" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Input Port" +msgstr "Punt verwijderen" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Output Port" +msgstr "Punt verwijderen" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "Verander Expressie" @@ -11643,10 +11709,20 @@ msgid "Add Preload Node" msgstr "Preload Node Toevoegen" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "Voeg Node(s) Toe Uit Tree" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "Getter Property Toevoegen" @@ -11676,6 +11752,11 @@ msgstr "Verbind Aan Node:" #: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Disconnect Nodes" +msgstr "Ontkoppel Graaf Knooppunten" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Connect Node Data" msgstr "Verbind Aan Node:" @@ -11712,6 +11793,27 @@ msgid "Paste VisualScript Nodes" msgstr "Plak Nodes" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function with a function node." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Create Function" +msgstr "Hernoem Functie" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "Verwijder Functie" @@ -11737,16 +11839,13 @@ msgid "Make Tool:" msgstr "Maak Botten" #: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "Basis Type:" - -#: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "Leden:" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" -msgstr "Beschikbare Nodes:" +#, fuzzy +msgid "function_name" +msgstr "Functies:" #: modules/visual_script/visual_script_editor.cpp #, fuzzy @@ -11771,6 +11870,16 @@ msgstr "Knip Nodes" #: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Make Function" +msgstr "Hernoem Functie" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Refresh Graph" +msgstr "Verversen" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Edit Member" msgstr "Leden" @@ -11869,6 +11978,10 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "Selecteer apparaat uit de lijst" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "" @@ -11971,6 +12084,10 @@ msgid "Required icon is not specified in the preset." msgstr "" #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "" @@ -12601,10 +12718,6 @@ msgstr "" "hebt zijn inhoud direct op het scherm te weergeven. Anders, maak er een " "RenderTarget van en wijs zijn interne texture toe aan een node om te tonen." -#: scene/resources/visual_shader.cpp -msgid "Input" -msgstr "Invoer" - #: scene/resources/visual_shader_nodes.cpp #, fuzzy msgid "Invalid source for preview." @@ -12635,6 +12748,29 @@ msgstr "" msgid "Constants cannot be modified." msgstr "" +#, fuzzy +#~ msgid "Snap to Grid" +#~ msgstr "Uitlijnen op raster" + +#, fuzzy +#~ msgid "Add input +" +#~ msgstr "Voeg invoer toe" + +#~ msgid "Language" +#~ msgstr "Taal" + +#~ msgid "Inherits" +#~ msgstr "Erft" + +#~ msgid "Base Type:" +#~ msgstr "Basis Type:" + +#~ msgid "Available Nodes:" +#~ msgstr "Beschikbare Nodes:" + +#~ msgid "Input" +#~ msgstr "Invoer" + #~ msgid "Properties:" #~ msgstr "Eigenschappen:" @@ -12839,9 +12975,6 @@ msgstr "" #~ msgid "Go to parent folder" #~ msgstr "Ga naar bovenliggende folder" -#~ msgid "Select device from the list" -#~ msgstr "Selecteer apparaat uit de lijst" - #~ msgid "Open Scene(s)" #~ msgstr "Scene(s) Openen" @@ -13122,9 +13255,6 @@ msgstr "" #~ msgid "Connect Graph Nodes" #~ msgstr "Verbind Graaf Knooppunten" -#~ msgid "Disconnect Graph Nodes" -#~ msgstr "Ontkoppel Graaf Knooppunten" - #~ msgid "Remove Shader Graph Node" #~ msgstr "Verwijder Shader Graaf Knooppunten" diff --git a/editor/translations/or.po b/editor/translations/or.po index 1dc9df2f8d..19fbf71453 100644 --- a/editor/translations/or.po +++ b/editor/translations/or.po @@ -347,6 +347,7 @@ msgstr "" #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "" @@ -472,15 +473,6 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "" - -#: editor/animation_track_editor.cpp -msgid "Select None" -msgstr "" - #: editor/animation_track_editor.cpp msgid "Select an AnimationPlayer node to create and edit animations." msgstr "" @@ -615,7 +607,7 @@ msgid "Scale Ratio:" msgstr "" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" +msgid "Select Tracks to Copy" msgstr "" #: editor/animation_track_editor.cpp editor/editor_log.cpp @@ -627,6 +619,10 @@ msgstr "" msgid "Copy" msgstr "" +#: editor/animation_track_editor.cpp +msgid "Select All/None" +msgstr "" + #: editor/animation_track_editor_plugins.cpp msgid "Add Audio Track Clip" msgstr "" @@ -943,7 +939,7 @@ msgid "Resource" msgstr "" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "" @@ -1398,7 +1394,8 @@ msgstr "" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "" @@ -1452,7 +1449,7 @@ msgstr "" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "" @@ -1836,6 +1833,7 @@ msgid "Class:" msgstr "" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "" @@ -2826,7 +2824,7 @@ msgstr "" msgid "Expand Bottom Panel" msgstr "" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "" @@ -3062,6 +3060,10 @@ msgstr "" msgid "New Script" msgstr "" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +msgid "Extend Script" +msgstr "" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "" @@ -3088,13 +3090,6 @@ msgstr "" msgid "Convert To %s" msgstr "" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Open Editor" -msgstr "" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "" @@ -3867,7 +3862,7 @@ msgstr "" msgid "Subfolder:" msgstr "" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "" @@ -4002,6 +3997,12 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Open Editor" +msgstr "" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp msgid "Open Animation Node" msgstr "" @@ -4343,7 +4344,6 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "" @@ -4511,6 +4511,8 @@ msgid "Current:" msgstr "" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "" @@ -4715,6 +4717,10 @@ msgid "All" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp msgid "Import..." msgstr "" @@ -4993,20 +4999,23 @@ msgid "Ruler Mode" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Toggle snapping." +msgid "Toggle smart snapping." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +msgid "Use Smart Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snapping Options" +msgid "Toggle grid snapping." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to Grid" +msgid "Use Grid Snap" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snapping Options" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5096,8 +5105,7 @@ msgid "View" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +msgid "Always Show Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5357,6 +5365,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/curve_editor_plugin.cpp +msgid "Right click to add point" +msgstr "" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "" @@ -5986,6 +5998,10 @@ msgid "Grid" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Configure Grid:" msgstr "" @@ -6042,6 +6058,7 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "" @@ -6140,6 +6157,11 @@ msgid "Find Next" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Filter scripts" msgstr "" @@ -6405,6 +6427,11 @@ msgstr "" msgid "Cut" msgstr "" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "" @@ -6462,10 +6489,6 @@ msgid "Auto Indent" msgstr "" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "" - -#: editor/plugins/script_text_editor.cpp msgid "Find in Files..." msgstr "" @@ -6785,6 +6808,10 @@ msgid "Freelook Speed Modifier" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Slow Modifier" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -6818,6 +6845,10 @@ msgid "Use Local Space" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "" @@ -7044,6 +7075,10 @@ msgid "Simplification: " msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Shrink (Pixels): " +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "" @@ -7805,11 +7840,7 @@ msgid "(GLES3 only)" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add input +" -msgstr "" - -#: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add output +" +msgid "Add Output" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -7825,6 +7856,10 @@ msgid "Boolean" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sampler" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add input port" msgstr "" @@ -8681,12 +8716,14 @@ msgstr "" #: editor/project_export.cpp msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp @@ -9668,11 +9705,9 @@ msgid "" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." msgstr "" #: editor/scene_tree_dock.cpp @@ -9746,6 +9781,14 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "" + +#: editor/scene_tree_dock.cpp msgid "Open Documentation" msgstr "" @@ -9762,10 +9805,6 @@ msgid "Change Type" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Extend Script" -msgstr "" - -#: editor/scene_tree_dock.cpp msgid "Reparent to New Node" msgstr "" @@ -9992,23 +10031,15 @@ msgid "Will load an existing script file." msgstr "" #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Inherits" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Class Name" +msgid "Class Name:" msgstr "" #: editor/script_create_dialog.cpp -msgid "Template" +msgid "Template:" msgstr "" #: editor/script_create_dialog.cpp -msgid "Built-in Script" +msgid "Built-in Script:" msgstr "" #: editor/script_create_dialog.cpp @@ -10642,6 +10673,10 @@ msgid "Add Function" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Delete input port" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "" @@ -10650,6 +10685,22 @@ msgid "Add Signal" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Add Input Port" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Add Output Port" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Remove Input Port" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Remove Output Port" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "" @@ -10690,10 +10741,20 @@ msgid "Add Preload Node" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "" @@ -10718,6 +10779,10 @@ msgid "Connect Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Disconnect Nodes" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Connect Node Data" msgstr "" @@ -10750,6 +10815,26 @@ msgid "Paste VisualScript Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function with a function node." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Create Function" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "" @@ -10774,15 +10859,11 @@ msgid "Make Tool:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" +msgid "function_name" msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -10806,6 +10887,14 @@ msgid "Cut Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Make Function" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Refresh Graph" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Edit Member" msgstr "" @@ -10900,6 +10989,10 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "" @@ -10999,6 +11092,10 @@ msgid "Required icon is not specified in the preset." msgstr "" #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "" @@ -11536,10 +11633,6 @@ msgid "" "texture to some node for display." msgstr "" -#: scene/resources/visual_shader.cpp -msgid "Input" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for preview." msgstr "" diff --git a/editor/translations/pl.po b/editor/translations/pl.po index da1b230208..cd7c033cb0 100644 --- a/editor/translations/pl.po +++ b/editor/translations/pl.po @@ -36,11 +36,12 @@ # Artur MaciÄ…g <arturmaciag@gmail.com>, 2019. # RafaÅ‚ Wyszomirski <rawyszo@gmail.com>, 2019. # Myver <igormakarowicz@gmail.com>, 2019. +# Maciej Chamera <chameramaciej@gmail.com>, 2019. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-09-19 05:27+0000\n" +"PO-Revision-Date: 2019-10-29 12:49+0000\n" "Last-Translator: Tomek <kobewi4e@gmail.com>\n" "Language-Team: Polish <https://hosted.weblate.org/projects/godot-engine/" "godot/pl/>\n" @@ -50,7 +51,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 3.9-dev\n" +"X-Generator: Weblate 3.9.1\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -95,32 +96,31 @@ msgstr "Przy wywoÅ‚aniu \"%s\":" #: core/ustring.cpp msgid "B" -msgstr "" +msgstr "B" #: core/ustring.cpp msgid "KiB" -msgstr "" +msgstr "KiB" #: core/ustring.cpp -#, fuzzy msgid "MiB" -msgstr "Miks" +msgstr "MiB" #: core/ustring.cpp msgid "GiB" -msgstr "" +msgstr "GiB" #: core/ustring.cpp msgid "TiB" -msgstr "" +msgstr "TiB" #: core/ustring.cpp msgid "PiB" -msgstr "" +msgstr "PiB" #: core/ustring.cpp msgid "EiB" -msgstr "" +msgstr "EiB" #: editor/animation_bezier_editor.cpp msgid "Free" @@ -386,6 +386,7 @@ msgstr "Utworzyć %d NOWYCH Å›cieżek i wstawić klucze?" #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "Utwórz" @@ -527,20 +528,9 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "Ostrzeżenie: Edytowanie importowanej animacji" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "Zaznacz wszystko" - -#: editor/animation_track_editor.cpp -msgid "Select None" -msgstr "Wybierz wÄ™zeÅ‚" - #: editor/animation_track_editor.cpp -#, fuzzy msgid "Select an AnimationPlayer node to create and edit animations." -msgstr "" -"Åšcieżka do wÄ™zÅ‚a AnimationPlayer zawierajÄ…cego animacje nie jest ustawiona." +msgstr "Wybierz wÄ™zeÅ‚ AnimationPlayer, by tworzyć i edytować animacje." #: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." @@ -672,7 +662,8 @@ msgid "Scale Ratio:" msgstr "Współczynnik skali:" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" +#, fuzzy +msgid "Select Tracks to Copy" msgstr "Wybierz Å›cieżki do skopiowania:" #: editor/animation_track_editor.cpp editor/editor_log.cpp @@ -684,6 +675,11 @@ msgstr "Wybierz Å›cieżki do skopiowania:" msgid "Copy" msgstr "Kopiuj" +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Select All/None" +msgstr "Wybierz wÄ™zeÅ‚" + #: editor/animation_track_editor_plugins.cpp msgid "Add Audio Track Clip" msgstr "Dodaj klip Å›cieżki audio" @@ -1007,7 +1003,7 @@ msgid "Resource" msgstr "Zasoby" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "Åšcieżka" @@ -1276,9 +1272,8 @@ msgid "Delete Bus Effect" msgstr "UsuÅ„ efekt magistrali" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Drag & drop to rearrange." -msgstr "Magistrala audio, przeciÄ…gnij i upuść by przemieÅ›cić." +msgstr "PrzeciÄ…gnij i upuść, by zmienić kolejność." #: editor/editor_audio_buses.cpp msgid "Solo" @@ -1469,7 +1464,8 @@ msgstr "Dodaj AutoLoad" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "Åšcieżka:" @@ -1523,7 +1519,7 @@ msgstr "Utwórz katalog" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "Nazwa:" @@ -1916,6 +1912,7 @@ msgid "Class:" msgstr "Klasa:" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "Dziedziczy:" @@ -1924,9 +1921,8 @@ msgid "Inherited by:" msgstr "Dziedziczone przez:" #: editor/editor_help.cpp -#, fuzzy msgid "Brief Description" -msgstr "Krótki opis:" +msgstr "Krótki opis" #: editor/editor_help.cpp msgid "Properties" @@ -1957,9 +1953,8 @@ msgid "Class Description" msgstr "Opis klasy" #: editor/editor_help.cpp -#, fuzzy msgid "Online Tutorials" -msgstr "Poradniki online:" +msgstr "Poradniki online" #: editor/editor_help.cpp msgid "" @@ -2082,7 +2077,7 @@ msgstr "Start" #: editor/editor_network_profiler.cpp msgid "%s/s" -msgstr "" +msgstr "%s/s" #: editor/editor_network_profiler.cpp msgid "Down" @@ -2098,19 +2093,19 @@ msgstr "WÄ™zeÅ‚" #: editor/editor_network_profiler.cpp msgid "Incoming RPC" -msgstr "" +msgstr "PrzychodzÄ…ce RPC" #: editor/editor_network_profiler.cpp msgid "Incoming RSET" -msgstr "" +msgstr "PrzychodzÄ…ce RSET" #: editor/editor_network_profiler.cpp msgid "Outgoing RPC" -msgstr "" +msgstr "WychodzÄ…ce RPC" #: editor/editor_network_profiler.cpp msgid "Outgoing RSET" -msgstr "" +msgstr "WychodzÄ…ce RSET" #: editor/editor_node.cpp editor/project_manager.cpp msgid "New Window" @@ -2698,17 +2693,16 @@ msgid "Project Settings..." msgstr "Ustawienia projektu..." #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Version Control" -msgstr "Wersja:" +msgstr "Kontrola wersji" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Set Up Version Control" -msgstr "" +msgstr "Ustaw kontrolÄ™ wersji" #: editor/editor_node.cpp msgid "Shut Down Version Control" -msgstr "" +msgstr "WyÅ‚Ä…cz kontrolÄ™ wersji" #: editor/editor_node.cpp msgid "Export..." @@ -2978,7 +2972,7 @@ msgstr "Inspektor" msgid "Expand Bottom Panel" msgstr "RozwiÅ„ panel dolny" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "Konsola" @@ -3004,17 +2998,24 @@ msgid "" "the \"Use Custom Build\" option should be enabled in the Android export " "preset." msgstr "" +"Ta opcja przygotuje twój projekt dla wÅ‚asnych buildów Androida, instalujÄ…c " +"źródÅ‚owy szablon w \"res://android/build\".\n" +"Możesz wtedy dodać modyfikacje i zbudować podczas eksportu wÅ‚asny pakiet APK " +"(dodajÄ…c moduÅ‚y, zmieniajÄ…c AndroidManifest.xml itp.)\n" +"PamiÄ™taj, że aby stworzyć wÅ‚asny build zamiast używać gotowego APK, opcja " +"\"Use Custom Build\" powinna być wÅ‚Ä…czona w profilu eksportu Androida." #: editor/editor_node.cpp -#, fuzzy msgid "" "The Android build template is already installed in this project and it won't " "be overwritten.\n" "Remove the \"res://android/build\" directory manually before attempting this " "operation again." msgstr "" -"Szablon budowania Androida jest już zainstalowany i nie bÄ™dzie nadpisany.\n" -"UsuÅ„ rÄ™cznie folder \"build\" przed spróbowaniem tej operacji ponownie." +"Szablon budowania Androida jest już zainstalowany w tym projekcie i nie " +"zostanie on nadpisany.\n" +"UsuÅ„ rÄ™cznie folder \"res://android/build\" przed spróbowaniem tej operacji " +"ponownie." #: editor/editor_node.cpp msgid "Import Templates From ZIP File" @@ -3077,9 +3078,8 @@ msgid "Open the previous Editor" msgstr "Otwórz poprzedni edytor" #: editor/editor_path.cpp -#, fuzzy msgid "No sub-resources found." -msgstr "Nie ustawiono źródÅ‚a pÅ‚aszczyzny." +msgstr "Nie znaleziono podzasobów." #: editor/editor_plugin.cpp msgid "Creating Mesh Previews" @@ -3090,9 +3090,8 @@ msgid "Thumbnail..." msgstr "Miniatura..." #: editor/editor_plugin_settings.cpp -#, fuzzy msgid "Main Script:" -msgstr "Otwórz skrypt:" +msgstr "Skrypt główny:" #: editor/editor_plugin_settings.cpp msgid "Edit Plugin" @@ -3227,6 +3226,10 @@ msgstr "Wybierz Viewport" msgid "New Script" msgstr "Nowy skrypt" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +msgid "Extend Script" +msgstr "Rozszerz skrypt" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "Nowy %s" @@ -3253,13 +3256,6 @@ msgstr "Wklej" msgid "Convert To %s" msgstr "Konwersja do %s" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Open Editor" -msgstr "Otwórz edytor" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "Wybrany wÄ™zeÅ‚ to nie Viewport!" @@ -3924,9 +3920,8 @@ msgid "Import As:" msgstr "Importuj jako:" #: editor/import_dock.cpp -#, fuzzy msgid "Preset" -msgstr "Profile eksportu" +msgstr "Profil" #: editor/import_dock.cpp msgid "Reimport" @@ -4052,7 +4047,7 @@ msgstr "Nazwa wtyczki:" msgid "Subfolder:" msgstr "Podfolder:" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "JÄ™zyk:" @@ -4194,6 +4189,12 @@ msgstr "Punkt" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Open Editor" +msgstr "Otwórz edytor" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp msgid "Open Animation Node" msgstr "Otwórz wÄ™zeÅ‚ animacji" @@ -4541,7 +4542,6 @@ msgstr "Nazwa animacji:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "BÅ‚Ä…d!" @@ -4714,6 +4714,8 @@ msgid "Current:" msgstr "Bieżący:" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "Dodaj WejÅ›cie" @@ -4920,6 +4922,10 @@ msgid "All" msgstr "Wszystko" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp msgid "Import..." msgstr "Importuj..." @@ -5212,28 +5218,34 @@ msgid "Pan Mode" msgstr "Tryb przesuwania" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Ruler Mode" -msgstr "Tryb uruchamiania:" +msgstr "Tryb linijki" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Toggle snapping." +#, fuzzy +msgid "Toggle smart snapping." msgstr "PrzeÅ‚Ä…cz przyciÄ…ganie." #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +#, fuzzy +msgid "Use Smart Snap" msgstr "Użyj przyciÄ…gania" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snapping Options" -msgstr "Opcje przyciÄ…gania" +#, fuzzy +msgid "Toggle grid snapping." +msgstr "PrzeÅ‚Ä…cz przyciÄ…ganie." #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to Grid" +#, fuzzy +msgid "Use Grid Snap" msgstr "PrzyciÄ…gaj do siatki" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snapping Options" +msgstr "Opcje przyciÄ…gania" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Rotation Snap" msgstr "Użyj kroków obrotu" @@ -5320,8 +5332,8 @@ msgid "View" msgstr "Widok" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +#, fuzzy +msgid "Always Show Grid" msgstr "Pokaż siatkÄ™" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5588,6 +5600,11 @@ msgstr "PrzeÅ‚Ä…cz stycznÄ… liniowÄ… krzywej" msgid "Hold Shift to edit tangents individually" msgstr "Przytrzymaj Shift aby edytować styczne indywidualnie" +#: editor/plugins/curve_editor_plugin.cpp +#, fuzzy +msgid "Right click to add point" +msgstr "Prawy Klik: UsuÅ„ Punkt" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "Wypal sondÄ™ GI" @@ -6223,6 +6240,10 @@ msgid "Grid" msgstr "Siatka" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "Pokaż siatkÄ™" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Configure Grid:" msgstr "Konfiguruj siatkÄ™:" @@ -6279,6 +6300,7 @@ msgstr "Instancja:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "Typ:" @@ -6377,6 +6399,11 @@ msgid "Find Next" msgstr "Znajdź nastÄ™pny" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "Znajdź poprzedni" + +#: editor/plugins/script_editor_plugin.cpp msgid "Filter scripts" msgstr "Filtruj skrypty" @@ -6646,6 +6673,11 @@ msgstr "Punkty wstrzymania" msgid "Cut" msgstr "Wytnij" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "Zaznacz wszystko" + #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "UsuÅ„ wiersz" @@ -6703,10 +6735,6 @@ msgid "Auto Indent" msgstr "Automatyczne wciÄ™cie" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "Znajdź poprzedni" - -#: editor/plugins/script_text_editor.cpp msgid "Find in Files..." msgstr "Znajdź w plikach..." @@ -6841,7 +6869,7 @@ msgstr "Skalowanie: " #: editor/plugins/spatial_editor_plugin.cpp msgid "Translating: " -msgstr "TÅ‚umaczenie: " +msgstr "Przesuwanie: " #: editor/plugins/spatial_editor_plugin.cpp msgid "Rotating %s degrees." @@ -7028,6 +7056,11 @@ msgid "Freelook Speed Modifier" msgstr "Zmiennik prÄ™dkoÅ›ci \"Wolnego widoku\"" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Freelook Slow Modifier" +msgstr "Zmiennik prÄ™dkoÅ›ci \"Wolnego widoku\"" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -7066,6 +7099,10 @@ msgid "Use Local Space" msgstr "Użyj przestrzeni lokalnej" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "Użyj przyciÄ…gania" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "Widok z doÅ‚u" @@ -7293,6 +7330,11 @@ msgid "Simplification: " msgstr "Uproszczenie: " #: editor/plugins/sprite_editor_plugin.cpp +#, fuzzy +msgid "Shrink (Pixels): " +msgstr "Wzrost (piksele): " + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "Wzrost (piksele): " @@ -7341,9 +7383,8 @@ msgid "(empty)" msgstr "(pusty)" #: editor/plugins/sprite_frames_editor_plugin.cpp -#, fuzzy msgid "Move Frame" -msgstr "Wklej klatkÄ™" +msgstr "PrzesuÅ„ klatkÄ™" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Animations:" @@ -7660,13 +7701,13 @@ msgid "Enable Priority" msgstr "WÅ‚Ä…cz priorytety" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Filter tiles" -msgstr "Filtrowanie plików..." +msgstr "Filtruj kafelki" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Give a TileSet resource to this TileMap to use its tiles." msgstr "" +"Przypisz temu wÄ™zÅ‚owi TileMap zasób TileSet, aby korzystać z jego kafelków." #: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" @@ -7804,6 +7845,8 @@ msgstr "Pokaż nazwy kafelków (przytrzymaj Alt)" msgid "" "Add or select a texture on the left panel to edit the tiles bound to it." msgstr "" +"Dodaj lub wybierz teksturÄ™ na lewym panelu, aby edytować przywiÄ…zane do niej " +"kafelki." #: editor/plugins/tile_set_editor_plugin.cpp msgid "Remove selected texture? This will remove all tiles which use it." @@ -7977,92 +8020,80 @@ msgid "TileSet" msgstr "TileSet" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "No VCS addons are available." -msgstr "Nazwa rodzica wÄ™zÅ‚a, jeÅ›li dostÄ™pna" +msgstr "Brak dostÄ™pnych dodatków VCS." #: editor/plugins/version_control_editor_plugin.cpp editor/rename_dialog.cpp msgid "Error" msgstr "BÅ‚Ä…d" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "No commit message was provided" -msgstr "Nie podano nazwy" +msgstr "Nie podano wiadomoÅ›ci commitu" #: editor/plugins/version_control_editor_plugin.cpp msgid "No files added to stage" -msgstr "" +msgstr "Brak plików dodanych do stage'a" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Commit" -msgstr "SpoÅ‚eczność" +msgstr "Commit" #: editor/plugins/version_control_editor_plugin.cpp msgid "VCS Addon is not initialized" -msgstr "" +msgstr "Dodatek VCS nie jest zainicjowany" #: editor/plugins/version_control_editor_plugin.cpp msgid "Version Control System" -msgstr "" +msgstr "System Kontroli Wersji (VCS)" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Initialize" -msgstr "Wielkie litery na poczÄ…tku słów" +msgstr "Inicjuj" #: editor/plugins/version_control_editor_plugin.cpp msgid "Staging area" -msgstr "" +msgstr "Obszar stage'a" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Detect new changes" -msgstr "Utwórz nowy prostokÄ…t." +msgstr "Wykryj nowe zmiany" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Changes" -msgstr "ZmieÅ„" +msgstr "Zmiany" #: editor/plugins/version_control_editor_plugin.cpp msgid "Modified" -msgstr "" +msgstr "Zmodyfikowany" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Renamed" -msgstr "ZmieÅ„ nazwÄ™" +msgstr "Przemianowany" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Deleted" -msgstr "UsuÅ„" +msgstr "UsuniÄ™ty" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Typechange" -msgstr "ZmieÅ„" +msgstr "Zmiana typu" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Stage Selected" -msgstr "UsuÅ„ zaznaczone" +msgstr "Stage'uj zaznaczone" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Stage All" -msgstr "Zapisz wszystko" +msgstr "Stage'uj wszystko" #: editor/plugins/version_control_editor_plugin.cpp msgid "Add a commit message" -msgstr "" +msgstr "Dodaj wiadomość comittu" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Commit Changes" -msgstr "Synchronizuj zmiany skryptów" +msgstr "Commituj zmiany" #: editor/plugins/version_control_editor_plugin.cpp #: modules/gdnative/gdnative_library_singleton_editor.cpp @@ -8071,27 +8102,23 @@ msgstr "Status" #: editor/plugins/version_control_editor_plugin.cpp msgid "View file diffs before committing them to the latest version" -msgstr "" +msgstr "Zobacz różnice przed commitowaniem do najnowszej wersji" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "No file diff is active" -msgstr "Nie wybrano pliku!" +msgstr "Brak aktywnego różnicowania plików (diff)" #: editor/plugins/version_control_editor_plugin.cpp msgid "Detect changes in file diff" -msgstr "" +msgstr "Wykryj zmiany w różnicach plików" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "(GLES3 only)" msgstr "(Tylko GLES3)" #: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add input +" -msgstr "Dodaj wejÅ›cie+" - -#: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add output +" +#, fuzzy +msgid "Add Output" msgstr "Dodaj wyjÅ›cie+" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -8107,6 +8134,11 @@ msgid "Boolean" msgstr "Prawda/faÅ‚sz" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Sampler" +msgstr "Sample" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add input port" msgstr "Dodaj port wejÅ›ciowy" @@ -8318,11 +8350,10 @@ msgstr "" "faÅ‚szywa." #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "" "Returns an associated scalar if the provided boolean value is true or false." msgstr "" -"Zwraca powiÄ…zany wektor, jeÅ›li podana wartość boolowska jest prawdziwa albo " +"Zwraca powiÄ…zany skalar, jeÅ›li podana wartość boolowska jest prawdziwa albo " "faÅ‚szywa." #: editor/plugins/visual_shader_editor_plugin.cpp @@ -9039,15 +9070,19 @@ msgid "Resources to export:" msgstr "Zasoby do eksportu:" #: editor/project_export.cpp +#, fuzzy msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" "Filtry do eksportowania plików nie bÄ™dÄ…cych zasobami (oddzielone " "przecinkami, np. *.json, *.txt)" #: editor/project_export.cpp +#, fuzzy msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" "Filtry do wykluczenia plików z projektu (rozdzielone przecinkami, np. *." "json, *.txt)" @@ -9645,9 +9680,8 @@ msgid "Settings saved OK." msgstr "Ustawienia zapisane pomyÅ›lnie." #: editor/project_settings_editor.cpp -#, fuzzy msgid "Moved Input Action Event" -msgstr "Dodaj zdarzenie akcji wejÅ›cia" +msgstr "PrzesuÅ„ zdarzenie akcji wejÅ›cia" #: editor/project_settings_editor.cpp msgid "Override for Feature" @@ -10014,9 +10048,8 @@ msgid "Instance Scene(s)" msgstr "Dodaj instancjÄ™ sceny" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Replace with Branch Scene" -msgstr "Zapisz gałąź jako scenÄ™" +msgstr "PodmieÅ„ na gałąź sceny" #: editor/scene_tree_dock.cpp msgid "Instance Child Scene" @@ -10061,23 +10094,20 @@ msgid "Make node as Root" msgstr "ZmieÅ„ wÄ™zeÅ‚ na KorzeÅ„" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete %d nodes?" -msgstr "UsuÅ„ wÄ™zÅ‚y" +msgstr "Usunąć %d wÄ™złów?" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete the root node \"%s\"?" -msgstr "UsuÅ„ wÄ™zeÅ‚(y) Shader Graph" +msgstr "Usunąć korzeÅ„ \"%s\"?" #: editor/scene_tree_dock.cpp msgid "Delete node \"%s\" and its children?" -msgstr "" +msgstr "Usunąć wÄ™zeÅ‚ \"%s\" oraz jego wÄ™zÅ‚y potomne?" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete node \"%s\"?" -msgstr "UsuÅ„ wÄ™zÅ‚y" +msgstr "Usunąć wÄ™zeÅ‚ \"%s\"?" #: editor/scene_tree_dock.cpp msgid "Can not perform with the root node." @@ -10100,12 +10130,13 @@ msgstr "" "zostanÄ… przywrócone do domyÅ›lnych." #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "Edytowalne dzieci" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" -msgstr "Wczytaj jako zastÄ™pczy" +#, fuzzy +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." +msgstr "" +"WyÅ‚Ä…czenie \"edytowalnej instancji\" sprawi, że wszystkie wÅ‚aÅ›ciwoÅ›ci wÄ™zÅ‚a " +"zostanÄ… przywrócone do domyÅ›lnych." #: editor/scene_tree_dock.cpp msgid "Make Local" @@ -10180,6 +10211,14 @@ msgid "Clear Inheritance" msgstr "Wyczyść dziedziczenie" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "Edytowalne dzieci" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "Wczytaj jako zastÄ™pczy" + +#: editor/scene_tree_dock.cpp msgid "Open Documentation" msgstr "Otwórz dokumentacjÄ™" @@ -10196,10 +10235,6 @@ msgid "Change Type" msgstr "ZmieÅ„ typ" #: editor/scene_tree_dock.cpp -msgid "Extend Script" -msgstr "Rozszerz skrypt" - -#: editor/scene_tree_dock.cpp msgid "Reparent to New Node" msgstr "ZmieÅ„ nadrzÄ™dny wÄ™zeÅ‚" @@ -10440,23 +10475,18 @@ msgid "Will load an existing script file." msgstr "Wczytaj istniejÄ…cy plik skryptu." #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "JÄ™zyk" - -#: editor/script_create_dialog.cpp -msgid "Inherits" -msgstr "Dziedziczy" - -#: editor/script_create_dialog.cpp -msgid "Class Name" +#, fuzzy +msgid "Class Name:" msgstr "Nazwa klasy" #: editor/script_create_dialog.cpp -msgid "Template" +#, fuzzy +msgid "Template:" msgstr "Szablon" #: editor/script_create_dialog.cpp -msgid "Built-in Script" +#, fuzzy +msgid "Built-in Script:" msgstr "Wbudowany skrypt" #: editor/script_create_dialog.cpp @@ -10472,38 +10502,32 @@ msgid "Bytes:" msgstr "Bajty:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Warning:" -msgstr "Ostrzeżenia:" +msgstr "Ostrzeżenie:" #: editor/script_editor_debugger.cpp msgid "Error:" msgstr "BÅ‚Ä…d:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Error" -msgstr "Kopiuj bÅ‚Ä…d" +msgstr "BÅ‚Ä…d C++" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Error:" -msgstr "BÅ‚Ä…d:" +msgstr "BÅ‚Ä…d C++:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Source" -msgstr "ŹródÅ‚o" +msgstr "ŹródÅ‚o C++" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Source:" -msgstr "ŹródÅ‚o" +msgstr "ŹródÅ‚o:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Source:" -msgstr "ŹródÅ‚o" +msgstr "ŹródÅ‚o C++:" #: editor/script_editor_debugger.cpp msgid "Stack Trace" @@ -10514,18 +10538,16 @@ msgid "Errors" msgstr "BÅ‚Ä™dy" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Child process connected." -msgstr "PoÅ‚Ä…czono z procesem potomnym" +msgstr "PoÅ‚Ä…czono z procesem potomnym." #: editor/script_editor_debugger.cpp msgid "Copy Error" msgstr "Kopiuj bÅ‚Ä…d" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Skip Breakpoints" -msgstr "Punkty wstrzymania" +msgstr "PomiÅ„ punkty wstrzymania" #: editor/script_editor_debugger.cpp msgid "Inspect Previous Instance" @@ -10544,9 +10566,8 @@ msgid "Profiler" msgstr "Profiler" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Network Profiler" -msgstr "Eksportuj profil" +msgstr "Profiler sieci" #: editor/script_editor_debugger.cpp msgid "Monitor" @@ -10770,7 +10791,7 @@ msgstr "GDNative" #: modules/gdscript/gdscript_functions.cpp msgid "Expected a string of length 1 (a character)." -msgstr "" +msgstr "Oczekiwano ciÄ…gu znaków o dÅ‚ugoÅ›ci 1 (znaku)." #: modules/gdscript/gdscript_functions.cpp msgid "Step argument is zero!" @@ -10926,13 +10947,13 @@ msgid "Pick Distance:" msgstr "Wybierz odlegÅ‚ość:" #: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "Filter meshes" -msgstr "Filtruj metody" +msgstr "Filtruj siatki" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Give a MeshLibrary resource to this GridMap to use its meshes." msgstr "" +"Przypisz temu wÄ™zÅ‚owi GridMap zasób MeshLibrary, aby korzystać z jego siatek." #: modules/mono/csharp_script.cpp msgid "Class name can't be a reserved keyword" @@ -11107,6 +11128,11 @@ msgid "Add Function" msgstr "Dodaj funkcjÄ™" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Delete input port" +msgstr "UsuÅ„ port wejÅ›ciowy" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "Dodaj zmiennÄ…" @@ -11115,6 +11141,26 @@ msgid "Add Signal" msgstr "Dodaj sygnaÅ‚" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Input Port" +msgstr "Dodaj port wejÅ›ciowy" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Output Port" +msgstr "Dodaj port wyjÅ›ciowy" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Input Port" +msgstr "UsuÅ„ port wejÅ›ciowy" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Output Port" +msgstr "UsuÅ„ port wyjÅ›ciowy" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "ZmieÅ„ wyrażenie" @@ -11159,10 +11205,20 @@ msgid "Add Preload Node" msgstr "Dodaj wstÄ™pnie wczytany wÄ™zeÅ‚" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "Dodaj wÄ™zeÅ‚(y) z drzewa" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "Dodaj wÅ‚aÅ›ciwość Gettera" @@ -11187,6 +11243,11 @@ msgid "Connect Nodes" msgstr "PodÅ‚Ä…cz wÄ™zÅ‚y" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Disconnect Nodes" +msgstr "OdÅ‚Ä…cz wÄ™zÅ‚y grafu" + +#: modules/visual_script/visual_script_editor.cpp msgid "Connect Node Data" msgstr "PoÅ‚Ä…cz dane wÄ™zÅ‚a" @@ -11219,6 +11280,28 @@ msgid "Paste VisualScript Nodes" msgstr "Wklej wÄ™zeÅ‚ VisualScript" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Can't create function with a function node." +msgstr "Nie można skopiować wÄ™zÅ‚a funkcji." + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Create Function" +msgstr "ZmieÅ„ nazwÄ™ funkcji" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "UsuÅ„ funkcjÄ™" @@ -11239,21 +11322,17 @@ msgid "Editing Signal:" msgstr "Edytuj sygnaÅ‚:" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Make Tool:" -msgstr "UczyÅ„ lokalnym" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "Typ bazowy:" +msgstr "Aktywny w edytorze:" #: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "CzÅ‚onkowie:" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" -msgstr "DostÄ™pne wÄ™zÅ‚y:" +#, fuzzy +msgid "function_name" +msgstr "Funkcja:" #: modules/visual_script/visual_script_editor.cpp msgid "Select or create a function to edit its graph." @@ -11276,6 +11355,16 @@ msgid "Cut Nodes" msgstr "Wytnij WÄ™zÅ‚y" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Make Function" +msgstr "ZmieÅ„ nazwÄ™ funkcji" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Refresh Graph" +msgstr "OdÅ›wież" + +#: modules/visual_script/visual_script_editor.cpp msgid "Edit Member" msgstr "Edytuj czÅ‚onka" @@ -11373,6 +11462,10 @@ msgid "The package must have at least one '.' separator." msgstr "Paczka musi mieć co najmniej jednÄ… kropkÄ™ jako separator." #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "Wybierz urzÄ…dzenie z listy" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "Plik wykonywalny ADB nie skonfigurowany w Ustawieniach Edytora." @@ -11398,13 +11491,12 @@ msgstr "" "Edytora." #: platform/android/export/export.cpp -#, fuzzy msgid "" "Android build template not installed in the project. Install it from the " "Project menu." msgstr "" -"Projekt Androida nie jest zainstalowany do kompilacji. Zainstaluj z menu " -"Edytor." +"Szablon budowania Androida nie jest zainstalowany dla projektu. Zainstaluj " +"go z menu Projekt." #: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." @@ -11489,6 +11581,10 @@ msgid "Required icon is not specified in the preset." msgstr "Wymagana ikona nie jest podana w profilu eksportu." #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "Uruchom w przeglÄ…darce" @@ -12157,10 +12253,6 @@ msgstr "" "otrzymaÅ‚ jakiÅ› rozmiar. W przeciwnym wypadku ustawi opcjÄ™ RenderTarget i " "przyporzÄ…dkuj jego teksturÄ™ dla któregoÅ› wÄ™zÅ‚a." -#: scene/resources/visual_shader.cpp -msgid "Input" -msgstr "WejÅ›cie" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for preview." msgstr "NieprawidÅ‚owe źródÅ‚o do podglÄ…du." @@ -12189,6 +12281,27 @@ msgstr "Varying może być przypisane tylko w funkcji wierzchoÅ‚ków." msgid "Constants cannot be modified." msgstr "StaÅ‚e nie mogÄ… być modyfikowane." +#~ msgid "Snap to Grid" +#~ msgstr "PrzyciÄ…gaj do siatki" + +#~ msgid "Add input +" +#~ msgstr "Dodaj wejÅ›cie+" + +#~ msgid "Language" +#~ msgstr "JÄ™zyk" + +#~ msgid "Inherits" +#~ msgstr "Dziedziczy" + +#~ msgid "Base Type:" +#~ msgstr "Typ bazowy:" + +#~ msgid "Available Nodes:" +#~ msgstr "DostÄ™pne wÄ™zÅ‚y:" + +#~ msgid "Input" +#~ msgstr "WejÅ›cie" + #~ msgid "Properties:" #~ msgstr "WÅ‚aÅ›ciwoÅ›ci:" @@ -12443,9 +12556,6 @@ msgstr "StaÅ‚e nie mogÄ… być modyfikowane." #~ msgid "Go to parent folder" #~ msgstr "Przejdź folder wyżej" -#~ msgid "Select device from the list" -#~ msgstr "Wybierz urzÄ…dzenie z listy" - #~ msgid "Open Scene(s)" #~ msgstr "Otwórz scenÄ™/y" @@ -12687,9 +12797,6 @@ msgstr "StaÅ‚e nie mogÄ… być modyfikowane." #~ msgid "Warning" #~ msgstr "Ostrzeżenie" -#~ msgid "Function:" -#~ msgstr "Funkcja:" - #~ msgid "Variable" #~ msgstr "Zmienna" @@ -12744,9 +12851,6 @@ msgstr "StaÅ‚e nie mogÄ… być modyfikowane." #~ msgid "Connect Graph Nodes" #~ msgstr "PoÅ‚Ä…cz wÄ™zÅ‚y grafu" -#~ msgid "Disconnect Graph Nodes" -#~ msgstr "OdÅ‚Ä…cz wÄ™zÅ‚y grafu" - #~ msgid "Remove Shader Graph Node" #~ msgstr "UsuÅ„ wÄ™zeÅ‚ Shader Graph" @@ -13762,9 +13866,6 @@ msgstr "StaÅ‚e nie mogÄ… być modyfikowane." #~ msgid "Group" #~ msgstr "Grupa" -#~ msgid "Samples" -#~ msgstr "Sample" - #~ msgid "Compress (RAM - IMA-ADPCM)" #~ msgstr "Kompresja (RAM - IMA-ADPCM)" diff --git a/editor/translations/pr.po b/editor/translations/pr.po index bbfdbb9aba..7f3761e68d 100644 --- a/editor/translations/pr.po +++ b/editor/translations/pr.po @@ -374,6 +374,7 @@ msgstr "" #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "" @@ -503,16 +504,6 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "" - -#: editor/animation_track_editor.cpp -#, fuzzy -msgid "Select None" -msgstr "Slit th' Node" - #: editor/animation_track_editor.cpp msgid "Select an AnimationPlayer node to create and edit animations." msgstr "" @@ -648,7 +639,7 @@ msgid "Scale Ratio:" msgstr "" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" +msgid "Select Tracks to Copy" msgstr "" #: editor/animation_track_editor.cpp editor/editor_log.cpp @@ -660,6 +651,11 @@ msgstr "" msgid "Copy" msgstr "" +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Select All/None" +msgstr "Slit th' Node" + #: editor/animation_track_editor_plugins.cpp msgid "Add Audio Track Clip" msgstr "" @@ -985,7 +981,7 @@ msgid "Resource" msgstr "" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "" @@ -1445,7 +1441,8 @@ msgstr "" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "" @@ -1499,7 +1496,7 @@ msgstr "" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "" @@ -1903,6 +1900,7 @@ msgid "Class:" msgstr "" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "" @@ -2913,7 +2911,7 @@ msgstr "" msgid "Expand Bottom Panel" msgstr "" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "" @@ -3156,6 +3154,10 @@ msgstr "" msgid "New Script" msgstr "" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +msgid "Extend Script" +msgstr "" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "" @@ -3182,14 +3184,6 @@ msgstr "" msgid "Convert To %s" msgstr "" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy -msgid "Open Editor" -msgstr "Edit" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "" @@ -3991,7 +3985,7 @@ msgstr "" msgid "Subfolder:" msgstr "" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "" @@ -4134,6 +4128,13 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +#, fuzzy +msgid "Open Editor" +msgstr "Edit" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp msgid "Open Animation Node" msgstr "" @@ -4491,7 +4492,6 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "" @@ -4663,6 +4663,8 @@ msgid "Current:" msgstr "" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "" @@ -4867,6 +4869,10 @@ msgid "All" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp msgid "Import..." msgstr "" @@ -5161,20 +5167,24 @@ msgstr "Slit th' Node" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Toggle snapping." +msgid "Toggle smart snapping." msgstr "Toggle ye Breakpoint" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +msgid "Use Smart Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snapping Options" +#, fuzzy +msgid "Toggle grid snapping." +msgstr "Toggle ye Breakpoint" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Use Grid Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to Grid" +msgid "Snapping Options" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5266,8 +5276,7 @@ msgid "View" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +msgid "Always Show Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5533,6 +5542,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/curve_editor_plugin.cpp +msgid "Right click to add point" +msgstr "" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "" @@ -6174,6 +6187,10 @@ msgid "Grid" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Configure Grid:" msgstr "" @@ -6230,6 +6247,7 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "" @@ -6333,6 +6351,11 @@ msgid "Find Next" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Filter scripts" msgstr "Paste yer Node" @@ -6608,6 +6631,11 @@ msgstr "Yar, Blow th' Selected Down!" msgid "Cut" msgstr "" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "" + #: editor/plugins/script_text_editor.cpp #, fuzzy msgid "Delete Line" @@ -6668,10 +6696,6 @@ msgid "Auto Indent" msgstr "" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "" - -#: editor/plugins/script_text_editor.cpp #, fuzzy msgid "Find in Files..." msgstr "Find ye Node Type" @@ -7002,6 +7026,10 @@ msgid "Freelook Speed Modifier" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Slow Modifier" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -7035,6 +7063,10 @@ msgid "Use Local Space" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "" @@ -7268,6 +7300,10 @@ msgid "Simplification: " msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Shrink (Pixels): " +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "" @@ -8086,14 +8122,10 @@ msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy -msgid "Add input +" +msgid "Add Output" msgstr "Add Signal" #: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add output +" -msgstr "" - -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Scalar" msgstr "" @@ -8106,6 +8138,10 @@ msgid "Boolean" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sampler" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy msgid "Add input port" msgstr "Add Signal" @@ -8978,12 +9014,14 @@ msgstr "" #: editor/project_export.cpp msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp @@ -9981,11 +10019,9 @@ msgid "" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." msgstr "" #: editor/scene_tree_dock.cpp @@ -10060,6 +10096,14 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "" + +#: editor/scene_tree_dock.cpp #, fuzzy msgid "Open Documentation" msgstr "Yer functions:" @@ -10077,10 +10121,6 @@ msgid "Change Type" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Extend Script" -msgstr "" - -#: editor/scene_tree_dock.cpp #, fuzzy msgid "Reparent to New Node" msgstr "Yar, Blow th' Selected Down!" @@ -10322,25 +10362,18 @@ msgid "Will load an existing script file." msgstr "" #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Inherits" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Class Name" +msgid "Class Name:" msgstr "" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Template" +msgid "Template:" msgstr "Discharge ye' Variable" #: editor/script_create_dialog.cpp -msgid "Built-in Script" -msgstr "" +#, fuzzy +msgid "Built-in Script:" +msgstr "Edit" #: editor/script_create_dialog.cpp msgid "Attach Node Script" @@ -11006,6 +11039,11 @@ msgid "Add Function" msgstr "Add Function" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Delete input port" +msgstr "Discharge ye' Signal" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "Add Variable" @@ -11014,6 +11052,26 @@ msgid "Add Signal" msgstr "Add Signal" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Input Port" +msgstr "Add Signal" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Output Port" +msgstr "Add Signal" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Input Port" +msgstr "Discharge ye' Signal" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Output Port" +msgstr "Discharge ye' Signal" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "Swap yer Expression" @@ -11062,10 +11120,20 @@ msgid "Add Preload Node" msgstr "Add yer Preload Node" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "Add Node(s) From yer Tree" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "Add yer Getter Property" @@ -11095,6 +11163,11 @@ msgstr "Slit th' Node" #: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Disconnect Nodes" +msgstr "Slit th' Node" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Connect Node Data" msgstr "Slit th' Node" @@ -11129,6 +11202,27 @@ msgid "Paste VisualScript Nodes" msgstr "Paste yer Node" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function with a function node." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Create Function" +msgstr "Rename Function" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "Discharge ye' Function" @@ -11153,16 +11247,13 @@ msgid "Make Tool:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "th' Base Type:" - -#: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "th' Members:" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" -msgstr "yer Nodes doing nothin':" +#, fuzzy +msgid "function_name" +msgstr "Yer functions:" #: modules/visual_script/visual_script_editor.cpp #, fuzzy @@ -11187,6 +11278,15 @@ msgstr "Slit th' Node" #: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Make Function" +msgstr "Rename Function" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Refresh Graph" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Edit Member" msgstr "th' Members:" @@ -11284,6 +11384,10 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "" @@ -11386,6 +11490,10 @@ msgid "Required icon is not specified in the preset." msgstr "" #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "" @@ -11926,10 +12034,6 @@ msgid "" "texture to some node for display." msgstr "" -#: scene/resources/visual_shader.cpp -msgid "Input" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp #, fuzzy msgid "Invalid source for preview." @@ -11961,6 +12065,12 @@ msgstr "" msgid "Constants cannot be modified." msgstr "" +#~ msgid "Base Type:" +#~ msgstr "th' Base Type:" + +#~ msgid "Available Nodes:" +#~ msgstr "yer Nodes doing nothin':" + #, fuzzy #~ msgid "Theme Properties:" #~ msgstr "Paste yer Node" diff --git a/editor/translations/pt_BR.po b/editor/translations/pt_BR.po index 487cb8b4e8..ee6244fb84 100644 --- a/editor/translations/pt_BR.po +++ b/editor/translations/pt_BR.po @@ -69,12 +69,14 @@ # Fupi Brazil <fupicat@gmail.com>, 2019. # Julio Pinto Coelho <juliopcrj@gmail.com>, 2019. # Perrottacooking <perrottacooking@gmail.com>, 2019. +# Wow Bitch <hahaj@itmailr.com>, 2019. +# Alan Tavares <alan1tavares@gmail.com>, 2019. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: 2016-05-30\n" -"PO-Revision-Date: 2019-09-26 11:50+0000\n" -"Last-Translator: Perrottacooking <perrottacooking@gmail.com>\n" +"PO-Revision-Date: 2019-10-11 15:07+0000\n" +"Last-Translator: Alan Tavares <alan1tavares@gmail.com>\n" "Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/" "godot-engine/godot/pt_BR/>\n" "Language: pt_BR\n" @@ -101,7 +103,7 @@ msgstr "Entrada inválida %i (não passou) na expressão" #: core/math/expression.cpp msgid "self can't be used because instance is null (not passed)" -msgstr "self não pode ser usado porque a instancia é nul0o (não passou)" +msgstr "self não pode ser usado porque a instancia é nula (não passou)" #: core/math/expression.cpp msgid "Invalid operands to operator %s, %s and %s." @@ -125,32 +127,31 @@ msgstr "Na chamada para '%s':" #: core/ustring.cpp msgid "B" -msgstr "" +msgstr "B" #: core/ustring.cpp msgid "KiB" -msgstr "" +msgstr "KiB" #: core/ustring.cpp -#, fuzzy msgid "MiB" -msgstr "Misturar" +msgstr "MiB" #: core/ustring.cpp msgid "GiB" -msgstr "" +msgstr "GiB" #: core/ustring.cpp msgid "TiB" -msgstr "" +msgstr "TiB" #: core/ustring.cpp msgid "PiB" -msgstr "" +msgstr "PiB" #: core/ustring.cpp msgid "EiB" -msgstr "" +msgstr "EiB" #: editor/animation_bezier_editor.cpp msgid "Free" @@ -418,6 +419,7 @@ msgstr "Criar %d NOVAS trilhas e inserir chaves?" #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "Criar" @@ -560,20 +562,9 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "Aviso: Editando animação importada" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "Selecionar Tudo" - #: editor/animation_track_editor.cpp -msgid "Select None" -msgstr "Remover Seleção" - -#: editor/animation_track_editor.cpp -#, fuzzy msgid "Select an AnimationPlayer node to create and edit animations." -msgstr "" -"O caminho para um nó do AnimationPlayer contendo animações não está definido." +msgstr "Selecione um nó do tipo AnimationPlayer para criar e editar animações." #: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." @@ -705,7 +696,8 @@ msgid "Scale Ratio:" msgstr "Razão de Escala:" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" +#, fuzzy +msgid "Select Tracks to Copy" msgstr "Selecionar trilhas para copiar:" #: editor/animation_track_editor.cpp editor/editor_log.cpp @@ -717,6 +709,11 @@ msgstr "Selecionar trilhas para copiar:" msgid "Copy" msgstr "Copiar" +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Select All/None" +msgstr "Remover Seleção" + #: editor/animation_track_editor_plugins.cpp msgid "Add Audio Track Clip" msgstr "Adiciona Clipe de Trilha de Ãudio" @@ -1042,7 +1039,7 @@ msgid "Resource" msgstr "Recurso" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "Caminho" @@ -1312,9 +1309,8 @@ msgid "Delete Bus Effect" msgstr "Excluir Efeito de Canal" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Drag & drop to rearrange." -msgstr "Pista de Ãudio, arraste e solte para reorganizar." +msgstr "Arrastar e soltar para reorganizar." #: editor/editor_audio_buses.cpp msgid "Solo" @@ -1505,7 +1501,8 @@ msgstr "Adicionar Autoload" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "Caminho:" @@ -1559,7 +1556,7 @@ msgstr "Criar Pasta" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "Nome:" @@ -1954,6 +1951,7 @@ msgid "Class:" msgstr "Classe:" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "Herda de:" @@ -1962,9 +1960,8 @@ msgid "Inherited by:" msgstr "Herdado por:" #: editor/editor_help.cpp -#, fuzzy msgid "Brief Description" -msgstr "Descrição breve:" +msgstr "Breve Descrição" #: editor/editor_help.cpp msgid "Properties" @@ -1995,9 +1992,8 @@ msgid "Class Description" msgstr "Descrição da Classe" #: editor/editor_help.cpp -#, fuzzy msgid "Online Tutorials" -msgstr "Tutoriais Online:" +msgstr "Tutoriais Online" #: editor/editor_help.cpp msgid "" @@ -2120,7 +2116,7 @@ msgstr "Iniciar" #: editor/editor_network_profiler.cpp msgid "%s/s" -msgstr "" +msgstr "%s/s" #: editor/editor_network_profiler.cpp msgid "Down" @@ -2136,7 +2132,7 @@ msgstr "Nó" #: editor/editor_network_profiler.cpp msgid "Incoming RPC" -msgstr "" +msgstr "Incoming RPC" #: editor/editor_network_profiler.cpp msgid "Incoming RSET" @@ -2739,17 +2735,16 @@ msgid "Project Settings..." msgstr "Configurações do Projeto..." #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Version Control" -msgstr "Versão:" +msgstr "Controle de Versão" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Set Up Version Control" -msgstr "" +msgstr "Configurar Controle de Versão" #: editor/editor_node.cpp msgid "Shut Down Version Control" -msgstr "" +msgstr "Desativar Controle de Versão" #: editor/editor_node.cpp msgid "Export..." @@ -3022,7 +3017,7 @@ msgstr "Inspetor" msgid "Expand Bottom Panel" msgstr "Expandir Painel Inferior" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "SaÃda" @@ -3274,6 +3269,10 @@ msgstr "Escolha uma Viewport" msgid "New Script" msgstr "Novo Script" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +msgid "Extend Script" +msgstr "Estender Script" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "Novo %s" @@ -3300,13 +3299,6 @@ msgstr "Colar" msgid "Convert To %s" msgstr "Converter Para %s" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Open Editor" -msgstr "Abrir Editor" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "O nó selecionado não é uma Viewport!" @@ -4099,7 +4091,7 @@ msgstr "Nome do Plugin:" msgid "Subfolder:" msgstr "Subpasta:" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "Idioma:" @@ -4241,6 +4233,12 @@ msgstr "Ponto" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Open Editor" +msgstr "Abrir Editor" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp msgid "Open Animation Node" msgstr "Abrir Nó de Animação" @@ -4592,7 +4590,6 @@ msgstr "Nome da Animação:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "Erro!" @@ -4765,6 +4762,8 @@ msgid "Current:" msgstr "Atual:" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "Adicionar Entrada" @@ -4969,6 +4968,10 @@ msgid "All" msgstr "Todos" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp msgid "Import..." msgstr "Importar..." @@ -5266,21 +5269,28 @@ msgid "Ruler Mode" msgstr "Modo de InÃcio:" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Toggle snapping." +#, fuzzy +msgid "Toggle smart snapping." msgstr "Alternar o snap." #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +#, fuzzy +msgid "Use Smart Snap" msgstr "Usar Snap" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snapping Options" -msgstr "Opções de agarramento" +#, fuzzy +msgid "Toggle grid snapping." +msgstr "Alternar o snap." #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to Grid" -msgstr "Encaixar na grade" +#, fuzzy +msgid "Use Grid Snap" +msgstr "Snap de Grade" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snapping Options" +msgstr "Opções de agarramento" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Rotation Snap" @@ -5369,8 +5379,8 @@ msgid "View" msgstr "Visualizar" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +#, fuzzy +msgid "Always Show Grid" msgstr "Mostrar Grade" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5637,6 +5647,11 @@ msgstr "Alternar Curva Targente Linear" msgid "Hold Shift to edit tangents individually" msgstr "Segure Shift para editar tangentes individualmente" +#: editor/plugins/curve_editor_plugin.cpp +#, fuzzy +msgid "Right click to add point" +msgstr "Clique Direito: Excluir Ponto" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "Cozinhar Sonda GI" @@ -6277,6 +6292,10 @@ msgid "Grid" msgstr "Grade" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "Mostrar Grade" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Configure Grid:" msgstr "Configurar a grade:" @@ -6333,6 +6352,7 @@ msgstr "Instância:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "Tipo:" @@ -6431,6 +6451,11 @@ msgid "Find Next" msgstr "Localizar próximo" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "Encontrar Anterior" + +#: editor/plugins/script_editor_plugin.cpp msgid "Filter scripts" msgstr "Filtrar scripts" @@ -6698,6 +6723,11 @@ msgstr "Pontos de interrupção(Breakpoints)" msgid "Cut" msgstr "Recortar" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "Selecionar Tudo" + #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "Excluir Linha" @@ -6755,10 +6785,6 @@ msgid "Auto Indent" msgstr "Auto Recuar" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "Encontrar Anterior" - -#: editor/plugins/script_text_editor.cpp msgid "Find in Files..." msgstr "Procurar nos Arquivos..." @@ -7080,6 +7106,11 @@ msgid "Freelook Speed Modifier" msgstr "Modificador de velocidade da Visão Livre" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Freelook Slow Modifier" +msgstr "Modificador de velocidade da Visão Livre" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -7118,6 +7149,10 @@ msgid "Use Local Space" msgstr "Usar Espaço Local" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "Usar Snap" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "Visão inferior" @@ -7345,6 +7380,11 @@ msgid "Simplification: " msgstr "Simplificação: " #: editor/plugins/sprite_editor_plugin.cpp +#, fuzzy +msgid "Shrink (Pixels): " +msgstr "Produzir (Pixels): " + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "Produzir (Pixels): " @@ -8138,11 +8178,8 @@ msgid "(GLES3 only)" msgstr "(Apenas GLES3)" #: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add input +" -msgstr "Adicionar Entrada +" - -#: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add output +" +#, fuzzy +msgid "Add Output" msgstr "Adicionar saÃda +" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -8158,6 +8195,11 @@ msgid "Boolean" msgstr "Booleano" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Sampler" +msgstr "Amostras" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add input port" msgstr "Adicionar porta de entrada" @@ -9108,15 +9150,19 @@ msgid "Resources to export:" msgstr "Recursos para exportar:" #: editor/project_export.cpp +#, fuzzy msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" "Filtros para exportar arquivos que não sejam recursos (separados por " "vÃrgula, e.g.: *.json, *.txt)" #: editor/project_export.cpp +#, fuzzy msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" "Filtros para excluir arquivos do projeto (separados por vÃrgula, ex.: *." "json, *.txt)" @@ -10178,12 +10224,13 @@ msgstr "" "sejam revertidas para o padrão." #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "Filhos Editáveis" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" -msgstr "Carregar como Substituto" +#, fuzzy +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." +msgstr "" +"Desativar \"editable_instance\" fará com que todas as propriedades do nó " +"sejam revertidas para o padrão." #: editor/scene_tree_dock.cpp msgid "Make Local" @@ -10260,6 +10307,14 @@ msgid "Clear Inheritance" msgstr "Limpar Herança" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "Filhos Editáveis" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "Carregar como Substituto" + +#: editor/scene_tree_dock.cpp #, fuzzy msgid "Open Documentation" msgstr "Abrir a documentação" @@ -10278,10 +10333,6 @@ msgid "Change Type" msgstr "Mudar Tipo" #: editor/scene_tree_dock.cpp -msgid "Extend Script" -msgstr "Estender Script" - -#: editor/scene_tree_dock.cpp #, fuzzy msgid "Reparent to New Node" msgstr "Reparentar Nó" @@ -10548,23 +10599,18 @@ msgid "Will load an existing script file." msgstr "Carregar arquivo de script existente" #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "Linguagem" - -#: editor/script_create_dialog.cpp -msgid "Inherits" -msgstr "Herda de" - -#: editor/script_create_dialog.cpp -msgid "Class Name" +#, fuzzy +msgid "Class Name:" msgstr "Nome da Classe" #: editor/script_create_dialog.cpp -msgid "Template" +#, fuzzy +msgid "Template:" msgstr "Modelo" #: editor/script_create_dialog.cpp -msgid "Built-in Script" +#, fuzzy +msgid "Built-in Script:" msgstr "Script Embutido" #: editor/script_create_dialog.cpp @@ -11223,6 +11269,11 @@ msgid "Add Function" msgstr "Adicionar Função" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Delete input port" +msgstr "Remover porta de entrada" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "Adicionar Variável" @@ -11231,6 +11282,26 @@ msgid "Add Signal" msgstr "Adicionar Sinal" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Input Port" +msgstr "Adicionar porta de entrada" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Output Port" +msgstr "Adicionar porta de saÃda" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Input Port" +msgstr "Remover porta de entrada" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Output Port" +msgstr "Remover porta de saÃda" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "Alterar Expressão" @@ -11275,10 +11346,20 @@ msgid "Add Preload Node" msgstr "Adicionar Nó de Pré-carregamento" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "Adicionar Nó(s) a Partir da Ãrvore" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "Adicionar Getter de Propriedade" @@ -11303,6 +11384,11 @@ msgid "Connect Nodes" msgstr "Conectar Nodes" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Disconnect Nodes" +msgstr "Desconectar Nodes de Grafos" + +#: modules/visual_script/visual_script_editor.cpp msgid "Connect Node Data" msgstr "Conectar dados do nó" @@ -11335,6 +11421,28 @@ msgid "Paste VisualScript Nodes" msgstr "Colar Nodes VisualScript" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Can't create function with a function node." +msgstr "Não é possÃvel copiar o nó de função." + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Create Function" +msgstr "Renomear Função" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "Remover Função" @@ -11360,16 +11468,13 @@ msgid "Make Tool:" msgstr "Tornar Local" #: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "Tipo de Base:" - -#: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "Membros:" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" -msgstr "Nodes DisponÃveis:" +#, fuzzy +msgid "function_name" +msgstr "Função:" #: modules/visual_script/visual_script_editor.cpp #, fuzzy @@ -11393,6 +11498,16 @@ msgid "Cut Nodes" msgstr "Recortar Nodes" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Make Function" +msgstr "Renomear Função" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Refresh Graph" +msgstr "Atualizar" + +#: modules/visual_script/visual_script_editor.cpp msgid "Edit Member" msgstr "Editar Membro" @@ -11494,6 +11609,10 @@ msgid "The package must have at least one '.' separator." msgstr "O pacote deve ter pelo menos um separador '.'." #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "Selecione um dispositivo da lista" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "Executável ADB não configurado nas opções do Editor." @@ -11548,7 +11667,7 @@ msgstr "" #: platform/android/export/export.cpp msgid "Building Android Project (gradle)" -msgstr "" +msgstr "Construindo Projeto Android (gradle)" #: platform/android/export/export.cpp msgid "" @@ -11602,6 +11721,10 @@ msgid "Required icon is not specified in the preset." msgstr "Ãcone necessário não especificado na predefinição." #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "Rodar no Navegador" @@ -12280,10 +12403,6 @@ msgstr "" "para que ele possa ter um tamanho. Caso contrário, defina-o como destino de " "render e atribua sua textura interna a algum nó para exibir." -#: scene/resources/visual_shader.cpp -msgid "Input" -msgstr "Entrada" - #: scene/resources/visual_shader_nodes.cpp #, fuzzy msgid "Invalid source for preview." @@ -12314,6 +12433,27 @@ msgstr "Variáveis só podem ser atribuÃdas na função de vértice." msgid "Constants cannot be modified." msgstr "Constantes não podem serem modificadas." +#~ msgid "Snap to Grid" +#~ msgstr "Encaixar na grade" + +#~ msgid "Add input +" +#~ msgstr "Adicionar Entrada +" + +#~ msgid "Language" +#~ msgstr "Linguagem" + +#~ msgid "Inherits" +#~ msgstr "Herda de" + +#~ msgid "Base Type:" +#~ msgstr "Tipo de Base:" + +#~ msgid "Available Nodes:" +#~ msgstr "Nodes DisponÃveis:" + +#~ msgid "Input" +#~ msgstr "Entrada" + #~ msgid "Properties:" #~ msgstr "Propriedades:" @@ -12532,9 +12672,6 @@ msgstr "Constantes não podem serem modificadas." #~ msgid "Go to parent folder" #~ msgstr "Ir para pasta pai" -#~ msgid "Select device from the list" -#~ msgstr "Selecione um dispositivo da lista" - #~ msgid "Open Scene(s)" #~ msgstr "Abrir Cena(s)" @@ -12776,9 +12913,6 @@ msgstr "Constantes não podem serem modificadas." #~ msgid "Warning" #~ msgstr "Aviso" -#~ msgid "Function:" -#~ msgstr "Função:" - #~ msgid "Variable" #~ msgstr "Variável" @@ -12845,9 +12979,6 @@ msgstr "Constantes não podem serem modificadas." #~ msgid "Connect Graph Nodes" #~ msgstr "Conectar Nodes de Grafos" -#~ msgid "Disconnect Graph Nodes" -#~ msgstr "Desconectar Nodes de Grafos" - #~ msgid "Remove Shader Graph Node" #~ msgstr "Remover Nó de Shader Graph" @@ -13976,9 +14107,6 @@ msgstr "Constantes não podem serem modificadas." #~ msgid "Group" #~ msgstr "Grupo" -#~ msgid "Samples" -#~ msgstr "Amostras" - #~ msgid "Sample Conversion Mode: (.wav files):" #~ msgstr "Modo de Conversão de Amostras (arquivos .wav):" diff --git a/editor/translations/pt_PT.po b/editor/translations/pt_PT.po index b92e719358..41de4d76bd 100644 --- a/editor/translations/pt_PT.po +++ b/editor/translations/pt_PT.po @@ -18,7 +18,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-09-07 13:52+0000\n" +"PO-Revision-Date: 2019-10-04 03:16+0000\n" "Last-Translator: João Lopes <linux-man@hotmail.com>\n" "Language-Team: Portuguese (Portugal) <https://hosted.weblate.org/projects/" "godot-engine/godot/pt_PT/>\n" @@ -71,32 +71,31 @@ msgstr "Em chamada para '%s':" #: core/ustring.cpp msgid "B" -msgstr "" +msgstr "B" #: core/ustring.cpp msgid "KiB" -msgstr "" +msgstr "KiB" #: core/ustring.cpp -#, fuzzy msgid "MiB" -msgstr "Combinar" +msgstr "MiB" #: core/ustring.cpp msgid "GiB" -msgstr "" +msgstr "GiB" #: core/ustring.cpp msgid "TiB" -msgstr "" +msgstr "TiB" #: core/ustring.cpp msgid "PiB" -msgstr "" +msgstr "PiB" #: core/ustring.cpp msgid "EiB" -msgstr "" +msgstr "EiB" #: editor/animation_bezier_editor.cpp msgid "Free" @@ -108,7 +107,7 @@ msgstr "Equilibrado" #: editor/animation_bezier_editor.cpp msgid "Mirror" -msgstr "Espelhar" +msgstr "Espelho" #: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp msgid "Time:" @@ -362,6 +361,7 @@ msgstr "Criar %d NOVAS pistas e inserir chaves?" #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "Criar" @@ -505,20 +505,9 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "Aviso: A editar animação importada" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "Selecionar tudo" - -#: editor/animation_track_editor.cpp -msgid "Select None" -msgstr "Selecionar Nenhum" - #: editor/animation_track_editor.cpp -#, fuzzy msgid "Select an AnimationPlayer node to create and edit animations." -msgstr "" -"Caminho para um nó AnimationPlayer contendo animações não está definido." +msgstr "Selecione um nó AnimationPlayer para criar e editar animações." #: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." @@ -650,7 +639,8 @@ msgid "Scale Ratio:" msgstr "Proporção de Escala:" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" +#, fuzzy +msgid "Select Tracks to Copy" msgstr "Selecionar pistas a copiar:" #: editor/animation_track_editor.cpp editor/editor_log.cpp @@ -662,6 +652,11 @@ msgstr "Selecionar pistas a copiar:" msgid "Copy" msgstr "Copiar" +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Select All/None" +msgstr "Selecionar Nenhum" + #: editor/animation_track_editor_plugins.cpp msgid "Add Audio Track Clip" msgstr "Adicionar Clip da Pista Ãudio" @@ -986,7 +981,7 @@ msgid "Resource" msgstr "Recurso" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "Caminho" @@ -1256,9 +1251,8 @@ msgid "Delete Bus Effect" msgstr "Apagar Efeito de Barramento" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Drag & drop to rearrange." -msgstr "Barramento de áudio, arrastar e largar para reorganizar." +msgstr "Arrastar e largar para reorganizar." #: editor/editor_audio_buses.cpp msgid "Solo" @@ -1450,7 +1444,8 @@ msgstr "Adicionar Carregamento Automático" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "Caminho:" @@ -1504,7 +1499,7 @@ msgstr "Criar Pasta" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "Nome:" @@ -1900,6 +1895,7 @@ msgid "Class:" msgstr "Classe:" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "Herdar:" @@ -1908,9 +1904,8 @@ msgid "Inherited by:" msgstr "Herdado por:" #: editor/editor_help.cpp -#, fuzzy msgid "Brief Description" -msgstr "Breve Descrição:" +msgstr "Breve Descrição" #: editor/editor_help.cpp msgid "Properties" @@ -1941,9 +1936,8 @@ msgid "Class Description" msgstr "Descrição da Classe" #: editor/editor_help.cpp -#, fuzzy msgid "Online Tutorials" -msgstr "Tutoriais Online:" +msgstr "Tutoriais Online" #: editor/editor_help.cpp msgid "" @@ -2066,16 +2060,15 @@ msgstr "InÃcio" #: editor/editor_network_profiler.cpp msgid "%s/s" -msgstr "" +msgstr "%s/s" #: editor/editor_network_profiler.cpp -#, fuzzy msgid "Down" -msgstr "Download" +msgstr "Para baixo" #: editor/editor_network_profiler.cpp msgid "Up" -msgstr "" +msgstr "Para cima" #: editor/editor_network_profiler.cpp editor/editor_node.cpp msgid "Node" @@ -2083,19 +2076,19 @@ msgstr "Nó" #: editor/editor_network_profiler.cpp msgid "Incoming RPC" -msgstr "" +msgstr "RPC recebido" #: editor/editor_network_profiler.cpp msgid "Incoming RSET" -msgstr "" +msgstr "RSET recebido" #: editor/editor_network_profiler.cpp msgid "Outgoing RPC" -msgstr "" +msgstr "RPC enviado" #: editor/editor_network_profiler.cpp msgid "Outgoing RSET" -msgstr "" +msgstr "RSET enviado" #: editor/editor_node.cpp editor/project_manager.cpp msgid "New Window" @@ -2360,7 +2353,7 @@ msgstr "Esta operação não pode ser efetuada sem um Nó raiz." #: editor/editor_node.cpp msgid "Export Tile Set" -msgstr "Exportar conjunto de tiles" +msgstr "Exportar conjunto de Tiles" #: editor/editor_node.cpp msgid "This operation can't be done without a selected node." @@ -2685,17 +2678,16 @@ msgid "Project Settings..." msgstr "Configurações de Projeto..." #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Version Control" -msgstr "Versão:" +msgstr "Controle de Versões" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Set Up Version Control" -msgstr "" +msgstr "Organizar Controle de Versões" #: editor/editor_node.cpp msgid "Shut Down Version Control" -msgstr "" +msgstr "Desativar Controle de Versões" #: editor/editor_node.cpp msgid "Export..." @@ -2968,7 +2960,7 @@ msgstr "Inspetor" msgid "Expand Bottom Panel" msgstr "Expandir Painel do Fundo" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "SaÃda" @@ -2994,17 +2986,25 @@ msgid "" "the \"Use Custom Build\" option should be enabled in the Android export " "preset." msgstr "" +"O projeto será preparado para compilações personalizadas Android com a " +"instalação do modelo fonte em \"res://android/build\".\n" +"Poderá depois aplicar modificações e compilar o seu APK personalizado a " +"exportar (com adição de módulos, alterando AndroidManifest.xml, etc.).\n" +"Repare que de forma a criar compilações personalizadas em vez de usar APKs " +"pré-compilados, a opção \"Usar Compilação Personalizada\" deve ser ativada " +"na predefinição da exportação Android." #: editor/editor_node.cpp -#, fuzzy msgid "" "The Android build template is already installed in this project and it won't " "be overwritten.\n" "Remove the \"res://android/build\" directory manually before attempting this " "operation again." msgstr "" -"O modelo de compilação Android está instalado e não será substituÃdo.\n" -"Remova manualmente a diretoria \"build\" antes de repetir esta operação." +"O modelo de compilação Android já está instalado neste projeto e não será " +"substituÃdo.\n" +"Remova manualmente a diretoria \"res://android/build\" antes de repetir esta " +"operação." #: editor/editor_node.cpp msgid "Import Templates From ZIP File" @@ -3067,9 +3067,8 @@ msgid "Open the previous Editor" msgstr "Abrir o Editor anterior" #: editor/editor_path.cpp -#, fuzzy msgid "No sub-resources found." -msgstr "Fonte de superfÃcie não especificada." +msgstr "Sub-recurso não encontrado." #: editor/editor_plugin.cpp msgid "Creating Mesh Previews" @@ -3080,9 +3079,8 @@ msgid "Thumbnail..." msgstr "Miniatura..." #: editor/editor_plugin_settings.cpp -#, fuzzy msgid "Main Script:" -msgstr "Abrir Script:" +msgstr "Script principal:" #: editor/editor_plugin_settings.cpp msgid "Edit Plugin" @@ -3217,6 +3215,10 @@ msgstr "Escolha uma Vista" msgid "New Script" msgstr "Novo Script" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +msgid "Extend Script" +msgstr "Estender Script" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "Novo %s" @@ -3243,13 +3245,6 @@ msgstr "Colar" msgid "Convert To %s" msgstr "Converter em %s" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Open Editor" -msgstr "Abrir Editor" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "Nó selecionado não é uma Vista!" @@ -3911,7 +3906,6 @@ msgid "Import As:" msgstr "Importar Como:" #: editor/import_dock.cpp -#, fuzzy msgid "Preset" msgstr "Predefinições" @@ -4039,7 +4033,7 @@ msgstr "Nome do Plugin:" msgid "Subfolder:" msgstr "Sub-pasta:" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "Linguagem:" @@ -4180,6 +4174,12 @@ msgstr "Ponto" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Open Editor" +msgstr "Abrir Editor" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp msgid "Open Animation Node" msgstr "Abrir Nó Animação" @@ -4528,7 +4528,6 @@ msgstr "Nome da Animação:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "Erro!" @@ -4700,6 +4699,8 @@ msgid "Current:" msgstr "Atual:" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "Adicionar entrada" @@ -4904,6 +4905,10 @@ msgid "All" msgstr "Todos" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp msgid "Import..." msgstr "Importar..." @@ -5192,26 +5197,32 @@ msgid "Pan Mode" msgstr "Modo deslocamento" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Ruler Mode" -msgstr "Modo Execução:" +msgstr "Modo Régua" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Toggle snapping." +#, fuzzy +msgid "Toggle smart snapping." msgstr "Alternar Ajuste." #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +#, fuzzy +msgid "Use Smart Snap" msgstr "Usar Ajuste" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snapping Options" -msgstr "Opções de Ajuste" +#, fuzzy +msgid "Toggle grid snapping." +msgstr "Alternar Ajuste." + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Use Grid Snap" +msgstr "Ajuste de grelha" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to Grid" -msgstr "Ajustar à Grelha" +msgid "Snapping Options" +msgstr "Opções de Ajuste" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Rotation Snap" @@ -5300,8 +5311,8 @@ msgid "View" msgstr "Vista" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +#, fuzzy +msgid "Always Show Grid" msgstr "Mostrar grelha" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5568,6 +5579,11 @@ msgstr "Alternar tangente linear da curva" msgid "Hold Shift to edit tangents individually" msgstr "Pressione Shift para editar tangentes individualmente" +#: editor/plugins/curve_editor_plugin.cpp +#, fuzzy +msgid "Right click to add point" +msgstr "Clique direito: Apagar Ponto" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "Consolidar Sonda GI" @@ -6203,6 +6219,10 @@ msgid "Grid" msgstr "Grelha" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "Mostrar grelha" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Configure Grid:" msgstr "Configurar Grelha:" @@ -6259,6 +6279,7 @@ msgstr "Instância:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "Tipo:" @@ -6357,6 +6378,11 @@ msgid "Find Next" msgstr "Localizar Seguinte" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "Localizar Anterior" + +#: editor/plugins/script_editor_plugin.cpp msgid "Filter scripts" msgstr "Scripts de filtro" @@ -6624,6 +6650,11 @@ msgstr "Pontos de paragem" msgid "Cut" msgstr "Cortar" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "Selecionar tudo" + #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "Apagar linha" @@ -6681,10 +6712,6 @@ msgid "Auto Indent" msgstr "Indentação automática" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "Localizar Anterior" - -#: editor/plugins/script_text_editor.cpp msgid "Find in Files..." msgstr "Localizar em Ficheiros..." @@ -7006,6 +7033,11 @@ msgid "Freelook Speed Modifier" msgstr "Modificador de velocidade Freelook" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Freelook Slow Modifier" +msgstr "Modificador de velocidade Freelook" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -7044,6 +7076,10 @@ msgid "Use Local Space" msgstr "Usar Espaço Local" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "Usar Ajuste" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "Vista de fundo" @@ -7270,6 +7306,11 @@ msgid "Simplification: " msgstr "Simplificação: " #: editor/plugins/sprite_editor_plugin.cpp +#, fuzzy +msgid "Shrink (Pixels): " +msgstr "Crescer (Pixeis): " + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "Crescer (Pixeis): " @@ -7318,9 +7359,8 @@ msgid "(empty)" msgstr "(vazio)" #: editor/plugins/sprite_frames_editor_plugin.cpp -#, fuzzy msgid "Move Frame" -msgstr "Colar Frame" +msgstr "Mover Frame" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Animations:" @@ -7637,13 +7677,12 @@ msgid "Enable Priority" msgstr "Ativar Prioridade" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Filter tiles" -msgstr "Filtrar Ficheiro..." +msgstr "Filtrar Tiles" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Give a TileSet resource to this TileMap to use its tiles." -msgstr "" +msgstr "Dê um recurso TileSet a este TileMap para usar os seus Tiles." #: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" @@ -7775,17 +7814,19 @@ msgstr "Ativar o snap and show grid (configurável através do Inspector)." #: editor/plugins/tile_set_editor_plugin.cpp msgid "Display Tile Names (Hold Alt Key)" -msgstr "Exibir nome dos tiles (segure tecla Alt)" +msgstr "Exibir nome dos Tiles (segure tecla Alt)" #: editor/plugins/tile_set_editor_plugin.cpp msgid "" "Add or select a texture on the left panel to edit the tiles bound to it." msgstr "" +"Adicione ou selecione uma textura no painel esquerdo para editar os Tiles " +"vinculados." #: editor/plugins/tile_set_editor_plugin.cpp msgid "Remove selected texture? This will remove all tiles which use it." msgstr "" -"Remover textura selecionada? Todos os tiles que a usam serão removidos." +"Remover textura selecionada? Todos os Tiles que a usam serão removidos." #: editor/plugins/tile_set_editor_plugin.cpp msgid "You haven't selected a texture to remove." @@ -7793,7 +7834,7 @@ msgstr "Não selecionou uma textura para remover." #: editor/plugins/tile_set_editor_plugin.cpp msgid "Create from scene? This will overwrite all current tiles." -msgstr "Criar a partir de cena? Irá substituir todos os tiles atuais." +msgstr "Criar a partir de cena? Irá substituir todos os Tiles atuais." #: editor/plugins/tile_set_editor_plugin.cpp msgid "Merge from scene?" @@ -7954,92 +7995,80 @@ msgid "TileSet" msgstr "TileSet" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "No VCS addons are available." -msgstr "Nome do parente do Nó, se disponÃvel" +msgstr "Não existem addons VCS disponÃveis." #: editor/plugins/version_control_editor_plugin.cpp editor/rename_dialog.cpp msgid "Error" msgstr "Erro" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "No commit message was provided" -msgstr "Nenhum nome foi fornecido" +msgstr "Nenhuma mensagem de gravação foi fornecida" #: editor/plugins/version_control_editor_plugin.cpp msgid "No files added to stage" -msgstr "" +msgstr "Nenhum ficheiro adicionado ao palco" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Commit" -msgstr "Comunidade" +msgstr "Gravar" #: editor/plugins/version_control_editor_plugin.cpp msgid "VCS Addon is not initialized" -msgstr "" +msgstr "Addon VCS não foi inicializado" #: editor/plugins/version_control_editor_plugin.cpp msgid "Version Control System" -msgstr "" +msgstr "Sistema de Controlo de Versões" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Initialize" -msgstr "Capitalizar" +msgstr "Inicializar" #: editor/plugins/version_control_editor_plugin.cpp msgid "Staging area" -msgstr "" +msgstr "Ãrea de Palco" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Detect new changes" -msgstr "Criar novo retângulo." +msgstr "Detetar novas alterações" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Changes" -msgstr "Mudar" +msgstr "Alterações" #: editor/plugins/version_control_editor_plugin.cpp msgid "Modified" -msgstr "" +msgstr "Modificado" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Renamed" -msgstr "Renomear" +msgstr "Renomeado" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Deleted" -msgstr "Apagar" +msgstr "Apagado" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Typechange" -msgstr "Mudar" +msgstr "Mudança de tipo" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Stage Selected" -msgstr "Apagar Selecionados" +msgstr "Palco Selecionado" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Stage All" -msgstr "Guardar tudo" +msgstr "Tudo no Palco" #: editor/plugins/version_control_editor_plugin.cpp msgid "Add a commit message" -msgstr "" +msgstr "Adicionar mensagem de gravação" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Commit Changes" -msgstr "Sincronizar Alterações de Script" +msgstr "Gravar Alterações" #: editor/plugins/version_control_editor_plugin.cpp #: modules/gdnative/gdnative_library_singleton_editor.cpp @@ -8048,26 +8077,23 @@ msgstr "Status" #: editor/plugins/version_control_editor_plugin.cpp msgid "View file diffs before committing them to the latest version" -msgstr "" +msgstr "Ver diffs dos ficheiros antes de atualizá-los para a última versão" #: editor/plugins/version_control_editor_plugin.cpp msgid "No file diff is active" -msgstr "" +msgstr "Nenhum ficheiro diff está ativo" #: editor/plugins/version_control_editor_plugin.cpp msgid "Detect changes in file diff" -msgstr "" +msgstr "Detetar alterações em ficheiro diff" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "(GLES3 only)" msgstr "(Apenas GLES3)" #: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add input +" -msgstr "Adicionar entrada +" - -#: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add output +" +#, fuzzy +msgid "Add Output" msgstr "Adicionar saÃda +" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -8083,6 +8109,10 @@ msgid "Boolean" msgstr "Lógico" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sampler" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add input port" msgstr "Adicionar porta de entrada" @@ -8296,11 +8326,10 @@ msgstr "" "falso." #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "" "Returns an associated scalar if the provided boolean value is true or false." msgstr "" -"Devolve um vetor associado se o valor lógico fornecido for verdadeiro ou " +"Devolve um escalar associado se o valor lógico fornecido for verdadeiro ou " "falso." #: editor/plugins/visual_shader_editor_plugin.cpp @@ -9009,15 +9038,19 @@ msgid "Resources to export:" msgstr "Recursos a exportar:" #: editor/project_export.cpp +#, fuzzy msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" "Filtros para exportar Ficheiros não-recursos (separados por vÃrgula, ex: *." "json, *.txt)" #: editor/project_export.cpp +#, fuzzy msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" "Filtros para excluir Ficheiros do Projeto (separados por vÃrgula, ex: *." "json, *.txt)" @@ -9615,9 +9648,8 @@ msgid "Settings saved OK." msgstr "Configuração guardada." #: editor/project_settings_editor.cpp -#, fuzzy msgid "Moved Input Action Event" -msgstr "Adicionar evento ação de entrada" +msgstr "Evento Ação de Entrada movido" #: editor/project_settings_editor.cpp msgid "Override for Feature" @@ -9984,9 +10016,8 @@ msgid "Instance Scene(s)" msgstr "Cena(s) da Instância" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Replace with Branch Scene" -msgstr "Guardar ramo como Cena" +msgstr "Substituir com Cena-Ramo" #: editor/scene_tree_dock.cpp msgid "Instance Child Scene" @@ -10029,23 +10060,20 @@ msgid "Make node as Root" msgstr "Tornar Nó Raiz" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete %d nodes?" -msgstr "Apagar Nós" +msgstr "Apagar %d Nós?" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete the root node \"%s\"?" -msgstr "Apagar Nó(s) Gráfico(s) Shader" +msgstr "Apagar Nó raiz \"%s\"?" #: editor/scene_tree_dock.cpp msgid "Delete node \"%s\" and its children?" -msgstr "" +msgstr "Apagar Nó \"%s\" e filhos?" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete node \"%s\"?" -msgstr "Apagar Nós" +msgstr "Apagar Nó \"%s\"?" #: editor/scene_tree_dock.cpp msgid "Can not perform with the root node." @@ -10068,12 +10096,13 @@ msgstr "" "para os seus valores padrão." #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "Filhos editáveis" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" -msgstr "Carregar como marcador de posição" +#, fuzzy +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." +msgstr "" +"Desativar \"editable_instance\" irá reverter todas as propriedades do Nó " +"para os seus valores padrão." #: editor/scene_tree_dock.cpp msgid "Make Local" @@ -10148,6 +10177,14 @@ msgid "Clear Inheritance" msgstr "Limpar herança" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "Filhos editáveis" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "Carregar como marcador de posição" + +#: editor/scene_tree_dock.cpp msgid "Open Documentation" msgstr "Abrir documentação" @@ -10164,10 +10201,6 @@ msgid "Change Type" msgstr "Mudar tipo" #: editor/scene_tree_dock.cpp -msgid "Extend Script" -msgstr "Estender Script" - -#: editor/scene_tree_dock.cpp msgid "Reparent to New Node" msgstr "Recolocar o Novo Nó" @@ -10408,23 +10441,18 @@ msgid "Will load an existing script file." msgstr "Vai carregar ficheiro de script existente." #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "Linguagem" - -#: editor/script_create_dialog.cpp -msgid "Inherits" -msgstr "Herdar" - -#: editor/script_create_dialog.cpp -msgid "Class Name" +#, fuzzy +msgid "Class Name:" msgstr "Nome de classe" #: editor/script_create_dialog.cpp -msgid "Template" +#, fuzzy +msgid "Template:" msgstr "Modelo" #: editor/script_create_dialog.cpp -msgid "Built-in Script" +#, fuzzy +msgid "Built-in Script:" msgstr "Script incorporado" #: editor/script_create_dialog.cpp @@ -10440,38 +10468,32 @@ msgid "Bytes:" msgstr "Bytes:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Warning:" -msgstr "Avisos:" +msgstr "Aviso:" #: editor/script_editor_debugger.cpp msgid "Error:" msgstr "Erro:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Error" -msgstr "Copiar Erro" +msgstr "Erro C++" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Error:" -msgstr "Erro:" +msgstr "Erro C++:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Source" -msgstr "Fonte" +msgstr "Código-fonte C++" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Source:" -msgstr "Fonte" +msgstr "Código-fonte:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Source:" -msgstr "Fonte" +msgstr "Código-fonte C++:" #: editor/script_editor_debugger.cpp msgid "Stack Trace" @@ -10482,18 +10504,16 @@ msgid "Errors" msgstr "Erros" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Child process connected." -msgstr "Processo filho conectado" +msgstr "Processo filho conectado." #: editor/script_editor_debugger.cpp msgid "Copy Error" msgstr "Copiar Erro" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Skip Breakpoints" -msgstr "Pontos de paragem" +msgstr "Saltar Pontos de Paragem" #: editor/script_editor_debugger.cpp msgid "Inspect Previous Instance" @@ -10512,9 +10532,8 @@ msgid "Profiler" msgstr "Profiler" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Network Profiler" -msgstr "Exportar Perfil" +msgstr "Traçador de Rede" #: editor/script_editor_debugger.cpp msgid "Monitor" @@ -10738,7 +10757,7 @@ msgstr "GDNative" #: modules/gdscript/gdscript_functions.cpp msgid "Expected a string of length 1 (a character)." -msgstr "" +msgstr "Esperado um string de comprimento 1 (um caráter)." #: modules/gdscript/gdscript_functions.cpp msgid "Step argument is zero!" @@ -10895,13 +10914,12 @@ msgid "Pick Distance:" msgstr "Distância de escolha:" #: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "Filter meshes" -msgstr "Métodos de filtro" +msgstr "Meshes de filtro" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Give a MeshLibrary resource to this GridMap to use its meshes." -msgstr "" +msgstr "Dá um recurso MeshLibrary a este GridMap para usar os seus meshes." #: modules/mono/csharp_script.cpp msgid "Class name can't be a reserved keyword" @@ -11076,6 +11094,11 @@ msgid "Add Function" msgstr "Adicionar Função" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Delete input port" +msgstr "Remover porta de entrada" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "Adicionar Variável" @@ -11084,6 +11107,26 @@ msgid "Add Signal" msgstr "Adicionar Sinal" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Input Port" +msgstr "Adicionar porta de entrada" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Output Port" +msgstr "Adicionar porta de saÃda" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Input Port" +msgstr "Remover porta de entrada" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Output Port" +msgstr "Remover porta de saÃda" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "Mudar Expressão" @@ -11128,10 +11171,20 @@ msgid "Add Preload Node" msgstr "Adicionar Nó de Pré-carregamento" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "Adicionar Nó da Ãrvore" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "Adicionar Propriedade Getter" @@ -11156,6 +11209,11 @@ msgid "Connect Nodes" msgstr "Conectar Nós" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Disconnect Nodes" +msgstr "Desconectar Nós do gráfico" + +#: modules/visual_script/visual_script_editor.cpp msgid "Connect Node Data" msgstr "Conectar Dados de Nó" @@ -11188,6 +11246,28 @@ msgid "Paste VisualScript Nodes" msgstr "Colar Nós VisualScript" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Can't create function with a function node." +msgstr "ImpossÃvel copiar o Nó Função." + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Create Function" +msgstr "Mudar nome da Função" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "Remover Função" @@ -11208,21 +11288,17 @@ msgid "Editing Signal:" msgstr "A editar Sinal:" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Make Tool:" -msgstr "Tornar Local" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "Tipo de Base:" +msgstr "Ferramenta Fazer:" #: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "Membros:" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" -msgstr "Nós DisponÃveis:" +#, fuzzy +msgid "function_name" +msgstr "Função:" #: modules/visual_script/visual_script_editor.cpp msgid "Select or create a function to edit its graph." @@ -11245,6 +11321,16 @@ msgid "Cut Nodes" msgstr "Cortar Nós" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Make Function" +msgstr "Mudar nome da Função" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Refresh Graph" +msgstr "Atualizar" + +#: modules/visual_script/visual_script_editor.cpp msgid "Edit Member" msgstr "Editar Membros" @@ -11342,6 +11428,10 @@ msgid "The package must have at least one '.' separator." msgstr "O pacote deve ter pelo menos um separador '.'." #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "Selecionar dispositivo da lista" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "O executável ADB não está configurado nas Configurações do Editor." @@ -11363,16 +11453,17 @@ msgstr "" #: platform/android/export/export.cpp msgid "Invalid Android SDK path for custom build in Editor Settings." -msgstr "Caminho inválido para Android SDK no Editor de Configurações." +msgstr "" +"Caminho inválido de Android SDK para compilação personalizada no Editor de " +"Configurações." #: platform/android/export/export.cpp -#, fuzzy msgid "" "Android build template not installed in the project. Install it from the " "Project menu." msgstr "" -"Projeto Android não está instalado para compilação. Instale-o no menu do " -"Editor." +"Modelo de compilação Android não está instalado neste projeto. Instale-o no " +"menu Projeto." #: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." @@ -11462,6 +11553,10 @@ msgid "Required icon is not specified in the preset." msgstr "O Ãcone obrigatório não está especificado na predefinição." #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "Executar no Navegador" @@ -12124,10 +12219,6 @@ msgstr "" "Control de modo a que obtenha um tamanho. Caso contrário, torne-a um " "RenderTarget e atribua a sua textura interna a outro Nó para visualizar." -#: scene/resources/visual_shader.cpp -msgid "Input" -msgstr "Entrada" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for preview." msgstr "Fonte inválida para previsualização." @@ -12156,6 +12247,27 @@ msgstr "Variações só podem ser atribuÃdas na função vértice." msgid "Constants cannot be modified." msgstr "Constantes não podem ser modificadas." +#~ msgid "Snap to Grid" +#~ msgstr "Ajustar à Grelha" + +#~ msgid "Add input +" +#~ msgstr "Adicionar entrada +" + +#~ msgid "Language" +#~ msgstr "Linguagem" + +#~ msgid "Inherits" +#~ msgstr "Herdar" + +#~ msgid "Base Type:" +#~ msgstr "Tipo de Base:" + +#~ msgid "Available Nodes:" +#~ msgstr "Nós DisponÃveis:" + +#~ msgid "Input" +#~ msgstr "Entrada" + #~ msgid "Properties:" #~ msgstr "Propriedades:" @@ -12554,9 +12666,6 @@ msgstr "Constantes não podem ser modificadas." #~ msgid "Go to parent folder" #~ msgstr "Ir para a pasta acima" -#~ msgid "Select device from the list" -#~ msgstr "Selecionar dispositivo da lista" - #~ msgid "Open Scene(s)" #~ msgstr "Abrir Cena(s)" @@ -12791,9 +12900,6 @@ msgstr "Constantes não podem ser modificadas." #~ msgid "Warning" #~ msgstr "Aviso" -#~ msgid "Function:" -#~ msgstr "Função:" - #~ msgid "Variable" #~ msgstr "Variável" @@ -12860,9 +12966,6 @@ msgstr "Constantes não podem ser modificadas." #~ msgid "Connect Graph Nodes" #~ msgstr "Conectar Nós do gráfico" -#~ msgid "Disconnect Graph Nodes" -#~ msgstr "Desconectar Nós do gráfico" - #~ msgid "Remove Shader Graph Node" #~ msgstr "Remover Nó Gráfico Shader" diff --git a/editor/translations/ro.po b/editor/translations/ro.po index 8204df8633..e3f53a56f3 100644 --- a/editor/translations/ro.po +++ b/editor/translations/ro.po @@ -7,12 +7,13 @@ # Nitroretro <nitroretro@protonmail.com>, 2018. # TigerxWood <TigerxWood@gmail.com>, 2018. # Grigore Antoniuc <grisa181@gmail.com>, 2018. +# Boby Ilea <boby.ilea@gmail.com>, 2019. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2018-12-13 14:42+0100\n" -"Last-Translator: Nitroretro <nitroretro@protonmail.com>\n" +"PO-Revision-Date: 2019-10-26 03:53+0000\n" +"Last-Translator: Boby Ilea <boby.ilea@gmail.com>\n" "Language-Team: Romanian <https://hosted.weblate.org/projects/godot-engine/" "godot/ro/>\n" "Language: ro\n" @@ -21,7 +22,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " "20)) ? 1 : 2;\n" -"X-Generator: Poedit 2.2\n" +"X-Generator: Weblate 3.9.1-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -32,72 +33,71 @@ msgstr "" #: modules/mono/glue/gd_glue.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Not enough bytes for decoding bytes, or invalid format." -msgstr "" +msgstr "Bytes insuficienti pentru decodare bytes, sau format invalid" #: core/math/expression.cpp msgid "Invalid input %i (not passed) in expression" -msgstr "" +msgstr "Intrare invalida %i in expresie" #: core/math/expression.cpp msgid "self can't be used because instance is null (not passed)" -msgstr "" +msgstr "self nu poate fi folosit deoarece instanÈ›a este nulă (nefurnizat)" #: core/math/expression.cpp msgid "Invalid operands to operator %s, %s and %s." -msgstr "" +msgstr "Operanzi invalizi la operatorii %s, %s È™i %s" #: core/math/expression.cpp msgid "Invalid index of type %s for base type %s" -msgstr "" +msgstr "Indice invalid de tip %s pentru tipul de bază %s" #: core/math/expression.cpp msgid "Invalid named index '%s' for base type %s" -msgstr "" +msgstr "Indice numit '%s' invalid pentru tipul de bază %s" #: core/math/expression.cpp msgid "Invalid arguments to construct '%s'" -msgstr "" +msgstr "Argumente invalide pentru a construi '%s'" #: core/math/expression.cpp msgid "On call to '%s':" -msgstr "" +msgstr "ÃŽn apelarea lui '%s':" #: core/ustring.cpp msgid "B" -msgstr "" +msgstr "B" #: core/ustring.cpp msgid "KiB" -msgstr "" +msgstr "KiB" #: core/ustring.cpp -#, fuzzy msgid "MiB" -msgstr "Amestecare" +msgstr "MiB" #: core/ustring.cpp msgid "GiB" -msgstr "" +msgstr "GiB" #: core/ustring.cpp msgid "TiB" -msgstr "" +msgstr "TiB" #: core/ustring.cpp msgid "PiB" -msgstr "" +msgstr "PiB" #: core/ustring.cpp msgid "EiB" -msgstr "" +msgstr "EiB" #: editor/animation_bezier_editor.cpp msgid "Free" -msgstr "Gratuit" +msgstr "Gratis" #: editor/animation_bezier_editor.cpp msgid "Balanced" -msgstr "" +msgstr "Echilibrat" #: editor/animation_bezier_editor.cpp msgid "Mirror" @@ -108,9 +108,8 @@ msgid "Time:" msgstr "Timp:" #: editor/animation_bezier_editor.cpp -#, fuzzy msgid "Value:" -msgstr "Nume nou:" +msgstr "Valoare:" #: editor/animation_bezier_editor.cpp msgid "Insert Key Here" @@ -125,14 +124,12 @@ msgid "Delete Selected Key(s)" msgstr "ÅžtergeÈ›i Cheile Selectate" #: editor/animation_bezier_editor.cpp -#, fuzzy msgid "Add Bezier Point" -msgstr "Adaugă punct" +msgstr "Adaugă Punct Bezier" #: editor/animation_bezier_editor.cpp -#, fuzzy msgid "Move Bezier Points" -msgstr "Deplasare punct" +msgstr "Mută Punct Bezier" #: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp msgid "Anim Duplicate Keys" @@ -382,6 +379,7 @@ msgstr "CreaÈ›i %d piste NOI È™i inseraÈ›i cheie?" #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "CreaÈ›i" @@ -515,16 +513,6 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "" - -#: editor/animation_track_editor.cpp -#, fuzzy -msgid "Select None" -msgstr "Mod Selectare" - #: editor/animation_track_editor.cpp #, fuzzy msgid "Select an AnimationPlayer node to create and edit animations." @@ -667,8 +655,9 @@ msgid "Scale Ratio:" msgstr "ProporÈ›ie Scalare:" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" -msgstr "" +#, fuzzy +msgid "Select Tracks to Copy" +msgstr "Setează TranziÈ›ii la:" #: editor/animation_track_editor.cpp editor/editor_log.cpp #: editor/editor_properties.cpp @@ -679,6 +668,11 @@ msgstr "" msgid "Copy" msgstr "" +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Select All/None" +msgstr "Mod Selectare" + #: editor/animation_track_editor_plugins.cpp #, fuzzy msgid "Add Audio Track Clip" @@ -1021,7 +1015,7 @@ msgid "Resource" msgstr "Resursă" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "Cale" @@ -1501,7 +1495,8 @@ msgstr "AdaugaÈ›i AutoLoad" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "Cale:" @@ -1556,7 +1551,7 @@ msgstr "CreaÈ›i Director" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "Nume:" @@ -1977,6 +1972,7 @@ msgid "Class:" msgstr "Clasă:" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "MoÈ™teneÈ™te:" @@ -3088,7 +3084,7 @@ msgstr "Inspector" msgid "Expand Bottom Panel" msgstr "Extinde toate" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "IeÈ™ire" @@ -3331,6 +3327,11 @@ msgstr "" msgid "New Script" msgstr "" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +#, fuzzy +msgid "Extend Script" +msgstr "Execută Scriptul" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "" @@ -3357,14 +3358,6 @@ msgstr "" msgid "Convert To %s" msgstr "" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy -msgid "Open Editor" -msgstr "Deschidere în Editor" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "" @@ -4199,7 +4192,7 @@ msgstr "Plugin-uri" msgid "Subfolder:" msgstr "" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "" @@ -4353,6 +4346,13 @@ msgstr "Deplasare punct" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +#, fuzzy +msgid "Open Editor" +msgstr "Deschidere în Editor" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp #, fuzzy msgid "Open Animation Node" @@ -4721,7 +4721,6 @@ msgstr "Nume AnimaÈ›ie:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "Eroare!" @@ -4898,6 +4897,8 @@ msgid "Current:" msgstr "Curent:" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "Adaugă Intrare(Input)" @@ -5113,6 +5114,10 @@ msgid "All" msgstr "Toate" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy msgid "Import..." msgstr "Importă" @@ -5429,23 +5434,28 @@ msgstr "Modul de ExecuÈ›ie:" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Toggle snapping." +msgid "Toggle smart snapping." msgstr "Comutare snapping" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +#, fuzzy +msgid "Use Smart Snap" msgstr "Utilizează Snap" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Snapping Options" -msgstr "OpÈ›iuni Snapping" +msgid "Toggle grid snapping." +msgstr "Comutare snapping" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Snap to Grid" -msgstr "Snap pe grilă" +msgid "Use Grid Snap" +msgstr "Snap Grilă" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Snapping Options" +msgstr "OpÈ›iuni Snapping" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Rotation Snap" @@ -5543,8 +5553,8 @@ msgid "View" msgstr "Perspectivă" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +#, fuzzy +msgid "Always Show Grid" msgstr "Arată Grila" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5820,6 +5830,11 @@ msgstr "Comută Tangenta Liniară a Curbei" msgid "Hold Shift to edit tangents individually" msgstr "Èšine apăsat Shift pentru a edita individual tangentele" +#: editor/plugins/curve_editor_plugin.cpp +#, fuzzy +msgid "Right click to add point" +msgstr "Click Drept: Ștergere punct" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "Procesează Sonda GI" @@ -6474,6 +6489,10 @@ msgid "Grid" msgstr "Grilă" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "Arată Grila" + +#: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy msgid "Configure Grid:" msgstr "Configurare Snap" @@ -6536,6 +6555,7 @@ msgstr "Instanță :" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "" @@ -6645,6 +6665,11 @@ msgid "Find Next" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Filter scripts" msgstr "Proprietățile obiectului." @@ -6927,6 +6952,11 @@ msgstr "Șterge puncte" msgid "Cut" msgstr "" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "" @@ -6985,10 +7015,6 @@ msgid "Auto Indent" msgstr "" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "" - -#: editor/plugins/script_text_editor.cpp #, fuzzy msgid "Find in Files..." msgstr "Filtrează fiÈ™ierele..." @@ -7325,6 +7351,10 @@ msgid "Freelook Speed Modifier" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Slow Modifier" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -7360,6 +7390,10 @@ msgid "Use Local Space" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "Utilizează Snap" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "" @@ -7597,6 +7631,10 @@ msgid "Simplification: " msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Shrink (Pixels): " +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "" @@ -8430,12 +8468,7 @@ msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy -msgid "Add input +" -msgstr "Adaugă Intrare(Input)" - -#: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy -msgid "Add output +" +msgid "Add Output" msgstr "Adaugă Intrare(Input)" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -8453,6 +8486,10 @@ msgid "Boolean" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sampler" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy msgid "Add input port" msgstr "Adaugă Intrare(Input)" @@ -9338,12 +9375,14 @@ msgstr "" #: editor/project_export.cpp msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp @@ -10361,11 +10400,9 @@ msgid "" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." msgstr "" #: editor/scene_tree_dock.cpp @@ -10446,6 +10483,14 @@ msgid "Clear Inheritance" msgstr "Curăță Derivarea" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "" + +#: editor/scene_tree_dock.cpp #, fuzzy msgid "Open Documentation" msgstr "Deschide Recente" @@ -10465,11 +10510,6 @@ msgstr "" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Extend Script" -msgstr "Execută Scriptul" - -#: editor/scene_tree_dock.cpp -#, fuzzy msgid "Reparent to New Node" msgstr "CreaÈ›i %s Nou" @@ -10715,24 +10755,19 @@ msgid "Will load an existing script file." msgstr "ÃŽncărcaÅ£i o Schemă de Pistă Audio existentă." #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Inherits" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Class Name" -msgstr "" +#, fuzzy +msgid "Class Name:" +msgstr "Clasă:" #: editor/script_create_dialog.cpp -msgid "Template" -msgstr "" +#, fuzzy +msgid "Template:" +msgstr "Elimină Șablon" #: editor/script_create_dialog.cpp -msgid "Built-in Script" -msgstr "" +#, fuzzy +msgid "Built-in Script:" +msgstr "Execută Scriptul" #: editor/script_create_dialog.cpp msgid "Attach Node Script" @@ -11390,6 +11425,11 @@ msgid "Add Function" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Delete input port" +msgstr "Elimină punct" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "" @@ -11398,6 +11438,26 @@ msgid "Add Signal" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Input Port" +msgstr "Adaugă Intrare(Input)" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Output Port" +msgstr "Adaugă Intrare(Input)" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Input Port" +msgstr "Elimină punct" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Output Port" +msgstr "Elimină punct" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "" @@ -11438,10 +11498,20 @@ msgid "Add Preload Node" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "" @@ -11467,6 +11537,11 @@ msgstr "" #: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Disconnect Nodes" +msgstr "Deconectat" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Connect Node Data" msgstr "ConectaÈ›i la Nod:" @@ -11501,6 +11576,27 @@ msgid "Paste VisualScript Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function with a function node." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Create Function" +msgstr "Creează Contur" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "" @@ -11526,15 +11622,11 @@ msgid "Make Tool:" msgstr "Creează Oase" #: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "Membri:" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" +msgid "function_name" msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -11559,6 +11651,16 @@ msgstr "" #: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Make Function" +msgstr "FaceÈ›i FuncÈ›ia" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Refresh Graph" +msgstr "ReîmprospătaÈ›i" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Edit Member" msgstr "Membri" @@ -11654,6 +11756,10 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "Selectează un dispozitiv din listă" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "" @@ -11755,6 +11861,10 @@ msgid "Required icon is not specified in the preset." msgstr "" #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "Execută în Browser" @@ -12301,11 +12411,6 @@ msgid "" "texture to some node for display." msgstr "" -#: scene/resources/visual_shader.cpp -#, fuzzy -msgid "Input" -msgstr "Adaugă Intrare(Input)" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for preview." msgstr "" @@ -12335,6 +12440,18 @@ msgid "Constants cannot be modified." msgstr "" #, fuzzy +#~ msgid "Snap to Grid" +#~ msgstr "Snap pe grilă" + +#, fuzzy +#~ msgid "Add input +" +#~ msgstr "Adaugă Intrare(Input)" + +#, fuzzy +#~ msgid "Input" +#~ msgstr "Adaugă Intrare(Input)" + +#, fuzzy #~ msgid "Methods:" #~ msgstr "Metode" @@ -12446,9 +12563,6 @@ msgstr "" #~ msgid "Go to parent folder" #~ msgstr "AccesaÈ›i Directorul Părinte" -#~ msgid "Select device from the list" -#~ msgstr "Selectează un dispozitiv din listă" - #~ msgid "Open Scene(s)" #~ msgstr "Deschide Scena(ele)" @@ -12606,9 +12720,6 @@ msgstr "" #~ msgid "Move Anim Track Down" #~ msgstr "Mută Pista Anim Jos" -#~ msgid "Set Transitions to:" -#~ msgstr "Setează TranziÈ›ii la:" - #~ msgid "Anim Track Rename" #~ msgstr "RedenumeÈ™te Pista Anim" diff --git a/editor/translations/ru.po b/editor/translations/ru.po index f6620b5aef..4e6bd592b3 100644 --- a/editor/translations/ru.po +++ b/editor/translations/ru.po @@ -56,12 +56,13 @@ # КонÑтантин Рин <email.to.rean@gmail.com>, 2019. # Maxim Samburskiy <alpacones@outlook.com>, 2019. # Dima Koshel <form.eater@gmail.com>, 2019. +# Danil Alexeev <danil@alexeev.xyz>, 2019. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-09-19 05:27+0000\n" -"Last-Translator: ÐлекÑандр <ol-vin@mail.ru>\n" +"PO-Revision-Date: 2019-10-22 02:53+0000\n" +"Last-Translator: Danil Alexeev <danil@alexeev.xyz>\n" "Language-Team: Russian <https://hosted.weblate.org/projects/godot-engine/" "godot/ru/>\n" "Language: ru\n" @@ -70,7 +71,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 3.9-dev\n" +"X-Generator: Weblate 3.9.1-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -90,7 +91,7 @@ msgstr "Ðеправильный ввод %i (не был передан) в Ð²Ñ #: core/math/expression.cpp msgid "self can't be used because instance is null (not passed)" msgstr "" -"self не может быть иÑпользован, потому что ÑкземплÑÑ€ равен null (не прошел)" +"self не может быть иÑпользован, потому что ÑкземплÑÑ€ равен null (не передан)" #: core/math/expression.cpp msgid "Invalid operands to operator %s, %s and %s." @@ -114,32 +115,31 @@ msgstr "Ðа вызове '%s':" #: core/ustring.cpp msgid "B" -msgstr "" +msgstr "Б" #: core/ustring.cpp msgid "KiB" -msgstr "" +msgstr "КиБ" #: core/ustring.cpp -#, fuzzy msgid "MiB" -msgstr "Сочетание" +msgstr "МиБ" #: core/ustring.cpp msgid "GiB" -msgstr "" +msgstr "ГиБ" #: core/ustring.cpp msgid "TiB" -msgstr "" +msgstr "ТиБ" #: core/ustring.cpp msgid "PiB" -msgstr "" +msgstr "ПиБ" #: core/ustring.cpp msgid "EiB" -msgstr "" +msgstr "ÐиБ" #: editor/animation_bezier_editor.cpp msgid "Free" @@ -373,11 +373,11 @@ msgstr "Ð’Ñтавить ключ" #: editor/animation_track_editor.cpp msgid "Duplicate Key(s)" -msgstr "Дублировать ключ(ключи)" +msgstr "Дублировать ключ(и)" #: editor/animation_track_editor.cpp msgid "Delete Key(s)" -msgstr "Удалить ключ(ключи)" +msgstr "Удалить ключ(и)" #: editor/animation_track_editor.cpp msgid "Change Animation Update Mode" @@ -411,6 +411,7 @@ msgstr "Создать %d новые дорожки и вÑтавить ключ #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "Создать" @@ -553,15 +554,6 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "Предупреждение: Редактирование импортированной анимации" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "Выбрать вÑе" - -#: editor/animation_track_editor.cpp -msgid "Select None" -msgstr "СброÑить выделение" - #: editor/animation_track_editor.cpp #, fuzzy msgid "Select an AnimationPlayer node to create and edit animations." @@ -697,7 +689,8 @@ msgid "Scale Ratio:" msgstr "КоÑффициент маÑштабированиÑ:" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" +#, fuzzy +msgid "Select Tracks to Copy" msgstr "Выбрать треки Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ:" #: editor/animation_track_editor.cpp editor/editor_log.cpp @@ -709,6 +702,11 @@ msgstr "Выбрать треки Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ:" msgid "Copy" msgstr "Копировать" +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Select All/None" +msgstr "СброÑить выделение" + #: editor/animation_track_editor_plugins.cpp msgid "Add Audio Track Clip" msgstr "Добавить звуковую дорожку" @@ -1037,7 +1035,7 @@ msgid "Resource" msgstr "РеÑурÑ" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "Путь" @@ -1502,7 +1500,8 @@ msgstr "Добавить в автозагрузку" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "Путь:" @@ -1556,7 +1555,7 @@ msgstr "Создать папку" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "ИмÑ:" @@ -1638,9 +1637,8 @@ msgid "Script Editor" msgstr "Редактор Ñкриптов" #: editor/editor_feature_profile.cpp -#, fuzzy msgid "Asset Library" -msgstr "Открыть библиотеку шаблонов" +msgstr "Библиотека реÑурÑов" #: editor/editor_feature_profile.cpp #, fuzzy @@ -1971,6 +1969,7 @@ msgid "Class:" msgstr "КлаÑÑ:" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "ÐаÑледует:" @@ -2137,7 +2136,7 @@ msgstr "ЗапуÑтить" #: editor/editor_network_profiler.cpp msgid "%s/s" -msgstr "" +msgstr "%s/Ñ" #: editor/editor_network_profiler.cpp msgid "Down" @@ -2153,19 +2152,19 @@ msgstr "Узел" #: editor/editor_network_profiler.cpp msgid "Incoming RPC" -msgstr "" +msgstr "ВходÑщий RPC" #: editor/editor_network_profiler.cpp msgid "Incoming RSET" -msgstr "" +msgstr "ВходÑщий RSET" #: editor/editor_network_profiler.cpp msgid "Outgoing RPC" -msgstr "" +msgstr "ИÑходÑщий RPC" #: editor/editor_network_profiler.cpp msgid "Outgoing RSET" -msgstr "" +msgstr "ИÑходÑщий RSET" #: editor/editor_node.cpp editor/project_manager.cpp #, fuzzy @@ -2765,12 +2764,14 @@ msgid "Version Control" msgstr "ВерÑиÑ:" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +#, fuzzy msgid "Set Up Version Control" -msgstr "" +msgstr "ÐаÑтроить управление верÑиÑми" #: editor/editor_node.cpp +#, fuzzy msgid "Shut Down Version Control" -msgstr "" +msgstr "Выключить управление верÑиÑми" #: editor/editor_node.cpp msgid "Export..." @@ -3051,7 +3052,7 @@ msgstr "ИнÑпектор" msgid "Expand Bottom Panel" msgstr "Развернуть нижнюю панель" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "Вывод" @@ -3080,6 +3081,14 @@ msgid "" "the \"Use Custom Build\" option should be enabled in the Android export " "preset." msgstr "" +"Ðто наÑтроит ваш проект Ð´Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÑŒÑких Ñборок Android путём уÑтановки " +"иÑходного шаблона в «res://android/build».\n" +"Затем вы можете модифицировать его (добавить модули, изменить " +"AndroidManifest.xml и Ñ‚. д.) и Ñоздать Ñвой ÑобÑтвенный пользовательÑкий APK " +"Ð´Ð»Ñ ÑкÑпорта.\n" +"Обратите внимание, что Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÑŒÑких Ñборок вмеÑто " +"иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð³Ð¾Ñ‚Ð¾Ð²Ñ‹Ñ… APK-файлов при ÑкÑпорте на Android должна быть " +"включена Ð¾Ð¿Ñ†Ð¸Ñ Â«Ð˜Ñпользовать пользовательÑкую Ñборку»." #: editor/editor_node.cpp #, fuzzy @@ -3304,6 +3313,10 @@ msgstr "Выберите Viewport" msgid "New Script" msgstr "Ðовый Ñкрипт" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +msgid "Extend Script" +msgstr "РаÑширить Ñкрипт" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "Ðовый %s" @@ -3330,13 +3343,6 @@ msgstr "Ð’Ñтавить" msgid "Convert To %s" msgstr "Преобразовать в %s" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Open Editor" -msgstr "Открыть редактор" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "Выбранный узел не Viewport!" @@ -4135,7 +4141,7 @@ msgstr "Ð˜Ð¼Ñ Ð”Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ:" msgid "Subfolder:" msgstr "Подпапка:" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "Язык:" @@ -4277,6 +4283,12 @@ msgstr "Точка" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Open Editor" +msgstr "Открыть редактор" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp msgid "Open Animation Node" msgstr "Открыть Узел Ðнимации" @@ -4626,7 +4638,6 @@ msgstr "Ðазвание анимации:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "Ошибка!" @@ -4799,6 +4810,8 @@ msgid "Current:" msgstr "Выбранный:" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "Добавить вход" @@ -5008,6 +5021,10 @@ msgid "All" msgstr "Ð’Ñе" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy msgid "Import..." msgstr "Переимпортировать..." @@ -5169,10 +5186,13 @@ msgid "Presets for the anchors and margins values of a Control node." msgstr "ПредуÑтановки Ð´Ð»Ñ Ñкорей и Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¾Ñ‚Ñтупов контрольного узла." #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy msgid "" "When active, moving Control nodes changes their anchors instead of their " "margins." msgstr "" +"ЕÑли активно, при перемещении узлов Control будут изменÑÑ‚ÑŒÑÑ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ñкорей " +"вмеÑто отÑтупов." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" @@ -5308,21 +5328,28 @@ msgid "Ruler Mode" msgstr "Режим запуÑка:" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Toggle snapping." +#, fuzzy +msgid "Toggle smart snapping." msgstr "Переключить привÑзки." #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +#, fuzzy +msgid "Use Smart Snap" msgstr "ИÑпользовать привÑзку" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snapping Options" -msgstr "Параметры ПривÑзки" +#, fuzzy +msgid "Toggle grid snapping." +msgstr "Переключить привÑзки." #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to Grid" -msgstr "ПривÑзка к Ñетке" +#, fuzzy +msgid "Use Grid Snap" +msgstr "ПривÑзка по Ñетке" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snapping Options" +msgstr "Параметры ПривÑзки" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Rotation Snap" @@ -5415,8 +5442,8 @@ msgid "View" msgstr "Обзор" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +#, fuzzy +msgid "Always Show Grid" msgstr "Показать Ñетку" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5454,7 +5481,7 @@ msgstr "Кадрировать выбранное" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy msgid "Preview Canvas Scale" -msgstr "ПредпроÑмотр атлаÑа" +msgstr "ПредпроÑмотр маÑштаба холÑта" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy @@ -5697,6 +5724,11 @@ msgstr "Переключить кривую линейный тангенÑ" msgid "Hold Shift to edit tangents individually" msgstr "Удерживайте Shift, чтобы изменить каÑательные индивидуально" +#: editor/plugins/curve_editor_plugin.cpp +#, fuzzy +msgid "Right click to add point" +msgstr "ПКМ: Удалить точку" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "Запечь GI пробу" @@ -5973,8 +6005,9 @@ msgid "Generation Time (sec):" msgstr "Ð’Ñ€ÐµÐ¼Ñ Ð³ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ð¸ (Ñек):" #: editor/plugins/particles_editor_plugin.cpp +#, fuzzy msgid "The geometry's faces don't contain any area." -msgstr "" +msgstr "Грани данной геометрии не Ñодержат никакой облаÑти." #: editor/plugins/particles_editor_plugin.cpp #, fuzzy @@ -5983,7 +6016,7 @@ msgstr "Узел не Ñодержит геометрии (грани)." #: editor/plugins/particles_editor_plugin.cpp msgid "\"%s\" doesn't inherit from Spatial." -msgstr "" +msgstr "\"%s\" не наÑледуетÑÑ Ð¾Ñ‚ Spatial." #: editor/plugins/particles_editor_plugin.cpp msgid "\"%s\" doesn't contain geometry." @@ -6337,6 +6370,10 @@ msgid "Grid" msgstr "Сетка" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "Показать Ñетку" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Configure Grid:" msgstr "ÐаÑтройки Ñетки:" @@ -6393,6 +6430,7 @@ msgstr "ÐкземплÑÑ€:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "Тип:" @@ -6494,6 +6532,11 @@ msgid "Find Next" msgstr "Ðайти Ñледующее" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "Ðайти предыдущее" + +#: editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Filter scripts" msgstr "СвойÑтва фильтра" @@ -6629,7 +6672,7 @@ msgstr "Открыть онлайн документацию Godot" #: editor/plugins/script_editor_plugin.cpp msgid "Request Docs" -msgstr "Запрашиваемые Документы" +msgstr "Проблема" #: editor/plugins/script_editor_plugin.cpp #, fuzzy @@ -6769,6 +6812,11 @@ msgstr "Точки оÑтанова" msgid "Cut" msgstr "Вырезать" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "Выбрать вÑе" + #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "Удалить Ñтроку" @@ -6827,10 +6875,6 @@ msgid "Auto Indent" msgstr "ÐвтоотÑтуп" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "Ðайти предыдущее" - -#: editor/plugins/script_text_editor.cpp msgid "Find in Files..." msgstr "Ðайти в файлах..." @@ -7159,6 +7203,11 @@ msgid "Freelook Speed Modifier" msgstr "Обзор модификатор ÑкороÑти" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Freelook Slow Modifier" +msgstr "Обзор модификатор ÑкороÑти" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -7181,8 +7230,9 @@ msgid "Snap Nodes To Floor" msgstr "ПодравнÑÑ‚ÑŒ Узел Ñ ÐŸÐ¾Ð»Ð¾Ð¼" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy msgid "Couldn't find a solid floor to snap the selection to." -msgstr "" +msgstr "Ðе удалоÑÑŒ найти Ñплошной пол, к которому можно привÑзать выделение." #: editor/plugins/spatial_editor_plugin.cpp msgid "" @@ -7200,6 +7250,10 @@ msgid "Use Local Space" msgstr "Режим локального проÑтранÑтва (%s)" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "ИÑпользовать привÑзку" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "Вид Снизу" @@ -7435,6 +7489,11 @@ msgid "Simplification: " msgstr "Упрощение: " #: editor/plugins/sprite_editor_plugin.cpp +#, fuzzy +msgid "Shrink (Pixels): " +msgstr "РоÑÑ‚ (пикÑели): " + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "РоÑÑ‚ (пикÑели): " @@ -7688,7 +7747,7 @@ msgstr "Отмеченный переключатель" #: editor/plugins/theme_editor_plugin.cpp msgid "Named Sep." -msgstr "" +msgstr "Имен. раздел." #: editor/plugins/theme_editor_plugin.cpp msgid "Submenu" @@ -7824,7 +7883,7 @@ msgstr "ОтÑортировать файлы..." #: editor/plugins/tile_map_editor_plugin.cpp msgid "Give a TileSet resource to this TileMap to use its tiles." -msgstr "" +msgstr "Задайте TileSet реÑÑƒÑ€Ñ Ñтому Tilemap чтобы иÑпользовать его тайлы." #: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" @@ -7976,6 +8035,8 @@ msgstr "Отобразить имена плиток (удерживать наРmsgid "" "Add or select a texture on the left panel to edit the tiles bound to it." msgstr "" +"Добавьте или выберите текÑтуру на левой панели, чтобы редактировать тайлы, " +"привÑзанные к ней." #: editor/plugins/tile_set_editor_plugin.cpp msgid "Remove selected texture? This will remove all tiles which use it." @@ -8158,59 +8219,54 @@ msgid "Error" msgstr "Ошибка" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "No commit message was provided" -msgstr "Ðе указано имÑ" +msgstr "Ðе указано Ñообщение коммита" #: editor/plugins/version_control_editor_plugin.cpp msgid "No files added to stage" -msgstr "" +msgstr "Ðе добавлены файлы Ð´Ð»Ñ ÐºÐ¾Ð¼Ð¼Ð¸Ñ‚Ð°" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Commit" -msgstr "СообщеÑтво" +msgstr "Коммит" #: editor/plugins/version_control_editor_plugin.cpp msgid "VCS Addon is not initialized" -msgstr "" +msgstr "Плагин VCS не инициализирован" #: editor/plugins/version_control_editor_plugin.cpp msgid "Version Control System" -msgstr "" +msgstr "СиÑтема ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð²ÐµÑ€ÑиÑми" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Initialize" -msgstr "ПропиÑные" +msgstr "Инициализировать" #: editor/plugins/version_control_editor_plugin.cpp +#, fuzzy msgid "Staging area" -msgstr "" +msgstr "ОблаÑÑ‚ÑŒ коммита" #: editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Detect new changes" -msgstr "Создать новый прÑмоугольник." +msgstr "Обнаружить новые изменениÑ" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Changes" -msgstr "Изменить" +msgstr "ИзменениÑ" #: editor/plugins/version_control_editor_plugin.cpp msgid "Modified" -msgstr "" +msgstr "Изменено" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Renamed" -msgstr "Переименовать" +msgstr "Переименовано" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Deleted" -msgstr "Удалить" +msgstr "Удалено" #: editor/plugins/version_control_editor_plugin.cpp #, fuzzy @@ -8229,12 +8285,12 @@ msgstr "Сохранить вÑÑ‘" #: editor/plugins/version_control_editor_plugin.cpp msgid "Add a commit message" -msgstr "" +msgstr "Добавьте Ñообщение коммита" #: editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Commit Changes" -msgstr "Ð¡Ð¸Ð½Ñ…Ñ€Ð¾Ð½Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹ в Ñкриптах" +msgstr "Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¼Ð¼Ð¸Ñ‚Ð°" #: editor/plugins/version_control_editor_plugin.cpp #: modules/gdnative/gdnative_library_singleton_editor.cpp @@ -8242,8 +8298,9 @@ msgid "Status" msgstr "СтатуÑ" #: editor/plugins/version_control_editor_plugin.cpp +#, fuzzy msgid "View file diffs before committing them to the latest version" -msgstr "" +msgstr "ПроÑмотр различий в файлах перед коммитом" #: editor/plugins/version_control_editor_plugin.cpp #, fuzzy @@ -8260,13 +8317,8 @@ msgstr "(только GLES3)" #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy -msgid "Add input +" -msgstr "Добавить вход" - -#: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy -msgid "Add output +" -msgstr "Добавить вход" +msgid "Add Output" +msgstr "Добавить выход +" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Scalar" @@ -8278,7 +8330,12 @@ msgstr "Вектор" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Boolean" -msgstr "" +msgstr "ЛогичеÑкое" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Sampler" +msgstr "СÑмплы" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add input port" @@ -8331,9 +8388,8 @@ msgid "Set Uniform Name" msgstr "Задать единообразное имÑ" #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Set Input Default Port" -msgstr "Задать Порт по умолчанию Ð´Ð»Ñ Ð’Ð²Ð¾Ð´Ð°" +msgstr "Задать входной порт по умолчанию" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add Node to Visual Shader" @@ -8384,7 +8440,7 @@ msgstr "Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ Ñ†Ð²ÐµÑ‚Ð°." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Color operator." -msgstr "" +msgstr "Оператор цвета." #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy @@ -8405,85 +8461,96 @@ msgid "Sepia function." msgstr "Переименовать функцию" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy msgid "Burn operator." -msgstr "" +msgstr "Оператор выгораниÑ." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Darken operator." -msgstr "" +msgstr "Оператор затемнениÑ." #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy msgid "Difference operator." -msgstr "Только разница" +msgstr "Оператор разницы." #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy msgid "Dodge operator." -msgstr "" +msgstr "Оператор выцветаниÑ." #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy msgid "HardLight operator" -msgstr "" +msgstr "Оператор жёÑткого Ñвета." #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy msgid "Lighten operator." -msgstr "" +msgstr "Оператор оÑветлениÑ." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Overlay operator." -msgstr "" +msgstr "Оператор наложениÑ." #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy msgid "Screen operator." -msgstr "" +msgstr "Оператор Ñкрана." #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy msgid "SoftLight operator." -msgstr "" +msgstr "Оператор мÑгкого Ñвета." #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy msgid "Color constant." -msgstr "ПоÑтоÑнный" +msgstr "Ð¦Ð²ÐµÑ‚Ð¾Ð²Ð°Ñ ÐºÐ¾Ð½Ñтанта." #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy msgid "Color uniform." -msgstr "ОчиÑтить преобразование" +msgstr "Ð¦Ð²ÐµÑ‚Ð¾Ð²Ð°Ñ uniform." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the boolean result of the %s comparison between two parameters." -msgstr "" +msgstr "Возвращает логичеÑкий результат ÑÑ€Ð°Ð²Ð½ÐµÐ½Ð¸Ñ %s между Ð´Ð²ÑƒÐ¼Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°Ð¼Ð¸." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Equal (==)" -msgstr "" +msgstr "Равно (==)" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Greater Than (>)" -msgstr "" +msgstr "Больше (>)" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Greater Than or Equal (>=)" -msgstr "" +msgstr "Больше или равно (>=)" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy msgid "" "Returns an associated vector if the provided scalars are equal, greater or " "less." msgstr "" +"Возвращает ÑвÑзанный вектор, еÑли предоÑтавленные ÑкалÑры равны, больше или " +"меньше." #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy msgid "" "Returns the boolean result of the comparison between INF and a scalar " "parameter." -msgstr "" +msgstr "Возвращает логичеÑкий результат ÑÑ€Ð°Ð²Ð½ÐµÐ½Ð¸Ñ INF и ÑкалÑрного параметра." #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy msgid "" "Returns the boolean result of the comparison between NaN and a scalar " "parameter." -msgstr "" +msgstr "Возвращает логичеÑкий результат ÑÑ€Ð°Ð²Ð½ÐµÐ½Ð¸Ñ NaN и ÑкалÑрного параметра." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Less Than (<)" @@ -8491,44 +8558,55 @@ msgstr "Меньше, чем (<)" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Less Than or Equal (<=)" -msgstr "" +msgstr "Меньше или равно (<=)" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Not Equal (!=)" -msgstr "" +msgstr "Ðе равно (!=)" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy msgid "" "Returns an associated vector if the provided boolean value is true or false." msgstr "" +"Возвращает ÑвÑзанный вектор, еÑли предоÑтавленное логичеÑкое значение равно " +"true или false." #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy msgid "" "Returns an associated scalar if the provided boolean value is true or false." msgstr "" +"Возвращает ÑвÑзанный ÑкалÑÑ€, еÑли предоÑтавленное логичеÑкое значение равно " +"true или false." #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy msgid "Returns the boolean result of the comparison between two parameters." -msgstr "" +msgstr "Возвращает логичеÑкий результат ÑÑ€Ð°Ð²Ð½ÐµÐ½Ð¸Ñ Ð´Ð²ÑƒÑ… параметров." #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy msgid "" "Returns the boolean result of the comparison between INF (or NaN) and a " "scalar parameter." msgstr "" +"Возвращает логичеÑкий результат ÑÑ€Ð°Ð²Ð½ÐµÐ½Ð¸Ñ INF (или NaN) и ÑкалÑрного " +"параметра." #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy msgid "Boolean constant." -msgstr "Изменить векторную конÑтанту" +msgstr "ЛогичеÑÐºÐ°Ñ ÐºÐ¾Ð½Ñтанта." #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy msgid "Boolean uniform." -msgstr "" +msgstr "ЛогичеÑÐºÐ°Ñ uniform." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "'%s' input parameter for all shader modes." -msgstr "" +msgstr "Входной параметр «%s» Ð´Ð»Ñ Ð²Ñех режимов шейдера." #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy @@ -8537,27 +8615,29 @@ msgstr "ПривÑзка к родителю" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "'%s' input parameter for vertex and fragment shader modes." -msgstr "" +msgstr "Входной параметр «%s» Ð´Ð»Ñ Ñ€ÐµÐ¶Ð¸Ð¼Ð¾Ð² вершинного и фрагментного шейдеров." #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy msgid "'%s' input parameter for fragment and light shader modes." msgstr "" +"Входной параметр «%s» Ð´Ð»Ñ Ñ€ÐµÐ¶Ð¸Ð¼Ð¾Ð² фрагментного шейдера и шейдера оÑвещениÑ." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "'%s' input parameter for fragment shader mode." -msgstr "" +msgstr "Входной параметр «%s» Ð´Ð»Ñ Ñ€ÐµÐ¶Ð¸Ð¼Ð° фрагментного шейдера." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "'%s' input parameter for light shader mode." -msgstr "" +msgstr "Входной параметр «%s» Ð´Ð»Ñ Ñ€ÐµÐ¶Ð¸Ð¼Ð° шейдера оÑвещениÑ." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "'%s' input parameter for vertex shader mode." -msgstr "" +msgstr "Входной параметр «%s» Ð´Ð»Ñ Ñ€ÐµÐ¶Ð¸Ð¼Ð° вершинного шейдера." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "'%s' input parameter for vertex and fragment shader mode." -msgstr "" +msgstr "Входной параметр «%s» Ð´Ð»Ñ Ñ€ÐµÐ¶Ð¸Ð¼Ð° вершинного и фрагментного шейдеров." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Scalar function." @@ -8570,66 +8650,67 @@ msgstr "СкалÑрный оператор." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "E constant (2.718282). Represents the base of the natural logarithm." msgstr "" +"ЧиÑло e (2,718282). ПредÑтавлÑет Ñобой оÑнование натурального логарифма." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Epsilon constant (0.00001). Smallest possible scalar number." -msgstr "" +msgstr "ÐпÑилон-конÑтанта (0,00001). Ðаименьшее возможное ÑкалÑрное чиÑло." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Phi constant (1.618034). Golden ratio." -msgstr "" +msgstr "КонÑтанта Фи (1,618034). Золотое Ñечение." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Pi/4 constant (0.785398) or 45 degrees." -msgstr "" +msgstr "КонÑтанта Пи/4 (0,785398) или 45 градуÑов." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Pi/2 constant (1.570796) or 90 degrees." -msgstr "" +msgstr "КонÑтанта Пи/2 (1,570796) или 90 градуÑов." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Pi constant (3.141593) or 180 degrees." -msgstr "" +msgstr "КонÑтанта Пи (3,141593) или 180 градуÑов." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Tau constant (6.283185) or 360 degrees." -msgstr "" +msgstr "КонÑтанта Тау (6,283185) или 360 градуÑов." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Sqrt2 constant (1.414214). Square root of 2." -msgstr "" +msgstr "КонÑтанта Sqrt2 (1,414214). Квадратный корень из 2." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the absolute value of the parameter." -msgstr "" +msgstr "Возвращает абÑолютное значение параметра." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the arc-cosine of the parameter." -msgstr "" +msgstr "Возвращает арккоÑÐ¸Ð½ÑƒÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the inverse hyperbolic cosine of the parameter." -msgstr "" +msgstr "Возвращает обратный гиперболичеÑкий коÑÐ¸Ð½ÑƒÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the arc-sine of the parameter." -msgstr "" +msgstr "Возвращает аркÑÐ¸Ð½ÑƒÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the inverse hyperbolic sine of the parameter." -msgstr "" +msgstr "Возвращает обратный гиперболичеÑкий ÑÐ¸Ð½ÑƒÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the arc-tangent of the parameter." -msgstr "" +msgstr "Возвращает Ð°Ñ€ÐºÑ‚Ð°Ð½Ð³ÐµÐ½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the arc-tangent of the parameters." -msgstr "" +msgstr "Возвращает Ð°Ñ€ÐºÑ‚Ð°Ð½Ð³ÐµÐ½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð²." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the inverse hyperbolic tangent of the parameter." -msgstr "" +msgstr "Возвращает обратный гиперболичеÑкий Ñ‚Ð°Ð½Ð³ÐµÐ½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "" @@ -8637,8 +8718,9 @@ msgid "" msgstr "ВычиÑлÑет ближайшее целое чиÑло, большее или равное аргументу." #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy msgid "Constrains a value to lie between two further values." -msgstr "" +msgstr "Ограничивает значение лежать между Ð´Ð²ÑƒÐ¼Ñ Ð´Ñ€ÑƒÐ³Ð¸Ð¼Ð¸ значениÑми." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the cosine of the parameter." @@ -8654,11 +8736,11 @@ msgstr "Переводит значение из радиан в градуÑÑ‹. #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Base-e Exponential." -msgstr "" +msgstr "ÐкÑпонента Ñ Ð¾Ñнованием e." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Base-2 Exponential." -msgstr "" +msgstr "ÐкÑпонента Ñ Ð¾Ñнованием 2." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Finds the nearest integer less than or equal to the parameter." @@ -8694,16 +8776,16 @@ msgstr "Ð›Ð¸Ð½ÐµÐ¹Ð½Ð°Ñ Ð¸Ð½Ñ‚ÐµÑ€Ð¿Ð¾Ð»ÑÑ†Ð¸Ñ Ð¼ÐµÐ¶Ð´Ñƒ Ð´Ð²ÑƒÐ¼Ñ Ñкал #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the opposite value of the parameter." -msgstr "" +msgstr "Возвращает значение, противоположное параметру." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "1.0 - scalar" -msgstr "" +msgstr "1.0 - ÑкалÑÑ€" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "" "Returns the value of the first parameter raised to the power of the second." -msgstr "" +msgstr "Возвращает значение первого параметра, возведенное в Ñтепень второго." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Converts a quantity in degrees to radians." @@ -8711,7 +8793,7 @@ msgstr "Переводит значение из градуÑов в радиаР#: editor/plugins/visual_shader_editor_plugin.cpp msgid "1.0 / scalar" -msgstr "" +msgstr "1.0 / ÑкалÑÑ€" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Finds the nearest integer to the parameter." @@ -8727,19 +8809,19 @@ msgstr "Ограничивает значение в пределах от 0.0 Ð #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Extracts the sign of the parameter." -msgstr "" +msgstr "Извлекает знак параметра." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the sine of the parameter." -msgstr "" +msgstr "Возвращает ÑÐ¸Ð½ÑƒÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the hyperbolic sine of the parameter." -msgstr "" +msgstr "Возвращает гиперболичеÑкий ÑÐ¸Ð½ÑƒÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the square root of the parameter." -msgstr "" +msgstr "Возвращает квадратный корень из параметра." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "" @@ -8751,27 +8833,32 @@ msgid "" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy msgid "" "Step function( scalar(edge), scalar(x) ).\n" "\n" "Returns 0.0 if 'x' is smaller than 'edge' and otherwise 1.0." msgstr "" +"Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ Ð¨Ð°Ð³( ÑкалÑÑ€(граница), ÑкалÑÑ€(Ñ…) ).\n" +"\n" +"Возвращает 0.0, еÑли x меньше чем граница, иначе — 1.0." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the tangent of the parameter." -msgstr "" +msgstr "Возвращает Ñ‚Ð°Ð½Ð³ÐµÐ½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the hyperbolic tangent of the parameter." -msgstr "" +msgstr "Возвращает гиперболичеÑкий Ñ‚Ð°Ð½Ð³ÐµÐ½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°." #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy msgid "Finds the truncated value of the parameter." -msgstr "" +msgstr "Ðаходит уÑечённое до целого значение параметра." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Adds scalar to scalar." -msgstr "" +msgstr "ДобавлÑет ÑкалÑÑ€ к ÑкалÑру." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Divides scalar by scalar." @@ -8782,12 +8869,13 @@ msgid "Multiplies scalar by scalar." msgstr "Умножает ÑкалÑÑ€ на ÑкалÑÑ€." #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy msgid "Returns the remainder of the two scalars." -msgstr "" +msgstr "Возвращает оÑтаток от двух ÑкалÑров." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Subtracts scalar from scalar." -msgstr "" +msgstr "Вычитает ÑкалÑÑ€ из ÑкалÑра." #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy @@ -8800,12 +8888,14 @@ msgid "Scalar uniform." msgstr "Изменить чиÑловую единицу" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy msgid "Perform the cubic texture lookup." -msgstr "" +msgstr "ВыполнÑет поиÑк кубичеÑкой текÑтуры." #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy msgid "Perform the texture lookup." -msgstr "" +msgstr "ВыполнÑет поиÑк текÑтуры." #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy @@ -8837,18 +8927,28 @@ msgid "" "whose number of rows is the number of components in 'c' and whose number of " "columns is the number of components in 'r'." msgstr "" +"ВычиÑлÑет внешнее произведение пары векторов.\n" +"\n" +"Внешнее произведение раÑÑматривает первый параметр «c» как вектор-Ñтолбец " +"(матрица, ÑоÑтоÑÑ‰Ð°Ñ Ð¸Ð· одного Ñтолбца), а второй параметр «r» — как вектор-" +"Ñтроку (матрица, ÑоÑтоÑÑ‰Ð°Ñ Ð¸Ð· одной Ñтроки) и оÑущеÑтвлÑет линейно-" +"алгебраичеÑкое умножение «c * r», в результате чего образуетÑÑ Ð¼Ð°Ñ‚Ñ€Ð¸Ñ†Ð°, " +"количеÑтво Ñтрок которой равно количеÑтву компонентов в «c», а количеÑтво " +"Ñтолбцов — количеÑтву компонентов в «r»." #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy msgid "Composes transform from four vectors." -msgstr "" +msgstr "СоÑтавлÑет преобразование из четырёх векторов." #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy msgid "Decomposes transform to four vectors." -msgstr "" +msgstr "РаÑкладывает преобразование на четыре вектора." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Calculates the determinant of a transform." -msgstr "" +msgstr "ВычиÑлÑет детерминант Ð¿Ñ€ÐµÐ¾Ð±Ñ€Ð°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ (матрицы транÑформации)." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Calculates the inverse of a transform." @@ -8856,15 +8956,15 @@ msgstr "ВычиÑлÑет обратную транÑформацию." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Calculates the transpose of a transform." -msgstr "" +msgstr "ВычиÑлÑет транÑпонирование преобразованиÑ." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Multiplies transform by transform." -msgstr "" +msgstr "Умножает преобразование на преобразование." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Multiplies vector by transform." -msgstr "" +msgstr "Умножает вектор на преобразование." #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy @@ -8913,6 +9013,10 @@ msgid "" "incident vector, and Nref, the reference vector. If the dot product of I and " "Nref is smaller than zero the return value is N. Otherwise -N is returned." msgstr "" +"Возвращает вектор, который указывает в том же направлении, что и Ñталонный " +"вектор. Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ Ð¸Ð¼ÐµÐµÑ‚ три векторных параметра: N, вектор Ð´Ð»Ñ Ð¾Ñ€Ð¸ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ð¸, I, " +"вектор инцидента и Nref, Ñталонный вектор. ЕÑли ÑкалÑрное произведение I и " +"Nref меньше нулÑ, возвращаетÑÑ N. Ð’ противном Ñлучае возвращаетÑÑ -N." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Calculates the length of a vector." @@ -8929,25 +9033,27 @@ msgstr "Ð›Ð¸Ð½ÐµÐ¹Ð½Ð°Ñ Ð¸Ð½Ñ‚ÐµÑ€Ð¿Ð¾Ð»ÑÑ†Ð¸Ñ Ð¼ÐµÐ¶Ð´Ñƒ Ð´Ð²ÑƒÐ¼Ñ Ð²ÐµÐºÑ‚ #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Calculates the normalize product of vector." -msgstr "" +msgstr "ВычиÑлÑет нормализованное произведение векторов." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "1.0 - vector" -msgstr "" +msgstr "1.0 - вектор" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "1.0 / vector" -msgstr "" +msgstr "1.0 / вектор" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "" "Returns the vector that points in the direction of reflection ( a : incident " "vector, b : normal vector )." msgstr "" +"Возвращает вектор, который указывает в направлении Ð¾Ñ‚Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ ( a : вектор " +"падениÑ, b : нормальный вектор )." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the vector that points in the direction of refraction." -msgstr "" +msgstr "Возвращает вектор, который указывает в направлении преломлениÑ." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "" @@ -8995,11 +9101,11 @@ msgstr "Умножает вектор на вектор." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the remainder of the two vectors." -msgstr "" +msgstr "Возвращает оÑтаток от двух векторов." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Subtracts vector from vector." -msgstr "" +msgstr "Вычитает вектор из вектора." #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy @@ -9017,6 +9123,9 @@ msgid "" "output ports. This is a direct injection of code into the vertex/fragment/" "light function, do not use it to write the function declarations inside." msgstr "" +"ПользовательÑкое выражение Ñзыка шейдеров Godot Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÑŒÑким " +"количеÑтвом входных и выходных портов. Ðто прÑмое внедрение кода в функцию " +"вершины/фрагмента/Ñвета, не иÑпользуйте его Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи объÑÐ²Ð»ÐµÐ½Ð¸Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¹." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "" @@ -9030,6 +9139,10 @@ msgid "" "shader. You can place various function definitions inside and call it later " "in the Expressions. You can also declare varyings, uniforms and constants." msgstr "" +"ПользовательÑкое выражение Ñзыка шейдеров Godot, которое помещаетÑÑ Ð² " +"верхней чаÑти шейдера. Ð’Ñ‹ можете размеÑтить внутри различные объÑÐ²Ð»ÐµÐ½Ð¸Ñ " +"функций и вызвать их позже в ВыражениÑÑ…. Ð’Ñ‹ также можете объÑвить varyings, " +"uniforms и конÑтанты." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "(Fragment/Light mode only) Scalar derivative function." @@ -9040,40 +9153,58 @@ msgid "(Fragment/Light mode only) Vector derivative function." msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy msgid "" "(Fragment/Light mode only) (Vector) Derivative in 'x' using local " "differencing." msgstr "" +"(Только в режиме Фрагмент/Свет) (Вектор) ÐŸÑ€Ð¾Ð¸Ð·Ð²Ð¾Ð´Ð½Ð°Ñ Ð¿Ð¾ «x» Ñ Ð¸Ñпользованием " +"локального дифференцированиÑ." #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy msgid "" "(Fragment/Light mode only) (Scalar) Derivative in 'x' using local " "differencing." msgstr "" +"(Только в режиме Фрагмент/Свет) (СкалÑÑ€) ÐŸÑ€Ð¾Ð¸Ð·Ð²Ð¾Ð´Ð½Ð°Ñ Ð¿Ð¾ «x» Ñ Ð¸Ñпользованием " +"локального дифференцированиÑ." #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy msgid "" "(Fragment/Light mode only) (Vector) Derivative in 'y' using local " "differencing." msgstr "" +"(Только в режиме Фрагмент/Свет) (Вектор) ÐŸÑ€Ð¾Ð¸Ð·Ð²Ð¾Ð´Ð½Ð°Ñ Ð¿Ð¾ «y» Ñ Ð¸Ñпользованием " +"локального дифференцированиÑ." #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy msgid "" "(Fragment/Light mode only) (Scalar) Derivative in 'y' using local " "differencing." msgstr "" +"(Только в режиме Фрагмент/Свет) (СкалÑÑ€) ÐŸÑ€Ð¾Ð¸Ð·Ð²Ð¾Ð´Ð½Ð°Ñ Ð¿Ð¾ «y» Ñ Ð¸Ñпользованием " +"локального дифференцированиÑ." #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy msgid "" "(Fragment/Light mode only) (Vector) Sum of absolute derivative in 'x' and " "'y'." msgstr "" +"(Только в режиме Фрагмент/Свет) (Вектор) Сумма абÑолютных значений " +"производных по «x» и «y»." #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy msgid "" "(Fragment/Light mode only) (Scalar) Sum of absolute derivative in 'x' and " "'y'." msgstr "" +"(Только в режиме Фрагмент/Свет) (СкалÑÑ€) Сумма абÑолютных значений " +"производных по «x» и «y»." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" @@ -9173,15 +9304,19 @@ msgid "Resources to export:" msgstr "РеÑурÑÑ‹ Ð´Ð»Ñ ÑкÑпорта:" #: editor/project_export.cpp +#, fuzzy msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" "Фильтр Ð´Ð»Ñ ÑкÑпорта не реÑурÑных файлов (через запÑтую, например: *.json, *." "txt)" #: editor/project_export.cpp +#, fuzzy msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "Фильтр Ð´Ð»Ñ Ð¸ÑÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ (через запÑтую, например: *.json, *.txt)" #: editor/project_export.cpp @@ -9419,7 +9554,7 @@ msgstr "Импортировать ÑущеÑтвующий проект" #: editor/project_manager.cpp msgid "Error: Project is missing on the filesystem." -msgstr "" +msgstr "Ошибка: Проект отÑутÑтвует в файловой ÑиÑтеме." #: editor/project_manager.cpp msgid "Can't open project at '%s'." @@ -10212,7 +10347,7 @@ msgstr "Удалить узел(Ñ‹) графа шейдера" #: editor/scene_tree_dock.cpp msgid "Delete node \"%s\" and its children?" -msgstr "" +msgstr "Удалить узел «%s» и его дочерние Ñлементы?" #: editor/scene_tree_dock.cpp #, fuzzy @@ -10240,12 +10375,13 @@ msgstr "" "узла будут возвращены к значениÑм по умолчанию." #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "Редактируемые потомки" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" -msgstr "Загрузить как заполнитель" +#, fuzzy +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." +msgstr "" +"Отключение параметра \"editable_instance\" приведет к тому, что вÑе ÑвойÑтва " +"узла будут возвращены к значениÑм по умолчанию." #: editor/scene_tree_dock.cpp msgid "Make Local" @@ -10322,6 +10458,14 @@ msgid "Clear Inheritance" msgstr "ОчиÑтить наÑледование" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "Редактируемые потомки" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "Загрузить как заполнитель" + +#: editor/scene_tree_dock.cpp msgid "Open Documentation" msgstr "Открыть документацию" @@ -10338,10 +10482,6 @@ msgid "Change Type" msgstr "Изменить тип" #: editor/scene_tree_dock.cpp -msgid "Extend Script" -msgstr "РаÑширить Ñкрипт" - -#: editor/scene_tree_dock.cpp #, fuzzy msgid "Reparent to New Node" msgstr "Переподчинить узел" @@ -10608,23 +10748,18 @@ msgid "Will load an existing script file." msgstr "Загрузить ÑущеÑтвующий Ñкрипт" #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "Язык" - -#: editor/script_create_dialog.cpp -msgid "Inherits" -msgstr "ÐаÑледует" - -#: editor/script_create_dialog.cpp -msgid "Class Name" +#, fuzzy +msgid "Class Name:" msgstr "Ð˜Ð¼Ñ ÐšÐ»Ð°ÑÑа" #: editor/script_create_dialog.cpp -msgid "Template" +#, fuzzy +msgid "Template:" msgstr "Шаблон" #: editor/script_create_dialog.cpp -msgid "Built-in Script" +#, fuzzy +msgid "Built-in Script:" msgstr "Ð’Ñтроенный Скрипт" #: editor/script_create_dialog.cpp @@ -10783,7 +10918,7 @@ msgstr "УÑтановить из дерева" #: editor/script_editor_debugger.cpp msgid "Export measures as CSV" -msgstr "" +msgstr "ÐкÑпорт измерений в CSV" #: editor/settings_config_dialog.cpp msgid "Erase Shortcut" @@ -10919,12 +11054,11 @@ msgstr "GDNative библиотека" #: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Enabled GDNative Singleton" -msgstr "" +msgstr "Включён GDNative Ñинглтон" #: modules/gdnative/gdnative_library_singleton_editor.cpp -#, fuzzy msgid "Disabled GDNative Singleton" -msgstr "Отключить Ñчётчик обновлений" +msgstr "Выключен GDNative Ñинглтон" #: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" @@ -10940,7 +11074,7 @@ msgstr "GDNative" #: modules/gdscript/gdscript_functions.cpp msgid "Expected a string of length 1 (a character)." -msgstr "" +msgstr "ОжидалаÑÑŒ Ñтрока длиной 1 (Ñимвол)." #: modules/gdscript/gdscript_functions.cpp msgid "Step argument is zero!" @@ -11104,6 +11238,7 @@ msgstr "Режим фильтра:" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Give a MeshLibrary resource to this GridMap to use its meshes." msgstr "" +"ПредоÑтавьте реÑÑƒÑ€Ñ MeshLibrary Ñтой GridMap, чтобы иÑпользовать его Ñетки." #: modules/mono/csharp_script.cpp msgid "Class name can't be a reserved keyword" @@ -11282,6 +11417,11 @@ msgid "Add Function" msgstr "Добавить функцию" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Delete input port" +msgstr "Удалить входной порт" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "Добавить переменную" @@ -11290,6 +11430,26 @@ msgid "Add Signal" msgstr "Добавить Ñигнал" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Input Port" +msgstr "Добавить входной порт" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Output Port" +msgstr "Добавить выходной порт" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Input Port" +msgstr "Удалить входной порт" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Output Port" +msgstr "Удалить выходной порт" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "Изменить выражение" @@ -11334,10 +11494,20 @@ msgid "Add Preload Node" msgstr "Добавить предзагрузочный узел" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "Добавить узел(узлы) из дерева" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "Добавить получающее ÑвойÑтво" @@ -11362,6 +11532,11 @@ msgid "Connect Nodes" msgstr "ПриÑоединить узлы" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Disconnect Nodes" +msgstr "Разъединить узлы графа" + +#: modules/visual_script/visual_script_editor.cpp msgid "Connect Node Data" msgstr "ПриÑоединить данные узла" @@ -11394,6 +11569,28 @@ msgid "Paste VisualScript Nodes" msgstr "Ð’Ñтавить узлы VisualScript" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Can't create function with a function node." +msgstr "Ðе удаётÑÑ Ñкопировать узел функцию." + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Create Function" +msgstr "Переименовать функцию" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "Удалить функцию" @@ -11419,16 +11616,13 @@ msgid "Make Tool:" msgstr "Сделать локальным" #: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "Базовый тип:" - -#: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "СвойÑтва:" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" -msgstr "ДоÑтупные узлы:" +#, fuzzy +msgid "function_name" +msgstr "ФункциÑ:" #: modules/visual_script/visual_script_editor.cpp #, fuzzy @@ -11452,6 +11646,16 @@ msgid "Cut Nodes" msgstr "Вырезать узлы" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Make Function" +msgstr "Переименовать функцию" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Refresh Graph" +msgstr "Обновить" + +#: modules/visual_script/visual_script_editor.cpp msgid "Edit Member" msgstr "Редактировать Ñлемент" @@ -11549,6 +11753,10 @@ msgid "The package must have at least one '.' separator." msgstr "Пакет должен иметь Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ один '.' разделитель." #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "Выберите уÑтройÑтво из ÑпиÑка" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "ИÑполнÑемый файл ADB не Ñконфигурирован в наÑтройках редактора." @@ -11565,10 +11773,14 @@ msgstr "" #: platform/android/export/export.cpp msgid "Custom build requires a valid Android SDK path in Editor Settings." msgstr "" +"ПользовательÑÐºÐ°Ñ Ñборка требует Ð½Ð°Ð»Ð¸Ñ‡Ð¸Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð¾Ð³Ð¾ пути к Android SDK в " +"наÑтройках редактора." #: platform/android/export/export.cpp msgid "Invalid Android SDK path for custom build in Editor Settings." msgstr "" +"Ðеправильный путь к Android SDK Ð´Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÑŒÑкой Ñборки в наÑтройках " +"редактора." #: platform/android/export/export.cpp #, fuzzy @@ -11592,6 +11804,8 @@ msgid "" "Trying to build from a custom built template, but no version info for it " "exists. Please reinstall from the 'Project' menu." msgstr "" +"Попытка Ñборки из пользовательÑкого шаблона, но информации о верÑии Ð´Ð»Ñ Ð½ÐµÐ³Ð¾ " +"не ÑущеÑтвует. ПожалуйÑта, переуÑтановите из меню «Проект»." #: platform/android/export/export.cpp msgid "" @@ -11600,20 +11814,28 @@ msgid "" " Godot Version: %s\n" "Please reinstall Android build template from 'Project' menu." msgstr "" +"ÐеÑоответÑтвие верÑии Ñборки Android:\n" +" УÑтановлен шаблон: %s\n" +" ВерÑÐ¸Ñ Godot: %s\n" +"ПожалуйÑта, переуÑтановите шаблон Ñборки Android из меню «Проект»." #: platform/android/export/export.cpp msgid "Building Android Project (gradle)" -msgstr "" +msgstr "Сборка проекта Android (gradle)" #: platform/android/export/export.cpp msgid "" "Building of Android project failed, check output for the error.\n" "Alternatively visit docs.godotengine.org for Android build documentation." msgstr "" +"Сборка проекта Android не удалаÑÑŒ, проверьте вывод на ошибки.\n" +"Также поÑетите docs.godotengine.org Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ð¸ по Ñборке " +"Android." #: platform/android/export/export.cpp +#, fuzzy msgid "No build apk generated at: " -msgstr "" +msgstr "Ðет Ñборки apk в: " #: platform/iphone/export/export.cpp msgid "Identifier is missing." @@ -11653,6 +11875,10 @@ msgid "Required icon is not specified in the preset." msgstr "Требуемый значок не указан в предуÑтановке." #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "ЗапуÑтить в браузере" @@ -12175,6 +12401,8 @@ msgid "" "WorldEnvironment requires its \"Environment\" property to contain an " "Environment to have a visible effect." msgstr "" +"WorldEnvironment требует, чтобы ее ÑвойÑтво \"Environment\" Ñодержало " +"Environment, чтобы иметь видимый Ñффект." #: scene/3d/world_environment.cpp msgid "" @@ -12270,6 +12498,9 @@ msgid "" "The Hint Tooltip won't be displayed as the control's Mouse Filter is set to " "\"Ignore\". To solve this, set the Mouse Filter to \"Stop\" or \"Pass\"." msgstr "" +"ПодÑказка не будет отображатьÑÑ, еÑли Ð´Ð»Ñ Ñ„Ð¸Ð»ÑŒÑ‚Ñ€Ð° мыши Ñлемента ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ " +"уÑтановлено значение «Ignore». Чтобы Ñто иÑправить, уÑтановите MouseFilter в " +"положение «Stop» или «Pass»." #: scene/gui/dialogs.cpp msgid "Alert!" @@ -12333,10 +12564,6 @@ msgstr "" "Ñделайте её целью рендеринга и назначьте её внутреннюю текÑтуру какому-либо " "узлу Ð´Ð»Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ." -#: scene/resources/visual_shader.cpp -msgid "Input" -msgstr "Вход" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for preview." msgstr "Ðеверный иÑточник Ð´Ð»Ñ Ð¿Ñ€ÐµÐ´Ð¿Ñ€Ð¾Ñмотра." @@ -12365,6 +12592,27 @@ msgstr "Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð³ÑƒÑ‚ быть назначены только Ð msgid "Constants cannot be modified." msgstr "КонÑтанты не могут быть изменены." +#~ msgid "Snap to Grid" +#~ msgstr "ПривÑзка к Ñетке" + +#~ msgid "Add input +" +#~ msgstr "Добавить вход +" + +#~ msgid "Language" +#~ msgstr "Язык" + +#~ msgid "Inherits" +#~ msgstr "ÐаÑледует" + +#~ msgid "Base Type:" +#~ msgstr "Базовый тип:" + +#~ msgid "Available Nodes:" +#~ msgstr "ДоÑтупные узлы:" + +#~ msgid "Input" +#~ msgstr "Вход" + #~ msgid "Properties:" #~ msgstr "СвойÑтва:" @@ -12588,9 +12836,6 @@ msgstr "КонÑтанты не могут быть изменены." #~ msgid "Go to parent folder" #~ msgstr "Перейти к родительÑкой папке" -#~ msgid "Select device from the list" -#~ msgstr "Выберите уÑтройÑтво из ÑпиÑка" - #~ msgid "Open Scene(s)" #~ msgstr "Открыть Ñцену(ны)" @@ -12828,9 +13073,6 @@ msgstr "КонÑтанты не могут быть изменены." #~ msgid "Warning" #~ msgstr "Предупреждение" -#~ msgid "Function:" -#~ msgstr "ФункциÑ:" - #~ msgid "Variable" #~ msgstr "ПеременнаÑ" @@ -12897,9 +13139,6 @@ msgstr "КонÑтанты не могут быть изменены." #~ msgid "Connect Graph Nodes" #~ msgstr "Соединить узлы графа" -#~ msgid "Disconnect Graph Nodes" -#~ msgstr "Разъединить узлы графа" - #~ msgid "Remove Shader Graph Node" #~ msgstr "Удалить узел графа шейдера" @@ -14040,9 +14279,6 @@ msgstr "КонÑтанты не могут быть изменены." #~ msgid "Group" #~ msgstr "Группа" -#~ msgid "Samples" -#~ msgstr "СÑмплы" - #~ msgid "Sample Conversion Mode: (.wav files):" #~ msgstr "Режим Ð¿Ñ€ÐµÐ¾Ð±Ñ€Ð°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑÑмплов (.wav файлы):" diff --git a/editor/translations/si.po b/editor/translations/si.po index fbea8d1c7d..a5775be438 100644 --- a/editor/translations/si.po +++ b/editor/translations/si.po @@ -359,6 +359,7 @@ msgstr "%d සදහ෠ලුහුබදින්නන් à·ƒà·à¶¯à· යච#: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "à·ƒà·à¶¯à¶±à·Šà¶±" @@ -493,15 +494,6 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "" - -#: editor/animation_track_editor.cpp -msgid "Select None" -msgstr "" - #: editor/animation_track_editor.cpp msgid "Select an AnimationPlayer node to create and edit animations." msgstr "" @@ -636,7 +628,7 @@ msgid "Scale Ratio:" msgstr "" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" +msgid "Select Tracks to Copy" msgstr "" #: editor/animation_track_editor.cpp editor/editor_log.cpp @@ -648,6 +640,10 @@ msgstr "" msgid "Copy" msgstr "" +#: editor/animation_track_editor.cpp +msgid "Select All/None" +msgstr "" + #: editor/animation_track_editor_plugins.cpp #, fuzzy msgid "Add Audio Track Clip" @@ -966,7 +962,7 @@ msgid "Resource" msgstr "" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "" @@ -1421,7 +1417,8 @@ msgstr "" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "" @@ -1475,7 +1472,7 @@ msgstr "" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "" @@ -1859,6 +1856,7 @@ msgid "Class:" msgstr "" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "" @@ -2850,7 +2848,7 @@ msgstr "" msgid "Expand Bottom Panel" msgstr "" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "" @@ -3086,6 +3084,10 @@ msgstr "" msgid "New Script" msgstr "" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +msgid "Extend Script" +msgstr "" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "" @@ -3112,13 +3114,6 @@ msgstr "" msgid "Convert To %s" msgstr "" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Open Editor" -msgstr "" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "" @@ -3893,7 +3888,7 @@ msgstr "" msgid "Subfolder:" msgstr "" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "" @@ -4029,6 +4024,12 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Open Editor" +msgstr "" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp msgid "Open Animation Node" msgstr "" @@ -4374,7 +4375,6 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "" @@ -4543,6 +4543,8 @@ msgid "Current:" msgstr "" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "" @@ -4747,6 +4749,10 @@ msgid "All" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp msgid "Import..." msgstr "" @@ -5030,20 +5036,23 @@ msgid "Ruler Mode" msgstr "නිවේà·à¶± මà·à¶¯à·’ලිය" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Toggle snapping." +msgid "Toggle smart snapping." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +msgid "Use Smart Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snapping Options" +msgid "Toggle grid snapping." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to Grid" +msgid "Use Grid Snap" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snapping Options" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5133,8 +5142,7 @@ msgid "View" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +msgid "Always Show Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5399,6 +5407,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/curve_editor_plugin.cpp +msgid "Right click to add point" +msgstr "" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "" @@ -6028,6 +6040,10 @@ msgid "Grid" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Configure Grid:" msgstr "" @@ -6084,6 +6100,7 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "" @@ -6182,6 +6199,11 @@ msgid "Find Next" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Filter scripts" msgstr "" @@ -6448,6 +6470,11 @@ msgstr "" msgid "Cut" msgstr "" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "" @@ -6505,10 +6532,6 @@ msgid "Auto Indent" msgstr "" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "" - -#: editor/plugins/script_text_editor.cpp msgid "Find in Files..." msgstr "" @@ -6828,6 +6851,10 @@ msgid "Freelook Speed Modifier" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Slow Modifier" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -6861,6 +6888,10 @@ msgid "Use Local Space" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "" @@ -7089,6 +7120,10 @@ msgid "Simplification: " msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Shrink (Pixels): " +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "" @@ -7860,11 +7895,7 @@ msgid "(GLES3 only)" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add input +" -msgstr "" - -#: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add output +" +msgid "Add Output" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -7880,6 +7911,10 @@ msgid "Boolean" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sampler" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add input port" msgstr "" @@ -8744,12 +8779,14 @@ msgstr "" #: editor/project_export.cpp msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp @@ -9733,11 +9770,9 @@ msgid "" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." msgstr "" #: editor/scene_tree_dock.cpp @@ -9812,6 +9847,14 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "" + +#: editor/scene_tree_dock.cpp msgid "Open Documentation" msgstr "" @@ -9828,10 +9871,6 @@ msgid "Change Type" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Extend Script" -msgstr "" - -#: editor/scene_tree_dock.cpp msgid "Reparent to New Node" msgstr "" @@ -10058,23 +10097,15 @@ msgid "Will load an existing script file." msgstr "" #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Inherits" +msgid "Class Name:" msgstr "" #: editor/script_create_dialog.cpp -msgid "Class Name" +msgid "Template:" msgstr "" #: editor/script_create_dialog.cpp -msgid "Template" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Built-in Script" +msgid "Built-in Script:" msgstr "" #: editor/script_create_dialog.cpp @@ -10711,6 +10742,11 @@ msgid "Add Function" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Delete input port" +msgstr "යà¶à·”රු මක෠දමන්න" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "" @@ -10719,6 +10755,25 @@ msgid "Add Signal" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Input Port" +msgstr "සජීවීකරණ පුනරà·à·€à¶»à·Šà¶®à¶±à¶º" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Add Output Port" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Input Port" +msgstr "මෙම ලුහුබදින්න෠ඉවà¶à·Š කරන්න." + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Output Port" +msgstr "මෙම ලුහුබදින්න෠ඉවà¶à·Š කරන්න." + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "" @@ -10759,10 +10814,20 @@ msgid "Add Preload Node" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "" @@ -10787,6 +10852,11 @@ msgid "Connect Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Disconnect Nodes" +msgstr "යà¶à·”රු පිටපà¶à·Š කරන්න" + +#: modules/visual_script/visual_script_editor.cpp msgid "Connect Node Data" msgstr "" @@ -10819,6 +10889,27 @@ msgid "Paste VisualScript Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function with a function node." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Create Function" +msgstr "à·à·Šâ€à¶»à·’à¶:" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "" @@ -10843,16 +10934,13 @@ msgid "Make Tool:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" -msgstr "" +#, fuzzy +msgid "function_name" +msgstr "à·à·Šâ€à¶»à·’à¶:" #: modules/visual_script/visual_script_editor.cpp msgid "Select or create a function to edit its graph." @@ -10875,6 +10963,15 @@ msgid "Cut Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Make Function" +msgstr "à·à·Šâ€à¶»à·’à¶:" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Refresh Graph" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Edit Member" msgstr "" @@ -10969,6 +11066,10 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "" @@ -11068,6 +11169,10 @@ msgid "Required icon is not specified in the preset." msgstr "" #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "" @@ -11605,10 +11710,6 @@ msgid "" "texture to some node for display." msgstr "" -#: scene/resources/visual_shader.cpp -msgid "Input" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for preview." msgstr "" diff --git a/editor/translations/sk.po b/editor/translations/sk.po index 348dd044e6..88eddf57db 100644 --- a/editor/translations/sk.po +++ b/editor/translations/sk.po @@ -366,6 +366,7 @@ msgstr "" #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "VytvoriÅ¥" @@ -498,16 +499,6 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "" - -#: editor/animation_track_editor.cpp -#, fuzzy -msgid "Select None" -msgstr "VÅ¡etky vybrané" - #: editor/animation_track_editor.cpp msgid "Select an AnimationPlayer node to create and edit animations." msgstr "" @@ -645,8 +636,9 @@ msgid "Scale Ratio:" msgstr "" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" -msgstr "" +#, fuzzy +msgid "Select Tracks to Copy" +msgstr "NastaviÅ¥ prechody na:" #: editor/animation_track_editor.cpp editor/editor_log.cpp #: editor/editor_properties.cpp @@ -657,6 +649,11 @@ msgstr "" msgid "Copy" msgstr "KopÃrovaÅ¥" +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Select All/None" +msgstr "VÅ¡etky vybrané" + #: editor/animation_track_editor_plugins.cpp msgid "Add Audio Track Clip" msgstr "" @@ -988,7 +985,7 @@ msgid "Resource" msgstr "Prostriedok" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "Cesta" @@ -1454,7 +1451,8 @@ msgstr "" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "Cesta:" @@ -1508,7 +1506,7 @@ msgstr "VytvoriÅ¥ adresár" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "Meno:" @@ -1909,6 +1907,7 @@ msgid "Class:" msgstr "Trieda:" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "" @@ -2923,7 +2922,7 @@ msgstr "" msgid "Expand Bottom Panel" msgstr "" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "" @@ -3168,6 +3167,11 @@ msgstr "" msgid "New Script" msgstr "Popis:" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +#, fuzzy +msgid "Extend Script" +msgstr "Popis:" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "" @@ -3194,14 +3198,6 @@ msgstr "VložiÅ¥" msgid "Convert To %s" msgstr "" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy -msgid "Open Editor" -msgstr "Otvorit prieÄinok" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "" @@ -4001,7 +3997,7 @@ msgstr "" msgid "Subfolder:" msgstr "" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "" @@ -4145,6 +4141,13 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +#, fuzzy +msgid "Open Editor" +msgstr "Otvorit prieÄinok" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp msgid "Open Animation Node" msgstr "" @@ -4496,7 +4499,6 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "" @@ -4670,6 +4672,8 @@ msgid "Current:" msgstr "" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "" @@ -4879,6 +4883,10 @@ msgid "All" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp msgid "Import..." msgstr "" @@ -5172,20 +5180,23 @@ msgid "Ruler Mode" msgstr "Režim Interpolácie" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Toggle snapping." +msgid "Toggle smart snapping." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +msgid "Use Smart Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snapping Options" +msgid "Toggle grid snapping." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Use Grid Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to Grid" +msgid "Snapping Options" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5277,8 +5288,7 @@ msgid "View" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +msgid "Always Show Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5548,6 +5558,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/curve_editor_plugin.cpp +msgid "Right click to add point" +msgstr "" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "" @@ -6194,6 +6208,10 @@ msgid "Grid" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Configure Grid:" msgstr "" @@ -6250,6 +6268,7 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "" @@ -6352,6 +6371,11 @@ msgid "Find Next" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Filter scripts" msgstr "Filter:" @@ -6630,6 +6654,11 @@ msgstr "VÅ¡etky vybrané" msgid "Cut" msgstr "" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "" @@ -6688,10 +6717,6 @@ msgid "Auto Indent" msgstr "" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "" - -#: editor/plugins/script_text_editor.cpp msgid "Find in Files..." msgstr "" @@ -7021,6 +7046,10 @@ msgid "Freelook Speed Modifier" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Slow Modifier" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -7054,6 +7083,10 @@ msgid "Use Local Space" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "" @@ -7287,6 +7320,10 @@ msgid "Simplification: " msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Shrink (Pixels): " +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "" @@ -8106,14 +8143,10 @@ msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy -msgid "Add input +" +msgid "Add Output" msgstr "Signály:" #: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add output +" -msgstr "" - -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Scalar" msgstr "" @@ -8126,6 +8159,10 @@ msgid "Boolean" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sampler" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy msgid "Add input port" msgstr "Signály:" @@ -9002,12 +9039,14 @@ msgstr "" #: editor/project_export.cpp msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp @@ -10008,11 +10047,9 @@ msgid "" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." msgstr "" #: editor/scene_tree_dock.cpp @@ -10089,6 +10126,14 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "" + +#: editor/scene_tree_dock.cpp #, fuzzy msgid "Open Documentation" msgstr "Popis:" @@ -10107,11 +10152,6 @@ msgstr "" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Extend Script" -msgstr "Popis:" - -#: editor/scene_tree_dock.cpp -#, fuzzy msgid "Reparent to New Node" msgstr "VytvoriÅ¥ adresár" @@ -10350,26 +10390,19 @@ msgid "Will load an existing script file." msgstr "Popis:" #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Inherits" -msgstr "" - -#: editor/script_create_dialog.cpp #, fuzzy -msgid "Class Name" +msgid "Class Name:" msgstr "Trieda:" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Template" +msgid "Template:" msgstr "VÅ¡etky vybrané" #: editor/script_create_dialog.cpp -msgid "Built-in Script" -msgstr "" +#, fuzzy +msgid "Built-in Script:" +msgstr "Popis:" #: editor/script_create_dialog.cpp #, fuzzy @@ -11023,6 +11056,11 @@ msgid "Add Function" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Delete input port" +msgstr "VÅ¡etky vybrané" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "" @@ -11032,6 +11070,26 @@ msgid "Add Signal" msgstr "Signály:" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Input Port" +msgstr "Signály:" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Output Port" +msgstr "Signály:" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Input Port" +msgstr "VÅ¡etky vybrané" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Output Port" +msgstr "VÅ¡etky vybrané" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "" @@ -11072,10 +11130,20 @@ msgid "Add Preload Node" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "" @@ -11101,6 +11169,11 @@ msgid "Connect Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Disconnect Nodes" +msgstr "OdpojiÅ¥" + +#: modules/visual_script/visual_script_editor.cpp msgid "Connect Node Data" msgstr "" @@ -11134,6 +11207,27 @@ msgid "Paste VisualScript Nodes" msgstr "VložiÅ¥" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function with a function node." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Create Function" +msgstr "VÅ¡etky vybrané" + +#: modules/visual_script/visual_script_editor.cpp #, fuzzy msgid "Remove Function" msgstr "VÅ¡etky vybrané" @@ -11161,16 +11255,13 @@ msgid "Make Tool:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" -msgstr "" +#, fuzzy +msgid "function_name" +msgstr "Funkcie:" #: modules/visual_script/visual_script_editor.cpp msgid "Select or create a function to edit its graph." @@ -11194,6 +11285,15 @@ msgstr "" #: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Make Function" +msgstr "VÅ¡etky vybrané" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Refresh Graph" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Edit Member" msgstr "Súbor:" @@ -11289,6 +11389,10 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "" @@ -11390,6 +11494,10 @@ msgid "Required icon is not specified in the preset." msgstr "" #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "" @@ -11947,10 +12055,6 @@ msgid "" "texture to some node for display." msgstr "" -#: scene/resources/visual_shader.cpp -msgid "Input" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp #, fuzzy msgid "Invalid source for preview." @@ -12068,9 +12172,6 @@ msgstr "" #~ msgid "Show current scene file." #~ msgstr "VytvoriÅ¥ adresár" -#~ msgid "Set Transitions to:" -#~ msgstr "NastaviÅ¥ prechody na:" - #~ msgid "In" #~ msgstr "V" diff --git a/editor/translations/sl.po b/editor/translations/sl.po index 9d36fee05d..8b9ed3f61a 100644 --- a/editor/translations/sl.po +++ b/editor/translations/sl.po @@ -9,12 +9,14 @@ # Yahara Octanis <yaharao55@gmail.com>, 2018. # Tine Jozelj <tine@tjo.space>, 2018. # Andrej Poženel <andrej.pozenel@outlook.com>, 2019. +# Arnold Marko <arnold.marko@gmail.com>, 2019. +# Alex <alexrixhardson@gmail.com>, 2019. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-08-29 13:35+0000\n" -"Last-Translator: Andrej Poženel <andrej.pozenel@outlook.com>\n" +"PO-Revision-Date: 2019-10-26 03:53+0000\n" +"Last-Translator: Alex <alexrixhardson@gmail.com>\n" "Language-Team: Slovenian <https://hosted.weblate.org/projects/godot-engine/" "godot/sl/>\n" "Language: sl\n" @@ -23,7 +25,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" "%100==4 ? 2 : 3;\n" -"X-Generator: Weblate 3.9-dev\n" +"X-Generator: Weblate 3.9.1-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -34,8 +36,7 @@ msgstr "Neveljavna vrsta argumenta za convert(), uporabite TYPE_* konstanto." #: modules/mono/glue/gd_glue.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Not enough bytes for decoding bytes, or invalid format." -msgstr "" -"Ni dovolj pomnilnika za dekodiranje bajtov, ali pa je neveljaven format." +msgstr "Ni dovolj bajtov za dekodiranje, ali pa format ni ustrezen." #: core/math/expression.cpp msgid "Invalid input %i (not passed) in expression" @@ -50,13 +51,12 @@ msgid "Invalid operands to operator %s, %s and %s." msgstr "Neveljaven operand za operator %s, %s ter %s." #: core/math/expression.cpp -#, fuzzy msgid "Invalid index of type %s for base type %s" -msgstr "Neveljaven indeks lastnosti imena '%s' v vozliÅ¡Äu %s." +msgstr "Neveljaven indeks tipa '%s' za temeljni tip %s" #: core/math/expression.cpp msgid "Invalid named index '%s' for base type %s" -msgstr "" +msgstr "NapaÄno poimenovan indeks '%s' za temeljni tip %s" #: core/math/expression.cpp msgid "Invalid arguments to construct '%s'" @@ -68,32 +68,31 @@ msgstr "Na klic '%s':" #: core/ustring.cpp msgid "B" -msgstr "" +msgstr "B" #: core/ustring.cpp msgid "KiB" -msgstr "" +msgstr "KiB" #: core/ustring.cpp -#, fuzzy msgid "MiB" -msgstr "MeÅ¡aj" +msgstr "MiB" #: core/ustring.cpp msgid "GiB" -msgstr "" +msgstr "GiB" #: core/ustring.cpp msgid "TiB" -msgstr "" +msgstr "TiB" #: core/ustring.cpp msgid "PiB" -msgstr "" +msgstr "PiB" #: core/ustring.cpp msgid "EiB" -msgstr "" +msgstr "EiB" #: editor/animation_bezier_editor.cpp msgid "Free" @@ -316,7 +315,7 @@ msgstr "Prihodnost" #: editor/animation_track_editor.cpp msgid "Nearest" -msgstr "" +msgstr "Najbližji" #: editor/animation_track_editor.cpp editor/plugins/curve_editor_plugin.cpp #: editor/property_editor.cpp @@ -385,6 +384,7 @@ msgstr "Ustvarim %d NOVO sled in vstavim kljuÄe?" #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "Ustvari" @@ -429,6 +429,10 @@ msgid "" "-AudioStreamPlayer2D\n" "-AudioStreamPlayer3D" msgstr "" +"ZvoÄne steze lahko kažejo le na vozliÅ¡Äa tipa:\n" +"- AudioStreamPlayer\n" +"-AudioStreamPlayer2D\n" +"-AudioStreamPlayer3D" #: editor/animation_track_editor.cpp msgid "Animation tracks can only point to AnimationPlayer nodes." @@ -453,7 +457,7 @@ msgstr "" #: editor/animation_track_editor.cpp msgid "Track is not of type Spatial, can't insert key" -msgstr "" +msgstr "Steza ni tipa Prostorska, zato ne morem vstaviti kljuÄa" #: editor/animation_track_editor.cpp #, fuzzy @@ -518,16 +522,6 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "" - -#: editor/animation_track_editor.cpp -#, fuzzy -msgid "Select None" -msgstr "Izberi Gradnik" - #: editor/animation_track_editor.cpp #, fuzzy msgid "Select an AnimationPlayer node to create and edit animations." @@ -671,8 +665,9 @@ msgid "Scale Ratio:" msgstr "Razmerje Obsega:" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" -msgstr "" +#, fuzzy +msgid "Select Tracks to Copy" +msgstr "Izberi Lastnost" #: editor/animation_track_editor.cpp editor/editor_log.cpp #: editor/editor_properties.cpp @@ -683,6 +678,11 @@ msgstr "" msgid "Copy" msgstr "" +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Select All/None" +msgstr "Izberi Gradnik" + #: editor/animation_track_editor_plugins.cpp #, fuzzy msgid "Add Audio Track Clip" @@ -1023,7 +1023,7 @@ msgid "Resource" msgstr "Viri" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "Pot" @@ -1499,7 +1499,8 @@ msgstr "Dodaj SamodejnoNalaganje" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "Pot:" @@ -1554,7 +1555,7 @@ msgstr "Ustvarite Mapo" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "Ime:" @@ -1974,6 +1975,7 @@ msgid "Class:" msgstr "Razred:" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "Dedovanja:" @@ -3074,7 +3076,7 @@ msgstr "Nadzornik" msgid "Expand Bottom Panel" msgstr "RazÅ¡iri vse" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "Izhod" @@ -3316,6 +3318,11 @@ msgstr "" msgid "New Script" msgstr "" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +#, fuzzy +msgid "Extend Script" +msgstr "Zaženi Skripto" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "" @@ -3342,14 +3349,6 @@ msgstr "" msgid "Convert To %s" msgstr "" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy -msgid "Open Editor" -msgstr "Odpri 2D Urejevalnik" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "" @@ -4181,7 +4180,7 @@ msgstr "VtiÄniki" msgid "Subfolder:" msgstr "" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "" @@ -4335,6 +4334,13 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +#, fuzzy +msgid "Open Editor" +msgstr "Odpri 2D Urejevalnik" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp #, fuzzy msgid "Open Animation Node" @@ -4706,7 +4712,6 @@ msgstr "Ime Animacije:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "Napaka!" @@ -4883,6 +4888,8 @@ msgid "Current:" msgstr "Trenutno:" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "Dodaj Vnos" @@ -5098,6 +5105,10 @@ msgid "All" msgstr "Vse" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy msgid "Import..." msgstr "Uvozi" @@ -5414,23 +5425,28 @@ msgstr "NaÄin Obsega (R)" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Toggle snapping." +msgid "Toggle smart snapping." msgstr "Preklopi pripenjanje" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +#, fuzzy +msgid "Use Smart Snap" msgstr "Uporabi Pripenjanje" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Snapping Options" -msgstr "Možnosti pripenjanja" +msgid "Toggle grid snapping." +msgstr "Preklopi pripenjanje" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Snap to Grid" -msgstr "Pripni na mrežo" +msgid "Use Grid Snap" +msgstr "Uporabi Pripenjanje" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Snapping Options" +msgstr "Možnosti pripenjanja" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Rotation Snap" @@ -5528,8 +5544,7 @@ msgid "View" msgstr "Pogled" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +msgid "Always Show Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5800,6 +5815,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/curve_editor_plugin.cpp +msgid "Right click to add point" +msgstr "" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "" @@ -6444,6 +6463,10 @@ msgid "Grid" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy msgid "Configure Grid:" msgstr "Nastavi Zaskok" @@ -6505,6 +6528,7 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "" @@ -6614,6 +6638,11 @@ msgid "Find Next" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Filter scripts" msgstr "Lastnosti objekta." @@ -6896,6 +6925,11 @@ msgstr "IzbriÅ¡i toÄke" msgid "Cut" msgstr "" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "IzbriÅ¡i Vrstico" @@ -6954,10 +6988,6 @@ msgid "Auto Indent" msgstr "" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "" - -#: editor/plugins/script_text_editor.cpp #, fuzzy msgid "Find in Files..." msgstr "Filtriraj datoteke..." @@ -7292,6 +7322,10 @@ msgid "Freelook Speed Modifier" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Slow Modifier" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -7330,6 +7364,10 @@ msgid "Use Local Space" msgstr "Lokalno prostorski naÄin (%s)" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "Uporabi Pripenjanje" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "" @@ -7566,6 +7604,10 @@ msgid "Simplification: " msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Shrink (Pixels): " +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "" @@ -8399,12 +8441,7 @@ msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy -msgid "Add input +" -msgstr "Dodaj Vnos" - -#: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy -msgid "Add output +" +msgid "Add Output" msgstr "Dodaj Vnos" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -8422,6 +8459,10 @@ msgid "Boolean" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sampler" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy msgid "Add input port" msgstr "Dodaj Vnos" @@ -9307,12 +9348,14 @@ msgstr "" #: editor/project_export.cpp msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp @@ -10326,11 +10369,9 @@ msgid "" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." msgstr "" #: editor/scene_tree_dock.cpp @@ -10409,6 +10450,14 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "" + +#: editor/scene_tree_dock.cpp #, fuzzy msgid "Open Documentation" msgstr "Odpri Nedavne" @@ -10428,11 +10477,6 @@ msgstr "" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Extend Script" -msgstr "Zaženi Skripto" - -#: editor/scene_tree_dock.cpp -#, fuzzy msgid "Reparent to New Node" msgstr "Ustvari Nov %s" @@ -10680,24 +10724,19 @@ msgid "Will load an existing script file." msgstr "Naloži obstojeÄo Postavitev Vodila." #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Inherits" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Class Name" -msgstr "" +#, fuzzy +msgid "Class Name:" +msgstr "Razred:" #: editor/script_create_dialog.cpp -msgid "Template" +#, fuzzy +msgid "Template:" msgstr "Predloga" #: editor/script_create_dialog.cpp -msgid "Built-in Script" -msgstr "" +#, fuzzy +msgid "Built-in Script:" +msgstr "Zaženi Skripto" #: editor/script_create_dialog.cpp msgid "Attach Node Script" @@ -11362,6 +11401,11 @@ msgid "Add Function" msgstr "Dodaj Funkcijo" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Delete input port" +msgstr "Odstrani toÄko" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "Dodaj Spremenljivko" @@ -11370,6 +11414,26 @@ msgid "Add Signal" msgstr "Dodaj Signal" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Input Port" +msgstr "Dodaj Vnos" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Output Port" +msgstr "Dodaj Vnos" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Input Port" +msgstr "Odstrani toÄko" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Output Port" +msgstr "Odstrani toÄko" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "" @@ -11410,10 +11474,20 @@ msgid "Add Preload Node" msgstr "Dodaj prednaloženo vozliÅ¡Äe" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "Dodaj Gradnik(e) iz Drevesa" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "Dodaj Getter Lastnost" @@ -11439,6 +11513,11 @@ msgstr "" #: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Disconnect Nodes" +msgstr "Nepovezano" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Connect Node Data" msgstr "Poveži se z Gradnikom:" @@ -11473,6 +11552,27 @@ msgid "Paste VisualScript Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function with a function node." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Create Function" +msgstr "Preimenuj Funkcijo" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "Odstrani Funkcijo" @@ -11497,16 +11597,13 @@ msgid "Make Tool:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "Osnovni Tip:" - -#: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "ÄŒlani:" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" -msgstr "Na voljo Nodes:" +#, fuzzy +msgid "function_name" +msgstr "Funkcije:" #: modules/visual_script/visual_script_editor.cpp #, fuzzy @@ -11531,6 +11628,16 @@ msgstr "" #: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Make Function" +msgstr "Preimenuj Funkcijo" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Refresh Graph" +msgstr "Osveži" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Edit Member" msgstr "ÄŒlani" @@ -11628,6 +11735,10 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "Izberite napravo s seznama" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "" @@ -11730,6 +11841,10 @@ msgid "Required icon is not specified in the preset." msgstr "" #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "" @@ -12303,11 +12418,6 @@ msgid "" "texture to some node for display." msgstr "" -#: scene/resources/visual_shader.cpp -#, fuzzy -msgid "Input" -msgstr "Dodaj Vnos" - #: scene/resources/visual_shader_nodes.cpp #, fuzzy msgid "Invalid source for preview." @@ -12336,7 +12446,25 @@ msgstr "" #: servers/visual/shader_language.cpp msgid "Constants cannot be modified." -msgstr "" +msgstr "Konstante ni možno spreminjati." + +#, fuzzy +#~ msgid "Snap to Grid" +#~ msgstr "Pripni na mrežo" + +#, fuzzy +#~ msgid "Add input +" +#~ msgstr "Dodaj Vnos" + +#~ msgid "Base Type:" +#~ msgstr "Osnovni Tip:" + +#~ msgid "Available Nodes:" +#~ msgstr "Na voljo Nodes:" + +#, fuzzy +#~ msgid "Input" +#~ msgstr "Dodaj Vnos" #, fuzzy #~ msgid "Methods:" @@ -12460,9 +12588,6 @@ msgstr "" #~ msgid "Go to parent folder" #~ msgstr "Pojdi v nadrejeno mapo" -#~ msgid "Select device from the list" -#~ msgstr "Izberite napravo s seznama" - #~ msgid "Open Scene(s)" #~ msgstr "Odpri Prizor(e)" diff --git a/editor/translations/sq.po b/editor/translations/sq.po index 2de6fb6772..dbea1057fc 100644 --- a/editor/translations/sq.po +++ b/editor/translations/sq.po @@ -354,6 +354,7 @@ msgstr "" #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "Krijo" @@ -479,16 +480,6 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "" - -#: editor/animation_track_editor.cpp -#, fuzzy -msgid "Select None" -msgstr "Zgjidh" - #: editor/animation_track_editor.cpp msgid "Select an AnimationPlayer node to create and edit animations." msgstr "" @@ -623,7 +614,7 @@ msgid "Scale Ratio:" msgstr "" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" +msgid "Select Tracks to Copy" msgstr "" #: editor/animation_track_editor.cpp editor/editor_log.cpp @@ -635,6 +626,11 @@ msgstr "" msgid "Copy" msgstr "" +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Select All/None" +msgstr "Zgjidh" + #: editor/animation_track_editor_plugins.cpp msgid "Add Audio Track Clip" msgstr "Shto Klip Audio" @@ -966,7 +962,7 @@ msgid "Resource" msgstr "Resursi" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "Rrugë" @@ -1440,7 +1436,8 @@ msgstr "Shto Autoload" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "Rruga:" @@ -1495,7 +1492,7 @@ msgstr "Krijo një Folder" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "Emri:" @@ -1912,6 +1909,7 @@ msgid "Class:" msgstr "Klasa:" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "Trashëgon:" @@ -3000,7 +2998,7 @@ msgstr "Inspektori" msgid "Expand Bottom Panel" msgstr "Zgjero Panelin Fundor" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "Përfundimi" @@ -3248,6 +3246,10 @@ msgstr "Zgjidh një 'Viewport'" msgid "New Script" msgstr "Shkrim i Ri" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +msgid "Extend Script" +msgstr "" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "%s i Ri" @@ -3274,13 +3276,6 @@ msgstr "Ngjit" msgid "Convert To %s" msgstr "Konverto në %s" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Open Editor" -msgstr "Hap Editorin" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "Nyja e zgjedhur nuk është një 'Viewport'!" @@ -4092,7 +4087,7 @@ msgstr "Emri i Shtojcës:" msgid "Subfolder:" msgstr "Subfolderi:" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "Gjuha:" @@ -4227,6 +4222,12 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Open Editor" +msgstr "Hap Editorin" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp msgid "Open Animation Node" msgstr "" @@ -4569,7 +4570,6 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "" @@ -4737,6 +4737,8 @@ msgid "Current:" msgstr "" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "" @@ -4947,6 +4949,10 @@ msgid "All" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy msgid "Import..." msgstr "Importo" @@ -5237,20 +5243,23 @@ msgid "Ruler Mode" msgstr "Ndrysho Mënyrën" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Toggle snapping." +msgid "Toggle smart snapping." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +msgid "Use Smart Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snapping Options" +msgid "Toggle grid snapping." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Use Grid Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to Grid" +msgid "Snapping Options" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5340,8 +5349,7 @@ msgid "View" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +msgid "Always Show Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5608,6 +5616,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/curve_editor_plugin.cpp +msgid "Right click to add point" +msgstr "" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "" @@ -6239,6 +6251,10 @@ msgid "Grid" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Configure Grid:" msgstr "" @@ -6295,6 +6311,7 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "" @@ -6395,6 +6412,11 @@ msgid "Find Next" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Filter scripts" msgstr "Filtro vetitë." @@ -6668,6 +6690,11 @@ msgstr "Krijo pika." msgid "Cut" msgstr "" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "" @@ -6726,10 +6753,6 @@ msgid "Auto Indent" msgstr "" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "" - -#: editor/plugins/script_text_editor.cpp msgid "Find in Files..." msgstr "" @@ -7054,6 +7077,10 @@ msgid "Freelook Speed Modifier" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Slow Modifier" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -7087,6 +7114,10 @@ msgid "Use Local Space" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "" @@ -7320,6 +7351,10 @@ msgid "Simplification: " msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Shrink (Pixels): " +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "" @@ -8097,12 +8132,9 @@ msgid "(GLES3 only)" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add input +" -msgstr "" - -#: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add output +" -msgstr "" +#, fuzzy +msgid "Add Output" +msgstr "Përfundimi" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Scalar" @@ -8118,6 +8150,10 @@ msgid "Boolean" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sampler" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy msgid "Add input port" msgstr "Shto te të preferuarat" @@ -8985,12 +9021,14 @@ msgstr "" #: editor/project_export.cpp msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp @@ -9982,11 +10020,9 @@ msgid "" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." msgstr "" #: editor/scene_tree_dock.cpp @@ -10061,6 +10097,14 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "" + +#: editor/scene_tree_dock.cpp #, fuzzy msgid "Open Documentation" msgstr "Hap të Fundit" @@ -10079,10 +10123,6 @@ msgid "Change Type" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Extend Script" -msgstr "" - -#: editor/scene_tree_dock.cpp #, fuzzy msgid "Reparent to New Node" msgstr "Krijo një Folder" @@ -10322,24 +10362,19 @@ msgid "Will load an existing script file." msgstr "" #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Inherits" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Class Name" -msgstr "" +#, fuzzy +msgid "Class Name:" +msgstr "Klasa:" #: editor/script_create_dialog.cpp -msgid "Template" -msgstr "" +#, fuzzy +msgid "Template:" +msgstr "Hiq Shabllonin" #: editor/script_create_dialog.cpp -msgid "Built-in Script" -msgstr "" +#, fuzzy +msgid "Built-in Script:" +msgstr "Hap Editorin e Shkrimit" #: editor/script_create_dialog.cpp msgid "Attach Node Script" @@ -10987,6 +11022,11 @@ msgid "Add Function" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Delete input port" +msgstr "Hiq Autoload-in" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "" @@ -10995,6 +11035,26 @@ msgid "Add Signal" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Input Port" +msgstr "Shto te të preferuarat" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Output Port" +msgstr "Shto te të preferuarat" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Input Port" +msgstr "Hiq Autoload-in" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Output Port" +msgstr "Hiq nga të preferuarat" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "" @@ -11035,10 +11095,20 @@ msgid "Add Preload Node" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "" @@ -11063,6 +11133,11 @@ msgid "Connect Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Disconnect Nodes" +msgstr "U Shkëput" + +#: modules/visual_script/visual_script_editor.cpp msgid "Connect Node Data" msgstr "" @@ -11095,6 +11170,27 @@ msgid "Paste VisualScript Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function with a function node." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Create Function" +msgstr "Krijo një Shtojcë" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "" @@ -11119,16 +11215,13 @@ msgid "Make Tool:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" -msgstr "" +#, fuzzy +msgid "function_name" +msgstr "Funksionet:" #: modules/visual_script/visual_script_editor.cpp msgid "Select or create a function to edit its graph." @@ -11151,6 +11244,16 @@ msgid "Cut Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Make Function" +msgstr "Funksionet:" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Refresh Graph" +msgstr "Rifresko" + +#: modules/visual_script/visual_script_editor.cpp msgid "Edit Member" msgstr "" @@ -11245,6 +11348,10 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "Zgjidh paisjen nga lista" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "" @@ -11344,6 +11451,10 @@ msgid "Required icon is not specified in the preset." msgstr "" #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "" @@ -11881,10 +11992,6 @@ msgid "" "texture to some node for display." msgstr "" -#: scene/resources/visual_shader.cpp -msgid "Input" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for preview." msgstr "" @@ -11968,9 +12075,6 @@ msgstr "" #~ msgid "Delete selected files?" #~ msgstr "Fshi skedarët e zgjedhur?" -#~ msgid "Select device from the list" -#~ msgstr "Zgjidh paisjen nga lista" - #~ msgid "Open Scene(s)" #~ msgstr "Hap Skenat" diff --git a/editor/translations/sr_Cyrl.po b/editor/translations/sr_Cyrl.po index 748f8a860b..fd8f5d95b3 100644 --- a/editor/translations/sr_Cyrl.po +++ b/editor/translations/sr_Cyrl.po @@ -385,6 +385,7 @@ msgstr "Ðаправите %d нових трака и убаците кључе #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "Ðаправи" @@ -518,16 +519,6 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "Одабери Ñве" - -#: editor/animation_track_editor.cpp -#, fuzzy -msgid "Select None" -msgstr "Одабери режим" - #: editor/animation_track_editor.cpp #, fuzzy msgid "Select an AnimationPlayer node to create and edit animations." @@ -670,8 +661,9 @@ msgid "Scale Ratio:" msgstr "Размера Ñкале:" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" -msgstr "" +#, fuzzy +msgid "Select Tracks to Copy" +msgstr "ПоÑтави прелаз на:" #: editor/animation_track_editor.cpp editor/editor_log.cpp #: editor/editor_properties.cpp @@ -682,6 +674,11 @@ msgstr "" msgid "Copy" msgstr "Копирај" +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Select All/None" +msgstr "Одабери режим" + #: editor/animation_track_editor_plugins.cpp #, fuzzy msgid "Add Audio Track Clip" @@ -1026,7 +1023,7 @@ msgid "Resource" msgstr "РеÑурÑ" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "Пут" @@ -1503,7 +1500,8 @@ msgstr "Додај аутоматÑко учитавање" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "Пут:" @@ -1559,7 +1557,7 @@ msgstr "Ðаправи директоријум" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "Име:" @@ -1981,6 +1979,7 @@ msgid "Class:" msgstr "КлаÑа:" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "ÐаÑлеђује:" @@ -3086,7 +3085,7 @@ msgstr "ИнÑпектор" msgid "Expand Bottom Panel" msgstr "Прошири Ñве" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "Излаз" @@ -3332,6 +3331,11 @@ msgstr "" msgid "New Script" msgstr "" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +#, fuzzy +msgid "Extend Script" +msgstr "Покрени Ñкриптицу" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "" @@ -3358,14 +3362,6 @@ msgstr "Ðалепи" msgid "Convert To %s" msgstr "" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy -msgid "Open Editor" -msgstr "Отвори 2Д уредник" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "" @@ -4212,7 +4208,7 @@ msgstr "Прикључци" msgid "Subfolder:" msgstr "" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "" @@ -4366,6 +4362,13 @@ msgstr "Помери тачку" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +#, fuzzy +msgid "Open Editor" +msgstr "Отвори 2Д уредник" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp #, fuzzy msgid "Open Animation Node" @@ -4734,7 +4737,6 @@ msgstr "Име анимације:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "Грешка!" @@ -4912,6 +4914,8 @@ msgid "Current:" msgstr "Тренутно:" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "Додај улаз" @@ -5126,6 +5130,10 @@ msgid "All" msgstr "Ñви" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy msgid "Import..." msgstr "Увоз" @@ -5435,23 +5443,28 @@ msgstr "Режим Ñкалирања (R)" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Toggle snapping." +msgid "Toggle smart snapping." msgstr "Укљ./ИÑкљ. лепљења" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +#, fuzzy +msgid "Use Smart Snap" msgstr "КориÑти лепљење" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Snapping Options" -msgstr "ПоÑтавке залепљавања" +msgid "Toggle grid snapping." +msgstr "Укљ./ИÑкљ. лепљења" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Snap to Grid" -msgstr "Залепи за мрежу" +msgid "Use Grid Snap" +msgstr "Лепљење по мрежи" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Snapping Options" +msgstr "ПоÑтавке залепљавања" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Rotation Snap" @@ -5549,8 +5562,8 @@ msgid "View" msgstr "Поглед" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +#, fuzzy +msgid "Always Show Grid" msgstr "Покажи мрежу" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5828,6 +5841,11 @@ msgstr "Линеарна тангента криве" msgid "Hold Shift to edit tangents individually" msgstr "Држи Shift за уређивање појединачних тангенти" +#: editor/plugins/curve_editor_plugin.cpp +#, fuzzy +msgid "Right click to add point" +msgstr "ДеÑни клик: обриши тачку" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "ИÑпечи Ñонде глобалног оÑветљења (GI)" @@ -6483,6 +6501,10 @@ msgid "Grid" msgstr "Мрежа" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "Покажи мрежу" + +#: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy msgid "Configure Grid:" msgstr "Конфигурација лепљења" @@ -6545,6 +6567,7 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "Тип:" @@ -6659,6 +6682,11 @@ msgid "Find Next" msgstr "Тражи Ñледећи" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "Ðађи претходни" + +#: editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Filter scripts" msgstr "ПоÑтавке објекта." @@ -6948,6 +6976,11 @@ msgstr "Обриши тачке" msgid "Cut" msgstr "ИÑеци" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "Одабери Ñве" + #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "Обриши линију" @@ -7009,10 +7042,6 @@ msgid "Auto Indent" msgstr "ÐутоматÑко увлачење" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "Ðађи претходни" - -#: editor/plugins/script_text_editor.cpp #, fuzzy msgid "Find in Files..." msgstr "Филтрирај датотеке..." @@ -7355,6 +7384,11 @@ msgid "Freelook Speed Modifier" msgstr "Брзина Ñлободног погледа" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Freelook Slow Modifier" +msgstr "Брзина Ñлободног погледа" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -7394,6 +7428,10 @@ msgid "Use Local Space" msgstr "Режим Ñкалирања (R)" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "КориÑти лепљење" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "Поглед одоздо" @@ -7634,6 +7672,10 @@ msgid "Simplification: " msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Shrink (Pixels): " +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "" @@ -8489,12 +8531,7 @@ msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy -msgid "Add input +" -msgstr "Додај улаз" - -#: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy -msgid "Add output +" +msgid "Add Output" msgstr "Додај улаз" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -8512,6 +8549,10 @@ msgid "Boolean" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sampler" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy msgid "Add input port" msgstr "Додај улаз" @@ -9416,13 +9457,16 @@ msgstr "РеÑурÑи за извоз:" #: editor/project_export.cpp #, fuzzy msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" "Филтери за извоз нереÑурÑких датотека (зарез за одвајање, пр. *.json, *.txt)" #: editor/project_export.cpp +#, fuzzy msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" "Филтери за иÑкључивање датотека из пројекта (зарез за одвајање, пр. *.json, " "*.txt)" @@ -10445,11 +10489,9 @@ msgid "" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." msgstr "" #: editor/scene_tree_dock.cpp @@ -10531,6 +10573,14 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "" + +#: editor/scene_tree_dock.cpp #, fuzzy msgid "Open Documentation" msgstr "Отвори Godot онлајн документацију" @@ -10550,11 +10600,6 @@ msgstr "" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Extend Script" -msgstr "Покрени Ñкриптицу" - -#: editor/scene_tree_dock.cpp -#, fuzzy msgid "Reparent to New Node" msgstr "Ðаправи нов" @@ -10801,24 +10846,19 @@ msgid "Will load an existing script file." msgstr "Учитај поÑтојећи Ð±Ð°Ñ Ñ€Ð°Ñпоред." #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Inherits" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Class Name" -msgstr "" +#, fuzzy +msgid "Class Name:" +msgstr "КлаÑа:" #: editor/script_create_dialog.cpp -msgid "Template" -msgstr "" +#, fuzzy +msgid "Template:" +msgstr "Обриши шаблон" #: editor/script_create_dialog.cpp -msgid "Built-in Script" -msgstr "" +#, fuzzy +msgid "Built-in Script:" +msgstr "Покрени Ñкриптицу" #: editor/script_create_dialog.cpp msgid "Attach Node Script" @@ -11485,6 +11525,11 @@ msgid "Add Function" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Delete input port" +msgstr "Обриши тачку" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "" @@ -11493,6 +11538,26 @@ msgid "Add Signal" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Input Port" +msgstr "Додај улаз" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Output Port" +msgstr "Додај улаз" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Input Port" +msgstr "Обриши тачку" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Output Port" +msgstr "Обриши тачку" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "" @@ -11533,10 +11598,20 @@ msgid "Add Preload Node" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "" @@ -11562,6 +11637,11 @@ msgstr "" #: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Disconnect Nodes" +msgstr "ИÑкључи чворове графа" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Connect Node Data" msgstr "Повежи Ñа чвором:" @@ -11596,6 +11676,27 @@ msgid "Paste VisualScript Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function with a function node." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Create Function" +msgstr "Ðаправи претплату" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "" @@ -11621,15 +11722,11 @@ msgid "Make Tool:" msgstr "Ðаправи коÑти" #: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "Чланови:" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" +msgid "function_name" msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -11654,6 +11751,16 @@ msgstr "" #: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Make Function" +msgstr "Промени векторÑку функцију" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Refresh Graph" +msgstr "ОÑвежи" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Edit Member" msgstr "Чланови" @@ -11749,6 +11856,10 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "Одабери уређај Ñа лиÑте" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "" @@ -11850,6 +11961,10 @@ msgid "Required icon is not specified in the preset." msgstr "" #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "" @@ -12402,11 +12517,6 @@ msgid "" "texture to some node for display." msgstr "" -#: scene/resources/visual_shader.cpp -#, fuzzy -msgid "Input" -msgstr "Додај улаз" - #: scene/resources/visual_shader_nodes.cpp #, fuzzy msgid "Invalid source for preview." @@ -12439,6 +12549,18 @@ msgid "Constants cannot be modified." msgstr "" #, fuzzy +#~ msgid "Snap to Grid" +#~ msgstr "Залепи за мрежу" + +#, fuzzy +#~ msgid "Add input +" +#~ msgstr "Додај улаз" + +#, fuzzy +#~ msgid "Input" +#~ msgstr "Додај улаз" + +#, fuzzy #~ msgid "Methods:" #~ msgstr "Методе" @@ -12605,9 +12727,6 @@ msgstr "" #~ msgid "Go to parent folder" #~ msgstr "Иди у родитељÑки директоријум" -#~ msgid "Select device from the list" -#~ msgstr "Одабери уређај Ñа лиÑте" - #, fuzzy #~ msgid "Open Scene(s)" #~ msgstr "Отвори Ñцену" @@ -12816,9 +12935,6 @@ msgstr "" #~ msgid "Toggle Rot Only" #~ msgstr "Само ротација" -#~ msgid "Change Vec Function" -#~ msgstr "Промени векторÑку функцију" - #~ msgid "Change RGB Uniform" #~ msgstr "Промени RGB униформу (uniform)" @@ -12849,9 +12965,6 @@ msgstr "" #~ msgid "Connect Graph Nodes" #~ msgstr "Повежи чворове графа" -#~ msgid "Disconnect Graph Nodes" -#~ msgstr "ИÑкључи чворове графа" - #~ msgid "Remove Shader Graph Node" #~ msgstr "Обриши чвор графа шејдера" @@ -12873,9 +12986,6 @@ msgstr "" #~ msgid "Move Anim Track Down" #~ msgstr "Помери траку доле" -#~ msgid "Set Transitions to:" -#~ msgstr "ПоÑтави прелаз на:" - #~ msgid "Anim Track Rename" #~ msgstr "Измени име анимације" @@ -13067,9 +13177,6 @@ msgstr "" #~ msgid "Move Add Key" #~ msgstr "Помери кључ" -#~ msgid "Create Subscription" -#~ msgstr "Ðаправи претплату" - #~ msgid "List:" #~ msgstr "ЛиÑта:" diff --git a/editor/translations/sr_Latn.po b/editor/translations/sr_Latn.po index 6ba0aef967..5a1d545141 100644 --- a/editor/translations/sr_Latn.po +++ b/editor/translations/sr_Latn.po @@ -368,6 +368,7 @@ msgstr "Napravi %d novih kanala i dodaj kljuÄeve?" #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "Napravi" @@ -497,16 +498,6 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "" - -#: editor/animation_track_editor.cpp -#, fuzzy -msgid "Select None" -msgstr "Uduplaj Selekciju" - #: editor/animation_track_editor.cpp msgid "Select an AnimationPlayer node to create and edit animations." msgstr "" @@ -644,8 +635,9 @@ msgid "Scale Ratio:" msgstr "" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" -msgstr "" +#, fuzzy +msgid "Select Tracks to Copy" +msgstr "Postavi tranzicije na:" #: editor/animation_track_editor.cpp editor/editor_log.cpp #: editor/editor_properties.cpp @@ -656,6 +648,11 @@ msgstr "" msgid "Copy" msgstr "" +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Select All/None" +msgstr "Uduplaj Selekciju" + #: editor/animation_track_editor_plugins.cpp #, fuzzy msgid "Add Audio Track Clip" @@ -974,7 +971,7 @@ msgid "Resource" msgstr "" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "" @@ -1429,7 +1426,8 @@ msgstr "" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "" @@ -1483,7 +1481,7 @@ msgstr "" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "" @@ -1870,6 +1868,7 @@ msgid "Class:" msgstr "" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "" @@ -2865,7 +2864,7 @@ msgstr "" msgid "Expand Bottom Panel" msgstr "" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "" @@ -3102,6 +3101,10 @@ msgstr "" msgid "New Script" msgstr "" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +msgid "Extend Script" +msgstr "" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "" @@ -3128,13 +3131,6 @@ msgstr "" msgid "Convert To %s" msgstr "" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Open Editor" -msgstr "" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "" @@ -3909,7 +3905,7 @@ msgstr "" msgid "Subfolder:" msgstr "" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "" @@ -4048,6 +4044,12 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Open Editor" +msgstr "" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp #, fuzzy msgid "Open Animation Node" @@ -4394,7 +4396,6 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "" @@ -4566,6 +4567,8 @@ msgid "Current:" msgstr "" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "" @@ -4771,6 +4774,10 @@ msgid "All" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp msgid "Import..." msgstr "" @@ -5056,20 +5063,23 @@ msgid "Ruler Mode" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Toggle snapping." +msgid "Toggle smart snapping." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +msgid "Use Smart Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snapping Options" +msgid "Toggle grid snapping." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to Grid" +msgid "Use Grid Snap" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snapping Options" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5159,8 +5169,7 @@ msgid "View" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +msgid "Always Show Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5427,6 +5436,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/curve_editor_plugin.cpp +msgid "Right click to add point" +msgstr "" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "" @@ -6062,6 +6075,10 @@ msgid "Grid" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Configure Grid:" msgstr "" @@ -6118,6 +6135,7 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "" @@ -6216,6 +6234,11 @@ msgid "Find Next" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Filter scripts" msgstr "" @@ -6483,6 +6506,11 @@ msgstr "Napravi" msgid "Cut" msgstr "" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "" @@ -6541,10 +6569,6 @@ msgid "Auto Indent" msgstr "" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "" - -#: editor/plugins/script_text_editor.cpp msgid "Find in Files..." msgstr "" @@ -6868,6 +6892,10 @@ msgid "Freelook Speed Modifier" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Slow Modifier" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -6901,6 +6929,10 @@ msgid "Use Local Space" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "" @@ -7133,6 +7165,10 @@ msgid "Simplification: " msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Shrink (Pixels): " +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "" @@ -7926,11 +7962,7 @@ msgid "(GLES3 only)" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add input +" -msgstr "" - -#: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add output +" +msgid "Add Output" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -7946,6 +7978,10 @@ msgid "Boolean" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sampler" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add input port" msgstr "" @@ -8814,12 +8850,14 @@ msgstr "" #: editor/project_export.cpp msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp @@ -9807,11 +9845,9 @@ msgid "" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." msgstr "" #: editor/scene_tree_dock.cpp @@ -9886,6 +9922,14 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "" + +#: editor/scene_tree_dock.cpp msgid "Open Documentation" msgstr "" @@ -9902,10 +9946,6 @@ msgid "Change Type" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Extend Script" -msgstr "" - -#: editor/scene_tree_dock.cpp #, fuzzy msgid "Reparent to New Node" msgstr "Napravi" @@ -10135,23 +10175,15 @@ msgid "Will load an existing script file." msgstr "" #: editor/script_create_dialog.cpp -msgid "Language" +msgid "Class Name:" msgstr "" #: editor/script_create_dialog.cpp -msgid "Inherits" +msgid "Template:" msgstr "" #: editor/script_create_dialog.cpp -msgid "Class Name" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Template" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Built-in Script" +msgid "Built-in Script:" msgstr "" #: editor/script_create_dialog.cpp @@ -10793,6 +10825,11 @@ msgid "Add Function" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Delete input port" +msgstr "ObriÅ¡i Selekciju" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "" @@ -10801,6 +10838,26 @@ msgid "Add Signal" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Input Port" +msgstr "Optimizuj Animaciju" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Output Port" +msgstr "ObriÅ¡i Selekciju" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Input Port" +msgstr "ObriÅ¡i Selekciju" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Output Port" +msgstr "ObriÅ¡i Selekciju" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "" @@ -10841,10 +10898,20 @@ msgid "Add Preload Node" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "" @@ -10869,6 +10936,11 @@ msgid "Connect Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Disconnect Nodes" +msgstr "Animacija Uduplaj KljuÄeve" + +#: modules/visual_script/visual_script_editor.cpp msgid "Connect Node Data" msgstr "" @@ -10901,6 +10973,27 @@ msgid "Paste VisualScript Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function with a function node." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Create Function" +msgstr "Napravi" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "" @@ -10925,16 +11018,13 @@ msgid "Make Tool:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" -msgstr "" +#, fuzzy +msgid "function_name" +msgstr "Funkcije:" #: modules/visual_script/visual_script_editor.cpp msgid "Select or create a function to edit its graph." @@ -10957,6 +11047,15 @@ msgid "Cut Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Make Function" +msgstr "Funkcije:" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Refresh Graph" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Edit Member" msgstr "" @@ -11051,6 +11150,10 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "" @@ -11150,6 +11253,10 @@ msgid "Required icon is not specified in the preset." msgstr "" #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "" @@ -11687,10 +11794,6 @@ msgid "" "texture to some node for display." msgstr "" -#: scene/resources/visual_shader.cpp -msgid "Input" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for preview." msgstr "" @@ -11725,9 +11828,6 @@ msgstr "" #~ msgid "Move Anim Track Down" #~ msgstr "Pomjeri Kanal Animacije Dole" -#~ msgid "Set Transitions to:" -#~ msgstr "Postavi tranzicije na:" - #~ msgid "Anim Track Change Interpolation" #~ msgstr "Animacija Promjeni Interpolaciju Kanala" diff --git a/editor/translations/sv.po b/editor/translations/sv.po index e59576d365..e62eadd859 100644 --- a/editor/translations/sv.po +++ b/editor/translations/sv.po @@ -11,12 +11,13 @@ # Daniel K <danielkimblad@hotmail.com>, 2018. # Toiya <elviraa98@gmail.com>, 2019. # Fredrik Welin <figgemail@gmail.com>, 2019. +# Mattias Münster <mattiasmun@gmail.com>, 2019. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-09-07 13:51+0000\n" -"Last-Translator: Fredrik Welin <figgemail@gmail.com>\n" +"PO-Revision-Date: 2019-10-22 02:53+0000\n" +"Last-Translator: Mattias Münster <mattiasmun@gmail.com>\n" "Language-Team: Swedish <https://hosted.weblate.org/projects/godot-engine/" "godot/sv/>\n" "Language: sv\n" @@ -24,7 +25,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 3.9-dev\n" +"X-Generator: Weblate 3.9.1-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -297,9 +298,8 @@ msgid "Discrete" msgstr "Diskret" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Trigger" -msgstr "Trigger" +msgstr "Utlös" #: editor/animation_track_editor.cpp msgid "Capture" @@ -340,7 +340,6 @@ msgid "Delete Key(s)" msgstr "Ta bort Nycklar" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Change Animation Update Mode" msgstr "Ändra Animationens Uppdateringsläge" @@ -374,6 +373,7 @@ msgstr "Skapa %d NYA spÃ¥r och infoga nycklar?" #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "Skapa" @@ -508,17 +508,6 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -#, fuzzy -msgid "Select All" -msgstr "Välj Alla" - -#: editor/animation_track_editor.cpp -#, fuzzy -msgid "Select None" -msgstr "Välj Node" - #: editor/animation_track_editor.cpp #, fuzzy msgid "Select an AnimationPlayer node to create and edit animations." @@ -582,7 +571,6 @@ msgid "Duplicate Selection" msgstr "Duplicera urval" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Duplicate Transposed" msgstr "Duplicera Transponerade" @@ -606,7 +594,6 @@ msgid "Optimize Animation" msgstr "Optimera Animation" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Clean-Up Animation" msgstr "Städa upp Animation" @@ -623,17 +610,14 @@ msgid "Anim. Optimizer" msgstr "Anim. Optimerare" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Max. Linear Error:" msgstr "Max. Linjärt fel:" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Max. Angular Error:" msgstr "Max. Vinkel-fel:" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Max Optimizable Angle:" msgstr "Max Optimerbar vinkel:" @@ -646,33 +630,29 @@ msgid "Remove invalid keys" msgstr "Ta bort ogiltiga nycklar" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Remove unresolved and empty tracks" msgstr "Ta bort olösta och tomma spÃ¥r" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Clean-up all animations" msgstr "Städa upp alla animationer" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Clean-Up Animation(s) (NO UNDO!)" msgstr "Städa upp Animation(er) (GÃ…R INTE Ã…NGRA!)" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Clean-Up" msgstr "Städa upp" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Scale Ratio:" msgstr "Skalnings förhÃ¥llande:" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" -msgstr "" +#, fuzzy +msgid "Select Tracks to Copy" +msgstr "Ange övergÃ¥ngar:" #: editor/animation_track_editor.cpp editor/editor_log.cpp #: editor/editor_properties.cpp @@ -683,6 +663,11 @@ msgstr "" msgid "Copy" msgstr "Kopiera" +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Select All/None" +msgstr "Välj Node" + #: editor/animation_track_editor_plugins.cpp #, fuzzy msgid "Add Audio Track Clip" @@ -697,17 +682,14 @@ msgid "Change Audio Track Clip End Offset" msgstr "" #: editor/array_property_edit.cpp -#, fuzzy msgid "Resize Array" msgstr "Ändra storlek pÃ¥ Array" #: editor/array_property_edit.cpp -#, fuzzy msgid "Change Array Value Type" msgstr "Ändra Arrays Värdetyp" #: editor/array_property_edit.cpp -#, fuzzy msgid "Change Array Value" msgstr "Ändra Arrays Värde" @@ -733,7 +715,6 @@ msgid "%d matches." msgstr "Inga matchningar" #: editor/code_editor.cpp editor/find_in_files.cpp -#, fuzzy msgid "Match Case" msgstr "Matcha gemener/versaler" @@ -750,7 +731,6 @@ msgid "Replace All" msgstr "Ersätt Alla" #: editor/code_editor.cpp -#, fuzzy msgid "Selection Only" msgstr "Endast Urval" @@ -835,12 +815,10 @@ msgid "Remove" msgstr "Ta bort" #: editor/connections_dialog.cpp -#, fuzzy msgid "Add Extra Call Argument:" msgstr "Lägg till extra Call Argument:" #: editor/connections_dialog.cpp -#, fuzzy msgid "Extra Call Arguments:" msgstr "Extra Call Argument:" @@ -859,7 +837,6 @@ msgid "" msgstr "" #: editor/connections_dialog.cpp -#, fuzzy msgid "Oneshot" msgstr "Oneshot" @@ -934,7 +911,6 @@ msgid "Are you sure you want to remove all connections from the \"%s\" signal?" msgstr "" #: editor/connections_dialog.cpp editor/editor_help.cpp editor/node_dock.cpp -#, fuzzy msgid "Signals" msgstr "Signaler" @@ -963,7 +939,6 @@ msgid "Change %s Type" msgstr "Ändra Typ" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#, fuzzy msgid "Change" msgstr "Ändra" @@ -978,7 +953,6 @@ msgid "Favorites:" msgstr "Favoriter:" #: editor/create_dialog.cpp editor/editor_file_dialog.cpp -#, fuzzy msgid "Recent:" msgstr "Senaste:" @@ -991,7 +965,6 @@ msgstr "Sök:" #: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp #: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp -#, fuzzy msgid "Matches:" msgstr "Matchar:" @@ -1008,7 +981,6 @@ msgid "Search Replacement For:" msgstr "Sök Ersättning För:" #: editor/dependency_editor.cpp -#, fuzzy msgid "Dependencies For:" msgstr "Beroenden För:" @@ -1032,7 +1004,6 @@ msgstr "" #: editor/dependency_editor.cpp #: modules/gdnative/gdnative_library_editor_plugin.cpp -#, fuzzy msgid "Dependencies" msgstr "Beroenden" @@ -1041,28 +1012,23 @@ msgid "Resource" msgstr "Resurs" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp -#, fuzzy +#: editor/project_settings_editor.cpp msgid "Path" msgstr "Sökväg" #: editor/dependency_editor.cpp -#, fuzzy msgid "Dependencies:" msgstr "Beroenden:" #: editor/dependency_editor.cpp -#, fuzzy msgid "Fix Broken" msgstr "Fixa Trasig" #: editor/dependency_editor.cpp -#, fuzzy msgid "Dependency Editor" msgstr "Beroende-Redigerare" #: editor/dependency_editor.cpp -#, fuzzy msgid "Search Replacement Resource:" msgstr "Sök Ersättningsresurs:" @@ -1073,12 +1039,10 @@ msgstr "Sök Ersättningsresurs:" #: editor/script_create_dialog.cpp #: modules/visual_script/visual_script_property_selector.cpp #: scene/gui/file_dialog.cpp -#, fuzzy msgid "Open" msgstr "Öppen" #: editor/dependency_editor.cpp -#, fuzzy msgid "Owners Of:" msgstr "Ägare av:" @@ -1088,7 +1052,6 @@ msgid "Remove selected files from the project? (Can't be restored)" msgstr "Ta bort valda filer frÃ¥n projektet? (gÃ¥r inte Ã¥ngra)" #: editor/dependency_editor.cpp -#, fuzzy msgid "" "The files being removed are required by other resources in order for them to " "work.\n" @@ -1103,7 +1066,6 @@ msgid "Cannot remove:" msgstr "Kan inte ta bort:\n" #: editor/dependency_editor.cpp -#, fuzzy msgid "Error loading:" msgstr "Fel vid laddning:" @@ -1113,27 +1075,22 @@ msgid "Load failed due to missing dependencies:" msgstr "Scenen misslyckades att ladda pÃ¥ grund av att beroenden saknas:" #: editor/dependency_editor.cpp editor/editor_node.cpp -#, fuzzy msgid "Open Anyway" msgstr "Öppna ÄndÃ¥" #: editor/dependency_editor.cpp -#, fuzzy msgid "Which action should be taken?" msgstr "Vilken Ã¥tgärd bör vidtas?" #: editor/dependency_editor.cpp -#, fuzzy msgid "Fix Dependencies" msgstr "Fixa Beroenden" #: editor/dependency_editor.cpp -#, fuzzy msgid "Errors loading!" msgstr "Fel vid laddning!" #: editor/dependency_editor.cpp -#, fuzzy msgid "Permanently delete %d item(s)? (No undo!)" msgstr "Ta bort %d sak(er) permanent? (GÃ¥r inte Ã¥ngra!)" @@ -1155,42 +1112,34 @@ msgid "Delete" msgstr "Ta bort" #: editor/dependency_editor.cpp -#, fuzzy msgid "Owns" msgstr "Äger" #: editor/dependency_editor.cpp -#, fuzzy msgid "Resources Without Explicit Ownership:" msgstr "Resurser Utan Explicit Ägande:" #: editor/dictionary_property_edit.cpp -#, fuzzy msgid "Change Dictionary Key" msgstr "Ändra Ordboksnyckel" #: editor/dictionary_property_edit.cpp -#, fuzzy msgid "Change Dictionary Value" msgstr "Ändra Ordboksvärde" #: editor/editor_about.cpp -#, fuzzy msgid "Thanks from the Godot community!" msgstr "Tack frÃ¥n Godot-gemenskapen!" #: editor/editor_about.cpp -#, fuzzy msgid "Godot Engine contributors" msgstr "Godot Engine bidragare" #: editor/editor_about.cpp -#, fuzzy msgid "Project Founders" msgstr "Projektgrundare" #: editor/editor_about.cpp -#, fuzzy msgid "Lead Developer" msgstr "Lead Developer" @@ -1204,37 +1153,30 @@ msgid "Developers" msgstr "Utvecklare" #: editor/editor_about.cpp -#, fuzzy msgid "Authors" msgstr "Författare" #: editor/editor_about.cpp -#, fuzzy msgid "Platinum Sponsors" msgstr "Platinumsponsorer" #: editor/editor_about.cpp -#, fuzzy msgid "Gold Sponsors" msgstr "Guldsponsorer" #: editor/editor_about.cpp -#, fuzzy msgid "Mini Sponsors" msgstr "Minisponsorer" #: editor/editor_about.cpp -#, fuzzy msgid "Gold Donors" msgstr "Gulddonatorer" #: editor/editor_about.cpp -#, fuzzy msgid "Silver Donors" msgstr "Silverdonatorer" #: editor/editor_about.cpp -#, fuzzy msgid "Bronze Donors" msgstr "Bronsdonatorer" @@ -1265,12 +1207,10 @@ msgstr "" "respektive upphovsrätts uttalanden och licensvillkor." #: editor/editor_about.cpp -#, fuzzy msgid "All Components" msgstr "Alla Komponenter" #: editor/editor_about.cpp -#, fuzzy msgid "Components" msgstr "Komponenter" @@ -1284,7 +1224,6 @@ msgid "Error opening package file, not in ZIP format." msgstr "Fel vid öppning av paketetfil, inte i zip-format." #: editor/editor_asset_installer.cpp -#, fuzzy msgid "Uncompressing Assets" msgstr "Dekomprimerar TillgÃ¥ngar" @@ -1295,7 +1234,6 @@ msgstr "Paketet installerades!" #: editor/editor_asset_installer.cpp #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Success!" msgstr "Klart!" @@ -1316,7 +1254,6 @@ msgid "Add Effect" msgstr "Lägg till Effekt" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Rename Audio Bus" msgstr "Byt namn pÃ¥ Ljud-Buss" @@ -1326,37 +1263,30 @@ msgid "Change Audio Bus Volume" msgstr "Växla Ljud-Buss Solo" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Toggle Audio Bus Solo" msgstr "Växla Ljud-Buss Solo" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Toggle Audio Bus Mute" msgstr "Växla Ljud-Buss Dämpning" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Toggle Audio Bus Bypass Effects" msgstr "Växla Ljud-Buss Bypass Effekter" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Select Audio Bus Send" msgstr "Välj Ljud-Buss Send" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Add Audio Bus Effect" msgstr "Lägg till Ljud-Buss Effekt" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Move Bus Effect" msgstr "Flytta Buss-Effekt" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Delete Bus Effect" msgstr "Ta bort Buss-Effekt" @@ -1366,22 +1296,18 @@ msgid "Drag & drop to rearrange." msgstr "Ljud-Buss, dra och släpp för att ändra ordning." #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Solo" msgstr "Solo" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Mute" msgstr "Dämpa" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Bypass" msgstr "Bypass" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Bus options" msgstr "Buss-alternativ" @@ -1391,7 +1317,6 @@ msgid "Duplicate" msgstr "Duplicera" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Reset Volume" msgstr "Ã…terställ Volym" @@ -1404,32 +1329,26 @@ msgid "Audio" msgstr "Ljud" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Add Audio Bus" msgstr "Lägg till Ljud-Buss" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Master bus can't be deleted!" msgstr "Master-Buss kan inte raderas!" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Delete Audio Bus" msgstr "Ta bort Ljud-Buss" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Duplicate Audio Bus" msgstr "Duplicera Ljud-Buss" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Reset Bus Volume" msgstr "Ã…terställ Buss-Volym" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Move Audio Bus" msgstr "Flytta Ljud-Buss" @@ -1444,7 +1363,6 @@ msgid "Location for New Layout..." msgstr "Plats för Ny Layout..." #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Open Audio Bus Layout" msgstr "Öppna Ljud-Buss Layout" @@ -1457,12 +1375,10 @@ msgid "Layout" msgstr "Layout" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Invalid file, not an audio bus layout." msgstr "Ogiltig fil, inte en Ljud-Buss Layout." #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Add Bus" msgstr "Lägg till Buss" @@ -1474,12 +1390,10 @@ msgstr "Spara Ljud-Buss Layout Som..." #: editor/editor_audio_buses.cpp editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp editor/property_editor.cpp #: editor/script_create_dialog.cpp -#, fuzzy msgid "Load" msgstr "Ladda" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Load an existing Bus Layout." msgstr "Ladda en befintlig Buss-Layout." @@ -1488,32 +1402,26 @@ msgid "Save As" msgstr "Spara Som" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Save this Bus Layout to a file." msgstr "Spara Buss-Layouten till en fil." #: editor/editor_audio_buses.cpp editor/import_dock.cpp -#, fuzzy msgid "Load Default" msgstr "Ladda Standard" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Load the default Bus Layout." msgstr "Ladda standard Buss-Layouten." #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Create a new Bus Layout." msgstr "Skapa en ny Buss-Layout." #: editor/editor_autoload_settings.cpp -#, fuzzy msgid "Invalid name." msgstr "Ogiltigt namn." #: editor/editor_autoload_settings.cpp -#, fuzzy msgid "Valid characters:" msgstr "Giltiga tecken:" @@ -1539,27 +1447,22 @@ msgid "Keyword cannot be used as an autoload name." msgstr "" #: editor/editor_autoload_settings.cpp -#, fuzzy msgid "Autoload '%s' already exists!" msgstr "Autoload '%s' finns redan!" #: editor/editor_autoload_settings.cpp -#, fuzzy msgid "Rename Autoload" msgstr "Byt namn pÃ¥ Autload" #: editor/editor_autoload_settings.cpp -#, fuzzy msgid "Toggle AutoLoad Globals" msgstr "Växla AutoLoad Globals" #: editor/editor_autoload_settings.cpp -#, fuzzy msgid "Move Autoload" msgstr "Flytta Autoload" #: editor/editor_autoload_settings.cpp -#, fuzzy msgid "Remove Autoload" msgstr "Ta bort Autoload" @@ -1568,7 +1471,6 @@ msgid "Enable" msgstr "Aktivera" #: editor/editor_autoload_settings.cpp -#, fuzzy msgid "Rearrange Autoloads" msgstr "Ändra ordning pÃ¥ Autoloads" @@ -1582,24 +1484,21 @@ msgid "File does not exist." msgstr "Fil existerar inte." #: editor/editor_autoload_settings.cpp -#, fuzzy msgid "Not in resource path." msgstr "Inte i resursens sökväg." #: editor/editor_autoload_settings.cpp -#, fuzzy msgid "Add AutoLoad" msgstr "Lägg till AutoLoad" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp -#, fuzzy +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "Sökväg:" #: editor/editor_autoload_settings.cpp -#, fuzzy msgid "Node Name:" msgstr "Node Namn:" @@ -1609,7 +1508,6 @@ msgid "Name" msgstr "Namn" #: editor/editor_autoload_settings.cpp -#, fuzzy msgid "Singleton" msgstr "Singleton" @@ -1641,7 +1539,6 @@ msgid "Please select a base directory first." msgstr "Vänligen välj en baskatalog först" #: editor/editor_dir_dialog.cpp -#, fuzzy msgid "Choose a Directory" msgstr "Välj en Katalog" @@ -1654,7 +1551,7 @@ msgstr "Skapa Mapp" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "Namn:" @@ -1668,7 +1565,6 @@ msgid "Choose" msgstr "Välj" #: editor/editor_export.cpp -#, fuzzy msgid "Storing File:" msgstr "Lagrar Fil:" @@ -1677,7 +1573,6 @@ msgid "No export template found at the expected path:" msgstr "" #: editor/editor_export.cpp -#, fuzzy msgid "Packing" msgstr "Packar" @@ -1734,9 +1629,8 @@ msgid "Script Editor" msgstr "Öppna Skript-Redigerare" #: editor/editor_feature_profile.cpp -#, fuzzy msgid "Asset Library" -msgstr "Bibliotek" +msgstr "TillgÃ¥ngsbibliotek" #: editor/editor_feature_profile.cpp #, fuzzy @@ -1892,7 +1786,6 @@ msgid "Select Current Folder" msgstr "Skapa Mapp" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp -#, fuzzy msgid "File Exists, Overwrite?" msgstr "Filen finns redan, skriv över?" @@ -1902,7 +1795,6 @@ msgid "Select This Folder" msgstr "Välj en Node" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#, fuzzy msgid "Copy Path" msgstr "Kopiera Sökvägen" @@ -1943,12 +1835,10 @@ msgid "Open File(s)" msgstr "Öppna Fil(er)" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp -#, fuzzy msgid "Open a Directory" msgstr "Öppna en Katalog" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp -#, fuzzy msgid "Open a File or Directory" msgstr "Öppna en Fil eller Katalog" @@ -1976,17 +1866,14 @@ msgid "Go Up" msgstr "GÃ¥ Upp" #: editor/editor_file_dialog.cpp -#, fuzzy msgid "Toggle Hidden Files" msgstr "Växla Dolda Filer" #: editor/editor_file_dialog.cpp -#, fuzzy msgid "Toggle Favorite" msgstr "Växla Favorit" #: editor/editor_file_dialog.cpp -#, fuzzy msgid "Toggle Mode" msgstr "Växla Läge" @@ -2041,7 +1928,6 @@ msgid "View items as a list." msgstr "" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp -#, fuzzy msgid "Directories & Files:" msgstr "Kataloger & Filer:" @@ -2056,12 +1942,10 @@ msgid "File:" msgstr "Fil:" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp -#, fuzzy msgid "Must use a valid extension." msgstr "MÃ¥ste använda en giltigt filändelse." #: editor/editor_file_system.cpp -#, fuzzy msgid "ScanSources" msgstr "ScanSources" @@ -2072,7 +1956,6 @@ msgid "" msgstr "" #: editor/editor_file_system.cpp -#, fuzzy msgid "(Re)Importing Assets" msgstr "(Om)Importerar TillgÃ¥ngar" @@ -2081,17 +1964,15 @@ msgid "Top" msgstr "Topp" #: editor/editor_help.cpp -#, fuzzy msgid "Class:" msgstr "Klass:" #: editor/editor_help.cpp editor/scene_tree_editor.cpp -#, fuzzy +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "Ärver:" #: editor/editor_help.cpp -#, fuzzy msgid "Inherited by:" msgstr "Ärvd av:" @@ -2101,12 +1982,10 @@ msgid "Brief Description" msgstr "Kort Beskrivning:" #: editor/editor_help.cpp -#, fuzzy msgid "Properties" msgstr "Egenskaper" #: editor/editor_help.cpp -#, fuzzy msgid "Methods" msgstr "Metoder" @@ -2120,12 +1999,10 @@ msgid "Enumerations" msgstr "Enumerations" #: editor/editor_help.cpp -#, fuzzy msgid "enum " msgstr "enum " #: editor/editor_help.cpp -#, fuzzy msgid "Constants" msgstr "Konstanter" @@ -2155,7 +2032,6 @@ msgid "Property Descriptions" msgstr "Egenskapsbeskrivning:" #: editor/editor_help.cpp -#, fuzzy msgid "" "There is currently no description for this property. Please help us by " "[color=$color][url=$url]contributing one[/url][/color]!" @@ -2169,7 +2045,6 @@ msgid "Method Descriptions" msgstr "Metodbeskrivning:" #: editor/editor_help.cpp -#, fuzzy msgid "" "There is currently no description for this method. Please help us by [color=" "$color][url=$url]contributing one[/url][/color]!" @@ -2223,9 +2098,8 @@ msgid "Member Type" msgstr "Medlemmar" #: editor/editor_help_search.cpp -#, fuzzy msgid "Class" -msgstr "Klass:" +msgstr "Klass" #: editor/editor_inspector.cpp editor/project_settings_editor.cpp msgid "Property:" @@ -2240,7 +2114,6 @@ msgid "Set Multiple:" msgstr "" #: editor/editor_log.cpp -#, fuzzy msgid "Output:" msgstr "Output:" @@ -2256,7 +2129,6 @@ msgstr "Ta bort Urval" #: editor/script_editor_debugger.cpp #: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp -#, fuzzy msgid "Clear" msgstr "Rensa" @@ -2267,7 +2139,6 @@ msgstr "Output:" #: editor/editor_network_profiler.cpp editor/editor_node.cpp #: editor/editor_profiler.cpp -#, fuzzy msgid "Stop" msgstr "Stanna" @@ -2327,7 +2198,6 @@ msgid "OK" msgstr "OK" #: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp -#, fuzzy msgid "Error saving resource!" msgstr "Fel vid sparande av resurs!" @@ -2342,17 +2212,14 @@ msgid "Save Resource As..." msgstr "Spara Resurs Som..." #: editor/editor_node.cpp -#, fuzzy msgid "Can't open file for writing:" msgstr "Kan inte öppna fil för skrivande:" #: editor/editor_node.cpp -#, fuzzy msgid "Requested file format unknown:" msgstr "EfterfrÃ¥gade filformat okänt:" #: editor/editor_node.cpp -#, fuzzy msgid "Error while saving." msgstr "Fel vid sparande." @@ -2361,22 +2228,18 @@ msgid "Can't open '%s'. The file could have been moved or deleted." msgstr "" #: editor/editor_node.cpp -#, fuzzy msgid "Error while parsing '%s'." msgstr "Fel vid parsning '%s'." #: editor/editor_node.cpp -#, fuzzy msgid "Unexpected end of file '%s'." msgstr "Oväntat filslut '%s'." #: editor/editor_node.cpp -#, fuzzy msgid "Missing '%s' or its dependencies." msgstr "Saknar '%s' eller dess beroenden." #: editor/editor_node.cpp -#, fuzzy msgid "Error while loading '%s'." msgstr "Fel vid laddning av '%s'." @@ -2389,12 +2252,10 @@ msgid "Analyzing" msgstr "Analyserar" #: editor/editor_node.cpp -#, fuzzy msgid "Creating Thumbnail" msgstr "Skapar Miniatyr" #: editor/editor_node.cpp -#, fuzzy msgid "This operation can't be done without a tree root." msgstr "Ã…tgärden kan inte göras utan en trädrot." @@ -2418,27 +2279,22 @@ msgid "Can't overwrite scene that is still open!" msgstr "" #: editor/editor_node.cpp -#, fuzzy msgid "Can't load MeshLibrary for merging!" msgstr "Kan inte ladda MeshLibrary för sammanslagning!" #: editor/editor_node.cpp -#, fuzzy msgid "Error saving MeshLibrary!" msgstr "Fel vid sparande av MeshLibrary!" #: editor/editor_node.cpp -#, fuzzy msgid "Can't load TileSet for merging!" msgstr "Kan inte ladda TileSet för sammanslagning!" #: editor/editor_node.cpp -#, fuzzy msgid "Error saving TileSet!" msgstr "Fel vid sparande av TileSet!" #: editor/editor_node.cpp -#, fuzzy msgid "Error trying to save layout!" msgstr "Fel vid försök att spara layout!" @@ -2447,7 +2303,6 @@ msgid "Default editor layout overridden." msgstr "" #: editor/editor_node.cpp -#, fuzzy msgid "Layout name not found!" msgstr "Layoutnamn hittades inte!" @@ -2456,7 +2311,6 @@ msgid "Restored default layout to base settings." msgstr "" #: editor/editor_node.cpp -#, fuzzy msgid "" "This resource belongs to a scene that was imported, so it's not editable.\n" "Please read the documentation relevant to importing scenes to better " @@ -2476,7 +2330,6 @@ msgstr "" "Ändringar pÃ¥ den kommer inte att sparas när du sparar den nuvarande scenen." #: editor/editor_node.cpp -#, fuzzy msgid "" "This resource was imported, so it's not editable. Change its settings in the " "import panel and then re-import." @@ -2517,7 +2370,6 @@ msgid "Current scene was never saved, please save it prior to running." msgstr "Nuvarande scen har aldrig sparats, vänligen spara den innan körning." #: editor/editor_node.cpp -#, fuzzy msgid "Could not start subprocess!" msgstr "Kunde inte starta underprocess!" @@ -2526,7 +2378,6 @@ msgid "Open Scene" msgstr "Öppna Scen" #: editor/editor_node.cpp -#, fuzzy msgid "Open Base Scene" msgstr "Öppna Bas-Scen" @@ -2550,7 +2401,6 @@ msgid "Save & Close" msgstr "Spara & Stäng" #: editor/editor_node.cpp -#, fuzzy msgid "Save changes to '%s' before closing?" msgstr "Spara ändringar i '%s' innan stängning?" @@ -2576,32 +2426,26 @@ msgid "Yes" msgstr "Ja" #: editor/editor_node.cpp -#, fuzzy msgid "This scene has never been saved. Save before running?" msgstr "Denna scenen har aldrig sparats. Spara innan körning?" #: editor/editor_node.cpp editor/scene_tree_dock.cpp -#, fuzzy msgid "This operation can't be done without a scene." msgstr "Ã…tgärden kan inte göras utan en scen." #: editor/editor_node.cpp -#, fuzzy msgid "Export Mesh Library" msgstr "Exportera Mesh Library" #: editor/editor_node.cpp -#, fuzzy msgid "This operation can't be done without a root node." msgstr "Ã…tgärden kan inte göras utan en Rot-Node." #: editor/editor_node.cpp -#, fuzzy msgid "Export Tile Set" msgstr "Exportera Tile Set" #: editor/editor_node.cpp -#, fuzzy msgid "This operation can't be done without a selected node." msgstr "Ã…tgärden kan inte göras utan en vald Node." @@ -2610,17 +2454,14 @@ msgid "Current scene not saved. Open anyway?" msgstr "Nuvarande scen inte sparad. Öppna ändÃ¥?" #: editor/editor_node.cpp -#, fuzzy msgid "Can't reload a scene that was never saved." msgstr "Kan inte ladda om en scen som aldrig har sparats." #: editor/editor_node.cpp -#, fuzzy msgid "Revert" msgstr "Ã…terställ" #: editor/editor_node.cpp -#, fuzzy msgid "This action cannot be undone. Revert anyway?" msgstr "Ã…tgärden kan inte Ã¥ngras. Ã…terställ ändÃ¥?" @@ -2634,12 +2475,10 @@ msgid "Quit" msgstr "Avsluta" #: editor/editor_node.cpp -#, fuzzy msgid "Exit the editor?" msgstr "Stäng redigeraren?" #: editor/editor_node.cpp -#, fuzzy msgid "Open Project Manager?" msgstr "Öppna Projekthanteraren?" @@ -2648,18 +2487,15 @@ msgid "Save & Quit" msgstr "Spara & Avsluta" #: editor/editor_node.cpp -#, fuzzy msgid "Save changes to the following scene(s) before quitting?" msgstr "Spara ändringar av följande scen(er) innan du avslutar?" #: editor/editor_node.cpp -#, fuzzy msgid "Save changes the following scene(s) before opening Project Manager?" msgstr "" "Spara ändringar av följande scen(er) innan du öppnar Projekthanteraren?" #: editor/editor_node.cpp -#, fuzzy msgid "" "This option is deprecated. Situations where refresh must be forced are now " "considered a bug. Please report." @@ -2668,7 +2504,6 @@ msgstr "" "anses nu vara en bugg. Vänligen rapportera." #: editor/editor_node.cpp -#, fuzzy msgid "Pick a Main Scene" msgstr "Välj en Huvudscen" @@ -2682,18 +2517,15 @@ msgid "Reopen Closed Scene" msgstr "Stäng Scen" #: editor/editor_node.cpp -#, fuzzy msgid "Unable to enable addon plugin at: '%s' parsing of config failed." msgstr "" "Kunde inte aktivera addon plugin vid: '%s' parsning av config misslyckades." #: editor/editor_node.cpp -#, fuzzy msgid "Unable to find script field for addon plugin at: 'res://addons/%s'." msgstr "Kan inte hitta skriptfältet för addon plugin vid: 'res://addons/%s'." #: editor/editor_node.cpp -#, fuzzy msgid "Unable to load addon script from path: '%s'." msgstr "Kunde inte ladda addon script frÃ¥n sökväg: '%s'" @@ -2707,21 +2539,18 @@ msgstr "" "verktygsläge." #: editor/editor_node.cpp -#, fuzzy msgid "" "Unable to load addon script from path: '%s' Base type is not EditorPlugin." msgstr "" "Kunde inte ladda addon script frÃ¥n sökväg: '%s' Bastyp är inte EditorPlugin." #: editor/editor_node.cpp -#, fuzzy msgid "Unable to load addon script from path: '%s' Script is not in tool mode." msgstr "" "Kunde inte ladda addon script frÃ¥n sökväg: '%s' Skript är inte i " "verktygsläge." #: editor/editor_node.cpp -#, fuzzy msgid "" "Scene '%s' was automatically imported, so it can't be modified.\n" "To make changes to it, a new inherited scene can be created." @@ -2730,7 +2559,6 @@ msgstr "" "För att kunna göra ändringar till den sÃ¥ kan en ärvd scen skapas." #: editor/editor_node.cpp -#, fuzzy msgid "" "Error loading scene, it must be inside the project path. Use 'Import' to " "open the scene, then save it inside the project path." @@ -2739,17 +2567,14 @@ msgstr "" "'Importera' för att öppna scenen, spara den sen inom projektsökvägen." #: editor/editor_node.cpp -#, fuzzy msgid "Scene '%s' has broken dependencies:" msgstr "Scen '%s' har trasiga beroenden:" #: editor/editor_node.cpp -#, fuzzy msgid "Clear Recent Scenes" msgstr "Rensa Senaste Scener" #: editor/editor_node.cpp -#, fuzzy msgid "" "No main scene has ever been defined, select one?\n" "You can change it later in \"Project Settings\" under the 'application' " @@ -2760,7 +2585,6 @@ msgstr "" "kategorin." #: editor/editor_node.cpp -#, fuzzy msgid "" "Selected scene '%s' does not exist, select a valid one?\n" "You can change it later in \"Project Settings\" under the 'application' " @@ -2771,7 +2595,6 @@ msgstr "" "kategorin." #: editor/editor_node.cpp -#, fuzzy msgid "" "Selected scene '%s' is not a scene file, select a valid one?\n" "You can change it later in \"Project Settings\" under the 'application' " @@ -2791,7 +2614,6 @@ msgstr "Ta bort Layout" #: editor/editor_node.cpp editor/import_dock.cpp #: editor/script_create_dialog.cpp -#, fuzzy msgid "Default" msgstr "Standard" @@ -2817,7 +2639,6 @@ msgid "Undo Close Tab" msgstr "Stänga Övriga Flikar" #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Close Other Tabs" msgstr "Stänga Övriga Flikar" @@ -2831,7 +2652,6 @@ msgid "Close All Tabs" msgstr "Stäng Alla" #: editor/editor_node.cpp -#, fuzzy msgid "Switch Scene Tab" msgstr "Byt Scen-flik" @@ -2852,12 +2672,10 @@ msgid "Dock Position" msgstr "" #: editor/editor_node.cpp -#, fuzzy msgid "Distraction Free Mode" msgstr "Distraktionsfritt Läge" #: editor/editor_node.cpp -#, fuzzy msgid "Toggle distraction-free mode." msgstr "Växla distraktionsfritt läge." @@ -2870,7 +2688,6 @@ msgid "Scene" msgstr "Scen" #: editor/editor_node.cpp -#, fuzzy msgid "Go to previously opened scene." msgstr "GÃ¥ till föregÃ¥ende öppna scen." @@ -2892,7 +2709,6 @@ msgid "Filter Files..." msgstr "Filtrera Filer..." #: editor/editor_node.cpp -#, fuzzy msgid "Operations with scene files." msgstr "Ã…tgärder med scenfiler." @@ -2910,7 +2726,6 @@ msgid "Open Scene..." msgstr "Öppna Scen..." #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Open Recent" msgstr "Öppna Senaste" @@ -2944,12 +2759,10 @@ msgstr "Ã…ngra" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -#, fuzzy msgid "Redo" msgstr "Ã…ngra" #: editor/editor_node.cpp -#, fuzzy msgid "Revert Scene" msgstr "Ã…terställ Scen" @@ -3003,13 +2816,11 @@ msgid "Orphan Resource Explorer..." msgstr "Föräldralös Resursutforskare" #: editor/editor_node.cpp -#, fuzzy msgid "Quit to Project List" msgstr "Avsluta till Projektlistan" #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp #: editor/project_export.cpp -#, fuzzy msgid "Debug" msgstr "Debugga" @@ -3058,9 +2869,8 @@ msgid "" msgstr "" #: editor/editor_node.cpp -#, fuzzy msgid "Sync Scene Changes" -msgstr "Synkronisera Scenändringar" +msgstr "Synkronisera scenändringar" #: editor/editor_node.cpp msgid "" @@ -3071,9 +2881,8 @@ msgid "" msgstr "" #: editor/editor_node.cpp -#, fuzzy msgid "Sync Script Changes" -msgstr "Synkronisera Skript-ändringar" +msgstr "Synkronisera skriptändringar" #: editor/editor_node.cpp msgid "" @@ -3150,12 +2959,10 @@ msgstr "Sök" #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/shader_editor_plugin.cpp -#, fuzzy msgid "Online Docs" msgstr "Dokumentation Online" #: editor/editor_node.cpp -#, fuzzy msgid "Q&A" msgstr "FrÃ¥gor och svar" @@ -3165,7 +2972,7 @@ msgstr "" #: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp msgid "Community" -msgstr "Community" +msgstr "Gemenskap" #: editor/editor_node.cpp msgid "About" @@ -3192,7 +2999,6 @@ msgid "Stop the scene." msgstr "Stanna scenen." #: editor/editor_node.cpp -#, fuzzy msgid "Play the edited scene." msgstr "Spela den redigerade scenen." @@ -3241,7 +3047,6 @@ msgid "FileSystem" msgstr "" #: editor/editor_node.cpp -#, fuzzy msgid "Inspector" msgstr "Inspektör" @@ -3250,7 +3055,7 @@ msgstr "Inspektör" msgid "Expand Bottom Panel" msgstr "Expandera alla" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "" @@ -3307,7 +3112,6 @@ msgid "Password:" msgstr "Lösenord:" #: editor/editor_node.cpp -#, fuzzy msgid "Open & Run a Script" msgstr "Öppna & Kör ett Skript" @@ -3320,7 +3124,6 @@ msgid "Load Errors" msgstr "" #: editor/editor_node.cpp editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Select" msgstr "Välj" @@ -3333,7 +3136,6 @@ msgid "Open 3D Editor" msgstr "" #: editor/editor_node.cpp -#, fuzzy msgid "Open Script Editor" msgstr "Öppna Skript-Redigerare" @@ -3446,7 +3248,6 @@ msgid "Edit Text:" msgstr "Redigera tema..." #: editor/editor_properties.cpp editor/script_create_dialog.cpp -#, fuzzy msgid "On" msgstr "PÃ¥" @@ -3497,10 +3298,14 @@ msgid "Pick a Viewport" msgstr "" #: editor/editor_properties.cpp editor/property_editor.cpp -#, fuzzy msgid "New Script" msgstr "Nytt Skript" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +#, fuzzy +msgid "Extend Script" +msgstr "Öppna Skript" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "" @@ -3527,14 +3332,6 @@ msgstr "Klistra in" msgid "Convert To %s" msgstr "Konvertera till %s" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy -msgid "Open Editor" -msgstr "Öppna Skript-Redigerare" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "" @@ -3577,12 +3374,10 @@ msgid "Write your logic in the _run() method." msgstr "" #: editor/editor_run_script.cpp -#, fuzzy msgid "There is an edited scene already." msgstr "Det finns en redigerad scen redan." #: editor/editor_run_script.cpp -#, fuzzy msgid "Couldn't instance script:" msgstr "Kunde inte insansiera Skript:" @@ -3591,7 +3386,6 @@ msgid "Did you forget the 'tool' keyword?" msgstr "" #: editor/editor_run_script.cpp -#, fuzzy msgid "Couldn't run script:" msgstr "Kunde inte köra Skript:" @@ -3600,7 +3394,6 @@ msgid "Did you forget the '_run' method?" msgstr "" #: editor/editor_sub_scene.cpp -#, fuzzy msgid "Select Node(s) to Import" msgstr "Välj Nod(er) att Importera" @@ -3613,7 +3406,6 @@ msgid "Scene Path:" msgstr "" #: editor/editor_sub_scene.cpp -#, fuzzy msgid "Import From Node:" msgstr "Importera FrÃ¥n Node:" @@ -3627,7 +3419,6 @@ msgid "Uninstall" msgstr "Avinstallera" #: editor/export_template_manager.cpp -#, fuzzy msgid "(Installed)" msgstr "(Installerad)" @@ -3645,7 +3436,6 @@ msgid "(Missing)" msgstr "(Saknas)" #: editor/export_template_manager.cpp -#, fuzzy msgid "(Current)" msgstr "(Nuvarande)" @@ -3654,7 +3444,6 @@ msgid "Retrieving mirrors, please wait..." msgstr "" #: editor/export_template_manager.cpp -#, fuzzy msgid "Remove template version '%s'?" msgstr "Ta bort mallversionen '%s'?" @@ -3680,7 +3469,6 @@ msgid "Extracting Export Templates" msgstr "" #: editor/export_template_manager.cpp -#, fuzzy msgid "Importing:" msgstr "Importerar:" @@ -3697,7 +3485,6 @@ msgstr "" #: editor/export_template_manager.cpp #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Can't connect." msgstr "Kan inte ansluta." @@ -3720,7 +3507,6 @@ msgid "Failed:" msgstr "" #: editor/export_template_manager.cpp -#, fuzzy msgid "Download Complete." msgstr "Nedladdning Klar." @@ -3745,7 +3531,6 @@ msgid "Connecting to Mirror..." msgstr "" #: editor/export_template_manager.cpp -#, fuzzy msgid "Disconnected" msgstr "FrÃ¥nkopplad" @@ -3769,7 +3554,6 @@ msgid "Can't Connect" msgstr "Kan inte Ansluta" #: editor/export_template_manager.cpp -#, fuzzy msgid "Connected" msgstr "Ansluten" @@ -3779,12 +3563,10 @@ msgid "Requesting..." msgstr "" #: editor/export_template_manager.cpp -#, fuzzy msgid "Downloading" msgstr "Laddar ner" #: editor/export_template_manager.cpp -#, fuzzy msgid "Connection Error" msgstr "Anslutningsfel" @@ -3798,22 +3580,18 @@ msgid "Uncompressing Android Build Sources" msgstr "Dekomprimerar TillgÃ¥ngar" #: editor/export_template_manager.cpp -#, fuzzy msgid "Current Version:" msgstr "Nuvarande Version:" #: editor/export_template_manager.cpp -#, fuzzy msgid "Installed Versions:" msgstr "Installerade Versioner:" #: editor/export_template_manager.cpp -#, fuzzy msgid "Install From File" msgstr "Installera FrÃ¥n Fil" #: editor/export_template_manager.cpp -#, fuzzy msgid "Remove Template" msgstr "Ta Bort Mall" @@ -3827,7 +3605,6 @@ msgid "Export Template Manager" msgstr "" #: editor/export_template_manager.cpp -#, fuzzy msgid "Download Templates" msgstr "Ladda Ner Mallar" @@ -3876,7 +3653,6 @@ msgid "Provided name contains invalid characters." msgstr "" #: editor/filesystem_dock.cpp -#, fuzzy msgid "A file or folder with this name already exists." msgstr "En fil eller mapp med detta namn finns redan." @@ -3885,12 +3661,10 @@ msgid "Name contains invalid characters." msgstr "" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Renaming file:" msgstr "Byter namn pÃ¥ filen:" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Renaming folder:" msgstr "Byter namn pÃ¥ mappen:" @@ -3915,7 +3689,6 @@ msgid "Open Scenes" msgstr "Öppna Scen" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Instance" msgstr "Instans" @@ -4077,7 +3850,6 @@ msgid "Replace..." msgstr "Ersätt..." #: editor/find_in_files.cpp editor/progress_dialog.cpp scene/gui/dialogs.cpp -#, fuzzy msgid "Cancel" msgstr "Avbryt" @@ -4172,12 +3944,10 @@ msgid "Import as Single Scene" msgstr "" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Import with Separate Animations" msgstr "Importera med Separata Animationer" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Import with Separate Materials" msgstr "Importera med Separata Material" @@ -4194,7 +3964,6 @@ msgid "Import with Separate Objects+Animations" msgstr "" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Import with Separate Materials+Animations" msgstr "Importera med Separata Material+Animationer" @@ -4261,7 +4030,6 @@ msgid " Files" msgstr "" #: editor/import_dock.cpp -#, fuzzy msgid "Import As:" msgstr "Importera Som:" @@ -4307,12 +4075,10 @@ msgid "Save As..." msgstr "Spara Som..." #: editor/inspector_dock.cpp -#, fuzzy msgid "Copy Params" msgstr "Kopiera Params" #: editor/inspector_dock.cpp -#, fuzzy msgid "Paste Params" msgstr "Klistra in Params" @@ -4326,12 +4092,10 @@ msgid "Copy Resource" msgstr "Kopiera Resurs" #: editor/inspector_dock.cpp -#, fuzzy msgid "Make Built-In" msgstr "Gör Inbyggd" #: editor/inspector_dock.cpp -#, fuzzy msgid "Make Sub-Resources Unique" msgstr "Gör Under-resurser Unika" @@ -4365,7 +4129,6 @@ msgid "History of recently edited objects." msgstr "" #: editor/inspector_dock.cpp -#, fuzzy msgid "Object properties." msgstr "Objektegenskaper." @@ -4379,7 +4142,6 @@ msgid "Changes may be lost!" msgstr "" #: editor/multi_node_edit.cpp -#, fuzzy msgid "MultiNode Set" msgstr "MultiNode Ange" @@ -4406,7 +4168,7 @@ msgstr "" msgid "Subfolder:" msgstr "" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp #, fuzzy msgid "Language:" msgstr "SprÃ¥k" @@ -4554,6 +4316,13 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +#, fuzzy +msgid "Open Editor" +msgstr "Öppna Skript-Redigerare" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp #, fuzzy msgid "Open Animation Node" @@ -4624,7 +4393,6 @@ msgstr "Uppdatera Ändringar" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp -#, fuzzy msgid "Edit Filters" msgstr "Redigera Filter" @@ -4671,7 +4439,6 @@ msgstr "Ta bort Nod(er)" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete Node(s)" msgstr "Ta bort Nod(er)" @@ -4791,12 +4558,10 @@ msgid "No animation resource on clipboard!" msgstr "Inte i resursens sökväg." #: editor/plugins/animation_player_editor_plugin.cpp -#, fuzzy msgid "Pasted Animation" msgstr "Inklistrad Animation" #: editor/plugins/animation_player_editor_plugin.cpp -#, fuzzy msgid "Paste Animation" msgstr "Klistra in Animation" @@ -4834,14 +4599,13 @@ msgid "Scale animation playback globally for the node." msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -#, fuzzy msgid "Animation Tools" msgstr "Animeringsverktyg" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Animation" -msgstr "Animation" +msgstr "Animering" #: editor/plugins/animation_player_editor_plugin.cpp #, fuzzy @@ -4918,7 +4682,6 @@ msgid "Pin AnimationPlayer" msgstr "Klistra in Animation" #: editor/plugins/animation_player_editor_plugin.cpp -#, fuzzy msgid "Create New Animation" msgstr "Skapa Ny Animation" @@ -4930,8 +4693,6 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp -#, fuzzy msgid "Error!" msgstr "Fel!" @@ -4959,7 +4720,6 @@ msgstr "Lägg Till Översättning" #: editor/plugins/animation_state_machine_editor.cpp #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Add Node" msgstr "Lägg Till Node" @@ -5043,18 +4803,15 @@ msgstr "ÖvergÃ¥ng" #: editor/plugins/animation_tree_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp -#, fuzzy msgid "AnimationTree" -msgstr "Animation" +msgstr "Animationsträd" #: editor/plugins/animation_tree_player_editor_plugin.cpp -#, fuzzy msgid "New name:" msgstr "Nytt namn:" #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/multimesh_editor_plugin.cpp -#, fuzzy msgid "Scale:" msgstr "Skala:" @@ -5108,11 +4865,12 @@ msgid "X-Fade Time (s):" msgstr "" #: editor/plugins/animation_tree_player_editor_plugin.cpp -#, fuzzy msgid "Current:" msgstr "Nuvarande:" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "" @@ -5137,7 +4895,6 @@ msgid "Animation tree is invalid." msgstr "" #: editor/plugins/animation_tree_player_editor_plugin.cpp -#, fuzzy msgid "Animation Node" msgstr "Animations-Node" @@ -5146,7 +4903,6 @@ msgid "OneShot Node" msgstr "OneShot-Node" #: editor/plugins/animation_tree_player_editor_plugin.cpp -#, fuzzy msgid "Mix Node" msgstr "Mix-Node" @@ -5180,7 +4936,6 @@ msgid "Import Animations..." msgstr "Importera Animationer..." #: editor/plugins/animation_tree_player_editor_plugin.cpp -#, fuzzy msgid "Edit Node Filters" msgstr "Redigera Node-Filter" @@ -5190,7 +4945,6 @@ msgid "Filters..." msgstr "Filter..." #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Contents:" msgstr "InnehÃ¥ll:" @@ -5296,7 +5050,6 @@ msgid "Install..." msgstr "Installera" #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Retry" msgstr "Försök igen" @@ -5330,6 +5083,10 @@ msgid "All" msgstr "Alla" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy msgid "Import..." msgstr "Importera" @@ -5348,7 +5105,6 @@ msgid "Category:" msgstr "Kategori:" #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Site:" msgstr "Webbplats:" @@ -5397,7 +5153,6 @@ msgstr "" #: editor/plugins/camera_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp -#, fuzzy msgid "Preview" msgstr "Förhandsgranska" @@ -5628,24 +5383,27 @@ msgid "Ruler Mode" msgstr "Växla Läge" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Toggle snapping." +msgid "Toggle smart snapping." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +msgid "Use Smart Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Snapping Options" -msgstr "Alternativ" +msgid "Toggle grid snapping." +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to Grid" +msgid "Use Grid Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Snapping Options" +msgstr "Alternativ" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Rotation Snap" msgstr "" @@ -5703,13 +5461,11 @@ msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Makes sure the object's children are not selectable." msgstr "Ser till att objektets barn inte är valbara." #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Restores the object's children's ability to be selected." msgstr "Ã…terställer objektets barns egenskap att väljas." @@ -5736,8 +5492,7 @@ msgid "View" msgstr "Visa" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +msgid "Always Show Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5845,7 +5600,6 @@ msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp -#, fuzzy msgid "Create Node" msgstr "Skapa Node" @@ -5860,7 +5614,6 @@ msgid "Change Default Type" msgstr "Ändra Typ" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "" "Drag & drop + Shift : Add node as sibling\n" "Drag & drop + Alt : Change node type" @@ -5906,7 +5659,6 @@ msgstr "" #: editor/plugins/cpu_particles_2d_editor_plugin.cpp #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp -#, fuzzy msgid "Particles" msgstr "Partiklar" @@ -6011,10 +5763,13 @@ msgid "Toggle Curve Linear Tangent" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -#, fuzzy msgid "Hold Shift to edit tangents individually" msgstr "HÃ¥ll Skift för att redigera tangenter individuellt" +#: editor/plugins/curve_editor_plugin.cpp +msgid "Right click to add point" +msgstr "" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "" @@ -6166,12 +5921,10 @@ msgid "Remove Selected Item" msgstr "" #: editor/plugins/mesh_library_editor_plugin.cpp -#, fuzzy msgid "Import from Scene" msgstr "Importera frÃ¥n Scen" #: editor/plugins/mesh_library_editor_plugin.cpp -#, fuzzy msgid "Update from Scene" msgstr "Uppdatera frÃ¥n scen" @@ -6236,17 +5989,14 @@ msgid "Source Mesh:" msgstr "" #: editor/plugins/multimesh_editor_plugin.cpp -#, fuzzy msgid "X-Axis" msgstr "X-Axel" #: editor/plugins/multimesh_editor_plugin.cpp -#, fuzzy msgid "Y-Axis" msgstr "Y-Axel" #: editor/plugins/multimesh_editor_plugin.cpp -#, fuzzy msgid "Z-Axis" msgstr "Z-Axel" @@ -6255,7 +6005,6 @@ msgid "Mesh Up Axis:" msgstr "" #: editor/plugins/multimesh_editor_plugin.cpp -#, fuzzy msgid "Random Rotation:" msgstr "Slumpmässig Rotation:" @@ -6264,7 +6013,6 @@ msgid "Random Tilt:" msgstr "" #: editor/plugins/multimesh_editor_plugin.cpp -#, fuzzy msgid "Random Scale:" msgstr "Slumpmässig Skala:" @@ -6337,7 +6085,6 @@ msgid "Surface Points+Normal (Directed)" msgstr "" #: editor/plugins/particles_editor_plugin.cpp -#, fuzzy msgid "Volume" msgstr "Volym" @@ -6441,7 +6188,6 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp -#, fuzzy msgid "Options" msgstr "Alternativ" @@ -6667,6 +6413,10 @@ msgid "Grid" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Configure Grid:" msgstr "" @@ -6717,14 +6467,13 @@ msgstr "Klistra in Resurs" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/scene_tree_editor.cpp -#, fuzzy msgid "Instance:" msgstr "Instans:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp -#, fuzzy +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "Typ:" @@ -6812,7 +6561,6 @@ msgid "Save File As..." msgstr "Spara Som..." #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Import Theme" msgstr "Importera Tema" @@ -6821,7 +6569,6 @@ msgid "Error while saving theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Error saving" msgstr "Fel vid sparande" @@ -6836,11 +6583,15 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Find Next" msgstr "Hitta Nästa" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Filter scripts" msgstr "Filtrera noder" @@ -6855,31 +6606,26 @@ msgid "Filter methods" msgstr "Filtrera noder" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Sort" msgstr "Sortera" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp #: modules/gdnative/gdnative_library_editor_plugin.cpp -#, fuzzy msgid "Move Up" msgstr "Flytta Upp" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp #: modules/gdnative/gdnative_library_editor_plugin.cpp -#, fuzzy msgid "Move Down" msgstr "Flytta Ner" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Next script" msgstr "Nästa Skript" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Previous script" msgstr "FöregÃ¥ende Skript" @@ -6921,9 +6667,8 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Theme" -msgstr "Spara Tema" +msgstr "Tema" #: editor/plugins/script_editor_plugin.cpp #, fuzzy @@ -6931,12 +6676,10 @@ msgid "Import Theme..." msgstr "Importera Tema" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Reload Theme" msgstr "Ladda om Tema" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Save Theme" msgstr "Spara Tema" @@ -7007,7 +6750,6 @@ msgid "Go to next edited document." msgstr "" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Discard" msgstr "Kasta" @@ -7019,13 +6761,11 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/shader_editor_plugin.cpp -#, fuzzy msgid "Reload" msgstr "Ladda om" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/shader_editor_plugin.cpp -#, fuzzy msgid "Resave" msgstr "Spara om" @@ -7091,22 +6831,18 @@ msgid "Lookup Symbol" msgstr "" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Pick Color" msgstr "Välj Färg" #: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -#, fuzzy msgid "Convert Case" msgstr "Konvertera gemener/versaler" #: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -#, fuzzy msgid "Uppercase" msgstr "Versaler" #: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -#, fuzzy msgid "Lowercase" msgstr "Gemener" @@ -7135,12 +6871,15 @@ msgstr "Radera punkter" #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp -#, fuzzy msgid "Cut" msgstr "Klipp" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "Välj Alla" + #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Delete Line" msgstr "Ta bort rad" @@ -7196,15 +6935,10 @@ msgid "Convert Indent to Tabs" msgstr "Konvertera till %s" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Auto Indent" msgstr "Automatisk Indentering" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "" - -#: editor/plugins/script_text_editor.cpp #, fuzzy msgid "Find in Files..." msgstr "Filtrera Filer..." @@ -7303,9 +7037,8 @@ msgid "Create physical bones" msgstr "" #: editor/plugins/skeleton_editor_plugin.cpp -#, fuzzy msgid "Skeleton" -msgstr "Singleton" +msgstr "Skelett" #: editor/plugins/skeleton_editor_plugin.cpp #, fuzzy @@ -7322,7 +7055,6 @@ msgid "Orthogonal" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Perspective" msgstr "Perspektiv" @@ -7331,17 +7063,14 @@ msgid "Transform Aborted." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "X-Axis Transform." msgstr "X-Axel Transformering." #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Y-Axis Transform." msgstr "Y-Axel Transformering." #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Z-Axis Transform." msgstr "Z-Axel Transformering." @@ -7350,7 +7079,6 @@ msgid "View Plane Transform." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Scaling: " msgstr "Skalning: " @@ -7359,7 +7087,6 @@ msgid "Translating: " msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Rotating %s degrees." msgstr "Roterar %s grader." @@ -7405,57 +7132,46 @@ msgid "Vertices" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Top View." msgstr "Vy OvanifrÃ¥n." #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Bottom View." msgstr "Vy UnderifrÃ¥n" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Bottom" msgstr "Botten" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Left View." msgstr "Vy frÃ¥n vänster." #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Left" msgstr "Vänster" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Right View." msgstr "Vy frÃ¥n höger." #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Right" msgstr "Höger" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Front View." msgstr "Vy FramifrÃ¥n." #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Front" msgstr "Framsida" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Rear View." msgstr "Vy BakifrÃ¥n." #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Rear" msgstr "Baksida" @@ -7470,12 +7186,10 @@ msgid "Align Rotation with View" msgstr "Vy frÃ¥n höger" #: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp -#, fuzzy msgid "No parent to instance a child at." msgstr "Ingen förälder att instansiera ett barn till." #: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp -#, fuzzy msgid "This operation requires a single selected node." msgstr "Ã…tgärden kräver en enstaka vald Node." @@ -7509,7 +7223,6 @@ msgid "View Gizmos" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "View Information" msgstr "Visa Information" @@ -7522,7 +7235,6 @@ msgid "Half Resolution" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Audio Listener" msgstr "Ljud-Lyssnare" @@ -7564,6 +7276,10 @@ msgid "Freelook Speed Modifier" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Slow Modifier" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -7598,32 +7314,30 @@ msgid "Use Local Space" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy +msgid "Use Snap" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "Vy underifrÃ¥n" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Top View" msgstr "Vy ovanifrÃ¥n" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Rear View" msgstr "Vy bakifrÃ¥n" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Front View" msgstr "Vy framifrÃ¥n" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Left View" msgstr "Vy frÃ¥n vänster" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Right View" msgstr "Vy frÃ¥n höger" @@ -7649,7 +7363,6 @@ msgstr "" #: editor/plugins/spatial_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Transform" msgstr "Transformera" @@ -7840,6 +7553,10 @@ msgid "Simplification: " msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Shrink (Pixels): " +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "" @@ -7887,7 +7604,6 @@ msgid "Change Animation FPS" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -#, fuzzy msgid "(empty)" msgstr "(tom)" @@ -7911,7 +7627,6 @@ msgid "Speed (FPS):" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -#, fuzzy msgid "Loop" msgstr "Loop" @@ -7938,12 +7653,10 @@ msgid "Insert Empty (After)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -#, fuzzy msgid "Move (Before)" msgstr "Flytta (före)" #: editor/plugins/sprite_frames_editor_plugin.cpp -#, fuzzy msgid "Move (After)" msgstr "Flytta (efter)" @@ -8024,7 +7737,6 @@ msgid "Add All Items" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Add All" msgstr "Lägg till Alla" @@ -8033,7 +7745,6 @@ msgid "Remove All Items" msgstr "" #: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp -#, fuzzy msgid "Remove All" msgstr "Ta bort Alla" @@ -8055,7 +7766,6 @@ msgid "Remove Class Items" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Create Empty Template" msgstr "Skapa tom mall" @@ -8158,7 +7868,6 @@ msgid "Has,Many,Options" msgstr "Alternativ" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Data Type:" msgstr "Datatyp:" @@ -8167,12 +7876,10 @@ msgid "Icon" msgstr "Ikon" #: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp -#, fuzzy msgid "Style" msgstr "Stil" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Font" msgstr "Font" @@ -8578,7 +8285,6 @@ msgid "No VCS addons are available." msgstr "" #: editor/plugins/version_control_editor_plugin.cpp editor/rename_dialog.cpp -#, fuzzy msgid "Error" msgstr "Fel" @@ -8682,12 +8388,8 @@ msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy -msgid "Add input +" -msgstr "Lägg till Signal" - -#: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add output +" -msgstr "" +msgid "Add Output" +msgstr "Output:" #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy @@ -8695,15 +8397,18 @@ msgid "Scalar" msgstr "Skala:" #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Vector" -msgstr "Inspektör" +msgstr "Vektor" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Boolean" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sampler" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy msgid "Add input port" msgstr "Favoriter:" @@ -8768,7 +8473,6 @@ msgstr "Duplicera Nod(er)" #: editor/plugins/visual_shader_editor_plugin.cpp #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Paste Nodes" msgstr "Klistra in Noder" @@ -9587,21 +9291,21 @@ msgstr "" #: editor/project_export.cpp msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp -#, fuzzy msgid "Patches" msgstr "Patchar" #: editor/project_export.cpp -#, fuzzy msgid "Make Patch" msgstr "Gör Patch" @@ -9648,7 +9352,6 @@ msgid "Script Encryption Key (256-bits as hex):" msgstr "" #: editor/project_export.cpp -#, fuzzy msgid "Export PCK/Zip" msgstr "Exportera PCK/Zip" @@ -9675,7 +9378,6 @@ msgid "Export With Debug" msgstr "" #: editor/project_manager.cpp -#, fuzzy msgid "The path does not exist." msgstr "Sökvägen finns inte." @@ -9696,7 +9398,6 @@ msgid "Directory already contains a Godot project." msgstr "" #: editor/project_manager.cpp -#, fuzzy msgid "New Game Project" msgstr "Nytt Spelprojekt" @@ -9719,7 +9420,6 @@ msgid "There is already a folder in this path with the specified name." msgstr "" #: editor/project_manager.cpp -#, fuzzy msgid "It would be a good idea to name your project." msgstr "Det vore en bra idé att namnge ditt projekt." @@ -9746,12 +9446,10 @@ msgid "The following files failed extraction from package:" msgstr "" #: editor/project_manager.cpp -#, fuzzy msgid "Rename Project" msgstr "Byt namn pÃ¥ Projekt" #: editor/project_manager.cpp -#, fuzzy msgid "Import Existing Project" msgstr "Importera Befintligt Projekt" @@ -9761,7 +9459,6 @@ msgid "Import & Edit" msgstr "Importera" #: editor/project_manager.cpp -#, fuzzy msgid "Create New Project" msgstr "Skapa Nytt Projekt" @@ -9771,7 +9468,6 @@ msgid "Create & Edit" msgstr "Skapa Skript" #: editor/project_manager.cpp -#, fuzzy msgid "Install Project:" msgstr "Installera Projekt:" @@ -9781,12 +9477,10 @@ msgid "Install & Edit" msgstr "Installera" #: editor/project_manager.cpp -#, fuzzy msgid "Project Name:" msgstr "Projektnamn:" #: editor/project_manager.cpp -#, fuzzy msgid "Project Path:" msgstr "Sökväg till projektet:" @@ -9828,7 +9522,6 @@ msgid "Renderer can be changed later, but scenes may need to be adjusted." msgstr "" #: editor/project_manager.cpp -#, fuzzy msgid "Unnamed Project" msgstr "Namnlöst Projekt" @@ -9933,7 +9626,6 @@ msgid "" msgstr "" #: editor/project_manager.cpp -#, fuzzy msgid "Project Manager" msgstr "Projektledare" @@ -9943,17 +9635,14 @@ msgid "Projects" msgstr "Projekt" #: editor/project_manager.cpp -#, fuzzy msgid "Scan" msgstr "Skanna" #: editor/project_manager.cpp -#, fuzzy msgid "Select a Folder to Scan" msgstr "Välj en mapp att skanna" #: editor/project_manager.cpp -#, fuzzy msgid "New Project" msgstr "Nytt Projekt" @@ -9963,17 +9652,14 @@ msgid "Remove Missing" msgstr "Ta bort Animation" #: editor/project_manager.cpp -#, fuzzy msgid "Templates" msgstr "Mallar" #: editor/project_manager.cpp -#, fuzzy msgid "Restart Now" msgstr "Starta om nu" #: editor/project_manager.cpp -#, fuzzy msgid "Can't run project" msgstr "Kan inte köra projektet" @@ -9984,7 +9670,6 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Key " msgstr "Nyckel " @@ -9997,7 +9682,6 @@ msgid "Joy Axis" msgstr "" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Mouse Button" msgstr "Musknapp" @@ -10031,7 +9715,6 @@ msgid "All Devices" msgstr "Enhet" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Device" msgstr "Enhet" @@ -10099,7 +9782,6 @@ msgid "Joypad Axis Index:" msgstr "" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Axis" msgstr "Axel" @@ -10190,12 +9872,10 @@ msgid "Override for Feature" msgstr "" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Add Translation" msgstr "Lägg Till Översättning" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Remove Translation" msgstr "Ta bort Översättning" @@ -10252,16 +9932,14 @@ msgid "Action:" msgstr "" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Action" -msgstr "Funktion:" +msgstr "Ã…tgärd" #: editor/project_settings_editor.cpp msgid "Deadzone" -msgstr "" +msgstr "Dödzon" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Device:" msgstr "Enhet:" @@ -10270,17 +9948,14 @@ msgid "Index:" msgstr "" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Localization" msgstr "Lokalisering" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Translations" msgstr "Översättningar" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Translations:" msgstr "Översättningar:" @@ -10334,7 +10009,6 @@ msgid "Preset..." msgstr "" #: editor/property_editor.cpp -#, fuzzy msgid "Zero" msgstr "Noll" @@ -10355,12 +10029,10 @@ msgid "Dir..." msgstr "" #: editor/property_editor.cpp -#, fuzzy msgid "Assign" msgstr "Tilldela" #: editor/property_editor.cpp -#, fuzzy msgid "Select Node" msgstr "Välj Node" @@ -10369,7 +10041,6 @@ msgid "Error loading file: Not a resource!" msgstr "" #: editor/property_editor.cpp -#, fuzzy msgid "Pick a Node" msgstr "Välj en Node" @@ -10512,7 +10183,6 @@ msgid "Reset" msgstr "Ã…terställ Zoom" #: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp -#, fuzzy msgid "Reparent Node" msgstr "Byt Förälder-Node" @@ -10533,7 +10203,6 @@ msgid "Run Mode:" msgstr "" #: editor/run_settings_dialog.cpp -#, fuzzy msgid "Current Scene" msgstr "Nuvarande Scen" @@ -10554,7 +10223,6 @@ msgid "No parent to instance the scenes at." msgstr "" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Error loading scene from %s" msgstr "Fel vid laddning av scen frÃ¥n %s" @@ -10573,7 +10241,6 @@ msgid "Replace with Branch Scene" msgstr "" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Instance Child Scene" msgstr "Instansiera Barn-Scen" @@ -10582,22 +10249,18 @@ msgid "Clear Script" msgstr "" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "This operation can't be done on the tree root." msgstr "Ã…tgärden kan inte göras pÃ¥ trädroten." #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Move Node In Parent" msgstr "Flytta Node i Förälder" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Move Nodes In Parent" msgstr "Flytta Noder i Förälder" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Duplicate Node(s)" msgstr "Duplicera Nod(er)" @@ -10656,12 +10319,9 @@ msgid "" msgstr "" #: editor/scene_tree_dock.cpp -#, fuzzy -msgid "Editable Children" -msgstr "Redigerbara Barn" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." msgstr "" #: editor/scene_tree_dock.cpp @@ -10707,12 +10367,10 @@ msgid "Can't operate on nodes the current scene inherits from!" msgstr "" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Attach Script" msgstr "Fäst Skript" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Remove Node(s)" msgstr "Ta bort Nod(er)" @@ -10728,7 +10386,6 @@ msgid "" msgstr "" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Error saving scene." msgstr "Fel vid sparande av scenen." @@ -10746,12 +10403,19 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "Redigerbara Barn" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "" + +#: editor/scene_tree_dock.cpp #, fuzzy msgid "Open Documentation" msgstr "Öppna Senaste" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Add Child Node" msgstr "Lägg till Barn-Node" @@ -10761,17 +10425,11 @@ msgid "Expand/Collapse All" msgstr "Stäng Alla" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Change Type" msgstr "Ändra Typ" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Extend Script" -msgstr "Öppna Skript" - -#: editor/scene_tree_dock.cpp -#, fuzzy msgid "Reparent to New Node" msgstr "Byt Förälder-Node" @@ -10789,7 +10447,6 @@ msgid "Save Branch as Scene" msgstr "" #: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp -#, fuzzy msgid "Copy Node Path" msgstr "Kopiera Node-Sökväg" @@ -10809,7 +10466,6 @@ msgid "" msgstr "" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Attach a new or existing script for the selected node." msgstr "Koppla pÃ¥ ett nytt eller befintligt Skript till vald Node." @@ -10906,12 +10562,10 @@ msgid "Invalid node name, the following characters are not allowed:" msgstr "" #: editor/scene_tree_editor.cpp -#, fuzzy msgid "Rename Node" msgstr "Byt namn pÃ¥ Node" #: editor/scene_tree_editor.cpp -#, fuzzy msgid "Scene Tree (Nodes):" msgstr "Scenträd (Noder):" @@ -10920,7 +10574,6 @@ msgid "Node Configuration Warning!" msgstr "" #: editor/scene_tree_editor.cpp -#, fuzzy msgid "Select a Node" msgstr "Välj en Node" @@ -10958,7 +10611,6 @@ msgid "Wrong extension chosen." msgstr "" #: editor/script_create_dialog.cpp -#, fuzzy msgid "Error loading template '%s'" msgstr "Fel vid laddning av mall '%s'" @@ -10967,7 +10619,6 @@ msgid "Error - Could not create script in filesystem." msgstr "Fel - Kunde inte skapa Skript i filsystemet." #: editor/script_create_dialog.cpp -#, fuzzy msgid "Error loading script from %s" msgstr "Fel vid laddning av Skript frÃ¥n %s" @@ -11028,27 +10679,19 @@ msgid "Will load an existing script file." msgstr "Ladda in befintlig Skript-fil" #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "SprÃ¥k" - -#: editor/script_create_dialog.cpp #, fuzzy -msgid "Inherits" -msgstr "Ärver" - -#: editor/script_create_dialog.cpp -#, fuzzy -msgid "Class Name" +msgid "Class Name:" msgstr "Klassnamn" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Template" +msgid "Template:" msgstr "Mall" #: editor/script_create_dialog.cpp -msgid "Built-in Script" -msgstr "" +#, fuzzy +msgid "Built-in Script:" +msgstr "Öppna Skript" #: editor/script_create_dialog.cpp msgid "Attach Node Script" @@ -11101,7 +10744,6 @@ msgid "Stack Trace" msgstr "" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Errors" msgstr "Fel" @@ -11146,7 +10788,6 @@ msgid "Monitor" msgstr "" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Value" msgstr "Värde" @@ -11163,7 +10804,6 @@ msgid "List of Video Memory Usage by Resource:" msgstr "" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Total:" msgstr "Totalt:" @@ -11184,12 +10824,10 @@ msgid "Format" msgstr "" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Usage" msgstr "Användning" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Misc" msgstr "Övrigt" @@ -11233,7 +10871,6 @@ msgid "Editor Settings" msgstr "" #: editor/settings_config_dialog.cpp -#, fuzzy msgid "Shortcuts" msgstr "Genvägar" @@ -11361,12 +10998,10 @@ msgid "Disabled GDNative Singleton" msgstr "" #: modules/gdnative/gdnative_library_singleton_editor.cpp -#, fuzzy msgid "Library" msgstr "Bibliotek" #: modules/gdnative/gdnative_library_singleton_editor.cpp -#, fuzzy msgid "Libraries: " msgstr "Bibliotek: " @@ -11383,17 +11018,14 @@ msgid "Step argument is zero!" msgstr "" #: modules/gdscript/gdscript_functions.cpp -#, fuzzy msgid "Not a script with an instance" msgstr "Inte ett Skript med en instans" #: modules/gdscript/gdscript_functions.cpp -#, fuzzy msgid "Not based on a script" msgstr "Inte baserad pÃ¥ ett Skript" #: modules/gdscript/gdscript_functions.cpp -#, fuzzy msgid "Not based on a resource file" msgstr "Inte baserad pÃ¥ en resursfil" @@ -11482,17 +11114,14 @@ msgid "Clip Below" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "Edit X Axis" msgstr "Redigera X-Axel" #: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "Edit Y Axis" msgstr "Redigera Y-Axel" #: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "Edit Z Axis" msgstr "Redigera Z-Axel" @@ -11525,7 +11154,6 @@ msgid "Cursor Clear Rotation" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "Clear Selection" msgstr "Rensa Urval" @@ -11592,12 +11220,10 @@ msgid "Eroding walkable area..." msgstr "" #: modules/recast/navigation_mesh_generator.cpp -#, fuzzy msgid "Partitioning..." msgstr "Partitionerar..." #: modules/recast/navigation_mesh_generator.cpp -#, fuzzy msgid "Creating contours..." msgstr "Skapar konturer..." @@ -11691,7 +11317,6 @@ msgid "Create a new variable." msgstr "Skapa Ny" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Signals:" msgstr "Signaler:" @@ -11709,36 +11334,55 @@ msgid "Name already in use by another func/var/signal:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Rename Function" msgstr "Byt namn pÃ¥ funktion" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Rename Variable" msgstr "Byt namn pÃ¥ variabel" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Rename Signal" msgstr "Byt namn pÃ¥ Signal" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Add Function" msgstr "Lägg till Funktion" #: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Delete input port" +msgstr "Ta bort Autoload" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "Lägg till Variabel" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Add Signal" msgstr "Lägg till Signal" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Input Port" +msgstr "Favoriter:" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Output Port" +msgstr "Favoriter:" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Input Port" +msgstr "Ta bort Autoload" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Output Port" +msgstr "Ta Bort Mall" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "" @@ -11779,10 +11423,20 @@ msgid "Add Preload Node" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "" @@ -11795,7 +11449,6 @@ msgid "Change Base Type" msgstr "" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Move Node(s)" msgstr "Flytta Nod(er)" @@ -11804,12 +11457,16 @@ msgid "Remove VisualScript Node" msgstr "" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Connect Nodes" msgstr "Anslut Noder" #: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Disconnect Nodes" +msgstr "Anslut Noder" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Connect Node Data" msgstr "Anslut Noder" @@ -11819,7 +11476,6 @@ msgid "Connect Node Sequence" msgstr "Anslut Noder" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Script already has function '%s'" msgstr "Skript har redan funktionen '%s'" @@ -11845,17 +11501,35 @@ msgid "Paste VisualScript Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function with a function node." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Create Function" +msgstr "Byt namn pÃ¥ funktion" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "Ta bort Funktion" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Remove Variable" msgstr "Ta bort Variabeln" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Editing Variable:" msgstr "Redigerar Variabel:" @@ -11873,18 +11547,13 @@ msgid "Make Tool:" msgstr "Gör Patch" #: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Members:" msgstr "Medlemmar:" #: modules/visual_script/visual_script_editor.cpp #, fuzzy -msgid "Available Nodes:" -msgstr "Tillgängliga Noder:" +msgid "function_name" +msgstr "Funktioner:" #: modules/visual_script/visual_script_editor.cpp msgid "Select or create a function to edit its graph." @@ -11903,12 +11572,21 @@ msgid "Copy Nodes" msgstr "Kopiera Noder" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Cut Nodes" msgstr "Klipp ut Noder" #: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Make Function" +msgstr "Byt namn pÃ¥ funktion" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Refresh Graph" +msgstr "Uppdatera" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Edit Member" msgstr "Medlemmar" @@ -11949,12 +11627,10 @@ msgid ": Invalid arguments: " msgstr "" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "VariableGet not found in script: " msgstr "VariableGet hittades inte i Skript: " #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "VariableSet not found in script: " msgstr "VariableSet hittades inte i Skript: " @@ -12006,6 +11682,11 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export.cpp +#, fuzzy +msgid "Select device from the list" +msgstr "Välj enhet frÃ¥n listan" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "" @@ -12107,11 +11788,14 @@ msgid "Required icon is not specified in the preset." msgstr "" #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "Kör i Webbläsare" #: platform/javascript/export/export.cpp -#, fuzzy msgid "Run exported HTML in the system's default browser." msgstr "Kör exporterad HTML i systemets standardwebbläsare." @@ -12210,7 +11894,6 @@ msgid "" msgstr "" #: scene/2d/collision_polygon_2d.cpp -#, fuzzy msgid "" "CollisionPolygon2D only serves to provide a collision shape to a " "CollisionObject2D derived node. Please only use it as a child of Area2D, " @@ -12221,12 +11904,10 @@ msgstr "" "StaticBody2D, RigidBody2D, KinematicBody2D, etc. för att ge dem en form." #: scene/2d/collision_polygon_2d.cpp -#, fuzzy msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "En tom CollisionPolygon2D har ingen effekt pÃ¥ kollision." #: scene/2d/collision_shape_2d.cpp -#, fuzzy msgid "" "CollisionShape2D only serves to provide a collision shape to a " "CollisionObject2D derived node. Please only use it as a child of Area2D, " @@ -12270,7 +11951,6 @@ msgid "" msgstr "" #: scene/2d/navigation_polygon.cpp -#, fuzzy msgid "" "NavigationPolygonInstance must be a child or grandchild to a Navigation2D " "node. It only provides navigation data." @@ -12279,7 +11959,6 @@ msgstr "" "Navigation2D-Node. Den ger bara navigationsdata." #: scene/2d/parallax_layer.cpp -#, fuzzy msgid "" "ParallaxLayer node only works when set as child of a ParallaxBackground node." msgstr "" @@ -12306,7 +11985,6 @@ msgid "" msgstr "" #: scene/2d/path_2d.cpp -#, fuzzy msgid "PathFollow2D only works when set as a child of a Path2D node." msgstr "" "PathFollow2D fungerar bara när den är satt som ett barn till en Path2D-Node." @@ -12319,7 +11997,6 @@ msgid "" msgstr "" #: scene/2d/remote_transform_2d.cpp -#, fuzzy msgid "Path property must point to a valid Node2D node to work." msgstr "" "Sökvägs-egenskapen mÃ¥ste peka pÃ¥ en giltigt Node2D Node för att fungera." @@ -12415,7 +12092,6 @@ msgid "" msgstr "" #: scene/3d/collision_polygon.cpp -#, fuzzy msgid "" "CollisionPolygon only serves to provide a collision shape to a " "CollisionObject derived node. Please only use it as a child of Area, " @@ -12426,12 +12102,10 @@ msgstr "" "StaticBody, RigidBody, KinematicBody, etc. för att ge dem en form." #: scene/3d/collision_polygon.cpp -#, fuzzy msgid "An empty CollisionPolygon has no effect on collision." msgstr "En tom CollisionPolygon har ingen effekt pÃ¥ kollision." #: scene/3d/collision_shape.cpp -#, fuzzy msgid "" "CollisionShape only serves to provide a collision shape to a CollisionObject " "derived node. Please only use it as a child of Area, StaticBody, RigidBody, " @@ -12651,12 +12325,10 @@ msgid "" msgstr "" #: scene/gui/dialogs.cpp -#, fuzzy msgid "Alert!" msgstr "Varning!" #: scene/gui/dialogs.cpp -#, fuzzy msgid "Please Confirm..." msgstr "Vänligen Bekräfta..." @@ -12696,10 +12368,6 @@ msgid "" "texture to some node for display." msgstr "" -#: scene/resources/visual_shader.cpp -msgid "Input" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp #, fuzzy msgid "Invalid source for preview." @@ -12732,6 +12400,19 @@ msgid "Constants cannot be modified." msgstr "" #, fuzzy +#~ msgid "Add input +" +#~ msgstr "Lägg till Signal" + +#~ msgid "Language" +#~ msgstr "SprÃ¥k" + +#~ msgid "Inherits" +#~ msgstr "Ärver" + +#~ msgid "Available Nodes:" +#~ msgstr "Tillgängliga Noder:" + +#, fuzzy #~ msgid "Methods:" #~ msgstr "Metoder" @@ -12868,10 +12549,6 @@ msgstr "" #~ msgstr "GÃ¥ till överordnad mapp" #, fuzzy -#~ msgid "Select device from the list" -#~ msgstr "Välj enhet frÃ¥n listan" - -#, fuzzy #~ msgid "Open Scene(s)" #~ msgstr "Öppna Scen" @@ -13042,9 +12719,6 @@ msgstr "" #~ msgid "Move Anim Track Down" #~ msgstr "Flytta Anim SpÃ¥r NerÃ¥t" -#~ msgid "Set Transitions to:" -#~ msgstr "Ange övergÃ¥ngar:" - #~ msgid "Anim Track Rename" #~ msgstr "Anim Byt Namn PÃ¥ SpÃ¥r" diff --git a/editor/translations/ta.po b/editor/translations/ta.po index 227ba424b2..08faf73931 100644 --- a/editor/translations/ta.po +++ b/editor/translations/ta.po @@ -363,6 +363,7 @@ msgstr "" #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "" @@ -492,16 +493,6 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "" - -#: editor/animation_track_editor.cpp -#, fuzzy -msgid "Select None" -msgstr "அனைதà¯à®¤à¯ தேரà¯à®µà¯à®•à®³à¯" - #: editor/animation_track_editor.cpp msgid "Select an AnimationPlayer node to create and edit animations." msgstr "" @@ -637,7 +628,7 @@ msgid "Scale Ratio:" msgstr "" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" +msgid "Select Tracks to Copy" msgstr "" #: editor/animation_track_editor.cpp editor/editor_log.cpp @@ -649,6 +640,11 @@ msgstr "" msgid "Copy" msgstr "" +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Select All/None" +msgstr "அனைதà¯à®¤à¯ தேரà¯à®µà¯à®•à®³à¯" + #: editor/animation_track_editor_plugins.cpp #, fuzzy msgid "Add Audio Track Clip" @@ -967,7 +963,7 @@ msgid "Resource" msgstr "" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "" @@ -1422,7 +1418,8 @@ msgstr "" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "" @@ -1476,7 +1473,7 @@ msgstr "" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "" @@ -1861,6 +1858,7 @@ msgid "Class:" msgstr "" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "" @@ -2854,7 +2852,7 @@ msgstr "" msgid "Expand Bottom Panel" msgstr "" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "" @@ -3091,6 +3089,10 @@ msgstr "" msgid "New Script" msgstr "" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +msgid "Extend Script" +msgstr "" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "" @@ -3117,13 +3119,6 @@ msgstr "" msgid "Convert To %s" msgstr "" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Open Editor" -msgstr "" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "" @@ -3898,7 +3893,7 @@ msgstr "" msgid "Subfolder:" msgstr "" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "" @@ -4034,6 +4029,12 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Open Editor" +msgstr "" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp msgid "Open Animation Node" msgstr "" @@ -4379,7 +4380,6 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "" @@ -4551,6 +4551,8 @@ msgid "Current:" msgstr "" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "" @@ -4755,6 +4757,10 @@ msgid "All" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp msgid "Import..." msgstr "" @@ -5038,20 +5044,23 @@ msgid "Ruler Mode" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Toggle snapping." +msgid "Toggle smart snapping." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +msgid "Use Smart Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snapping Options" +msgid "Toggle grid snapping." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to Grid" +msgid "Use Grid Snap" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snapping Options" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5141,8 +5150,7 @@ msgid "View" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +msgid "Always Show Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5404,6 +5412,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/curve_editor_plugin.cpp +msgid "Right click to add point" +msgstr "" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "" @@ -6035,6 +6047,10 @@ msgid "Grid" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Configure Grid:" msgstr "" @@ -6091,6 +6107,7 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "" @@ -6189,6 +6206,11 @@ msgid "Find Next" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Filter scripts" msgstr "" @@ -6454,6 +6476,11 @@ msgstr "" msgid "Cut" msgstr "" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "" @@ -6512,10 +6539,6 @@ msgid "Auto Indent" msgstr "" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "" - -#: editor/plugins/script_text_editor.cpp msgid "Find in Files..." msgstr "" @@ -6835,6 +6858,10 @@ msgid "Freelook Speed Modifier" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Slow Modifier" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -6868,6 +6895,10 @@ msgid "Use Local Space" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "" @@ -7095,6 +7126,10 @@ msgid "Simplification: " msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Shrink (Pixels): " +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "" @@ -7868,11 +7903,7 @@ msgid "(GLES3 only)" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add input +" -msgstr "" - -#: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add output +" +msgid "Add Output" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -7888,6 +7919,10 @@ msgid "Boolean" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sampler" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add input port" msgstr "" @@ -8749,12 +8784,14 @@ msgstr "" #: editor/project_export.cpp msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp @@ -9740,11 +9777,9 @@ msgid "" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." msgstr "" #: editor/scene_tree_dock.cpp @@ -9819,6 +9854,14 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "" + +#: editor/scene_tree_dock.cpp msgid "Open Documentation" msgstr "" @@ -9835,10 +9878,6 @@ msgid "Change Type" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Extend Script" -msgstr "" - -#: editor/scene_tree_dock.cpp msgid "Reparent to New Node" msgstr "" @@ -10066,23 +10105,15 @@ msgid "Will load an existing script file." msgstr "" #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Inherits" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Class Name" +msgid "Class Name:" msgstr "" #: editor/script_create_dialog.cpp -msgid "Template" +msgid "Template:" msgstr "" #: editor/script_create_dialog.cpp -msgid "Built-in Script" +msgid "Built-in Script:" msgstr "" #: editor/script_create_dialog.cpp @@ -10719,6 +10750,11 @@ msgid "Add Function" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Delete input port" +msgstr "அனைதà¯à®¤à¯ தேரà¯à®µà¯à®•à®³à¯" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "" @@ -10727,6 +10763,25 @@ msgid "Add Signal" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Input Port" +msgstr "மாறà¯à®±à®™à¯à®•à®³à¯ˆ இதறà¯à®•à¯ அமை:" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Add Output Port" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Input Port" +msgstr "அசைவூடà¯à®Ÿà¯ பாதையை நீகà¯à®•à¯" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Output Port" +msgstr "அசைவூடà¯à®Ÿà¯ பாதையை நீகà¯à®•à¯" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "" @@ -10767,10 +10822,20 @@ msgid "Add Preload Node" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "" @@ -10795,6 +10860,11 @@ msgid "Connect Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Disconnect Nodes" +msgstr "அசைவூடà¯à®Ÿà¯ போலிபசà¯à®šà®¾à®µà®¿à®•à®³à¯" + +#: modules/visual_script/visual_script_editor.cpp msgid "Connect Node Data" msgstr "" @@ -10827,6 +10897,26 @@ msgid "Paste VisualScript Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function with a function node." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Create Function" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "" @@ -10851,15 +10941,11 @@ msgid "Make Tool:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" +msgid "function_name" msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -10883,6 +10969,14 @@ msgid "Cut Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Make Function" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Refresh Graph" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Edit Member" msgstr "" @@ -10977,6 +11071,10 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "" @@ -11076,6 +11174,10 @@ msgid "Required icon is not specified in the preset." msgstr "" #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "" @@ -11613,10 +11715,6 @@ msgid "" "texture to some node for display." msgstr "" -#: scene/resources/visual_shader.cpp -msgid "Input" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for preview." msgstr "" diff --git a/editor/translations/te.po b/editor/translations/te.po index d56e46777d..617809b62d 100644 --- a/editor/translations/te.po +++ b/editor/translations/te.po @@ -349,6 +349,7 @@ msgstr "" #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "" @@ -474,15 +475,6 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "" - -#: editor/animation_track_editor.cpp -msgid "Select None" -msgstr "" - #: editor/animation_track_editor.cpp msgid "Select an AnimationPlayer node to create and edit animations." msgstr "" @@ -617,7 +609,7 @@ msgid "Scale Ratio:" msgstr "" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" +msgid "Select Tracks to Copy" msgstr "" #: editor/animation_track_editor.cpp editor/editor_log.cpp @@ -629,6 +621,10 @@ msgstr "" msgid "Copy" msgstr "" +#: editor/animation_track_editor.cpp +msgid "Select All/None" +msgstr "" + #: editor/animation_track_editor_plugins.cpp msgid "Add Audio Track Clip" msgstr "" @@ -945,7 +941,7 @@ msgid "Resource" msgstr "" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "" @@ -1400,7 +1396,8 @@ msgstr "" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "" @@ -1454,7 +1451,7 @@ msgstr "" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "" @@ -1838,6 +1835,7 @@ msgid "Class:" msgstr "" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "" @@ -2828,7 +2826,7 @@ msgstr "" msgid "Expand Bottom Panel" msgstr "" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "" @@ -3064,6 +3062,10 @@ msgstr "" msgid "New Script" msgstr "" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +msgid "Extend Script" +msgstr "" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "" @@ -3090,13 +3092,6 @@ msgstr "" msgid "Convert To %s" msgstr "" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Open Editor" -msgstr "" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "" @@ -3869,7 +3864,7 @@ msgstr "" msgid "Subfolder:" msgstr "" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "" @@ -4004,6 +3999,12 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Open Editor" +msgstr "" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp msgid "Open Animation Node" msgstr "" @@ -4345,7 +4346,6 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "" @@ -4513,6 +4513,8 @@ msgid "Current:" msgstr "" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "" @@ -4717,6 +4719,10 @@ msgid "All" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp msgid "Import..." msgstr "" @@ -4995,20 +5001,23 @@ msgid "Ruler Mode" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Toggle snapping." +msgid "Toggle smart snapping." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +msgid "Use Smart Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snapping Options" +msgid "Toggle grid snapping." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to Grid" +msgid "Use Grid Snap" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snapping Options" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5098,8 +5107,7 @@ msgid "View" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +msgid "Always Show Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5359,6 +5367,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/curve_editor_plugin.cpp +msgid "Right click to add point" +msgstr "" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "" @@ -5988,6 +6000,10 @@ msgid "Grid" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Configure Grid:" msgstr "" @@ -6044,6 +6060,7 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "" @@ -6142,6 +6159,11 @@ msgid "Find Next" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Filter scripts" msgstr "" @@ -6407,6 +6429,11 @@ msgstr "" msgid "Cut" msgstr "" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "" @@ -6464,10 +6491,6 @@ msgid "Auto Indent" msgstr "" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "" - -#: editor/plugins/script_text_editor.cpp msgid "Find in Files..." msgstr "" @@ -6787,6 +6810,10 @@ msgid "Freelook Speed Modifier" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Slow Modifier" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -6820,6 +6847,10 @@ msgid "Use Local Space" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "" @@ -7046,6 +7077,10 @@ msgid "Simplification: " msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Shrink (Pixels): " +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "" @@ -7808,11 +7843,7 @@ msgid "(GLES3 only)" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add input +" -msgstr "" - -#: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add output +" +msgid "Add Output" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -7828,6 +7859,10 @@ msgid "Boolean" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sampler" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add input port" msgstr "" @@ -8684,12 +8719,14 @@ msgstr "" #: editor/project_export.cpp msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp @@ -9671,11 +9708,9 @@ msgid "" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." msgstr "" #: editor/scene_tree_dock.cpp @@ -9749,6 +9784,14 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "" + +#: editor/scene_tree_dock.cpp msgid "Open Documentation" msgstr "" @@ -9765,10 +9808,6 @@ msgid "Change Type" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Extend Script" -msgstr "" - -#: editor/scene_tree_dock.cpp msgid "Reparent to New Node" msgstr "" @@ -9995,23 +10034,15 @@ msgid "Will load an existing script file." msgstr "" #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Inherits" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Class Name" +msgid "Class Name:" msgstr "" #: editor/script_create_dialog.cpp -msgid "Template" +msgid "Template:" msgstr "" #: editor/script_create_dialog.cpp -msgid "Built-in Script" +msgid "Built-in Script:" msgstr "" #: editor/script_create_dialog.cpp @@ -10645,6 +10676,10 @@ msgid "Add Function" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Delete input port" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "" @@ -10653,6 +10688,22 @@ msgid "Add Signal" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Add Input Port" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Add Output Port" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Remove Input Port" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Remove Output Port" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "" @@ -10693,10 +10744,20 @@ msgid "Add Preload Node" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "" @@ -10721,6 +10782,10 @@ msgid "Connect Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Disconnect Nodes" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Connect Node Data" msgstr "" @@ -10753,6 +10818,26 @@ msgid "Paste VisualScript Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function with a function node." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Create Function" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "" @@ -10777,15 +10862,11 @@ msgid "Make Tool:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" +msgid "function_name" msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -10809,6 +10890,14 @@ msgid "Cut Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Make Function" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Refresh Graph" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Edit Member" msgstr "" @@ -10903,6 +10992,10 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "" @@ -11002,6 +11095,10 @@ msgid "Required icon is not specified in the preset." msgstr "" #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "" @@ -11539,10 +11636,6 @@ msgid "" "texture to some node for display." msgstr "" -#: scene/resources/visual_shader.cpp -msgid "Input" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for preview." msgstr "" diff --git a/editor/translations/th.po b/editor/translations/th.po index b61dca3f4a..2bd671a4f4 100644 --- a/editor/translations/th.po +++ b/editor/translations/th.po @@ -390,6 +390,7 @@ msgstr "เพิ่ม %d à¹à¸—ร็à¸à¹ƒà¸«à¸¡à¹ˆà¹à¸¥à¸°à¹€à¸žà¸´à¹ˆà¸¡à¸ #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "สร้าง" @@ -524,15 +525,6 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "เลืà¸à¸à¸—ั้งหมด" - -#: editor/animation_track_editor.cpp -msgid "Select None" -msgstr "ไม่เลืà¸à¸" - #: editor/animation_track_editor.cpp #, fuzzy msgid "Select an AnimationPlayer node to create and edit animations." @@ -675,8 +667,9 @@ msgid "Scale Ratio:" msgstr "à¸à¸±à¸•à¸£à¸²à¸ªà¹ˆà¸§à¸™à¹€à¸§à¸¥à¸²:" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" -msgstr "" +#, fuzzy +msgid "Select Tracks to Copy" +msgstr "เลืà¸à¸à¸„ุณสมบัติ" #: editor/animation_track_editor.cpp editor/editor_log.cpp #: editor/editor_properties.cpp @@ -687,6 +680,11 @@ msgstr "" msgid "Copy" msgstr "คัดลà¸à¸" +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Select All/None" +msgstr "ไม่เลืà¸à¸" + #: editor/animation_track_editor_plugins.cpp #, fuzzy msgid "Add Audio Track Clip" @@ -1027,7 +1025,7 @@ msgid "Resource" msgstr "รีซà¸à¸£à¹Œà¸ª" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "ตำà¹à¸«à¸™à¹ˆà¸‡" @@ -1500,7 +1498,8 @@ msgstr "เพิ่มà¸à¸à¹‚ต้โหลด" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "ตำà¹à¸«à¸™à¹ˆà¸‡:" @@ -1555,7 +1554,7 @@ msgstr "สร้างโฟลเดà¸à¸£à¹Œ" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "ชื่à¸:" @@ -1981,6 +1980,7 @@ msgid "Class:" msgstr "คลาส:" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "สืบทà¸à¸”จาà¸:" @@ -3051,7 +3051,7 @@ msgstr "คุณสมบัติ" msgid "Expand Bottom Panel" msgstr "ขยายโฟลเดà¸à¸£à¹Œ" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "ข้à¸à¸„วาม" @@ -3296,6 +3296,11 @@ msgstr "เลืà¸à¸ Viewport" msgid "New Script" msgstr "สคริปต์ใหม่" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +#, fuzzy +msgid "Extend Script" +msgstr "เปิดสคริปต์" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "%s ใหม่" @@ -3322,14 +3327,6 @@ msgstr "วาง" msgid "Convert To %s" msgstr "à¹à¸›à¸¥à¸‡à¹€à¸›à¹‡à¸™ %s" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy -msgid "Open Editor" -msgstr "เปิดในโปรà¹à¸à¸£à¸¡à¹à¸à¹‰à¹„ข" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "โหนดที่เลืà¸à¸à¹„ม่ใช่ Viewport!" @@ -4159,7 +4156,7 @@ msgstr "ปลั๊à¸à¸à¸´à¸™" msgid "Subfolder:" msgstr "" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp #, fuzzy msgid "Language:" msgstr "ภาษา" @@ -4315,6 +4312,13 @@ msgstr "ย้ายจุด" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +#, fuzzy +msgid "Open Editor" +msgstr "เปิดในโปรà¹à¸à¸£à¸¡à¹à¸à¹‰à¹„ข" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp #, fuzzy msgid "Open Animation Node" @@ -4687,7 +4691,6 @@ msgstr "ชื่à¸à¹à¸à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "ผิดพลาด!" @@ -4865,6 +4868,8 @@ msgid "Current:" msgstr "ปัจจุบัน:" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "เพิ่มà¸à¸´à¸™à¸žà¸¸à¸•" @@ -5079,6 +5084,10 @@ msgid "All" msgstr "ทั้งหมด" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy msgid "Import..." msgstr "นำเข้าà¸à¸µà¸à¸„รั้ง..." @@ -5390,25 +5399,30 @@ msgstr "โหมดà¸à¸²à¸£à¸—ำงาน:" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Toggle snapping." +msgid "Toggle smart snapping." msgstr "เปิด/ปิด à¸à¸²à¸£à¸ˆà¸³à¸à¸±à¸”" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +#, fuzzy +msgid "Use Smart Snap" msgstr "จำà¸à¸±à¸”à¸à¸²à¸£à¹€à¸„ลื่à¸à¸™à¸¢à¹‰à¸²à¸¢" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Snapping Options" -msgstr "ตัวเลืà¸à¸à¸à¸²à¸£à¸ˆà¸³à¸à¸±à¸”" +msgid "Toggle grid snapping." +msgstr "เปิด/ปิด à¸à¸²à¸£à¸ˆà¸³à¸à¸±à¸”" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Snap to Grid" +msgid "Use Grid Snap" msgstr "จำà¸à¸±à¸”ด้วยเส้นตาราง" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Snapping Options" +msgstr "ตัวเลืà¸à¸à¸à¸²à¸£à¸ˆà¸³à¸à¸±à¸”" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Rotation Snap" msgstr "จำà¸à¸±à¸”à¸à¸²à¸£à¸«à¸¡à¸¸à¸™" @@ -5504,8 +5518,8 @@ msgid "View" msgstr "มุมมà¸à¸‡" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +#, fuzzy +msgid "Always Show Grid" msgstr "à¹à¸ªà¸”งเส้นตาราง" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5784,6 +5798,11 @@ msgstr "เปิด/ปิดเส้นสัมผัสà¹à¸™à¸§à¹‚ค้ภmsgid "Hold Shift to edit tangents individually" msgstr "à¸à¸” Shift ค้างเพื่à¸à¸›à¸£à¸±à¸šà¹€à¸ªà¹‰à¸™à¸ªà¸±à¸¡à¸œà¸±à¸ªà¹à¸¢à¸à¸à¸±à¸™" +#: editor/plugins/curve_editor_plugin.cpp +#, fuzzy +msgid "Right click to add point" +msgstr "คลิà¸à¸‚วา: ลบจุด" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "สร้าง GI Probe" @@ -6437,6 +6456,10 @@ msgid "Grid" msgstr "เส้นตาราง" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "à¹à¸ªà¸”งเส้นตาราง" + +#: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy msgid "Configure Grid:" msgstr "ตั้งค่าà¸à¸²à¸£à¸ˆà¸³à¸à¸±à¸”" @@ -6499,6 +6522,7 @@ msgstr "à¸à¸´à¸™à¸ªà¹à¸•à¸™à¸‹à¹Œ:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "ประเภท:" @@ -6609,6 +6633,11 @@ msgid "Find Next" msgstr "ค้นหาต่à¸à¹„ป" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "ค้นหาà¸à¹ˆà¸à¸™à¸«à¸™à¹‰à¸²" + +#: editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Filter scripts" msgstr "ตัวà¸à¸£à¸à¸‡" @@ -6895,6 +6924,11 @@ msgstr "ลบจุด" msgid "Cut" msgstr "ตัด" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "เลืà¸à¸à¸—ั้งหมด" + #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "ลบบรรทัด" @@ -6955,10 +6989,6 @@ msgid "Auto Indent" msgstr "ย่à¸à¸«à¸™à¹‰à¸²à¸à¸±à¸•à¹‚นมัติ" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "ค้นหาà¸à¹ˆà¸à¸™à¸«à¸™à¹‰à¸²" - -#: editor/plugins/script_text_editor.cpp #, fuzzy msgid "Find in Files..." msgstr "คัดà¸à¸£à¸à¸‡à¹„ฟล์..." @@ -7301,6 +7331,11 @@ msgid "Freelook Speed Modifier" msgstr "ปรับความเร็วมุมมà¸à¸‡à¸à¸´à¸ªà¸£à¸°" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Freelook Slow Modifier" +msgstr "ปรับความเร็วมุมมà¸à¸‡à¸à¸´à¸ªà¸£à¸°" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -7340,6 +7375,10 @@ msgid "Use Local Space" msgstr "โหมดพิà¸à¸±à¸”ภายใน (%s)" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "จำà¸à¸±à¸”à¸à¸²à¸£à¹€à¸„ลื่à¸à¸™à¸¢à¹‰à¸²à¸¢" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "มุมล่าง" @@ -7581,6 +7620,11 @@ msgstr "" #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy +msgid "Shrink (Pixels): " +msgstr "Snap (พิà¸à¹€à¸‹à¸¥):" + +#: editor/plugins/sprite_editor_plugin.cpp +#, fuzzy msgid "Grow (Pixels): " msgstr "Snap (พิà¸à¹€à¸‹à¸¥):" @@ -8436,12 +8480,7 @@ msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy -msgid "Add input +" -msgstr "เพิ่มà¸à¸´à¸™à¸žà¸¸à¸•" - -#: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy -msgid "Add output +" +msgid "Add Output" msgstr "เพิ่มà¸à¸´à¸™à¸žà¸¸à¸•" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -8460,6 +8499,11 @@ msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy +msgid "Sampler" +msgstr "ไฟล์เสียง" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy msgid "Add input port" msgstr "เพิ่มà¸à¸´à¸™à¸žà¸¸à¸•" @@ -9361,13 +9405,17 @@ msgid "Resources to export:" msgstr "รีซà¸à¸£à¹Œà¸ªà¸—ี่จะส่งà¸à¸à¸:" #: editor/project_export.cpp +#, fuzzy msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "ตัวà¸à¸£à¸à¸‡à¹„ฟล์ที่จะส่งà¸à¸à¸à¹€à¸žà¸´à¹ˆà¸¡à¹€à¸•à¸´à¸¡ (คั่นด้วยจุลภาค ตัวà¸à¸¢à¹ˆà¸²à¸‡à¹€à¸Šà¹ˆà¸™: *.json, *.txt)" #: editor/project_export.cpp +#, fuzzy msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "ตัวà¸à¸£à¸à¸‡à¹„ฟล์ที่จะไม่ส่งà¸à¸à¸ (คั่นด้วยจุลภาค ตัวà¸à¸¢à¹ˆà¸²à¸‡à¹€à¸Šà¹ˆà¸™: *.json, *.txt)" #: editor/project_export.cpp @@ -10405,12 +10453,10 @@ msgid "" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "à¹à¸à¹‰à¹„ขโหนดลูà¸à¹„ด้" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" -msgstr "โหลดเป็นตัวà¹à¸—น" +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." +msgstr "" #: editor/scene_tree_dock.cpp #, fuzzy @@ -10491,6 +10537,14 @@ msgid "Clear Inheritance" msgstr "ลบà¸à¸²à¸£à¸ªà¸·à¸šà¸—à¸à¸”" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "à¹à¸à¹‰à¹„ขโหนดลูà¸à¹„ด้" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "โหลดเป็นตัวà¹à¸—น" + +#: editor/scene_tree_dock.cpp #, fuzzy msgid "Open Documentation" msgstr "เปิดคู่มืà¸" @@ -10510,11 +10564,6 @@ msgstr "เปลี่ยนประเภท" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Extend Script" -msgstr "เปิดสคริปต์" - -#: editor/scene_tree_dock.cpp -#, fuzzy msgid "Reparent to New Node" msgstr "หาโหนดà¹à¸¡à¹ˆà¹ƒà¸«à¸¡à¹ˆ" @@ -10781,23 +10830,18 @@ msgid "Will load an existing script file." msgstr "โหลดสคริปต์จาà¸à¸”ิสà¸à¹Œ" #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "ภาษา" - -#: editor/script_create_dialog.cpp -msgid "Inherits" -msgstr "สืบทà¸à¸”จาà¸" - -#: editor/script_create_dialog.cpp -msgid "Class Name" +#, fuzzy +msgid "Class Name:" msgstr "ชื่à¸à¸„ลาส" #: editor/script_create_dialog.cpp -msgid "Template" +#, fuzzy +msgid "Template:" msgstr "à¹à¸¡à¹ˆà¹à¸šà¸š" #: editor/script_create_dialog.cpp -msgid "Built-in Script" +#, fuzzy +msgid "Built-in Script:" msgstr "à¸à¸±à¸‡à¸ªà¸„ริปต์" #: editor/script_create_dialog.cpp @@ -11462,6 +11506,11 @@ msgid "Add Function" msgstr "เพิ่มฟังà¸à¹Œà¸Šà¸±à¸™" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Delete input port" +msgstr "ลบจุด" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "เพิ่มตัวà¹à¸›à¸£" @@ -11470,6 +11519,26 @@ msgid "Add Signal" msgstr "เพิ่มสัà¸à¸à¸²à¸“" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Input Port" +msgstr "เพิ่มà¸à¸´à¸™à¸žà¸¸à¸•" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Output Port" +msgstr "เพิ่มà¸à¸´à¸™à¸žà¸¸à¸•" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Input Port" +msgstr "ลบจุด" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Output Port" +msgstr "ลบจุด" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "à¹à¸à¹‰à¹„ขสมà¸à¸²à¸£" @@ -11510,10 +11579,20 @@ msgid "Add Preload Node" msgstr "เพิ่มโหนด Preload" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "เพิ่มโหนดจาà¸à¸œà¸±à¸‡" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "เพิ่มตัวรับคุณสมบัติ" @@ -11539,6 +11618,11 @@ msgstr "เชื่à¸à¸¡à¹‚หนด" #: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Disconnect Nodes" +msgstr "ตัดà¸à¸²à¸£à¹€à¸Šà¸·à¹ˆà¸à¸¡à¸•à¹ˆà¸à¹‚หนด" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Connect Node Data" msgstr "เชื่à¸à¸¡à¹‚หนด" @@ -11573,6 +11657,28 @@ msgid "Paste VisualScript Nodes" msgstr "วางโหนด" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Can't create function with a function node." +msgstr "คัดลà¸à¸à¹‚หนดฟังà¸à¹Œà¸Šà¸±à¸™à¹„ม่ได้" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Create Function" +msgstr "เปลี่ยนชื่à¸à¸Ÿà¸±à¸‡à¸à¹Œà¸Šà¸±à¸™" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "ลบฟังà¸à¹Œà¸Šà¸±à¸™" @@ -11598,16 +11704,13 @@ msgid "Make Tool:" msgstr "ระยะใà¸à¸¥à¹‰" #: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "ชนิด:" - -#: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "ตัวà¹à¸›à¸£:" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" -msgstr "โหนดที่มีให้ใช้:" +#, fuzzy +msgid "function_name" +msgstr "ฟังà¸à¹Œà¸Šà¸±à¸™:" #: modules/visual_script/visual_script_editor.cpp #, fuzzy @@ -11632,6 +11735,16 @@ msgstr "ตัดโหนด" #: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Make Function" +msgstr "เปลี่ยนชื่à¸à¸Ÿà¸±à¸‡à¸à¹Œà¸Šà¸±à¸™" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Refresh Graph" +msgstr "รีเฟรช" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Edit Member" msgstr "ตัวà¹à¸›à¸£" @@ -11727,6 +11840,10 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "เลืà¸à¸à¸à¸¸à¸›à¸à¸£à¸“์จาà¸à¸£à¸²à¸¢à¸Šà¸·à¹ˆà¸" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "" @@ -11829,6 +11946,10 @@ msgid "Required icon is not specified in the preset." msgstr "" #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "รันในเบราเซà¸à¸£à¹Œ" @@ -12434,11 +12555,6 @@ msgstr "" "ให้à¹à¸à¹‰à¹„ขโหนดนี้ให้เป็นโหนดลูà¸à¸‚à¸à¸‡ Control à¹à¸•à¹ˆà¸–้าไม่ ให้ปรับเป็น render target à¹à¸¥à¸°à¸™à¸³à¹„ปใช้เป็น " "texture ขà¸à¸‡à¹‚หนดà¸à¸·à¹ˆà¸™" -#: scene/resources/visual_shader.cpp -#, fuzzy -msgid "Input" -msgstr "เพิ่มà¸à¸´à¸™à¸žà¸¸à¸•" - #: scene/resources/visual_shader_nodes.cpp #, fuzzy msgid "Invalid source for preview." @@ -12470,6 +12586,30 @@ msgstr "" msgid "Constants cannot be modified." msgstr "" +#, fuzzy +#~ msgid "Snap to Grid" +#~ msgstr "จำà¸à¸±à¸”ด้วยเส้นตาราง" + +#, fuzzy +#~ msgid "Add input +" +#~ msgstr "เพิ่มà¸à¸´à¸™à¸žà¸¸à¸•" + +#~ msgid "Language" +#~ msgstr "ภาษา" + +#~ msgid "Inherits" +#~ msgstr "สืบทà¸à¸”จาà¸" + +#~ msgid "Base Type:" +#~ msgstr "ชนิด:" + +#~ msgid "Available Nodes:" +#~ msgstr "โหนดที่มีให้ใช้:" + +#, fuzzy +#~ msgid "Input" +#~ msgstr "เพิ่มà¸à¸´à¸™à¸žà¸¸à¸•" + #~ msgid "Properties:" #~ msgstr "คุณสมบัติ:" @@ -12682,9 +12822,6 @@ msgstr "" #~ msgid "Go to parent folder" #~ msgstr "ไปยังโฟลเดà¸à¸£à¹Œà¸«à¸¥à¸±à¸" -#~ msgid "Select device from the list" -#~ msgstr "เลืà¸à¸à¸à¸¸à¸›à¸à¸£à¸“์จาà¸à¸£à¸²à¸¢à¸Šà¸·à¹ˆà¸" - #~ msgid "Open Scene(s)" #~ msgstr "เปิดไฟล์ฉาà¸" @@ -12927,9 +13064,6 @@ msgstr "" #~ msgid "Warning" #~ msgstr "คำเตืà¸à¸™" -#~ msgid "Function:" -#~ msgstr "ฟังà¸à¹Œà¸Šà¸±à¸™:" - #~ msgid "Variable" #~ msgstr "ตัวà¹à¸›à¸£" @@ -12993,9 +13127,6 @@ msgstr "" #~ msgid "Connect Graph Nodes" #~ msgstr "เชื่à¸à¸¡à¸•à¹ˆà¸à¹‚หนด" -#~ msgid "Disconnect Graph Nodes" -#~ msgstr "ตัดà¸à¸²à¸£à¹€à¸Šà¸·à¹ˆà¸à¸¡à¸•à¹ˆà¸à¹‚หนด" - #~ msgid "Remove Shader Graph Node" #~ msgstr "ลบโหนด" @@ -14059,9 +14190,6 @@ msgstr "" #~ msgid "Shrink By:" #~ msgstr "ลดไป:" -#~ msgid "Samples" -#~ msgstr "ไฟล์เสียง" - #~ msgid "Sample Conversion Mode: (.wav files):" #~ msgstr "à¸à¸²à¸£à¹à¸›à¸¥à¸‡à¹„ฟล์เสียง: (ไฟล์ .wav):" diff --git a/editor/translations/tr.po b/editor/translations/tr.po index 5f87d558a8..2673676cb8 100644 --- a/editor/translations/tr.po +++ b/editor/translations/tr.po @@ -9,7 +9,7 @@ # Enescan Yerlikaya <enescanyerlikaya@gmail.com>, 2017. # Fatih Mert DoÄŸancan <fatihmertdogancan@hotmail.com>, 2017. # hubbyist <hub@legrud.net>, 2017. -# H.Hüseyin CÄ°HANGÄ°R <hashusfb@gmail.com>, 2018. +# H.Hüseyin CÄ°HANGÄ°R <hashusfb@gmail.com>, 2018, 2019. # Kaan Gül <qaantum@hotmail.com>, 2018. # M. Yavuz Uzun <myavuzuzun@yandex.com>, 2016. # monolifed <monolifed@gmail.com>, 2018. @@ -34,12 +34,16 @@ # rayray61 <laladodo000@gmail.com>, 2019. # enesygt <enesyigittt@gmail.com>, 2019. # Mustafa Turhan <odunluzikkim@gmail.com>, 2019. +# Ullima <nacej@my6mail.com>, 2019. +# Bera Koklu <bkoklu001@student.hampton.k12.va.us>, 2019. +# Mehmet AKDEMÄ°R <mamoo81@gmail.com>, 2019. +# Oguz Ersen <oguzersen@protonmail.com>, 2019. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-09-26 11:50+0000\n" -"Last-Translator: Mustafa Turhan <odunluzikkim@gmail.com>\n" +"PO-Revision-Date: 2019-10-27 07:47+0000\n" +"Last-Translator: Oguz Ersen <oguzersen@protonmail.com>\n" "Language-Team: Turkish <https://hosted.weblate.org/projects/godot-engine/" "godot/tr/>\n" "Language: tr\n" @@ -47,7 +51,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 3.9-dev\n" +"X-Generator: Weblate 3.9.1-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -92,32 +96,31 @@ msgstr "'%s' çaÄŸrıldığında:" #: core/ustring.cpp msgid "B" -msgstr "" +msgstr "B" #: core/ustring.cpp msgid "KiB" -msgstr "" +msgstr "KB" #: core/ustring.cpp -#, fuzzy msgid "MiB" -msgstr "Çırp" +msgstr "MiB" #: core/ustring.cpp msgid "GiB" -msgstr "" +msgstr "GiB" #: core/ustring.cpp msgid "TiB" -msgstr "" +msgstr "TiB" #: core/ustring.cpp msgid "PiB" -msgstr "" +msgstr "PiB" #: core/ustring.cpp msgid "EiB" -msgstr "" +msgstr "EiB" #: editor/animation_bezier_editor.cpp msgid "Free" @@ -383,6 +386,7 @@ msgstr "%d YENÄ° izler oluÅŸtur ve anahtarlar gir?" #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "OluÅŸtur" @@ -525,15 +529,6 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "Uyarı: İçe aktarılan animasyonu düzenleme" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "Hepsini seç" - -#: editor/animation_track_editor.cpp -msgid "Select None" -msgstr "Hiçbir Åžey Seçilmedi" - #: editor/animation_track_editor.cpp #, fuzzy msgid "Select an AnimationPlayer node to create and edit animations." @@ -671,7 +666,8 @@ msgid "Scale Ratio:" msgstr "Ölçek Oranı:" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" +#, fuzzy +msgid "Select Tracks to Copy" msgstr "Kopyalanacak izleri seç:" #: editor/animation_track_editor.cpp editor/editor_log.cpp @@ -683,6 +679,11 @@ msgstr "Kopyalanacak izleri seç:" msgid "Copy" msgstr "Tıpkıla" +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Select All/None" +msgstr "Hiçbir Åžey Seçilmedi" + #: editor/animation_track_editor_plugins.cpp msgid "Add Audio Track Clip" msgstr "Ses Ä°z Klipsi Ekle" @@ -1006,7 +1007,7 @@ msgid "Resource" msgstr "Kaynak" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "Yol" @@ -1276,9 +1277,8 @@ msgid "Delete Bus Effect" msgstr "Bus Efekti Sil" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Drag & drop to rearrange." -msgstr "Audio Bus, düzenlemek için Sürükle-Bırak." +msgstr "Düzenlemek için Sürükle-Bırak." #: editor/editor_audio_buses.cpp msgid "Solo" @@ -1351,7 +1351,7 @@ msgstr "Audio Bus YerleÅŸim Düzenini Aç" #: editor/editor_audio_buses.cpp msgid "There is no '%s' file." -msgstr "'%s' dosyası bulunamadı" +msgstr "'%s' dosyası bulunamadı." #: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp msgid "Layout" @@ -1469,7 +1469,8 @@ msgstr "KendindenYüklenme Ekle" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "Dosya yolu:" @@ -1480,7 +1481,7 @@ msgstr "Düğüm adı:" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp #: editor/editor_profiler.cpp editor/settings_config_dialog.cpp msgid "Name" -msgstr "Ad" +msgstr "Ä°sim" #: editor/editor_autoload_settings.cpp msgid "Singleton" @@ -1523,7 +1524,7 @@ msgstr "Klasör OluÅŸtur" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "Ä°sim:" @@ -1614,14 +1615,12 @@ msgid "Scene Tree Editing" msgstr "Sahne AÄŸacı (Düğümler):" #: editor/editor_feature_profile.cpp -#, fuzzy msgid "Import Dock" -msgstr "İçe Aktar" +msgstr "Dock İçe Aktar" #: editor/editor_feature_profile.cpp -#, fuzzy msgid "Node Dock" -msgstr "Biçimi Taşı" +msgstr "Dock Nod" #: editor/editor_feature_profile.cpp msgid "FileSystem and Import Docks" @@ -1636,23 +1635,20 @@ msgid "Profile must be a valid filename and must not contain '.'" msgstr "Profil geçerli bir dosya adı olmalı ve '.' içermemelidir" #: editor/editor_feature_profile.cpp -#, fuzzy msgid "Profile with this name already exists." -msgstr "Bu isimde zaten bir dosya ve ya klasör mevcut." +msgstr "Bu isimde zaten bir profil mevcut." #: editor/editor_feature_profile.cpp -#, fuzzy msgid "(Editor Disabled, Properties Disabled)" -msgstr "(Editör Devre Dışı, Özellikler Devre Dışı)" +msgstr "(Editör Pasif, Özellikler Pasif)" #: editor/editor_feature_profile.cpp msgid "(Properties Disabled)" msgstr "(Özellikler Devre Dışı)" #: editor/editor_feature_profile.cpp -#, fuzzy msgid "(Editor Disabled)" -msgstr "Klip Devre dışı" +msgstr "Editör Devre dışı" #: editor/editor_feature_profile.cpp msgid "Class Options:" @@ -1663,26 +1659,22 @@ msgid "Enable Contextual Editor" msgstr "İçeriksel Düzenleyiciyi EtkinleÅŸtir" #: editor/editor_feature_profile.cpp -#, fuzzy msgid "Enabled Properties:" -msgstr "Özellikler:" +msgstr "Etkin Özellikler:" #: editor/editor_feature_profile.cpp -#, fuzzy msgid "Enabled Features:" -msgstr "Özellikler" +msgstr "Aktif Özellikler:" #: editor/editor_feature_profile.cpp -#, fuzzy msgid "Enabled Classes:" -msgstr "Sınıfları Ara" +msgstr "Aktif Sınıflar:" #: editor/editor_feature_profile.cpp msgid "File '%s' format is invalid, import aborted." msgstr "'%s' dosyası geçersiz, içe aktarma iptal edildi." #: editor/editor_feature_profile.cpp -#, fuzzy msgid "" "Profile '%s' already exists. Remove it first before importing, import " "aborted." @@ -1690,24 +1682,20 @@ msgstr "" "'%s' profili zaten var. İçe aktarmadan önce silin, içe aktarma iptal edildi." #: editor/editor_feature_profile.cpp -#, fuzzy msgid "Error saving profile to path: '%s'." -msgstr "Åžablon '%s' yüklenirken hata" +msgstr "Profil yolu kaydetme hatası: '%s'." #: editor/editor_feature_profile.cpp -#, fuzzy msgid "Unset" -msgstr "Ayarını kaldır" +msgstr "Ayarı kaldır" #: editor/editor_feature_profile.cpp -#, fuzzy msgid "Current Profile:" -msgstr "Åžu Anki Sürüm:" +msgstr "Åžu Anki Profil:" #: editor/editor_feature_profile.cpp -#, fuzzy msgid "Make Current" -msgstr "Geçerli:" +msgstr "Geçerli Yap" #: editor/editor_feature_profile.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -1725,37 +1713,30 @@ msgid "Export" msgstr "Dışa Aktar" #: editor/editor_feature_profile.cpp -#, fuzzy msgid "Available Profiles:" -msgstr "Kullanılabilir Düğümler:" +msgstr "Kullanılabilir Profiller:" #: editor/editor_feature_profile.cpp -#, fuzzy msgid "Class Options" -msgstr "Sınıf Açıklaması" +msgstr "Sınıf Seçenekleri" #: editor/editor_feature_profile.cpp -#, fuzzy msgid "New profile name:" -msgstr "Yeni alan adı:" +msgstr "Yeni profil ismi:" #: editor/editor_feature_profile.cpp -#, fuzzy msgid "Erase Profile" -msgstr "Alanı Sil" +msgstr "Profili Sil" #: editor/editor_feature_profile.cpp -#, fuzzy msgid "Import Profile(s)" -msgstr "İçe Aktarılan Proje(ler)" +msgstr "Profil(leri) İçe Aktar" #: editor/editor_feature_profile.cpp -#, fuzzy msgid "Export Profile" -msgstr "Projeyi Dışa Aktar" +msgstr "Profil Dışa Aktar" #: editor/editor_feature_profile.cpp -#, fuzzy msgid "Manage Editor Feature Profiles" msgstr "Dışa Aktarım Åžablonlarını Yönet" @@ -1807,7 +1788,7 @@ msgstr "Bir Dosya Aç" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Open File(s)" -msgstr "Dosya(leri) Aç" +msgstr "Dosya(ları) Aç" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Open a Directory" @@ -1865,19 +1846,16 @@ msgid "Move Favorite Down" msgstr "BeÄŸenileni AÅŸağı Taşı" #: editor/editor_file_dialog.cpp -#, fuzzy msgid "Go to previous folder." -msgstr "Önceki klasöre git" +msgstr "Önceki klasöre git." #: editor/editor_file_dialog.cpp -#, fuzzy msgid "Go to next folder." -msgstr "Sonraki klasöre git" +msgstr "Sonraki klasöre git." #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp -#, fuzzy msgid "Go to parent folder." -msgstr "Asıl klasöre git" +msgstr "Ãœst klasöre git." #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Refresh files." @@ -1888,14 +1866,12 @@ msgid "(Un)favorite current folder." msgstr "Bu klasörü favorilerden çıkar/favorilere ekle." #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp -#, fuzzy msgid "Toggle the visibility of hidden files." -msgstr "Gizli Dosyalari Aç / Kapat" +msgstr "Gizli Dosyaları Aç / Kapat." #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#, fuzzy msgid "View items as a grid of thumbnails." -msgstr "Öğeleri küçük resim ızgarası ÅŸeklinde göster" +msgstr "Öğeleri küçük resim ızgarası ÅŸeklinde göster." #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a list." @@ -1945,6 +1921,7 @@ msgid "Class:" msgstr "Sınıf:" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "Kalıtçılar:" @@ -1953,9 +1930,8 @@ msgid "Inherited by:" msgstr "Åžundan miras alındı:" #: editor/editor_help.cpp -#, fuzzy msgid "Brief Description" -msgstr "Kısa Açıklama:" +msgstr "Kısa Açıklama" #: editor/editor_help.cpp msgid "Properties" @@ -1986,9 +1962,8 @@ msgid "Class Description" msgstr "Sınıf Açıklaması" #: editor/editor_help.cpp -#, fuzzy msgid "Online Tutorials" -msgstr "Çevrimiçi Rehberler:" +msgstr "Çevrimiçi Rehberler" #: editor/editor_help.cpp msgid "" @@ -2111,7 +2086,7 @@ msgstr "BaÅŸlat" #: editor/editor_network_profiler.cpp msgid "%s/s" -msgstr "" +msgstr "%s/s" #: editor/editor_network_profiler.cpp msgid "Down" @@ -2127,19 +2102,19 @@ msgstr "Düğüm" #: editor/editor_network_profiler.cpp msgid "Incoming RPC" -msgstr "" +msgstr "Gelen RPC" #: editor/editor_network_profiler.cpp msgid "Incoming RSET" -msgstr "" +msgstr "Gelen RSET" #: editor/editor_network_profiler.cpp msgid "Outgoing RPC" -msgstr "" +msgstr "Giden RPC" #: editor/editor_network_profiler.cpp msgid "Outgoing RSET" -msgstr "" +msgstr "Giden RSET" #: editor/editor_node.cpp editor/project_manager.cpp msgid "New Window" @@ -2163,7 +2138,6 @@ msgid "Error saving resource!" msgstr "Kaynak kaydedilirken hata!" #: editor/editor_node.cpp -#, fuzzy msgid "" "This resource can't be saved because it does not belong to the edited scene. " "Make it unique first." @@ -2727,17 +2701,16 @@ msgid "Project Settings..." msgstr "Proje Ayarları..." #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Version Control" -msgstr "Sürüm:" +msgstr "Sürüm Kontrol" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Set Up Version Control" -msgstr "" +msgstr "Sürüm Kontrolü Kur" #: editor/editor_node.cpp msgid "Shut Down Version Control" -msgstr "" +msgstr "Sürüm Kontrolü Kapat" #: editor/editor_node.cpp msgid "Export..." @@ -2757,9 +2730,8 @@ msgid "Tools" msgstr "Araçlar" #: editor/editor_node.cpp -#, fuzzy msgid "Orphan Resource Explorer..." -msgstr "Orphan Kaynak AraÅŸtırıcı" +msgstr "Orphan Kaynak Göstericisi..." #: editor/editor_node.cpp msgid "Quit to Project List" @@ -2784,7 +2756,7 @@ msgstr "" #: editor/editor_node.cpp msgid "Small Deploy with Network FS" -msgstr "AÄŸ DS'li Küçük Dağıtım" +msgstr "AÄŸ DS ile Küçük Dağıtım" #: editor/editor_node.cpp msgid "" @@ -2862,9 +2834,8 @@ msgid "Editor" msgstr "Düzenleyici" #: editor/editor_node.cpp -#, fuzzy msgid "Editor Settings..." -msgstr "Düzenleyici Ayarları" +msgstr "Düzenleyici Ayarları..." #: editor/editor_node.cpp msgid "Editor Layout" @@ -2883,9 +2854,8 @@ msgid "Toggle Fullscreen" msgstr "Tam Ekran Aç / Kapat" #: editor/editor_node.cpp -#, fuzzy msgid "Toggle System Console" -msgstr "CanvasItem'ı Görünür Duruma Getir" +msgstr "Sistem Terminalini Aç / Kapat" #: editor/editor_node.cpp msgid "Open Editor Data/Settings Folder" @@ -2900,14 +2870,12 @@ msgid "Open Editor Settings Folder" msgstr "Düzenleyici Ayarları Klasörünü Aç" #: editor/editor_node.cpp -#, fuzzy msgid "Manage Editor Features..." -msgstr "Düzenleyici Åžablonlarını Yönet..." +msgstr "Düzenleyici Özelliklerini Yönet..." #: editor/editor_node.cpp -#, fuzzy msgid "Manage Export Templates..." -msgstr "Dışa Aktarım Åžablonlarını Yönet" +msgstr "Dışa Aktarım Åžablonlarını Yönet..." #: editor/editor_node.cpp editor/plugins/shader_editor_plugin.cpp msgid "Help" @@ -2928,7 +2896,6 @@ msgid "Online Docs" msgstr "Çevrimiçi Belgeler" #: editor/editor_node.cpp -#, fuzzy msgid "Q&A" msgstr "S&C" @@ -2995,19 +2962,16 @@ msgid "Spins when the editor window redraws." msgstr "Düzenleyici penceresi yeniden boyandığında döner." #: editor/editor_node.cpp -#, fuzzy msgid "Update Continuously" -msgstr "Kesintisiz Güncelle" +msgstr "Sürekli Güncelle" #: editor/editor_node.cpp -#, fuzzy msgid "Update When Changed" -msgstr "DeÄŸiÅŸtirildiÄŸinde güncelle" +msgstr "DeÄŸiÅŸiklik OlduÄŸunda Güncelle" #: editor/editor_node.cpp -#, fuzzy msgid "Hide Update Spinner" -msgstr "Güncelleme Topacını Devre Dışı Bırak" +msgstr "Güncelleme Topacını Gizle" #: editor/editor_node.cpp msgid "FileSystem" @@ -3021,7 +2985,7 @@ msgstr "Denetçi" msgid "Expand Bottom Panel" msgstr "Alt Panoyu GeniÅŸlet" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "Çıktı" @@ -3030,14 +2994,12 @@ msgid "Don't Save" msgstr "Kaydetme" #: editor/editor_node.cpp -#, fuzzy msgid "Android build template is missing, please install relevant templates." -msgstr "Android yapı ÅŸablonu eksik, lütfen ilgili ÅŸablonları yükleyin." +msgstr "Android yapı ÅŸablonu eksik, lütfen uygun ÅŸablonları yükleyin." #: editor/editor_node.cpp -#, fuzzy msgid "Manage Templates" -msgstr "Dışa Aktarım Åžablonlarını Yönet" +msgstr "Åžablonlarını Yönet" #: editor/editor_node.cpp msgid "" @@ -3111,7 +3073,7 @@ msgstr "Betik Düzenleyiciyi Aç" #: editor/editor_node.cpp editor/project_manager.cpp msgid "Open Asset Library" -msgstr "Malvarlığı Kütüphanesini Aç" +msgstr "Projeler Kütüphanesini Aç" #: editor/editor_node.cpp msgid "Open the next Editor" @@ -3122,9 +3084,8 @@ msgid "Open the previous Editor" msgstr "Önceki Düzenleyiciyi Aç" #: editor/editor_path.cpp -#, fuzzy msgid "No sub-resources found." -msgstr "Yüzey kaynağı belirtilmedi." +msgstr "Alt kaynağı bulunamadı." #: editor/editor_plugin.cpp msgid "Creating Mesh Previews" @@ -3135,9 +3096,8 @@ msgid "Thumbnail..." msgstr "Küçük Resim..." #: editor/editor_plugin_settings.cpp -#, fuzzy msgid "Main Script:" -msgstr "Betik Aç" +msgstr "Ana Betik:" #: editor/editor_plugin_settings.cpp msgid "Edit Plugin" @@ -3209,9 +3169,8 @@ msgid "Calls" msgstr "ÇaÄŸrılar" #: editor/editor_properties.cpp -#, fuzzy msgid "Edit Text:" -msgstr "Tema düzenle..." +msgstr "Metin Düzenle:" #: editor/editor_properties.cpp editor/script_create_dialog.cpp msgid "On" @@ -3247,7 +3206,6 @@ msgstr "" "uyuÅŸmuyor." #: editor/editor_properties.cpp -#, fuzzy msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." @@ -3257,7 +3215,6 @@ msgstr "" "Kaynak bir sahneye ait olmalı." #: editor/editor_properties.cpp -#, fuzzy msgid "" "Can't create a ViewportTexture on this resource because it's not set as " "local to scene.\n" @@ -3277,6 +3234,11 @@ msgstr "Bir Görüntükapısı Seçin" msgid "New Script" msgstr "Yeni Betik" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +#, fuzzy +msgid "Extend Script" +msgstr "Betik Aç" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "Yeni %s" @@ -3303,13 +3265,6 @@ msgstr "Yapıştır" msgid "Convert To %s" msgstr "Åžuna Dönüştür %s" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Open Editor" -msgstr "Düzenleyiciyi Aç" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "Seçili düğüm bir Viewport deÄŸil!" @@ -3492,9 +3447,8 @@ msgid "Download Complete." msgstr "Ä°ndirme Tamamlandı." #: editor/export_template_manager.cpp -#, fuzzy msgid "Cannot remove temporary file:" -msgstr "Tema dosyaya kaydedilemiyor:" +msgstr "Geçici dosya kaldırılamıyor:" #: editor/export_template_manager.cpp #, fuzzy @@ -3506,9 +3460,8 @@ msgstr "" "'%s'." #: editor/export_template_manager.cpp -#, fuzzy msgid "Error requesting URL:" -msgstr "Url isteÄŸi hatası: " +msgstr "URL isteÄŸi hatası:" #: editor/export_template_manager.cpp msgid "Connecting to Mirror..." @@ -3557,9 +3510,8 @@ msgid "SSL Handshake Error" msgstr "SSL El Sıkışma Hatası" #: editor/export_template_manager.cpp -#, fuzzy msgid "Uncompressing Android Build Sources" -msgstr "Varlıklar Çıkartılıyor" +msgstr "Android Ä°nÅŸa Kaynakları Çıkartılıyor" #: editor/export_template_manager.cpp msgid "Current Version:" @@ -3578,9 +3530,8 @@ msgid "Remove Template" msgstr "Åžablonu Kaldır" #: editor/export_template_manager.cpp -#, fuzzy msgid "Select Template File" -msgstr "Åžablon dosyası seç" +msgstr "Åžablon Dosyası Seç" #: editor/export_template_manager.cpp msgid "Export Template Manager" @@ -3658,14 +3609,12 @@ msgid "Duplicating folder:" msgstr "Klasör çoÄŸaltılıyor:" #: editor/filesystem_dock.cpp -#, fuzzy msgid "New Inherited Scene" -msgstr "Yeni Miras Alınmış Sahne ..." +msgstr "Yeni Miras Alınmış Sahne" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Open Scenes" -msgstr "Sahneyi Aç" +msgstr "Sahneleri Aç" #: editor/filesystem_dock.cpp msgid "Instance" @@ -3732,14 +3681,12 @@ msgid "Rename" msgstr "Yeniden Adlandır" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Previous Folder/File" -msgstr "Önceki Klasör" +msgstr "Önceki Klasör/Dosya" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Next Folder/File" -msgstr "Sonraki Klasör" +msgstr "Sonraki Klasör/Dosya" #: editor/filesystem_dock.cpp msgid "Re-Scan Filesystem" @@ -3775,9 +3722,8 @@ msgid "Overwrite" msgstr "Ãœzerine Yaz" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Create Scene" -msgstr "Sahneden OluÅŸtur" +msgstr "Sahne OluÅŸtur" #: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp msgid "Create Script" @@ -3863,9 +3809,8 @@ msgid "Rename Group" msgstr "Grupları Düzenle" #: editor/groups_editor.cpp -#, fuzzy msgid "Delete Group" -msgstr "Bediz ÖbeÄŸini Sil" +msgstr "Grup Sil" #: editor/groups_editor.cpp editor/node_dock.cpp msgid "Groups" @@ -3890,9 +3835,8 @@ msgid "Empty groups will be automatically removed." msgstr "BoÅŸ gruplar otomatik olarak silinecektir." #: editor/groups_editor.cpp -#, fuzzy msgid "Group Editor" -msgstr "Betik Düzenleyiciyi Aç" +msgstr "Grup Düzenleyici" #: editor/groups_editor.cpp msgid "Manage Groups" @@ -3994,9 +3938,8 @@ msgid "Import As:" msgstr "Åžu Åžekilde İçe Aktar:" #: editor/import_dock.cpp -#, fuzzy msgid "Preset" -msgstr "Önayarlar" +msgstr "Önayar" #: editor/import_dock.cpp msgid "Reimport" @@ -4125,7 +4068,7 @@ msgstr "Eklentinin Adı:" msgid "Subfolder:" msgstr "Alt Klasör:" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "Dil:" @@ -4200,14 +4143,12 @@ msgid "Move Node Point" msgstr "Düğüm Noktasını Taşı" #: editor/plugins/animation_blend_space_1d_editor.cpp -#, fuzzy msgid "Change BlendSpace1D Limits" -msgstr "BlendSpace1D'nin Sınırlarını DeÄŸiÅŸtir" +msgstr "BlendSpace1D Sınırlarını DeÄŸiÅŸtir" #: editor/plugins/animation_blend_space_1d_editor.cpp -#, fuzzy msgid "Change BlendSpace1D Labels" -msgstr "BlendSpace1D'nin Etiketlerini DeÄŸiÅŸtir" +msgstr "BlendSpace1D Etiketlerini DeÄŸiÅŸtir" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -4248,7 +4189,6 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy msgid "Set the blending position within the space" msgstr "Harmanlama konumunu uzay içinde ayarla" @@ -4270,6 +4210,12 @@ msgstr "Nokta" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Open Editor" +msgstr "Düzenleyiciyi Aç" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp msgid "Open Animation Node" msgstr "Animasyon Düğümünü Aç" @@ -4284,7 +4230,6 @@ msgid "Add Triangle" msgstr "Üçgen Ekle" #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy msgid "Change BlendSpace2D Limits" msgstr "BlendSpace2D Sınırlarını DeÄŸiÅŸtir" @@ -4294,12 +4239,10 @@ msgid "Change BlendSpace2D Labels" msgstr "BlendSpace2D Etiketlerini DeÄŸiÅŸtir" #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy msgid "Remove BlendSpace2D Point" msgstr "BlendSpace2D Noktasını Kaldır" #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy msgid "Remove BlendSpace2D Triangle" msgstr "BlendSpace2D Üçgenini Kaldır" @@ -4308,9 +4251,8 @@ msgid "BlendSpace2D does not belong to an AnimationTree node." msgstr "BlendSpace2D bir AnimationTree düğümüne ait deÄŸil." #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy msgid "No triangles exist, so no blending can take place." -msgstr "Herhangi bir üçgen bulunmuyor, harmanlama iÅŸlemi yapılamaz." +msgstr "Herhangi bir üçgen bulunmuyor, burada harmanlama iÅŸlemi yapılamaz." #: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Toggle Auto Triangles" @@ -4321,13 +4263,12 @@ msgid "Create triangles by connecting points." msgstr "BaÄŸlantı noktalarından üçgen yarat." #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy msgid "Erase points and triangles." -msgstr "%d Üçgenlerini Ayrıştırma:" +msgstr "Noktaları ve üçgenleri sil." #: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Generate blend triangles automatically (instead of manually)" -msgstr "" +msgstr "Otomatik üçgen harmanlayıcı oluÅŸtur (el ile)" #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -4335,9 +4276,8 @@ msgid "Blend:" msgstr "Karışma:" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy msgid "Parameter Changed" -msgstr "Materyal DeÄŸiÅŸiklikleri" +msgstr "Parametre DeÄŸiÅŸti" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -4362,48 +4302,43 @@ msgstr "Biçimi Taşı" #: editor/plugins/animation_blend_tree_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "" +"BaÄŸlanılamıyor, port kullanımda olabilir veya baÄŸlantı geçersiz olabilir." #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Nodes Connected" -msgstr "BaÄŸlı" +msgstr "Düğümler BaÄŸlandı" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Nodes Disconnected" -msgstr "BaÄŸlantı kesildi" +msgstr "Düğümlerin BaÄŸlantısı Kesildi" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy msgid "Set Animation" -msgstr "Animasyon" +msgstr "Animasyon Ata" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Delete Node" -msgstr "Düğümleri Sil" +msgstr "Düğüm Sil" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/scene_tree_dock.cpp msgid "Delete Node(s)" -msgstr "Düğümleri Sil" +msgstr "Düğüm(leri) Sil" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy msgid "Toggle Filter On/Off" -msgstr "Dikkat-Dağıtmayan Kipine geç." +msgstr "Süzgeç Aç/Kapat" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy msgid "Change Filter" -msgstr "DeÄŸiÅŸtirilen Yerel Süzgeç" +msgstr "Süzgeç DeÄŸiÅŸtir" #: editor/plugins/animation_blend_tree_editor_plugin.cpp msgid "No animation player set, so unable to retrieve track names." -msgstr "" +msgstr "Animasyon oynatıcısı atanmadı, parça isimleri alınamıyor." #: editor/plugins/animation_blend_tree_editor_plugin.cpp msgid "Player path set is invalid, so unable to retrieve track names." @@ -4418,34 +4353,30 @@ msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp -#, fuzzy msgid "Node Renamed" -msgstr "Düğüm adı:" +msgstr "Düğüm Yeniden Adlandırıldı" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Add Node..." -msgstr "Düğüm Ekle" +msgstr "Düğüm Ekle..." #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/root_motion_editor_plugin.cpp -#, fuzzy msgid "Edit Filtered Tracks:" -msgstr "Süzgeçleri Düzenle" +msgstr "SüzgeçlenmiÅŸ Parçaları Düzenle:" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy msgid "Enable Filtering" -msgstr "Düzenlenebilir Çocuklar" +msgstr "Süzgeçlemeyi Aç" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" -msgstr "KendindenOynatmayı Aç/Kapat" +msgstr "Otomatik Oynatmayı Aç/Kapat" #: editor/plugins/animation_player_editor_plugin.cpp msgid "New Animation Name:" -msgstr "Yeni Animasyon Adı:" +msgstr "Yeni Animasyon Ä°smi:" #: editor/plugins/animation_player_editor_plugin.cpp msgid "New Anim" @@ -4453,7 +4384,7 @@ msgstr "Yeni Animasyon" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" -msgstr "Animasyonun Adını DeÄŸiÅŸtir:" +msgstr "Animasyon Ä°smini DeÄŸiÅŸtir:" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -4466,14 +4397,12 @@ msgid "Remove Animation" msgstr "Animasyonu Kaldır" #: editor/plugins/animation_player_editor_plugin.cpp -#, fuzzy msgid "Invalid animation name!" -msgstr "HATA: Geçersiz animasyon adı!" +msgstr "Geçersiz animasyon ismi!" #: editor/plugins/animation_player_editor_plugin.cpp -#, fuzzy msgid "Animation name already exists!" -msgstr "HATA: Bu animasyon adı zaten var!" +msgstr "Animasyon ismi zaten var!" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -4640,7 +4569,6 @@ msgstr "Animasyon Adı:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "Hata!" @@ -4678,19 +4606,19 @@ msgstr "Son(lar)" #: editor/plugins/animation_state_machine_editor.cpp msgid "Immediate" -msgstr "" +msgstr "Hemen" #: editor/plugins/animation_state_machine_editor.cpp msgid "Sync" -msgstr "" +msgstr "EÅŸitle" #: editor/plugins/animation_state_machine_editor.cpp msgid "At End" -msgstr "" +msgstr "Sonunda" #: editor/plugins/animation_state_machine_editor.cpp msgid "Travel" -msgstr "" +msgstr "Seyahat" #: editor/plugins/animation_state_machine_editor.cpp msgid "Start and end nodes are needed for a sub-transition." @@ -4713,7 +4641,7 @@ msgstr "GeçiÅŸ Düğümü" #: editor/plugins/animation_state_machine_editor.cpp msgid "Set Start Node (Autoplay)" -msgstr "" +msgstr "BaÅŸlangıç Düğümünü Ayarla (Otomatik Oynat)" #: editor/plugins/animation_state_machine_editor.cpp msgid "" @@ -4721,6 +4649,9 @@ msgid "" "RMB to add new nodes.\n" "Shift+LMB to create connections." msgstr "" +"Düğümleri seç ve taşı.\n" +"Yeni düğümler eklemek için RMB.\n" +"Yeni baÄŸlantılar için Shift+LMB." #: editor/plugins/animation_state_machine_editor.cpp #, fuzzy @@ -4818,6 +4749,8 @@ msgid "Current:" msgstr "Geçerli:" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "GiriÅŸ Ekle" @@ -4929,7 +4862,7 @@ msgstr "Tema dosyaya kaydedilemiyor:" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Write error." -msgstr "" +msgstr "Yazma hatası." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, too many redirects" @@ -5025,13 +4958,17 @@ msgstr "Sonraki" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Last" -msgstr "" +msgstr "Son" #: editor/plugins/asset_library_editor_plugin.cpp msgid "All" msgstr "Hepsi" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy msgid "Import..." msgstr "Yeniden İçe Aktar..." @@ -5349,23 +5286,28 @@ msgstr "Çalışma Kipi:" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Toggle snapping." +msgid "Toggle smart snapping." msgstr "Yapılmayı aç/kapat" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +#, fuzzy +msgid "Use Smart Snap" msgstr "Yapışma Kullan" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Snapping Options" -msgstr "Yapışma ayarları" +msgid "Toggle grid snapping." +msgstr "Yapılmayı aç/kapat" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Snap to Grid" -msgstr "Izgaraya yapış" +msgid "Use Grid Snap" +msgstr "Izgara Yapışması" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Snapping Options" +msgstr "Yapışma ayarları" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Rotation Snap" @@ -5463,8 +5405,8 @@ msgid "View" msgstr "Görüş" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +#, fuzzy +msgid "Always Show Grid" msgstr "Izgarayı Göster" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5741,6 +5683,11 @@ msgstr "EÄŸri DoÄŸrusal Tanjantını Aç/Kapa" msgid "Hold Shift to edit tangents individually" msgstr "Tanjantları tek tek düzenlemek için Shift'e basılı tut" +#: editor/plugins/curve_editor_plugin.cpp +#, fuzzy +msgid "Right click to add point" +msgstr "SaÄŸ tıkla: Nokta Sil" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "GI Prob PiÅŸir" @@ -5838,7 +5785,7 @@ msgstr "Anahat OluÅŸtur" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh" -msgstr "Örüntü" +msgstr "Örgü" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Static Body" @@ -6394,6 +6341,10 @@ msgid "Grid" msgstr "Izgara" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "Izgarayı Göster" + +#: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy msgid "Configure Grid:" msgstr "Yapışmayı Yapılandır" @@ -6456,6 +6407,7 @@ msgstr "Örnek:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "Tür:" @@ -6566,6 +6518,11 @@ msgid "Find Next" msgstr "Sonraki Bul" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "Öncekini Bul" + +#: editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Filter scripts" msgstr "Özellikleri süz" @@ -6641,12 +6598,11 @@ msgstr "Sonraki GeçmiÅŸ" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp msgid "Theme" -msgstr "Kalıp" +msgstr "Tema" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Import Theme..." -msgstr "Kalıbı İçe Aktar" +msgstr "Tema İçe Aktar..." #: editor/plugins/script_editor_plugin.cpp msgid "Reload Theme" @@ -6776,7 +6732,7 @@ msgstr "Sinyaller" #: editor/plugins/script_text_editor.cpp msgid "Target" -msgstr "Amaç" +msgstr "Hedef" #: editor/plugins/script_text_editor.cpp #, fuzzy @@ -6851,6 +6807,11 @@ msgstr "Noktalar oluÅŸtur." msgid "Cut" msgstr "Kes" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "Hepsini seç" + #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "Satırı Sil" @@ -6911,10 +6872,6 @@ msgid "Auto Indent" msgstr "Kendinden Girintili" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "Öncekini Bul" - -#: editor/plugins/script_text_editor.cpp #, fuzzy msgid "Find in Files..." msgstr "Dosyaları Süz..." @@ -7017,9 +6974,8 @@ msgid "Create physical bones" msgstr "Yönlendirici Örüntüsü OluÅŸtur" #: editor/plugins/skeleton_editor_plugin.cpp -#, fuzzy msgid "Skeleton" -msgstr "Ä°skelet..." +msgstr "Ä°skelet" #: editor/plugins/skeleton_editor_plugin.cpp #, fuzzy @@ -7257,6 +7213,11 @@ msgid "Freelook Speed Modifier" msgstr "Serbestbakış Hız DeÄŸiÅŸtirici" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Freelook Slow Modifier" +msgstr "Serbestbakış Hız DeÄŸiÅŸtirici" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -7296,6 +7257,10 @@ msgid "Use Local Space" msgstr "Yerel Uzay Kipi (%s)" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "Yapışma Kullan" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "Alttan Görünüm" @@ -7537,6 +7502,11 @@ msgstr "" #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy +msgid "Shrink (Pixels): " +msgstr "Yapış (Noktalara):" + +#: editor/plugins/sprite_editor_plugin.cpp +#, fuzzy msgid "Grow (Pixels): " msgstr "Yapış (Noktalara):" @@ -8391,12 +8361,7 @@ msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy -msgid "Add input +" -msgstr "GiriÅŸ Ekle" - -#: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy -msgid "Add output +" +msgid "Add Output" msgstr "GiriÅŸ Ekle" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -8405,9 +8370,8 @@ msgid "Scalar" msgstr "Ölçekle:" #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Vector" -msgstr "Denetçi" +msgstr "Vektör" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Boolean" @@ -8415,6 +8379,11 @@ msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy +msgid "Sampler" +msgstr "Örnekler" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy msgid "Add input port" msgstr "GiriÅŸ Ekle" @@ -9315,15 +9284,19 @@ msgid "Resources to export:" msgstr "Dışa aktarılacak kaynaklar:" #: editor/project_export.cpp +#, fuzzy msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" "Kaynak olmayan dosyaları dışa aktarmak için kullanılan süzgeçler (virgülle " "ayrılmış, ör. * .json, * .txt)" #: editor/project_export.cpp +#, fuzzy msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" "Dışa aktarma iÅŸleminden hariç tutulacak süzgeçler (virgülle ayrılmış, ör. * ." "json, * .txt)" @@ -10370,12 +10343,10 @@ msgid "" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "Düzenlenebilir Çocuklar" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" -msgstr "Yer Tutucu Olarak Yükle" +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." +msgstr "" #: editor/scene_tree_dock.cpp msgid "Make Local" @@ -10456,6 +10427,14 @@ msgid "Clear Inheritance" msgstr "Kalıtı Temizle" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "Düzenlenebilir Çocuklar" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "Yer Tutucu Olarak Yükle" + +#: editor/scene_tree_dock.cpp #, fuzzy msgid "Open Documentation" msgstr "Çevrimiçi Godot dökümanlarını aç" @@ -10475,11 +10454,6 @@ msgstr "Türü DeÄŸiÅŸtir" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Extend Script" -msgstr "Betik Aç" - -#: editor/scene_tree_dock.cpp -#, fuzzy msgid "Reparent to New Node" msgstr "Düğümün EbeveynliÄŸini DeÄŸiÅŸtir" @@ -10748,23 +10722,18 @@ msgid "Will load an existing script file." msgstr "Mevcut betik dosyasını yükle" #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "Dil" - -#: editor/script_create_dialog.cpp -msgid "Inherits" -msgstr "Miras Alınmışlar" - -#: editor/script_create_dialog.cpp -msgid "Class Name" +#, fuzzy +msgid "Class Name:" msgstr "Sınıf Ä°smi" #: editor/script_create_dialog.cpp -msgid "Template" +#, fuzzy +msgid "Template:" msgstr "Åžablon" #: editor/script_create_dialog.cpp -msgid "Built-in Script" +#, fuzzy +msgid "Built-in Script:" msgstr "Gömme Betik" #: editor/script_create_dialog.cpp @@ -11435,6 +11404,11 @@ msgid "Add Function" msgstr "Fonksiyon Ekle" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Delete input port" +msgstr "Noktayı kaldır" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "DeÄŸiÅŸken Ekle" @@ -11443,6 +11417,26 @@ msgid "Add Signal" msgstr "Sinyal Ekle" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Input Port" +msgstr "GiriÅŸ Ekle" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Output Port" +msgstr "GiriÅŸ Ekle" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Input Port" +msgstr "Noktayı kaldır" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Output Port" +msgstr "Noktayı kaldır" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "Ä°fadeyi DeÄŸiÅŸtir" @@ -11487,10 +11481,20 @@ msgid "Add Preload Node" msgstr "Önyüklenen Düğüm Ekle" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "AÄŸaçtan Düğüm(ler) Ekle" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "Alıcı Özellik Ekle" @@ -11516,6 +11520,11 @@ msgstr "Düğümleri BaÄŸla" #: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Disconnect Nodes" +msgstr "Çizge Düğümlerinin BaÄŸlantılarını Kes" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Connect Node Data" msgstr "Düğümleri BaÄŸla" @@ -11550,6 +11559,28 @@ msgid "Paste VisualScript Nodes" msgstr "GörselBetik Düğümleri Yapıştır" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Can't create function with a function node." +msgstr "Fonksiyon düğümü kopyalanamıyor." + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Create Function" +msgstr "Ä°ÅŸlevi Yeniden Adlandır" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "Ä°ÅŸlevi Kaldır" @@ -11575,16 +11606,13 @@ msgid "Make Tool:" msgstr "YerelleÅŸtir" #: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "Taban Türü:" - -#: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "Ãœyeler:" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" -msgstr "Kullanılabilir Düğümler:" +#, fuzzy +msgid "function_name" +msgstr "Fonksiyon:" #: modules/visual_script/visual_script_editor.cpp #, fuzzy @@ -11609,6 +11637,16 @@ msgstr "Düğümleri Kes" #: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Make Function" +msgstr "Ä°ÅŸlevi Yeniden Adlandır" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Refresh Graph" +msgstr "Yenile" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Edit Member" msgstr "Ãœyeler" @@ -11706,6 +11744,10 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "Listeden aygıt seç" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "" @@ -11809,6 +11851,10 @@ msgid "Required icon is not specified in the preset." msgstr "" #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "Tarayıcıda Çalıştır" @@ -12465,11 +12511,6 @@ msgstr "" "yapın böylece bir boyut elde edebilir. Aksi takdirde, Görüntüleme için bunu " "bir RenderTarget yap ve dahili dokusunu herhangi bir düğüme ata." -#: scene/resources/visual_shader.cpp -#, fuzzy -msgid "Input" -msgstr "GiriÅŸ Ekle" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for preview." msgstr "Önizleme için geçersiz kaynak." @@ -12501,6 +12542,29 @@ msgstr "DeÄŸiÅŸkenler yalnızca tepe iÅŸlevinde atanabilir." msgid "Constants cannot be modified." msgstr "Sabit deÄŸerler deÄŸiÅŸtirilemez." +#, fuzzy +#~ msgid "Snap to Grid" +#~ msgstr "Izgaraya yapış" + +#, fuzzy +#~ msgid "Add input +" +#~ msgstr "GiriÅŸ Ekle" + +#~ msgid "Language" +#~ msgstr "Dil" + +#~ msgid "Inherits" +#~ msgstr "Miras Alınmışlar" + +#~ msgid "Base Type:" +#~ msgstr "Taban Türü:" + +#~ msgid "Available Nodes:" +#~ msgstr "Kullanılabilir Düğümler:" + +#~ msgid "Input" +#~ msgstr "GiriÅŸ" + #~ msgid "Properties:" #~ msgstr "Özellikler:" @@ -12721,9 +12785,6 @@ msgstr "Sabit deÄŸerler deÄŸiÅŸtirilemez." #~ msgid "Go to parent folder" #~ msgstr "Ãœst klasöre git" -#~ msgid "Select device from the list" -#~ msgstr "Listeden aygıt seç" - #~ msgid "Open Scene(s)" #~ msgstr "Sahne(ler) Aç" @@ -12971,9 +13032,6 @@ msgstr "Sabit deÄŸerler deÄŸiÅŸtirilemez." #~ msgid "Warning" #~ msgstr "Uyarı" -#~ msgid "Function:" -#~ msgstr "Fonksiyon:" - #~ msgid "Variable" #~ msgstr "DeÄŸiÅŸken" @@ -13037,9 +13095,6 @@ msgstr "Sabit deÄŸerler deÄŸiÅŸtirilemez." #~ msgid "Connect Graph Nodes" #~ msgstr "Çizge Düğümlerini BaÄŸla" -#~ msgid "Disconnect Graph Nodes" -#~ msgstr "Çizge Düğümlerinin BaÄŸlantılarını Kes" - #~ msgid "Remove Shader Graph Node" #~ msgstr "Gölgelendirici Çizge Düğümünü Kaldır" @@ -14155,9 +14210,6 @@ msgstr "Sabit deÄŸerler deÄŸiÅŸtirilemez." #~ msgid "Group" #~ msgstr "Öbek" -#~ msgid "Samples" -#~ msgstr "Örnekler" - #~ msgid "Sample Conversion Mode: (.wav files):" #~ msgstr "Örnek Dönüşüm Biçimi: (.wav dizeçleri):" diff --git a/editor/translations/uk.po b/editor/translations/uk.po index bee2015a88..8b99271a09 100644 --- a/editor/translations/uk.po +++ b/editor/translations/uk.po @@ -11,12 +11,13 @@ # ОлекÑандр Пилипчук <pilipchukap@rambler.ru>, 2018. # Kirill Omelchenko <kirill.omelchenko@gmail.com>, 2018. # ÐлекÑандр <ol-vin@mail.ru>, 2018. +# Богдан Матвіїв <bomtvv@gmail.com>, 2019. msgid "" msgstr "" "Project-Id-Version: Ukrainian (Godot Engine)\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-09-07 13:51+0000\n" -"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n" +"PO-Revision-Date: 2019-10-11 15:07+0000\n" +"Last-Translator: Богдан Матвіїв <bomtvv@gmail.com>\n" "Language-Team: Ukrainian <https://hosted.weblate.org/projects/godot-engine/" "godot/uk/>\n" "Language: uk\n" @@ -31,7 +32,8 @@ msgstr "" #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Invalid type argument to convert(), use TYPE_* constants." msgstr "" -"Ðекоректний аргумент типу у convert(), Ñлід викориÑтовувати Ñталі TYPE_*." +"Ðекоректний тип аргументу Ð´Ð»Ñ convert(), Ñлід викориÑтовувати конÑтанту " +"TYPE_*." #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/mono/glue/gd_glue.cpp @@ -70,32 +72,31 @@ msgstr "При виклику «%s»:" #: core/ustring.cpp msgid "B" -msgstr "" +msgstr "Б" #: core/ustring.cpp msgid "KiB" -msgstr "" +msgstr "КіБ" #: core/ustring.cpp -#, fuzzy msgid "MiB" -msgstr "ПоєднаннÑ" +msgstr "МіБ" #: core/ustring.cpp msgid "GiB" -msgstr "" +msgstr "ГіБ" #: core/ustring.cpp msgid "TiB" -msgstr "" +msgstr "ТіБ" #: core/ustring.cpp msgid "PiB" -msgstr "" +msgstr "ПіБ" #: core/ustring.cpp msgid "EiB" -msgstr "" +msgstr "ЕіБ" #: editor/animation_bezier_editor.cpp msgid "Free" @@ -361,6 +362,7 @@ msgstr "Створити %d нові доріжки Ñ– вÑтавити ключ #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "Створити" @@ -504,19 +506,9 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "ПопередженнÑ: Редагуємо імпортовану анімацію" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "Виділити вÑе" - -#: editor/animation_track_editor.cpp -msgid "Select None" -msgstr "СкаÑувати позначеннÑ" - #: editor/animation_track_editor.cpp -#, fuzzy msgid "Select an AnimationPlayer node to create and edit animations." -msgstr "ШлÑÑ… до вузла AnimationPlayer, де міÑÑ‚ÑÑ‚ÑŒÑÑ Ð°Ð½Ñ–Ð¼Ð°Ñ†Ñ–Ñ—, не вÑтановлено." +msgstr "Виберіть вузол AnimationPlayer Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ– Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ð½Ñ–Ð¼Ð°Ñ†Ñ–Ð¹." #: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." @@ -649,7 +641,8 @@ msgid "Scale Ratio:" msgstr "Ð¡Ð¿Ñ–Ð²Ð²Ñ–Ð´Ð½Ð¾ÑˆÐµÐ½Ð½Ñ Ð¼Ð°Ñштабу:" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" +#, fuzzy +msgid "Select Tracks to Copy" msgstr "Виберіть доріжки Ð´Ð»Ñ ÐºÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ:" #: editor/animation_track_editor.cpp editor/editor_log.cpp @@ -661,6 +654,11 @@ msgstr "Виберіть доріжки Ð´Ð»Ñ ÐºÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ:" msgid "Copy" msgstr "Копіювати" +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Select All/None" +msgstr "СкаÑувати позначеннÑ" + #: editor/animation_track_editor_plugins.cpp msgid "Add Audio Track Clip" msgstr "Додати кліп звукової доріжки" @@ -985,7 +983,7 @@ msgid "Resource" msgstr "РеÑурÑ" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "ШлÑÑ…" @@ -1256,9 +1254,8 @@ msgid "Delete Bus Effect" msgstr "Вилучити ефект шини" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Drag & drop to rearrange." -msgstr "Ðудіо шина, перетÑгнути, щоб змінити." +msgstr "ПорÑдок можна змінити перетÑгуваннÑм зі ÑкиданнÑм." #: editor/editor_audio_buses.cpp msgid "Solo" @@ -1449,7 +1446,8 @@ msgstr "Додати автозавантаженнÑ" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "ШлÑÑ…:" @@ -1460,7 +1458,7 @@ msgstr "Ім'Ñ Ð’ÑƒÐ·Ð»Ð°:" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp #: editor/editor_profiler.cpp editor/settings_config_dialog.cpp msgid "Name" -msgstr "Ім'Ñ" +msgstr "Ðазва" #: editor/editor_autoload_settings.cpp msgid "Singleton" @@ -1503,7 +1501,7 @@ msgstr "Створити Теку" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "Ім'Ñ:" @@ -1900,6 +1898,7 @@ msgid "Class:" msgstr "КлаÑ:" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "УÑпадковує:" @@ -1908,9 +1907,8 @@ msgid "Inherited by:" msgstr "УÑпадковано:" #: editor/editor_help.cpp -#, fuzzy msgid "Brief Description" -msgstr "СтиÑлий опиÑ:" +msgstr "СтиÑлий опиÑ" #: editor/editor_help.cpp msgid "Properties" @@ -1941,9 +1939,8 @@ msgid "Class Description" msgstr "ÐžÐ¿Ð¸Ñ ÐºÐ»Ð°Ñу" #: editor/editor_help.cpp -#, fuzzy msgid "Online Tutorials" -msgstr "Підручники в інтернеті:" +msgstr "Підручники в інтернеті" #: editor/editor_help.cpp msgid "" @@ -2066,16 +2063,15 @@ msgstr "Початок" #: editor/editor_network_profiler.cpp msgid "%s/s" -msgstr "" +msgstr "%s/Ñ" #: editor/editor_network_profiler.cpp -#, fuzzy msgid "Down" -msgstr "Завантажити" +msgstr "ОтриманнÑ" #: editor/editor_network_profiler.cpp msgid "Up" -msgstr "" +msgstr "ВивантаженнÑ" #: editor/editor_network_profiler.cpp editor/editor_node.cpp msgid "Node" @@ -2083,19 +2079,19 @@ msgstr "Вузол" #: editor/editor_network_profiler.cpp msgid "Incoming RPC" -msgstr "" +msgstr "Вхідний RPC" #: editor/editor_network_profiler.cpp msgid "Incoming RSET" -msgstr "" +msgstr "Вхідний RSET" #: editor/editor_network_profiler.cpp msgid "Outgoing RPC" -msgstr "" +msgstr "Вихідний RPC" #: editor/editor_network_profiler.cpp msgid "Outgoing RSET" -msgstr "" +msgstr "Вихідний RSET" #: editor/editor_node.cpp editor/project_manager.cpp msgid "New Window" @@ -2685,17 +2681,16 @@ msgid "Project Settings..." msgstr "Параметри проєкту…" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Version Control" -msgstr "ВерÑÑ–Ñ:" +msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð²ÐµÑ€ÑÑ–Ñми" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Set Up Version Control" -msgstr "" +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð²ÐµÑ€ÑÑ–Ñми" #: editor/editor_node.cpp msgid "Shut Down Version Control" -msgstr "" +msgstr "Ð’Ð¸Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð²ÐµÑ€ÑÑ–Ñми" #: editor/editor_node.cpp msgid "Export..." @@ -2968,7 +2963,7 @@ msgstr "ІнÑпектор" msgid "Expand Bottom Panel" msgstr "Розгорнути нижню панель" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "Результат" @@ -2996,9 +2991,15 @@ msgid "" "the \"Use Custom Build\" option should be enabled in the Android export " "preset." msgstr "" +"Це налаштує ваш проєкт на викориÑÑ‚Ð°Ð½Ð½Ñ Ð½ÐµÑ‚Ð¸Ð¿Ð¾Ð²Ð¸Ñ… збірок Android шлÑхом " +"вÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð° джерела до «res://android/build».\n" +"Далі, ви можете внеÑти зміни Ñ– зібрати влаÑний нетиповий APK при " +"екÑпортуванні (додаючи модулі, змінюючи AndroidManifest.xml тощо).\n" +"Зауважте, що з метою ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð½ÐµÑ‚Ð¸Ð¿Ð¾Ð²Ð¸Ñ… збірок, заміÑÑ‚ÑŒ викориÑÑ‚Ð°Ð½Ð½Ñ " +"попередньо зібраних APK, Ñлід позначити пункт «СкориÑтатиÑÑ Ð½ÐµÑ‚Ð¸Ð¿Ð¾Ð²Ð¾ÑŽ " +"збіркою» у шаблоні екÑÐ¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Android." #: editor/editor_node.cpp -#, fuzzy msgid "" "The Android build template is already installed in this project and it won't " "be overwritten.\n" @@ -3006,7 +3007,8 @@ msgid "" "operation again." msgstr "" "Шаблон Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ Ð´Ð»Ñ Android вже вÑтановлено. Його не буде перезапиÑано.\n" -"Вилучіть каталог «build» вручну, перш ніж намагатиÑÑ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð¸Ñ‚Ð¸ цю дію." +"Вилучіть каталог «res://android/build» вручну, перш ніж намагатиÑÑ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð¸Ñ‚Ð¸ " +"цю дію." #: editor/editor_node.cpp msgid "Import Templates From ZIP File" @@ -3069,9 +3071,8 @@ msgid "Open the previous Editor" msgstr "Відкрити попередній редактор" #: editor/editor_path.cpp -#, fuzzy msgid "No sub-resources found." -msgstr "Ðе задано джерело поверхні." +msgstr "Підлеглих реÑурÑів не знайдено." #: editor/editor_plugin.cpp msgid "Creating Mesh Previews" @@ -3082,9 +3083,8 @@ msgid "Thumbnail..." msgstr "Мініатюра..." #: editor/editor_plugin_settings.cpp -#, fuzzy msgid "Main Script:" -msgstr "Відкрити Ñкрипт:" +msgstr "ОÑновний Ñкрипт:" #: editor/editor_plugin_settings.cpp msgid "Edit Plugin" @@ -3220,6 +3220,10 @@ msgstr "Виберіть панель переглÑду" msgid "New Script" msgstr "Ðовий Ñкрипт" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +msgid "Extend Script" +msgstr "Розширити Ñкрипт" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "Ðовий %s" @@ -3246,13 +3250,6 @@ msgstr "Ð’Ñтавити" msgid "Convert To %s" msgstr "Перетворити на %s" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Open Editor" -msgstr "Відкрити вікно редактора" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "Позначений вузол не Ñ” панеллю переглÑду!" @@ -3912,9 +3909,8 @@ msgid "Import As:" msgstr "Імпортувати Ñк:" #: editor/import_dock.cpp -#, fuzzy msgid "Preset" -msgstr "Ðабори" +msgstr "Ðабір" #: editor/import_dock.cpp msgid "Reimport" @@ -4040,7 +4036,7 @@ msgstr "Ðазва додатка:" msgid "Subfolder:" msgstr "Підтека:" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "Мова:" @@ -4185,6 +4181,12 @@ msgstr "Точка" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Open Editor" +msgstr "Відкрити вікно редактора" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp msgid "Open Animation Node" msgstr "Відкрити вузол анімації" @@ -4534,7 +4536,6 @@ msgstr "Ðазва анімації:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "Помилка!" @@ -4707,6 +4708,8 @@ msgid "Current:" msgstr "Поточний:" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "Додати вхід" @@ -4911,6 +4914,10 @@ msgid "All" msgstr "Ð’Ñе" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp msgid "Import..." msgstr "Імпортувати…" @@ -5202,26 +5209,32 @@ msgid "Pan Mode" msgstr "Режим панорамуваннÑ" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Ruler Mode" -msgstr "Режим виконаннÑ:" +msgstr "Режим вимірюваннÑ" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Toggle snapping." +#, fuzzy +msgid "Toggle smart snapping." msgstr "Увімкнути або вимкнути прив'ÑзуваннÑ." #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +#, fuzzy +msgid "Use Smart Snap" msgstr "За допомогою функції прив'Ñзки" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snapping Options" -msgstr "Параметри прив'Ñзки" +#, fuzzy +msgid "Toggle grid snapping." +msgstr "Увімкнути або вимкнути прив'ÑзуваннÑ." #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to Grid" -msgstr "ÐŸÑ€Ð¸Ð»Ð¸Ð¿Ð°Ð½Ð½Ñ Ð´Ð¾ Ñітки" +#, fuzzy +msgid "Use Grid Snap" +msgstr "ÐŸÑ€Ð¸Ð»Ð¸Ð¿Ð°Ð½Ð½Ñ Ð´Ð¾ ґратки" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snapping Options" +msgstr "Параметри прив'Ñзки" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Rotation Snap" @@ -5310,8 +5323,8 @@ msgid "View" msgstr "ПереглÑд" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +#, fuzzy +msgid "Always Show Grid" msgstr "Показати Ñітку" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5579,6 +5592,11 @@ msgstr "Перемкнути дотичну до кривої" msgid "Hold Shift to edit tangents individually" msgstr "Утримуйте Shift, щоб змінити дотичні окремо" +#: editor/plugins/curve_editor_plugin.cpp +#, fuzzy +msgid "Right click to add point" +msgstr "Клацніть правою кнопкою миші: видалити точку" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "Запекти пробу GI" @@ -6140,7 +6158,7 @@ msgstr "ПереміÑтити точки" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Ctrl: Rotate" -msgstr "Ctrl: повернути" +msgstr "Ctrl: Повернути" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Shift: Move All" @@ -6216,6 +6234,10 @@ msgid "Grid" msgstr "Сітка" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "Показати Ñітку" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Configure Grid:" msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ñітки:" @@ -6272,6 +6294,7 @@ msgstr "ЕкземплÑÑ€:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "Тип:" @@ -6370,6 +6393,11 @@ msgid "Find Next" msgstr "Знайти наÑтупне" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "Знайти попереднє" + +#: editor/plugins/script_editor_plugin.cpp msgid "Filter scripts" msgstr "Фільтрувати Ñкрипти" @@ -6639,6 +6667,11 @@ msgstr "Точки зупину" msgid "Cut" msgstr "Вирізати" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "Виділити вÑе" + #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "Видалити Ñ€Ñдок" @@ -6696,10 +6729,6 @@ msgid "Auto Indent" msgstr "ÐвтовідÑтуп" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "Знайти попереднє" - -#: editor/plugins/script_text_editor.cpp msgid "Find in Files..." msgstr "Знайти у файлах…" @@ -7021,6 +7050,11 @@ msgid "Freelook Speed Modifier" msgstr "Коефіцієнт швидкоÑÑ‚Ñ– оглÑду" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Freelook Slow Modifier" +msgstr "Коефіцієнт швидкоÑÑ‚Ñ– оглÑду" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -7060,6 +7094,10 @@ msgid "Use Local Space" msgstr "ВикориÑтати локальний проÑÑ‚Ñ–Ñ€" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "За допомогою функції прив'Ñзки" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "ВиглÑд знизу" @@ -7288,6 +7326,11 @@ msgid "Simplification: " msgstr "СпрощеннÑ: " #: editor/plugins/sprite_editor_plugin.cpp +#, fuzzy +msgid "Shrink (Pixels): " +msgstr "ЗроÑÑ‚Ð°Ð½Ð½Ñ (пікÑелі): " + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "ЗроÑÑ‚Ð°Ð½Ð½Ñ (пікÑелі): " @@ -7336,9 +7379,8 @@ msgid "(empty)" msgstr "(порожньо)" #: editor/plugins/sprite_frames_editor_plugin.cpp -#, fuzzy msgid "Move Frame" -msgstr "Ð’Ñтавити кадр" +msgstr "ПереÑунути кадр" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Animations:" @@ -7447,7 +7489,7 @@ msgstr "Крок:" #: editor/plugins/texture_region_editor_plugin.cpp msgid "Sep.:" -msgstr "Інт.:" +msgstr "Роздільник:" #: editor/plugins/texture_region_editor_plugin.cpp msgid "TextureRegion" @@ -7655,13 +7697,12 @@ msgid "Enable Priority" msgstr "Увімкнути пріоритетніÑÑ‚ÑŒ" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Filter tiles" -msgstr "Фільтрувати файли..." +msgstr "Фільтрувати плитки" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Give a TileSet resource to this TileMap to use its tiles." -msgstr "" +msgstr "Додати реÑÑƒÑ€Ñ TileSet до цієї TileMap Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑÑ‚Ð°Ð½Ð½Ñ Ð¹Ð¾Ð³Ð¾ плиток." #: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" @@ -7801,6 +7842,8 @@ msgstr "Показати назви плиток (Ñкщо затиÑнути к msgid "" "Add or select a texture on the left panel to edit the tiles bound to it." msgstr "" +"Додайте або виберіть текÑтуру на лівій панелі Ð´Ð»Ñ Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð»Ð¸Ñ‚Ð¾Ðº, " +"пов'Ñзаних із нею." #: editor/plugins/tile_set_editor_plugin.cpp msgid "Remove selected texture? This will remove all tiles which use it." @@ -7976,92 +8019,80 @@ msgid "TileSet" msgstr "Ðабір плиток" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "No VCS addons are available." -msgstr "Ðазва батьківÑького запиÑу вузла, Ñкщо такий Ñ”" +msgstr "Ðемає доÑтупних доданків ÑиÑтем ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð²ÐµÑ€ÑÑ–Ñми." #: editor/plugins/version_control_editor_plugin.cpp editor/rename_dialog.cpp msgid "Error" msgstr "Помилка" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "No commit message was provided" -msgstr "Ім'Ñ Ð½Ðµ вказано" +msgstr "Ðе було вказано Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ внеÑку" #: editor/plugins/version_control_editor_plugin.cpp msgid "No files added to stage" -msgstr "" +msgstr "Ðе додано жодних файлів Ð´Ð»Ñ Ð²Ð½ÐµÑку" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Commit" -msgstr "Спільнота" +msgstr "ВнеÑок" #: editor/plugins/version_control_editor_plugin.cpp msgid "VCS Addon is not initialized" -msgstr "" +msgstr "Додаток ÑиÑтеми ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð²ÐµÑ€ÑÑ–Ñми не ініціалізовано" #: editor/plugins/version_control_editor_plugin.cpp msgid "Version Control System" -msgstr "" +msgstr "СиÑтема ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð²ÐµÑ€ÑÑ–Ñми" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Initialize" -msgstr "З Великої" +msgstr "Ініціалізувати" #: editor/plugins/version_control_editor_plugin.cpp msgid "Staging area" -msgstr "" +msgstr "ОблаÑÑ‚ÑŒ внеÑку" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Detect new changes" -msgstr "Створити прÑмокутник." +msgstr "ВиÑвити зміни" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Changes" -msgstr "Змінити" +msgstr "Зміни" #: editor/plugins/version_control_editor_plugin.cpp msgid "Modified" -msgstr "" +msgstr "Змінено" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Renamed" -msgstr "Перейменувати" +msgstr "Перейменовано" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Deleted" -msgstr "Вилучити" +msgstr "Вилучено" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Typechange" -msgstr "Змінити" +msgstr "Зміна типу" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Stage Selected" -msgstr "Вилучити вибране" +msgstr "Вибрано Ð´Ð»Ñ Ð²Ð½ÐµÑку" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Stage All" -msgstr "Зберегти вÑе" +msgstr "ВнеÑти вÑе" #: editor/plugins/version_control_editor_plugin.cpp msgid "Add a commit message" -msgstr "" +msgstr "Додати Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ внеÑку" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Commit Changes" -msgstr "Синхронізувати зміни в Ñкрипті" +msgstr "ВнеÑти зміни" #: editor/plugins/version_control_editor_plugin.cpp #: modules/gdnative/gdnative_library_singleton_editor.cpp @@ -8071,25 +8102,23 @@ msgstr "СтатуÑ" #: editor/plugins/version_control_editor_plugin.cpp msgid "View file diffs before committing them to the latest version" msgstr "" +"ПереглÑнути відмінноÑÑ‚Ñ– у файлах, перш ніж внеÑти Ñ—Ñ… до найÑвіжішої верÑÑ–Ñ—" #: editor/plugins/version_control_editor_plugin.cpp msgid "No file diff is active" -msgstr "" +msgstr "Ðемає активних відмінноÑтей між файлами" #: editor/plugins/version_control_editor_plugin.cpp msgid "Detect changes in file diff" -msgstr "" +msgstr "ВиÑвити зміни у відмінноÑÑ‚ÑÑ… між файлами" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "(GLES3 only)" msgstr "(лише GLES3)" #: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add input +" -msgstr "Додати вхід +" - -#: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add output +" +#, fuzzy +msgid "Add Output" msgstr "Додати вихід +" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -8105,6 +8134,10 @@ msgid "Boolean" msgstr "Булеве" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sampler" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add input port" msgstr "Додати вхідний порт" @@ -8316,7 +8349,6 @@ msgstr "" "Повертає пов'Ñзаний вектор за заданим булевим значеннÑм «true» або «false»." #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "" "Returns an associated scalar if the provided boolean value is true or false." msgstr "" @@ -9038,15 +9070,19 @@ msgid "Resources to export:" msgstr "ЕкÑпортовані реÑурÑи:" #: editor/project_export.cpp +#, fuzzy msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" "Фільтри екÑÐ¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð², Ñкі не міÑÑ‚ÑÑ‚ÑŒ реÑурÑів (з відокремленнÑм " "комами, приклад: *.json, *.txt)" #: editor/project_export.cpp +#, fuzzy msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" "Фільтри Ð²Ð¸ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð² з проєкту (з відокремленнÑм комами, приклад: *." "json, *.txt)" @@ -9643,9 +9679,8 @@ msgid "Settings saved OK." msgstr "Параметри уÑпішно збережено." #: editor/project_settings_editor.cpp -#, fuzzy msgid "Moved Input Action Event" -msgstr "Додати подію за вхідною дією" +msgstr "ПереÑунуто подію дії із Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ…" #: editor/project_settings_editor.cpp msgid "Override for Feature" @@ -10014,9 +10049,8 @@ msgid "Instance Scene(s)" msgstr "Сцени екземплÑра" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Replace with Branch Scene" -msgstr "Зберегти гілку Ñк Ñцену" +msgstr "Замінити гілкою Ñцени" #: editor/scene_tree_dock.cpp msgid "Instance Child Scene" @@ -10061,23 +10095,20 @@ msgid "Make node as Root" msgstr "Зробити вузол кореневим" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete %d nodes?" -msgstr "Вилучити вузли" +msgstr "Вилучити %d вузлів?" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete the root node \"%s\"?" -msgstr "Вилучити взули графу шейдера" +msgstr "Вилучити кореневий вузол «%s»?" #: editor/scene_tree_dock.cpp msgid "Delete node \"%s\" and its children?" -msgstr "" +msgstr "Вилучити вузол «%s» Ñ– його дочірні запиÑи?" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete node \"%s\"?" -msgstr "Вилучити вузли" +msgstr "Вилучити вузол «%s»?" #: editor/scene_tree_dock.cpp msgid "Can not perform with the root node." @@ -10100,12 +10131,13 @@ msgstr "" "уÑÑ–Ñ… влаÑтивоÑтей вузла." #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "Редагований дочірній елемент" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" -msgstr "Завантажити Ñк заповнювач" +#, fuzzy +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." +msgstr "" +"Ð’Ð¸Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Â«editable_instance» призведе до Ð¿Ð¾Ð²ÐµÑ€Ð½ÐµÐ½Ð½Ñ Ñ‚Ð¸Ð¿Ð¾Ð²Ð¸Ñ… значень Ð´Ð»Ñ " +"уÑÑ–Ñ… влаÑтивоÑтей вузла." #: editor/scene_tree_dock.cpp msgid "Make Local" @@ -10180,6 +10212,14 @@ msgid "Clear Inheritance" msgstr "УÑунути уÑпадкуваннÑ" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "Редагований дочірній елемент" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "Завантажити Ñк заповнювач" + +#: editor/scene_tree_dock.cpp msgid "Open Documentation" msgstr "Відкрити документацію" @@ -10196,10 +10236,6 @@ msgid "Change Type" msgstr "Змінити тип" #: editor/scene_tree_dock.cpp -msgid "Extend Script" -msgstr "Розширити Ñкрипт" - -#: editor/scene_tree_dock.cpp msgid "Reparent to New Node" msgstr "Змінити батьківÑький вузол на новий" @@ -10440,23 +10476,18 @@ msgid "Will load an existing script file." msgstr "Завантажити наÑвний файл Ñкрипту." #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "Мова" - -#: editor/script_create_dialog.cpp -msgid "Inherits" -msgstr "УÑпадковує" - -#: editor/script_create_dialog.cpp -msgid "Class Name" +#, fuzzy +msgid "Class Name:" msgstr "Ðазва клаÑу" #: editor/script_create_dialog.cpp -msgid "Template" +#, fuzzy +msgid "Template:" msgstr "Шаблон" #: editor/script_create_dialog.cpp -msgid "Built-in Script" +#, fuzzy +msgid "Built-in Script:" msgstr "Вбудований Ñкрипт" #: editor/script_create_dialog.cpp @@ -10472,7 +10503,6 @@ msgid "Bytes:" msgstr "Байтів:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Warning:" msgstr "ПопередженнÑ:" @@ -10481,29 +10511,24 @@ msgid "Error:" msgstr "Помилка:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Error" -msgstr "Помилка копіюваннÑ" +msgstr "Помилка C++" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Error:" -msgstr "Помилка:" +msgstr "Помилка C++:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Source" -msgstr "Джерело" +msgstr "Код C++" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Source:" -msgstr "Джерело" +msgstr "Код:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Source:" -msgstr "Джерело" +msgstr "Код C++:" #: editor/script_editor_debugger.cpp msgid "Stack Trace" @@ -10514,18 +10539,16 @@ msgid "Errors" msgstr "Помилки" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Child process connected." -msgstr "З'єднано дочірній процеÑ" +msgstr "З'єднано дочірній процеÑ." #: editor/script_editor_debugger.cpp msgid "Copy Error" msgstr "Помилка копіюваннÑ" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Skip Breakpoints" -msgstr "Точки зупину" +msgstr "ПропуÑтити точки зупину" #: editor/script_editor_debugger.cpp msgid "Inspect Previous Instance" @@ -10544,9 +10567,8 @@ msgid "Profiler" msgstr "ЗаÑіб профілюваннÑ" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Network Profiler" -msgstr "ЕкÑпорт профілю" +msgstr "ЗаÑіб Ð¿Ñ€Ð¾Ñ„Ñ–Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Ð¼ÐµÑ€ÐµÐ¶Ñ–" #: editor/script_editor_debugger.cpp msgid "Monitor" @@ -10770,7 +10792,7 @@ msgstr "GDNative" #: modules/gdscript/gdscript_functions.cpp msgid "Expected a string of length 1 (a character)." -msgstr "" +msgstr "Мало бути вказано Ñ€Ñдок довжини 1 (Ñимвол)." #: modules/gdscript/gdscript_functions.cpp msgid "Step argument is zero!" @@ -10927,13 +10949,13 @@ msgid "Pick Distance:" msgstr "ВідÑтань вибору:" #: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "Filter meshes" -msgstr "Фільтрувати методи" +msgstr "Фільтрувати Ñітки" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Give a MeshLibrary resource to this GridMap to use its meshes." msgstr "" +"Додайте реÑÑƒÑ€Ñ MeshLibrary до цього GridMap, щоб ÑкориÑтатиÑÑ Ð¹Ð¾Ð³Ð¾ Ñітками." #: modules/mono/csharp_script.cpp msgid "Class name can't be a reserved keyword" @@ -11108,6 +11130,11 @@ msgid "Add Function" msgstr "Додати функцію" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Delete input port" +msgstr "Вилучити вхідний порт" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "Додати змінну" @@ -11116,6 +11143,26 @@ msgid "Add Signal" msgstr "Додати Ñигнал" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Input Port" +msgstr "Додати вхідний порт" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Output Port" +msgstr "Додати вихідний порт" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Input Port" +msgstr "Вилучити вхідний порт" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Output Port" +msgstr "Вилучити вихідний порт" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "Змінити вираз" @@ -11160,10 +11207,20 @@ msgid "Add Preload Node" msgstr "Додати попередньо завантажений вузол" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "Додати вузли з дерева" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "Додати влаÑтивіÑÑ‚ÑŒ отримувача" @@ -11188,6 +11245,11 @@ msgid "Connect Nodes" msgstr "Приєднати вузли" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Disconnect Nodes" +msgstr "Роз'єднати вузли графу" + +#: modules/visual_script/visual_script_editor.cpp msgid "Connect Node Data" msgstr "Приєднати дані вузла" @@ -11220,6 +11282,28 @@ msgid "Paste VisualScript Nodes" msgstr "Ð’Ñтавити вузли (Візуального Ñкриптингу) VisualScript" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Can't create function with a function node." +msgstr "Ðеможливо Ñкопіювати вузол функції." + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Create Function" +msgstr "Перейменувати функцію" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "Вилучити функцію" @@ -11240,21 +11324,17 @@ msgid "Editing Signal:" msgstr "Ð ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ñигналу:" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Make Tool:" -msgstr "Зробити локальним" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "Базовий тип:" +msgstr "ІнÑтрумент збираннÑ:" #: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "Члени:" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" -msgstr "ДоÑтупні вузли:" +#, fuzzy +msgid "function_name" +msgstr "ФункціÑ:" #: modules/visual_script/visual_script_editor.cpp msgid "Select or create a function to edit its graph." @@ -11277,6 +11357,16 @@ msgid "Cut Nodes" msgstr "Вирізати вузли" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Make Function" +msgstr "Перейменувати функцію" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Refresh Graph" +msgstr "Оновити" + +#: modules/visual_script/visual_script_editor.cpp msgid "Edit Member" msgstr "Редагувати член" @@ -11375,6 +11465,10 @@ msgid "The package must have at least one '.' separator." msgstr "У назві пакунка має бути принаймні один роздільник «.»." #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "Вибрати приÑтрій зі ÑпиÑку" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "У параметрах редактора не налаштовано виконуваного файла ADB." @@ -11401,13 +11495,12 @@ msgstr "" "редактора." #: platform/android/export/export.cpp -#, fuzzy msgid "" "Android build template not installed in the project. Install it from the " "Project menu." msgstr "" -"Ð”Ð»Ñ Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ Ð½Ðµ вÑтановлено проєкт Android. Ð’Ñтановіть його за допомогою " -"меню редактора." +"У проєкті не вÑтановлено шаблон Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ Android. Ð’Ñтановіть його за " +"допомогою меню «Проєкт»." #: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." @@ -11499,6 +11592,10 @@ msgid "Required icon is not specified in the preset." msgstr "У шаблоні не вказано потрібної піктограми." #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "ЗапуÑтити в браузері" @@ -12171,10 +12268,6 @@ msgstr "" "Control, щоб у неї був розмір. Крім того, можна зробити Ñ—Ñ— RenderTarget Ñ– " "пов'Ñзати Ñ—Ñ— внутрішню текÑтуру з одним із вузлів Ð´Ð»Ñ Ð¿Ð¾ÐºÐ°Ð·Ñƒ." -#: scene/resources/visual_shader.cpp -msgid "Input" -msgstr "Вхідні дані" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for preview." msgstr "Ðекоректне джерело Ð´Ð»Ñ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½ÑŒÐ¾Ð³Ð¾ переглÑду." @@ -12203,6 +12296,27 @@ msgstr "Змінні величини можна пов'Ñзувати лише msgid "Constants cannot be modified." msgstr "Сталі не можна змінювати." +#~ msgid "Snap to Grid" +#~ msgstr "ÐŸÑ€Ð¸Ð»Ð¸Ð¿Ð°Ð½Ð½Ñ Ð´Ð¾ Ñітки" + +#~ msgid "Add input +" +#~ msgstr "Додати вхід +" + +#~ msgid "Language" +#~ msgstr "Мова" + +#~ msgid "Inherits" +#~ msgstr "УÑпадковує" + +#~ msgid "Base Type:" +#~ msgstr "Базовий тип:" + +#~ msgid "Available Nodes:" +#~ msgstr "ДоÑтупні вузли:" + +#~ msgid "Input" +#~ msgstr "Вхідні дані" + #~ msgid "Properties:" #~ msgstr "ВлаÑтивоÑÑ‚Ñ–:" @@ -12598,9 +12712,6 @@ msgstr "Сталі не можна змінювати." #~ msgid "Go to parent folder" #~ msgstr "Перейти до батьківÑької теки" -#~ msgid "Select device from the list" -#~ msgstr "Вибрати приÑтрій зі ÑпиÑку" - #~ msgid "Open Scene(s)" #~ msgstr "Відкрити Ñцену(и)" @@ -12832,9 +12943,6 @@ msgstr "Сталі не можна змінювати." #~ msgid "Warning" #~ msgstr "ПопередженнÑ" -#~ msgid "Function:" -#~ msgstr "ФункціÑ:" - #~ msgid "Variable" #~ msgstr "Змінна" @@ -12901,9 +13009,6 @@ msgstr "Сталі не можна змінювати." #~ msgid "Connect Graph Nodes" #~ msgstr "З'єднати вузли графу" -#~ msgid "Disconnect Graph Nodes" -#~ msgstr "Роз'єднати вузли графу" - #~ msgid "Remove Shader Graph Node" #~ msgstr "Вилучити вузол графу шейдера" diff --git a/editor/translations/ur_PK.po b/editor/translations/ur_PK.po index 5102a4b463..c68843bd77 100644 --- a/editor/translations/ur_PK.po +++ b/editor/translations/ur_PK.po @@ -357,6 +357,7 @@ msgstr "" #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "" @@ -482,16 +483,6 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "" - -#: editor/animation_track_editor.cpp -#, fuzzy -msgid "Select None" -msgstr ".تمام کا انتخاب" - #: editor/animation_track_editor.cpp msgid "Select an AnimationPlayer node to create and edit animations." msgstr "" @@ -627,7 +618,7 @@ msgid "Scale Ratio:" msgstr "" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" +msgid "Select Tracks to Copy" msgstr "" #: editor/animation_track_editor.cpp editor/editor_log.cpp @@ -639,6 +630,11 @@ msgstr "" msgid "Copy" msgstr "" +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Select All/None" +msgstr ".تمام کا انتخاب" + #: editor/animation_track_editor_plugins.cpp msgid "Add Audio Track Clip" msgstr "" @@ -963,7 +959,7 @@ msgid "Resource" msgstr "" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "" @@ -1423,7 +1419,8 @@ msgstr "" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "" @@ -1477,7 +1474,7 @@ msgstr "" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "" @@ -1876,6 +1873,7 @@ msgid "Class:" msgstr "" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "" @@ -2879,7 +2877,7 @@ msgstr "" msgid "Expand Bottom Panel" msgstr "" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "" @@ -3120,6 +3118,11 @@ msgstr "" msgid "New Script" msgstr "سب سکریپشن بنائیں" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +#, fuzzy +msgid "Extend Script" +msgstr "سب سکریپشن بنائیں" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "" @@ -3146,14 +3149,6 @@ msgstr "" msgid "Convert To %s" msgstr "" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy -msgid "Open Editor" -msgstr "سب سکریپشن بنائیں" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "" @@ -3941,7 +3936,7 @@ msgstr "" msgid "Subfolder:" msgstr "" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "" @@ -4084,6 +4079,13 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +#, fuzzy +msgid "Open Editor" +msgstr "سب سکریپشن بنائیں" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp msgid "Open Animation Node" msgstr "" @@ -4432,7 +4434,6 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "" @@ -4604,6 +4605,8 @@ msgid "Current:" msgstr "" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "" @@ -4808,6 +4811,10 @@ msgid "All" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy msgid "Import..." msgstr ".سپورٹ" @@ -5106,20 +5113,23 @@ msgid "Ruler Mode" msgstr "ایکشن منتقل کریں" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Toggle snapping." +msgid "Toggle smart snapping." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +msgid "Use Smart Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snapping Options" +msgid "Toggle grid snapping." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to Grid" +msgid "Use Grid Snap" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snapping Options" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5210,8 +5220,7 @@ msgid "View" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +msgid "Always Show Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5476,6 +5485,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/curve_editor_plugin.cpp +msgid "Right click to add point" +msgstr "" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "" @@ -6119,6 +6132,10 @@ msgid "Grid" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Configure Grid:" msgstr "" @@ -6175,6 +6192,7 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "" @@ -6275,6 +6293,11 @@ msgid "Find Next" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Filter scripts" msgstr "سب سکریپشن بنائیں" @@ -6548,6 +6571,11 @@ msgstr ".تمام کا انتخاب" msgid "Cut" msgstr "" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "" @@ -6606,10 +6634,6 @@ msgid "Auto Indent" msgstr "" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "" - -#: editor/plugins/script_text_editor.cpp msgid "Find in Files..." msgstr "" @@ -6935,6 +6959,10 @@ msgid "Freelook Speed Modifier" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Slow Modifier" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -6968,6 +6996,10 @@ msgid "Use Local Space" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "" @@ -7201,6 +7233,10 @@ msgid "Simplification: " msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Shrink (Pixels): " +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "" @@ -8003,12 +8039,9 @@ msgid "(GLES3 only)" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add input +" -msgstr "" - -#: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add output +" -msgstr "" +#, fuzzy +msgid "Add Output" +msgstr "سب سکریپشن بنائیں" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Scalar" @@ -8023,6 +8056,11 @@ msgid "Boolean" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Sampler" +msgstr "نمونے" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add input port" msgstr "" @@ -8890,12 +8928,14 @@ msgstr "" #: editor/project_export.cpp msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp @@ -9891,11 +9931,9 @@ msgid "" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." msgstr "" #: editor/scene_tree_dock.cpp @@ -9972,6 +10010,14 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "" + +#: editor/scene_tree_dock.cpp msgid "Open Documentation" msgstr "" @@ -9989,11 +10035,6 @@ msgstr "" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Extend Script" -msgstr "سب سکریپشن بنائیں" - -#: editor/scene_tree_dock.cpp -#, fuzzy msgid "Reparent to New Node" msgstr "سب سکریپشن بنائیں" @@ -10228,25 +10269,18 @@ msgid "Will load an existing script file." msgstr "سب سکریپشن بنائیں" #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Inherits" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Class Name" +msgid "Class Name:" msgstr "" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Template" +msgid "Template:" msgstr ".تمام کا انتخاب" #: editor/script_create_dialog.cpp -msgid "Built-in Script" -msgstr "" +#, fuzzy +msgid "Built-in Script:" +msgstr "سب سکریپشن بنائیں" #: editor/script_create_dialog.cpp #, fuzzy @@ -10898,6 +10932,11 @@ msgid "Add Function" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Delete input port" +msgstr ".تمام کا انتخاب" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "" @@ -10906,6 +10945,26 @@ msgid "Add Signal" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Input Port" +msgstr ".تمام کا انتخاب" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Output Port" +msgstr ".تمام کا انتخاب" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Input Port" +msgstr ".تمام کا انتخاب" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Output Port" +msgstr ".تمام کا انتخاب" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "" @@ -10946,10 +11005,20 @@ msgid "Add Preload Node" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "" @@ -10975,6 +11044,11 @@ msgid "Connect Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Disconnect Nodes" +msgstr "سب سکریپشن بنائیں" + +#: modules/visual_script/visual_script_editor.cpp msgid "Connect Node Data" msgstr "" @@ -11007,6 +11081,27 @@ msgid "Paste VisualScript Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function with a function node." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Create Function" +msgstr ".تمام کا انتخاب" + +#: modules/visual_script/visual_script_editor.cpp #, fuzzy msgid "Remove Function" msgstr ".تمام کا انتخاب" @@ -11033,15 +11128,11 @@ msgid "Make Tool:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" +msgid "function_name" msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -11065,6 +11156,15 @@ msgid "Cut Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Make Function" +msgstr ".تمام کا انتخاب" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Refresh Graph" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Edit Member" msgstr "" @@ -11160,6 +11260,10 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "" @@ -11259,6 +11363,10 @@ msgid "Required icon is not specified in the preset." msgstr "" #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "" @@ -11797,10 +11905,6 @@ msgid "" "texture to some node for display." msgstr "" -#: scene/resources/visual_shader.cpp -msgid "Input" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for preview." msgstr "" @@ -11864,6 +11968,3 @@ msgstr "" #, fuzzy #~ msgid "Can't write file." #~ msgstr "سب سکریپشن بنائیں" - -#~ msgid "Samples" -#~ msgstr "نمونے" diff --git a/editor/translations/vi.po b/editor/translations/vi.po index 060209311d..f3570ad0ff 100644 --- a/editor/translations/vi.po +++ b/editor/translations/vi.po @@ -11,12 +11,13 @@ # TyTYct Hihi <tytyct@gmail.com>, 2019. # Steve Dang <itsnguu@outlook.com>, 2019. # Peter Anh <peteranh3105@gmail.com>, 2019. +# DÅ©ng Äinh <dqdthanhthanh@gmail.com>, 2019. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-09-07 13:51+0000\n" -"Last-Translator: Peter Anh <peteranh3105@gmail.com>\n" +"PO-Revision-Date: 2019-10-04 03:15+0000\n" +"Last-Translator: DÅ©ng Äinh <dqdthanhthanh@gmail.com>\n" "Language-Team: Vietnamese <https://hosted.weblate.org/projects/godot-engine/" "godot/vi/>\n" "Language: vi\n" @@ -367,6 +368,7 @@ msgstr "Tạo %d track má»›i và chèn key?" #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "Tạo" @@ -497,15 +499,6 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "Cảnh bảo: Chỉnh sá»a hoạt ảnh đã nháºp" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "Chá»n Toà n Bá»™" - -#: editor/animation_track_editor.cpp -msgid "Select None" -msgstr "Chá»n Không có" - #: editor/animation_track_editor.cpp #, fuzzy msgid "Select an AnimationPlayer node to create and edit animations." @@ -641,7 +634,8 @@ msgid "Scale Ratio:" msgstr "Tỉ lệ Scale:" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" +#, fuzzy +msgid "Select Tracks to Copy" msgstr "Chá»n các Track để sao chép:" #: editor/animation_track_editor.cpp editor/editor_log.cpp @@ -653,6 +647,11 @@ msgstr "Chá»n các Track để sao chép:" msgid "Copy" msgstr "Sao chép" +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Select All/None" +msgstr "Chá»n Không có" + #: editor/animation_track_editor_plugins.cpp msgid "Add Audio Track Clip" msgstr "Thêm Track Âm thanh" @@ -885,7 +884,7 @@ msgstr "Bạn muốn xoá tất cả kết nối từ tÃn hiệu \"%s\"?" #: editor/connections_dialog.cpp editor/editor_help.cpp editor/node_dock.cpp msgid "Signals" -msgstr "TÃn hiệu" +msgstr "TÃn hiệu (Signal)" #: editor/connections_dialog.cpp msgid "Are you sure you want to remove all connections from this signal?" @@ -979,7 +978,7 @@ msgid "Resource" msgstr "Tà i nguyên" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "ÄÆ°á»ng dẫn" @@ -1443,7 +1442,8 @@ msgstr "Thêm AutoLoad" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "ÄÆ°á»ng dẫn:" @@ -1497,7 +1497,7 @@ msgstr "Tạo thÆ° mục" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "Tên:" @@ -1889,6 +1889,7 @@ msgid "Class:" msgstr "Lá»›p:" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "Thừa kế:" @@ -2771,7 +2772,7 @@ msgstr "" #: editor/editor_node.cpp editor/script_create_dialog.cpp msgid "Editor" -msgstr "Trình biên táºp" +msgstr "Editor (trình biên táºp)" #: editor/editor_node.cpp #, fuzzy @@ -2931,7 +2932,7 @@ msgstr "Quản lý đối tượng" msgid "Expand Bottom Panel" msgstr "Mở rá»™ng bảng Ä‘iá»u khiển phÃa dÆ°á»›i" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "Äầu ra" @@ -3170,6 +3171,11 @@ msgstr "" msgid "New Script" msgstr "Mã lệnh má»›i" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +#, fuzzy +msgid "Extend Script" +msgstr "Tạo Script" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "Má»›i %s" @@ -3196,13 +3202,6 @@ msgstr "Dán" msgid "Convert To %s" msgstr "" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Open Editor" -msgstr "" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "" @@ -3742,7 +3741,7 @@ msgstr "Xoá bố cục" #: editor/groups_editor.cpp editor/node_dock.cpp msgid "Groups" -msgstr "Nhóm" +msgstr "Nhóm (Groups)" #: editor/groups_editor.cpp #, fuzzy @@ -3992,7 +3991,7 @@ msgstr "" msgid "Subfolder:" msgstr "ThÆ° mục phụ:" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "Ngôn ngữ:" @@ -4132,6 +4131,12 @@ msgstr "Äiểm" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Open Editor" +msgstr "" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp msgid "Open Animation Node" msgstr "Mở nút Hoạt ảnh" @@ -4480,7 +4485,6 @@ msgstr "Tên Hoạt ảnh:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "Lá»—i!" @@ -4653,6 +4657,8 @@ msgid "Current:" msgstr "Hiện tại:" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "Thêm Input" @@ -4864,6 +4870,10 @@ msgid "All" msgstr "Tất cả" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy msgid "Import..." msgstr "Nháºp và o" @@ -5157,21 +5167,26 @@ msgid "Ruler Mode" msgstr "Chế Ä‘á»™ Tỉ lệ" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Toggle snapping." +msgid "Toggle smart snapping." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +#, fuzzy +msgid "Use Smart Snap" msgstr "Sá» dụng Snap" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snapping Options" +msgid "Toggle grid snapping." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to Grid" -msgstr "Snap dạng lÆ°á»›i" +#, fuzzy +msgid "Use Grid Snap" +msgstr "Sá» dụng Snap" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snapping Options" +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Rotation Snap" @@ -5260,8 +5275,8 @@ msgid "View" msgstr "Hiện thị" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +#, fuzzy +msgid "Always Show Grid" msgstr "Hiện lÆ°á»›i" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5526,6 +5541,11 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/curve_editor_plugin.cpp +#, fuzzy +msgid "Right click to add point" +msgstr "Nhấp chuá»™t phải: Xóa Point" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "" @@ -6166,6 +6186,10 @@ msgid "Grid" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "Hiện lÆ°á»›i" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Configure Grid:" msgstr "" @@ -6222,6 +6246,7 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "" @@ -6329,6 +6354,11 @@ msgid "Find Next" msgstr "Tìm tiếp theo" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Filter scripts" msgstr "Lá»c các thuá»™c tÃnh" @@ -6607,6 +6637,11 @@ msgstr "Tạo các Ä‘iểm." msgid "Cut" msgstr "Cắt" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "Chá»n Toà n Bá»™" + #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "" @@ -6665,10 +6700,6 @@ msgid "Auto Indent" msgstr "" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "" - -#: editor/plugins/script_text_editor.cpp #, fuzzy msgid "Find in Files..." msgstr "Tìm..." @@ -6999,6 +7030,10 @@ msgid "Freelook Speed Modifier" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Slow Modifier" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -7032,6 +7067,10 @@ msgid "Use Local Space" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "Sá» dụng Snap" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "" @@ -7265,6 +7304,10 @@ msgid "Simplification: " msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Shrink (Pixels): " +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "" @@ -8081,12 +8124,7 @@ msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy -msgid "Add input +" -msgstr "Thêm Input" - -#: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy -msgid "Add output +" +msgid "Add Output" msgstr "Thêm Input" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -8103,6 +8141,10 @@ msgid "Boolean" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sampler" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy msgid "Add input port" msgstr "Thêm Input" @@ -8982,12 +9024,14 @@ msgstr "" #: editor/project_export.cpp msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp @@ -9482,7 +9526,7 @@ msgstr "" #: editor/project_settings_editor.cpp msgid "Button" -msgstr "" +msgstr "Button (nút, phÃm)" #: editor/project_settings_editor.cpp msgid "Left Button." @@ -9992,11 +10036,9 @@ msgid "" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." msgstr "" #: editor/scene_tree_dock.cpp @@ -10072,6 +10114,14 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "" + +#: editor/scene_tree_dock.cpp msgid "Open Documentation" msgstr "" @@ -10090,11 +10140,6 @@ msgstr "" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Extend Script" -msgstr "Tạo Script" - -#: editor/scene_tree_dock.cpp -#, fuzzy msgid "Reparent to New Node" msgstr "Tạo các nút má»›i." @@ -10335,24 +10380,19 @@ msgid "Will load an existing script file." msgstr "" #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Inherits" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Class Name" -msgstr "" +#, fuzzy +msgid "Class Name:" +msgstr "Lá»›p:" #: editor/script_create_dialog.cpp -msgid "Template" -msgstr "" +#, fuzzy +msgid "Template:" +msgstr "Khung project" #: editor/script_create_dialog.cpp -msgid "Built-in Script" -msgstr "" +#, fuzzy +msgid "Built-in Script:" +msgstr "Tạo Script" #: editor/script_create_dialog.cpp msgid "Attach Node Script" @@ -11004,6 +11044,11 @@ msgid "Add Function" msgstr "Thêm Hà m" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Delete input port" +msgstr "Xoá Function" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "Thêm Biến" @@ -11012,6 +11057,26 @@ msgid "Add Signal" msgstr "Thêm TÃn hiệu" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Input Port" +msgstr "Thêm Input" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Output Port" +msgstr "Thêm Input" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Input Port" +msgstr "Xoá Function" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Output Port" +msgstr "Xóa Template" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "" @@ -11052,10 +11117,20 @@ msgid "Add Preload Node" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "" @@ -11081,6 +11156,11 @@ msgstr "" #: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Disconnect Nodes" +msgstr "Äứt kết nối" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Connect Node Data" msgstr "Kết nối đến Node:" @@ -11114,6 +11194,27 @@ msgid "Paste VisualScript Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function with a function node." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Create Function" +msgstr "Äổi tên Hà m" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "Xoá Function" @@ -11138,16 +11239,13 @@ msgid "Make Tool:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "Những Thà nh viên:" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" -msgstr "Nodes khả dụng:" +#, fuzzy +msgid "function_name" +msgstr "Hà m:" #: modules/visual_script/visual_script_editor.cpp msgid "Select or create a function to edit its graph." @@ -11170,6 +11268,16 @@ msgid "Cut Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Make Function" +msgstr "Äổi tên Hà m" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Refresh Graph" +msgstr "Là m má»›i" + +#: modules/visual_script/visual_script_editor.cpp msgid "Edit Member" msgstr "" @@ -11264,6 +11372,10 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "" @@ -11365,6 +11477,10 @@ msgid "Required icon is not specified in the preset." msgstr "" #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "Chạy trong Trình duyệt web" @@ -11912,14 +12028,9 @@ msgid "" "texture to some node for display." msgstr "" -#: scene/resources/visual_shader.cpp -msgid "Input" -msgstr "Nháºp" - #: scene/resources/visual_shader_nodes.cpp -#, fuzzy msgid "Invalid source for preview." -msgstr "nguồn vô hiệu cho shader." +msgstr "nguồn vô hiệu cho xem trÆ°á»›c" #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for shader." @@ -11946,6 +12057,19 @@ msgstr "" msgid "Constants cannot be modified." msgstr "Không thể chỉnh sá»a hằng số." +#~ msgid "Snap to Grid" +#~ msgstr "Snap dạng lÆ°á»›i" + +#, fuzzy +#~ msgid "Add input +" +#~ msgstr "Thêm Input" + +#~ msgid "Available Nodes:" +#~ msgstr "Nodes khả dụng:" + +#~ msgid "Input" +#~ msgstr "Nháºp" + #~ msgid "Properties:" #~ msgstr "Thuá»™c tÃnh:" diff --git a/editor/translations/zh_CN.po b/editor/translations/zh_CN.po index 5c8029a727..86aa897888 100644 --- a/editor/translations/zh_CN.po +++ b/editor/translations/zh_CN.po @@ -57,11 +57,12 @@ # Morge Tolbert <pygyme@gmail.com>, 2019. # idleman <1524328475@qq.com>, 2019. # king <wangding1992@126.com>, 2019. +# silentbird <silentbird520@outlook.com>, 2019. msgid "" msgstr "" "Project-Id-Version: Chinese (Simplified) (Godot Engine)\n" "POT-Creation-Date: 2018-01-20 12:15+0200\n" -"PO-Revision-Date: 2019-09-26 11:51+0000\n" +"PO-Revision-Date: 2019-10-22 02:53+0000\n" "Last-Translator: idleman <1524328475@qq.com>\n" "Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/" "godot-engine/godot/zh_Hans/>\n" @@ -70,7 +71,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 3.9-dev\n" +"X-Generator: Weblate 3.9.1-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -113,32 +114,31 @@ msgstr "对'%s'的调用 :" #: core/ustring.cpp msgid "B" -msgstr "" +msgstr "B" #: core/ustring.cpp msgid "KiB" -msgstr "" +msgstr "KB" #: core/ustring.cpp -#, fuzzy msgid "MiB" -msgstr "æ··åˆ" +msgstr "MB" #: core/ustring.cpp msgid "GiB" -msgstr "" +msgstr "GB" #: core/ustring.cpp msgid "TiB" -msgstr "" +msgstr "TB" #: core/ustring.cpp msgid "PiB" -msgstr "" +msgstr "PB" #: core/ustring.cpp msgid "EiB" -msgstr "" +msgstr "EB" #: editor/animation_bezier_editor.cpp msgid "Free" @@ -404,6 +404,7 @@ msgstr "创建%d个新轨é“并æ’入关键帧?" #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "创建" @@ -538,19 +539,9 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "è¦å‘Š: æ£åœ¨ç¼–辑导入的动画" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "全选" - -#: editor/animation_track_editor.cpp -msgid "Select None" -msgstr "å–消选择" - #: editor/animation_track_editor.cpp -#, fuzzy msgid "Select an AnimationPlayer node to create and edit animations." -msgstr "包å«åŠ¨ç”»çš„ AnimationPlayer 节点没有设置路径。" +msgstr "选择一个AnimationPlayer节点以创建和编辑动画。" #: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." @@ -574,7 +565,7 @@ msgstr "秒" #: editor/animation_track_editor.cpp msgid "FPS" -msgstr "帧数" +msgstr ":abbr:`FPS(Frames Per Second,æ¯ç§’ä¼ è¾“å¸§æ•°)`" #: editor/animation_track_editor.cpp editor/editor_properties.cpp #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -682,7 +673,8 @@ msgid "Scale Ratio:" msgstr "缩放比率:" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" +#, fuzzy +msgid "Select Tracks to Copy" msgstr "选择è¦å¤åˆ¶çš„轨é“:" #: editor/animation_track_editor.cpp editor/editor_log.cpp @@ -694,6 +686,11 @@ msgstr "选择è¦å¤åˆ¶çš„轨é“:" msgid "Copy" msgstr "å¤åˆ¶" +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Select All/None" +msgstr "å–消选择" + #: editor/animation_track_editor_plugins.cpp msgid "Add Audio Track Clip" msgstr "æ·»åŠ éŸ³é¢‘è½¨é“剪辑" @@ -1012,7 +1009,7 @@ msgid "Resource" msgstr "资æº" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "路径" @@ -1277,9 +1274,8 @@ msgid "Delete Bus Effect" msgstr "åˆ é™¤éŸ³é¢‘æ€»çº¿æ•ˆæžœ" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Drag & drop to rearrange." -msgstr "音频总线,拖放é‡æ–°æŽ’列。" +msgstr "拖放以é‡æ–°æŽ’列。" #: editor/editor_audio_buses.cpp msgid "Solo" @@ -1470,7 +1466,8 @@ msgstr "æ·»åŠ è‡ªåŠ¨åŠ è½½" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "路径:" @@ -1524,7 +1521,7 @@ msgstr "新建目录" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "å称:" @@ -1910,6 +1907,7 @@ msgid "Class:" msgstr "ç±»:" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "基类:" @@ -1918,9 +1916,8 @@ msgid "Inherited by:" msgstr "派生类:" #: editor/editor_help.cpp -#, fuzzy msgid "Brief Description" -msgstr "简介:" +msgstr "简述" #: editor/editor_help.cpp msgid "Properties" @@ -1951,9 +1948,8 @@ msgid "Class Description" msgstr "类说明" #: editor/editor_help.cpp -#, fuzzy msgid "Online Tutorials" -msgstr "在线教程:" +msgstr "在线教程" #: editor/editor_help.cpp msgid "" @@ -2075,7 +2071,7 @@ msgstr "开始" #: editor/editor_network_profiler.cpp msgid "%s/s" -msgstr "" +msgstr "%s/s" #: editor/editor_network_profiler.cpp msgid "Down" @@ -2091,19 +2087,19 @@ msgstr "节点" #: editor/editor_network_profiler.cpp msgid "Incoming RPC" -msgstr "" +msgstr "ä¼ å…¥RPC" #: editor/editor_network_profiler.cpp msgid "Incoming RSET" -msgstr "" +msgstr "ä¼ å…¥RSET" #: editor/editor_network_profiler.cpp msgid "Outgoing RPC" -msgstr "" +msgstr "ä¼ å‡ºRPC" #: editor/editor_network_profiler.cpp msgid "Outgoing RSET" -msgstr "" +msgstr "ä¼ å‡ºRSET" #: editor/editor_node.cpp editor/project_manager.cpp msgid "New Window" @@ -2666,17 +2662,16 @@ msgid "Project Settings..." msgstr "项目设置..." #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Version Control" -msgstr "版本:" +msgstr "版本控制" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Set Up Version Control" -msgstr "" +msgstr "设置版本控制" #: editor/editor_node.cpp msgid "Shut Down Version Control" -msgstr "" +msgstr "å…³é—版本控制" #: editor/editor_node.cpp msgid "Export..." @@ -2939,7 +2934,7 @@ msgstr "属性é¢æ¿" msgid "Expand Bottom Panel" msgstr "展开底部é¢æ¿" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "日志" @@ -2965,17 +2960,20 @@ msgid "" "the \"Use Custom Build\" option should be enabled in the Android export " "preset." msgstr "" +"通过将æºæ¨¡æ¿å®‰è£…到“ res:// android / buildâ€ï¼Œå°†ä¸ºè‡ªå®šä¹‰Android构建设置项" +"目。 然åŽï¼Œæ‚¨å¯ä»¥åº”用修改并在导出时构建自己的自定义APKï¼ˆæ·»åŠ æ¨¡å—,更改" +"AndroidManifest.xmlç‰ï¼‰ã€‚ 请注æ„,为了进行自定义构建而ä¸æ˜¯ä½¿ç”¨é¢„先构建的APK," +"应在Android导出预设ä¸å¯ç”¨â€œä½¿ç”¨è‡ªå®šä¹‰æž„建â€é€‰é¡¹ã€‚" #: editor/editor_node.cpp -#, fuzzy msgid "" "The Android build template is already installed in this project and it won't " "be overwritten.\n" "Remove the \"res://android/build\" directory manually before attempting this " "operation again." msgstr "" -"Android 构建模æ¿å·²ç»å®‰è£…且ä¸ä¼šè¢«è¦†ç›–。\n" -"请先移除“buildâ€ç›®å½•å†é‡æ–°å°è¯•æ¤æ“作。" +"Android构建模æ¿å·²å®‰è£…在æ¤é¡¹ç›®ä¸ï¼Œå¹¶ä¸”ä¸ä¼šè¢«è¦†ç›–。 å†æ¬¡å°è¯•æ‰§è¡Œæ¤æ“作之å‰ï¼Œè¯·" +"æ‰‹åŠ¨åˆ é™¤â€œ res:// android / buildâ€ç›®å½•ã€‚" #: editor/editor_node.cpp msgid "Import Templates From ZIP File" @@ -3038,9 +3036,8 @@ msgid "Open the previous Editor" msgstr "打开上一个编辑器" #: editor/editor_path.cpp -#, fuzzy msgid "No sub-resources found." -msgstr "没有指定的表é¢æºã€‚" +msgstr "找ä¸åˆ°å资æºã€‚" #: editor/editor_plugin.cpp msgid "Creating Mesh Previews" @@ -3051,9 +3048,8 @@ msgid "Thumbnail..." msgstr "缩略图..." #: editor/editor_plugin_settings.cpp -#, fuzzy msgid "Main Script:" -msgstr "打开脚本:" +msgstr "主脚本:" #: editor/editor_plugin_settings.cpp msgid "Edit Plugin" @@ -3184,6 +3180,10 @@ msgstr "选择1个视å£" msgid "New Script" msgstr "新建脚本" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +msgid "Extend Script" +msgstr "打开脚本" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "新建%s" @@ -3210,13 +3210,6 @@ msgstr "粘贴" msgid "Convert To %s" msgstr "转æ¢ä¸º%s" -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Open Editor" -msgstr "打开编辑器" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "选定的节点ä¸æ˜¯ä¸€ä¸ªViewport节点ï¼" @@ -3747,7 +3740,7 @@ msgstr "åˆ é™¤åˆ†ç»„" #: editor/groups_editor.cpp editor/node_dock.cpp msgid "Groups" -msgstr "分组" +msgstr "编组" #: editor/groups_editor.cpp msgid "Nodes Not in Group" @@ -3868,9 +3861,8 @@ msgid "Import As:" msgstr "导入为:" #: editor/import_dock.cpp -#, fuzzy msgid "Preset" -msgstr "预设" +msgstr "预置" #: editor/import_dock.cpp msgid "Reimport" @@ -3994,7 +3986,7 @@ msgstr "æ’件å:" msgid "Subfolder:" msgstr "å文件夹:" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "è¯è¨€ï¼š" @@ -4134,6 +4126,12 @@ msgstr "点" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Open Editor" +msgstr "打开编辑器" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp msgid "Open Animation Node" msgstr "打开动画节点" @@ -4475,7 +4473,6 @@ msgstr "动画å称:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "错误ï¼" @@ -4646,6 +4643,8 @@ msgid "Current:" msgstr "当å‰:" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "æ·»åŠ è¾“å…¥äº‹ä»¶" @@ -4850,6 +4849,10 @@ msgid "All" msgstr "全部" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp msgid "Import..." msgstr "导入…" @@ -5127,71 +5130,77 @@ msgid "Pan Mode" msgstr "平移模å¼" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Ruler Mode" -msgstr "è¿è¡Œæ¨¡å¼:" +msgstr "æ ‡å°ºæ¨¡å¼" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Toggle snapping." +#, fuzzy +msgid "Toggle smart snapping." msgstr "开关å¸é™„。" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" -msgstr "使用对é½" +#, fuzzy +msgid "Use Smart Snap" +msgstr "使用å¸é™„" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snapping Options" -msgstr "对é½é€‰é¡¹" +#, fuzzy +msgid "Toggle grid snapping." +msgstr "开关å¸é™„。" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Use Grid Snap" +msgstr "ç½‘æ ¼å¸é™„" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to Grid" -msgstr "对é½ç½‘æ ¼" +msgid "Snapping Options" +msgstr "å¸é™„选项" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Rotation Snap" -msgstr "使用旋转对é½" +msgstr "使用旋转å¸é™„" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Snap Relative" -msgstr "相对对é½" +msgstr "相对å¸é™„" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Pixel Snap" -msgstr "使用åƒç´ 对é½" +msgstr "使用åƒç´ å¸é™„" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Smart Snapping" -msgstr "智能对é½" +msgstr "智能å¸é™„" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp msgid "Configure Snap..." -msgstr "设置对é½..." +msgstr "设置å¸é™„..." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Snap to Parent" -msgstr "对é½åˆ°çˆ¶çº§" +msgstr "å¸é™„到父级" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Snap to Node Anchor" -msgstr "对é½åˆ°èŠ‚点锚点" +msgstr "å¸é™„到节点锚点" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Snap to Node Sides" -msgstr "对é½åˆ°èŠ‚点侧" +msgstr "å¸é™„到节点侧" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Snap to Node Center" -msgstr "对é½åˆ°èŠ‚点ä¸å¿ƒä½ç½®" +msgstr "å¸é™„到节点ä¸å¿ƒä½ç½®" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Snap to Other Nodes" -msgstr "对é½åˆ°å…¶ä»–node节点" +msgstr "å¸é™„到其他node节点" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Snap to Guides" -msgstr "对é½åˆ°å‚考线" +msgstr "å¸é™„到å‚考线" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -5235,8 +5244,8 @@ msgid "View" msgstr "视图" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +#, fuzzy +msgid "Always Show Grid" msgstr "æ˜¾ç¤ºç½‘æ ¼" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5501,6 +5510,11 @@ msgstr "切æ¢æ›²çº¿çº¿æ€§Tangent" msgid "Hold Shift to edit tangents individually" msgstr "æŒ‰ä½ Shift å¯å•ç‹¬ç¼–辑切线" +#: editor/plugins/curve_editor_plugin.cpp +#, fuzzy +msgid "Right click to add point" +msgstr "é¼ æ ‡å³é”®:åˆ é™¤ç‚¹" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "渲染GI Probe" @@ -5596,7 +5610,7 @@ msgstr "创建轮廓(outlines)" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh" -msgstr "网 æ ¼" +msgstr "网络" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Static Body" @@ -6130,6 +6144,10 @@ msgid "Grid" msgstr "ç½‘æ ¼" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "æ˜¾ç¤ºç½‘æ ¼" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Configure Grid:" msgstr "é…ç½®ç½‘æ ¼ï¼š" @@ -6186,6 +6204,7 @@ msgstr "实例:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "类型:" @@ -6284,6 +6303,11 @@ msgid "Find Next" msgstr "查找下一项" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "查找上一项" + +#: editor/plugins/script_editor_plugin.cpp msgid "Filter scripts" msgstr "过滤脚本" @@ -6551,6 +6575,11 @@ msgstr "æ–点" msgid "Cut" msgstr "剪切" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "全选" + #: editor/plugins/script_text_editor.cpp msgid "Delete Line" msgstr "åˆ é™¤çº¿" @@ -6608,10 +6637,6 @@ msgid "Auto Indent" msgstr "自动缩进" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "查找上一项" - -#: editor/plugins/script_text_editor.cpp msgid "Find in Files..." msgstr "在文件ä¸æŸ¥æ‰¾..." @@ -6933,6 +6958,11 @@ msgid "Freelook Speed Modifier" msgstr "自由视图速度调整" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Freelook Slow Modifier" +msgstr "自由视图速度调整" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -6971,6 +7001,10 @@ msgid "Use Local Space" msgstr "使用本地空间" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "使用å¸é™„" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "底部视图" @@ -7021,7 +7055,7 @@ msgstr "å˜æ¢" #: editor/plugins/spatial_editor_plugin.cpp msgid "Snap Object to Floor" -msgstr "将对象对é½åˆ°åœ°æ¿" +msgstr "将对象å¸é™„到地æ¿" #: editor/plugins/spatial_editor_plugin.cpp msgid "Transform Dialog..." @@ -7074,7 +7108,7 @@ msgstr "å¸é™„设置" #: editor/plugins/spatial_editor_plugin.cpp msgid "Translate Snap:" -msgstr "移动å¸é™„:" +msgstr "转化å¸é™„:" #: editor/plugins/spatial_editor_plugin.cpp msgid "Rotate Snap (deg.):" @@ -7197,6 +7231,11 @@ msgid "Simplification: " msgstr "简å•åŒ–: " #: editor/plugins/sprite_editor_plugin.cpp +#, fuzzy +msgid "Shrink (Pixels): " +msgstr "扩展(åƒç´ ): " + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "扩展(åƒç´ ): " @@ -7245,9 +7284,8 @@ msgid "(empty)" msgstr "(空)" #: editor/plugins/sprite_frames_editor_plugin.cpp -#, fuzzy msgid "Move Frame" -msgstr "粘贴帧" +msgstr "移动帧" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Animations:" @@ -7564,13 +7602,12 @@ msgid "Enable Priority" msgstr "å¯ç”¨ä¼˜å…ˆçº§" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Filter tiles" -msgstr "ç›é€‰æ–‡ä»¶..." +msgstr "过滤tiles" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Give a TileSet resource to this TileMap to use its tiles." -msgstr "" +msgstr "为æ¤tilemapæä¾›tileset资æºä»¥ä½¿ç”¨å…¶tile。" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" @@ -7709,7 +7746,7 @@ msgstr "显示ç£è´´çš„åå—ï¼ˆæŒ‰ä½ Alt 键)" #: editor/plugins/tile_set_editor_plugin.cpp msgid "" "Add or select a texture on the left panel to edit the tiles bound to it." -msgstr "" +msgstr "在左侧é¢æ¿ä¸Šæ·»åŠ 或选择纹ç†ä»¥ç¼–辑与其绑定的图å—。" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Remove selected texture? This will remove all tiles which use it." @@ -7881,92 +7918,80 @@ msgid "TileSet" msgstr "ç –å—集" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "No VCS addons are available." -msgstr "父节点的å称,如果有的è¯" +msgstr "没有å¯ç”¨çš„VCSæ’件。" #: editor/plugins/version_control_editor_plugin.cpp editor/rename_dialog.cpp msgid "Error" msgstr "错误" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "No commit message was provided" -msgstr "未æä¾›å称" +msgstr "没有æä¾›æ交消æ¯" #: editor/plugins/version_control_editor_plugin.cpp msgid "No files added to stage" -msgstr "" +msgstr "æ²¡æœ‰æ–‡ä»¶æ·»åŠ åˆ°èˆžå°" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Commit" -msgstr "社区" +msgstr "æ交" #: editor/plugins/version_control_editor_plugin.cpp msgid "VCS Addon is not initialized" -msgstr "" +msgstr "VCSæ’件未åˆå§‹åŒ–" #: editor/plugins/version_control_editor_plugin.cpp msgid "Version Control System" -msgstr "" +msgstr "版本控制系统" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Initialize" -msgstr "首å—æ¯å¤§å†™" +msgstr "åˆå§‹åŒ–" #: editor/plugins/version_control_editor_plugin.cpp msgid "Staging area" -msgstr "" +msgstr "æš‚å˜åŒºåŸŸ" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Detect new changes" -msgstr "新建一个四边形。" +msgstr "检测新å˜åŒ–" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Changes" -msgstr "更改" +msgstr "修改" #: editor/plugins/version_control_editor_plugin.cpp msgid "Modified" -msgstr "" +msgstr "已修改" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Renamed" -msgstr "é‡å‘½å" +msgstr "æ›´å" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Deleted" -msgstr "åˆ é™¤" +msgstr "å·²åˆ é™¤" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Typechange" -msgstr "更改" +msgstr "类型更改" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Stage Selected" -msgstr "åˆ é™¤å·²é€‰ä¸" +msgstr "舞å°é€‰å®š" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Stage All" -msgstr "全部ä¿å˜" +msgstr "所有舞å°" #: editor/plugins/version_control_editor_plugin.cpp msgid "Add a commit message" -msgstr "" +msgstr "æ·»åŠ æ交消æ¯" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Commit Changes" -msgstr "åŒæ¥è„šæœ¬å˜æ›´" +msgstr "æ交å˜æ›´" #: editor/plugins/version_control_editor_plugin.cpp #: modules/gdnative/gdnative_library_singleton_editor.cpp @@ -7975,27 +8000,23 @@ msgstr "状æ€" #: editor/plugins/version_control_editor_plugin.cpp msgid "View file diffs before committing them to the latest version" -msgstr "" +msgstr "在æ交到最新版本之å‰æŸ¥çœ‹æ–‡ä»¶å·®å¼‚" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "No file diff is active" -msgstr "没有选ä¸ä»»ä½•æ–‡ä»¶ï¼" +msgstr "没有文件差异处于活动状æ€" #: editor/plugins/version_control_editor_plugin.cpp msgid "Detect changes in file diff" -msgstr "" +msgstr "检测文件差异的å˜åŒ–" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "(GLES3 only)" msgstr "åªä½¿ç”¨GLES3" #: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add input +" -msgstr "æ·»åŠ è¾“å…¥+" - -#: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add output +" +#, fuzzy +msgid "Add Output" msgstr "æ·»åŠ è¾“å‡º+" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -8004,13 +8025,18 @@ msgstr "æ ‡é‡" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Vector" -msgstr "å‘é‡" +msgstr "Vector" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Boolean" msgstr "布尔值" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Sampler" +msgstr "音效" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add input port" msgstr "æ·»åŠ è¾“å…¥ç«¯å£" @@ -8219,7 +8245,6 @@ msgid "" msgstr "如果æ供的布尔值是true或false,则返回关è”çš„å‘é‡ã€‚" #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "" "Returns an associated scalar if the provided boolean value is true or false." msgstr "如果æ供的布尔值是true或false,则返回关è”çš„å‘é‡ã€‚" @@ -8736,7 +8761,7 @@ msgstr "å‘é‡å¸¸æ•°ã€‚" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Vector uniform." -msgstr "å‘é‡ä¸€è‡´" +msgstr "å‘é‡ä¸€è‡´ã€‚" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "" @@ -8900,13 +8925,17 @@ msgid "Resources to export:" msgstr "导出的资æº:" #: editor/project_export.cpp +#, fuzzy msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "ç›é€‰å¯¼å‡ºéžèµ„æºæ–‡ä»¶ï¼ˆä½¿ç”¨è‹±æ–‡é€—å·åˆ†éš”,如:*.json,*.txt)" #: editor/project_export.cpp +#, fuzzy msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "过滤从项目ä¸æŽ’除文件(以逗å·åˆ†éš”,例如:*。json,*。txt)" #: editor/project_export.cpp @@ -9473,9 +9502,8 @@ msgid "Settings saved OK." msgstr "ä¿å˜è®¾ç½®æˆåŠŸã€‚" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Moved Input Action Event" -msgstr "æ·»åŠ è¾“å…¥äº‹ä»¶" +msgstr "输入动作事件" #: editor/project_settings_editor.cpp msgid "Override for Feature" @@ -9543,7 +9571,7 @@ msgstr "动作:" #: editor/project_settings_editor.cpp msgid "Action" -msgstr "动作" +msgstr "动作(``Action``)" #: editor/project_settings_editor.cpp msgid "Deadzone" @@ -9575,7 +9603,7 @@ msgstr "é‡å®šå‘" #: editor/project_settings_editor.cpp msgid "Resources:" -msgstr "资æº:" +msgstr "资æºï¼š" #: editor/project_settings_editor.cpp msgid "Remaps by Locale:" @@ -9607,7 +9635,7 @@ msgstr "区域:" #: editor/project_settings_editor.cpp msgid "AutoLoad" -msgstr "è‡ªåŠ¨åŠ è½½(AutoLoad)" +msgstr "è‡ªåŠ¨åŠ è½½" #: editor/project_settings_editor.cpp msgid "Plugins" @@ -9840,9 +9868,8 @@ msgid "Instance Scene(s)" msgstr "实例化场景" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Replace with Branch Scene" -msgstr "将分支ä¿å˜ä¸ºåœºæ™¯" +msgstr "替æ¢ä¸ºåˆ†æ”¯åœºæ™¯" #: editor/scene_tree_dock.cpp msgid "Instance Child Scene" @@ -9885,23 +9912,20 @@ msgid "Make node as Root" msgstr "å°†èŠ‚ç‚¹è®¾ç½®ä¸ºæ ¹èŠ‚ç‚¹" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete %d nodes?" -msgstr "åˆ é™¤èŠ‚ç‚¹" +msgstr "åˆ é™¤ï¼…d个节点?" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete the root node \"%s\"?" -msgstr "åˆ é™¤Graph Node节点" +msgstr "åˆ é™¤æ ¹èŠ‚ç‚¹â€œï¼…sâ€ï¼Ÿ" #: editor/scene_tree_dock.cpp msgid "Delete node \"%s\" and its children?" -msgstr "" +msgstr "åˆ é™¤èŠ‚ç‚¹â€œï¼…sâ€åŠå…¶å节点?" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete node \"%s\"?" -msgstr "åˆ é™¤èŠ‚ç‚¹" +msgstr "åˆ é™¤èŠ‚ç‚¹â€œï¼…sâ€ï¼Ÿ" #: editor/scene_tree_dock.cpp msgid "Can not perform with the root node." @@ -9922,12 +9946,11 @@ msgid "" msgstr "ç¦ç”¨â€œå¯ç¼–辑实例â€å°†å¯¼è‡´èŠ‚点的所有属性æ¢å¤ä¸ºå…¶é»˜è®¤å€¼ã€‚" #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "å…许编辑åå™èŠ‚点" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" -msgstr "åŠ è½½ä¸ºå ä½ç¬¦" +#, fuzzy +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." +msgstr "ç¦ç”¨â€œå¯ç¼–辑实例â€å°†å¯¼è‡´èŠ‚点的所有属性æ¢å¤ä¸ºå…¶é»˜è®¤å€¼ã€‚" #: editor/scene_tree_dock.cpp msgid "Make Local" @@ -10000,6 +10023,14 @@ msgid "Clear Inheritance" msgstr "清除继承" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "å…许编辑åå™èŠ‚点" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "åŠ è½½ä¸ºå ä½ç¬¦" + +#: editor/scene_tree_dock.cpp msgid "Open Documentation" msgstr "打开文档" @@ -10016,10 +10047,6 @@ msgid "Change Type" msgstr "更改类型" #: editor/scene_tree_dock.cpp -msgid "Extend Script" -msgstr "打开脚本" - -#: editor/scene_tree_dock.cpp msgid "Reparent to New Node" msgstr "é‡æ–°åˆ†é…到新节点" @@ -10252,23 +10279,18 @@ msgid "Will load an existing script file." msgstr "å°†åŠ è½½çŽ°æœ‰çš„è„šæœ¬æ–‡ä»¶ã€‚" #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "è¯è¨€" - -#: editor/script_create_dialog.cpp -msgid "Inherits" -msgstr "继承自" - -#: editor/script_create_dialog.cpp -msgid "Class Name" +#, fuzzy +msgid "Class Name:" msgstr "ç±»å" #: editor/script_create_dialog.cpp -msgid "Template" +#, fuzzy +msgid "Template:" msgstr "模æ¿" #: editor/script_create_dialog.cpp -msgid "Built-in Script" +#, fuzzy +msgid "Built-in Script:" msgstr "内置脚本" #: editor/script_create_dialog.cpp @@ -10284,7 +10306,6 @@ msgid "Bytes:" msgstr "å—节:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Warning:" msgstr "è¦å‘Šï¼š" @@ -10293,29 +10314,24 @@ msgid "Error:" msgstr "错误:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Error" -msgstr "å¤åˆ¶é”™è¯¯ä¿¡æ¯" +msgstr "C ++错误" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Error:" -msgstr "错误:" +msgstr "C++错误:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Source" -msgstr "æº" +msgstr "C++æºç¨‹åº" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Source:" -msgstr "æº" +msgstr "æºæ–‡ä»¶:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Source:" -msgstr "æº" +msgstr "C++æºç¨‹åºï¼š" #: editor/script_editor_debugger.cpp msgid "Stack Trace" @@ -10326,18 +10342,16 @@ msgid "Errors" msgstr "错误" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Child process connected." -msgstr "å进程已连接" +msgstr "å进程已连接。" #: editor/script_editor_debugger.cpp msgid "Copy Error" msgstr "å¤åˆ¶é”™è¯¯ä¿¡æ¯" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Skip Breakpoints" -msgstr "æ–点" +msgstr "跳过æ–点" #: editor/script_editor_debugger.cpp msgid "Inspect Previous Instance" @@ -10356,9 +10370,8 @@ msgid "Profiler" msgstr "性能分æž" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Network Profiler" -msgstr "导出é…置文件" +msgstr "网络é…ç½®" #: editor/script_editor_debugger.cpp msgid "Monitor" @@ -10582,7 +10595,7 @@ msgstr "GDNative" #: modules/gdscript/gdscript_functions.cpp msgid "Expected a string of length 1 (a character)." -msgstr "" +msgstr "预期为长度为1çš„å—符串(一个å—符)。" #: modules/gdscript/gdscript_functions.cpp msgid "Step argument is zero!" @@ -10737,13 +10750,12 @@ msgid "Pick Distance:" msgstr "拾å–è·ç¦»:" #: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "Filter meshes" -msgstr "过滤方å¼" +msgstr "è¿‡æ»¤ç½‘æ ¼" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Give a MeshLibrary resource to this GridMap to use its meshes." -msgstr "" +msgstr "å‘æ¤GridMapæä¾›MeshLibrary资æºä»¥ä½¿ç”¨å…¶ç½‘æ ¼ã€‚" #: modules/mono/csharp_script.cpp msgid "Class name can't be a reserved keyword" @@ -10913,6 +10925,11 @@ msgid "Add Function" msgstr "æ·»åŠ å‡½æ•°" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Delete input port" +msgstr "移除输入端å£" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "æ·»åŠ å˜é‡" @@ -10921,6 +10938,26 @@ msgid "Add Signal" msgstr "æ·»åŠ ä¿¡å·" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Input Port" +msgstr "æ·»åŠ è¾“å…¥ç«¯å£" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Output Port" +msgstr "å¢žåŠ è¾“å‡ºç«¯å£" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Input Port" +msgstr "移除输入端å£" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Output Port" +msgstr "移除输出端å£" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "更改表达å¼" @@ -10961,10 +10998,20 @@ msgid "Add Preload Node" msgstr "æ·»åŠ Preload节点" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "ä»Žæ ‘ä¸æ·»åŠ 节点" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "æ·»åŠ å±žæ€§Getter" @@ -10989,6 +11036,11 @@ msgid "Connect Nodes" msgstr "连接节点" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Disconnect Nodes" +msgstr "æ–å¼€Graph Node连接" + +#: modules/visual_script/visual_script_editor.cpp msgid "Connect Node Data" msgstr "连接节点数æ®" @@ -11021,6 +11073,28 @@ msgid "Paste VisualScript Nodes" msgstr "粘贴 VisualScript 节点" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Can't create function with a function node." +msgstr "æ— æ³•å¤åˆ¶å‡½æ•°èŠ‚点。" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Create Function" +msgstr "é‡å‘½å函数" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "åˆ é™¤å‡½æ•°" @@ -11041,21 +11115,17 @@ msgid "Editing Signal:" msgstr "编辑信å·:" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Make Tool:" -msgstr "使用本地" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "基础类型:" +msgstr "制作工具:" #: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "æˆå‘˜ï¼š" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" -msgstr "有效节点:" +#, fuzzy +msgid "function_name" +msgstr "函数:" #: modules/visual_script/visual_script_editor.cpp msgid "Select or create a function to edit its graph." @@ -11078,6 +11148,16 @@ msgid "Cut Nodes" msgstr "剪切节点" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Make Function" +msgstr "é‡å‘½å函数" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Refresh Graph" +msgstr "刷新" + +#: modules/visual_script/visual_script_editor.cpp msgid "Edit Member" msgstr "编辑æˆå‘˜" @@ -11172,6 +11252,10 @@ msgid "The package must have at least one '.' separator." msgstr "包必须至少有一个“.â€åˆ†éš”符。" #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "从列表ä¸é€‰æ‹©è®¾å¤‡" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "未在编辑器设置ä¸é…ç½®ADBå¯æ‰§è¡Œæ–‡ä»¶ã€‚" @@ -11192,11 +11276,10 @@ msgid "Invalid Android SDK path for custom build in Editor Settings." msgstr "用于“编辑器设置â€ä¸è‡ªå®šä¹‰æž„建的Android SDKè·¯å¾„æ˜¯æ— æ•ˆçš„ã€‚" #: platform/android/export/export.cpp -#, fuzzy msgid "" "Android build template not installed in the project. Install it from the " "Project menu." -msgstr "未安装Android项目进行编译。从编辑器èœå•å®‰è£…。" +msgstr "未在项目ä¸å®‰è£…Android构建模æ¿ã€‚从项目èœå•å®‰è£…它。" #: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." @@ -11279,6 +11362,10 @@ msgid "Required icon is not specified in the preset." msgstr "预设ä¸æœªæŒ‡å®šå¿…éœ€çš„å›¾æ ‡ã€‚" #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "在æµè§ˆå™¨ä¸è¿è¡Œ" @@ -11876,10 +11963,6 @@ msgstr "" "示其内容,使其æˆä¸ºå控件的所以它å¯ä»¥æœ‰ä¸€ä¸ªå°ºå¯¸å¤§å°å€¼ã€‚å¦åˆ™è¯·è®¾ç½®ä¸ºRender " "target,并将其内部纹ç†åˆ†é…给一些节点以显示。" -#: scene/resources/visual_shader.cpp -msgid "Input" -msgstr "输入" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for preview." msgstr "预览的æºèµ„æºæ— 效。" @@ -11908,6 +11991,27 @@ msgstr "å˜é‡åªèƒ½åœ¨é¡¶ç‚¹å‡½æ•°ä¸æŒ‡å®šã€‚" msgid "Constants cannot be modified." msgstr "ä¸å…许修改常é‡ã€‚" +#~ msgid "Snap to Grid" +#~ msgstr "å¸é™„åˆ°ç½‘æ ¼" + +#~ msgid "Add input +" +#~ msgstr "æ·»åŠ è¾“å…¥+" + +#~ msgid "Language" +#~ msgstr "è¯è¨€" + +#~ msgid "Inherits" +#~ msgstr "继承自" + +#~ msgid "Base Type:" +#~ msgstr "基础类型:" + +#~ msgid "Available Nodes:" +#~ msgstr "有效节点:" + +#~ msgid "Input" +#~ msgstr "输入" + #~ msgid "Properties:" #~ msgstr "属性:" @@ -12123,9 +12227,6 @@ msgstr "ä¸å…许修改常é‡ã€‚" #~ msgid "Go to parent folder" #~ msgstr "转到上层文件夹" -#~ msgid "Select device from the list" -#~ msgstr "从列表ä¸é€‰æ‹©è®¾å¤‡" - #~ msgid "Open Scene(s)" #~ msgstr "打开场景" @@ -12362,9 +12463,6 @@ msgstr "ä¸å…许修改常é‡ã€‚" #~ msgid "Warning" #~ msgstr "è¦å‘Š" -#~ msgid "Function:" -#~ msgstr "函数:" - #~ msgid "Variable" #~ msgstr "å˜é‡" @@ -12431,9 +12529,6 @@ msgstr "ä¸å…许修改常é‡ã€‚" #~ msgid "Connect Graph Nodes" #~ msgstr "连接Graph Node" -#~ msgid "Disconnect Graph Nodes" -#~ msgstr "æ–å¼€Graph Node连接" - #~ msgid "Remove Shader Graph Node" #~ msgstr "移除Graph Node节点" @@ -13569,9 +13664,6 @@ msgstr "ä¸å…许修改常é‡ã€‚" #~ msgid "Group" #~ msgstr "分组" -#~ msgid "Samples" -#~ msgstr "音效" - #~ msgid "Sample Conversion Mode: (.wav files):" #~ msgstr "音效转æ¢æ–¹å¼ï¼ˆ.wav文件):" diff --git a/editor/translations/zh_HK.po b/editor/translations/zh_HK.po index fef45a44f4..2a343a6590 100644 --- a/editor/translations/zh_HK.po +++ b/editor/translations/zh_HK.po @@ -382,6 +382,7 @@ msgstr "新增 %d 個新軌跡並æ’入關éµå¹€ï¼Ÿ" #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp #, fuzzy msgid "Create" msgstr "新增" @@ -520,16 +521,6 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "å…¨é¸" - -#: editor/animation_track_editor.cpp -#, fuzzy -msgid "Select None" -msgstr "ä¸é¸" - #: editor/animation_track_editor.cpp #, fuzzy msgid "Select an AnimationPlayer node to create and edit animations." @@ -682,8 +673,9 @@ msgid "Scale Ratio:" msgstr "縮放比例:" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" -msgstr "" +#, fuzzy +msgid "Select Tracks to Copy" +msgstr "é¸æ“‡æ¨¡å¼" #: editor/animation_track_editor.cpp editor/editor_log.cpp #: editor/editor_properties.cpp @@ -694,6 +686,11 @@ msgstr "" msgid "Copy" msgstr "複製" +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Select All/None" +msgstr "ä¸é¸" + #: editor/animation_track_editor_plugins.cpp #, fuzzy msgid "Add Audio Track Clip" @@ -1029,7 +1026,7 @@ msgid "Resource" msgstr "資æº" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "路徑" @@ -1525,7 +1522,8 @@ msgstr "新增AutoLoad" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "路徑:" @@ -1580,7 +1578,7 @@ msgstr "新增資料夾" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "å稱:" @@ -2004,6 +2002,7 @@ msgid "Class:" msgstr "" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "" @@ -3077,7 +3076,7 @@ msgstr "監視器" msgid "Expand Bottom Panel" msgstr "" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "" @@ -3329,6 +3328,11 @@ msgstr "" msgid "New Script" msgstr "下一個腳本" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +#, fuzzy +msgid "Extend Script" +msgstr "下一個腳本" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "" @@ -3356,14 +3360,6 @@ msgstr "貼上" msgid "Convert To %s" msgstr "轉為..." -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy -msgid "Open Editor" -msgstr "開啟資料夾" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "" @@ -4213,7 +4209,7 @@ msgstr "æ’件列表:" msgid "Subfolder:" msgstr "" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp #, fuzzy msgid "Language:" msgstr "語言" @@ -4361,6 +4357,13 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +#, fuzzy +msgid "Open Editor" +msgstr "開啟資料夾" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp #, fuzzy msgid "Open Animation Node" @@ -4734,7 +4737,6 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "錯誤!" @@ -4912,6 +4914,8 @@ msgid "Current:" msgstr "" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "" @@ -5128,6 +5132,10 @@ msgid "All" msgstr "全部" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy msgid "Import..." msgstr "å°Žå…¥" @@ -5429,24 +5437,27 @@ msgid "Ruler Mode" msgstr "é¸æ“‡æ¨¡å¼" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Toggle snapping." +msgid "Toggle smart snapping." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +msgid "Use Smart Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Snapping Options" -msgstr "é¸é …" +msgid "Toggle grid snapping." +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to Grid" +msgid "Use Grid Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Snapping Options" +msgstr "é¸é …" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Rotation Snap" msgstr "" @@ -5538,8 +5549,7 @@ msgid "View" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +msgid "Always Show Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5810,6 +5820,10 @@ msgstr "" msgid "Hold Shift to edit tangents individually" msgstr "" +#: editor/plugins/curve_editor_plugin.cpp +msgid "Right click to add point" +msgstr "" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "" @@ -6459,6 +6473,10 @@ msgid "Grid" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Configure Grid:" msgstr "" @@ -6515,6 +6533,7 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "" @@ -6625,6 +6644,11 @@ msgid "Find Next" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Filter scripts" msgstr "篩é¸:" @@ -6913,6 +6937,11 @@ msgstr "刪除" msgid "Cut" msgstr "剪下" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "å…¨é¸" + #: editor/plugins/script_text_editor.cpp #, fuzzy msgid "Delete Line" @@ -6975,10 +7004,6 @@ msgid "Auto Indent" msgstr "" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "" - -#: editor/plugins/script_text_editor.cpp #, fuzzy msgid "Find in Files..." msgstr "篩é¸æª”案..." @@ -7319,6 +7344,11 @@ msgid "Freelook Speed Modifier" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Freelook Slow Modifier" +msgstr "下滾" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -7353,6 +7383,10 @@ msgid "Use Local Space" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "" @@ -7590,6 +7624,10 @@ msgid "Simplification: " msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Shrink (Pixels): " +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "" @@ -8425,14 +8463,10 @@ msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy -msgid "Add input +" +msgid "Add Output" msgstr "新增訊號" #: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Add output +" -msgstr "" - -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Scalar" msgstr "" @@ -8446,6 +8480,10 @@ msgid "Boolean" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sampler" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy msgid "Add input port" msgstr "新增訊號" @@ -9332,12 +9370,14 @@ msgstr "資æº" #: editor/project_export.cpp msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp @@ -10371,11 +10411,9 @@ msgid "" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." msgstr "" #: editor/scene_tree_dock.cpp @@ -10457,6 +10495,14 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "" + +#: editor/scene_tree_dock.cpp #, fuzzy msgid "Open Documentation" msgstr "開啓最近的" @@ -10476,11 +10522,6 @@ msgstr "" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Extend Script" -msgstr "下一個腳本" - -#: editor/scene_tree_dock.cpp -#, fuzzy msgid "Reparent to New Node" msgstr "新增" @@ -10729,25 +10770,18 @@ msgid "Will load an existing script file." msgstr "下一個腳本" #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "語言" - -#: editor/script_create_dialog.cpp -msgid "Inherits" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Class Name" -msgstr "" +#, fuzzy +msgid "Class Name:" +msgstr "å稱:" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Template" +msgid "Template:" msgstr "移除é¸é …" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Built-in Script" +msgid "Built-in Script:" msgstr "é‹è¡Œè…³æœ¬" #: editor/script_create_dialog.cpp @@ -11416,6 +11450,11 @@ msgid "Add Function" msgstr "行為" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Delete input port" +msgstr "åªé™é¸ä¸" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "" @@ -11424,6 +11463,26 @@ msgid "Add Signal" msgstr "新增訊號" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Input Port" +msgstr "新增訊號" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Output Port" +msgstr "新增訊號" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Input Port" +msgstr "åªé™é¸ä¸" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Output Port" +msgstr "åªé™é¸ä¸" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "" @@ -11465,10 +11524,20 @@ msgid "Add Preload Node" msgstr "新增節點" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "由主幹新增節點" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "" @@ -11496,6 +11565,11 @@ msgstr "連到:" #: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Disconnect Nodes" +msgstr "連到:" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Connect Node Data" msgstr "連到:" @@ -11532,6 +11606,27 @@ msgid "Paste VisualScript Nodes" msgstr "貼上" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function with a function node." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Create Function" +msgstr "åªé™é¸ä¸" + +#: modules/visual_script/visual_script_editor.cpp #, fuzzy msgid "Remove Function" msgstr "åªé™é¸ä¸" @@ -11559,16 +11654,13 @@ msgid "Make Tool:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" -msgstr "" +#, fuzzy +msgid "function_name" +msgstr "行為" #: modules/visual_script/visual_script_editor.cpp msgid "Select or create a function to edit its graph." @@ -11592,6 +11684,16 @@ msgstr "" #: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Make Function" +msgstr "åªé™é¸ä¸" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Refresh Graph" +msgstr "é‡æ–°æ•´ç†" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Edit Member" msgstr "檔案" @@ -11687,6 +11789,10 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "從列表é¸å–è¨å‚™" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "" @@ -11788,6 +11894,10 @@ msgid "Required icon is not specified in the preset." msgstr "" #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp #, fuzzy msgid "Run in Browser" msgstr "ç€è¦½" @@ -12340,10 +12450,6 @@ msgid "" "texture to some node for display." msgstr "" -#: scene/resources/visual_shader.cpp -msgid "Input" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp #, fuzzy msgid "Invalid source for preview." @@ -12375,6 +12481,9 @@ msgstr "" msgid "Constants cannot be modified." msgstr "" +#~ msgid "Language" +#~ msgstr "語言" + #, fuzzy #~ msgid "Methods:" #~ msgstr "é¸æ“‡æ¨¡å¼" @@ -12476,9 +12585,6 @@ msgstr "" #~ msgid "Go to parent folder" #~ msgstr "無法新增資料夾" -#~ msgid "Select device from the list" -#~ msgstr "從列表é¸å–è¨å‚™" - #, fuzzy #~ msgid "Open Scene(s)" #~ msgstr "é–‹å•“å ´æ™¯" diff --git a/editor/translations/zh_TW.po b/editor/translations/zh_TW.po index dbc8432108..e2d7adf9e7 100644 --- a/editor/translations/zh_TW.po +++ b/editor/translations/zh_TW.po @@ -383,6 +383,7 @@ msgstr "新增 %d 個動畫軌並æ’å…¥ç•«æ ¼ï¼Ÿ" #: editor/plugins/particles_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Create" msgstr "新增" @@ -527,16 +528,6 @@ msgstr "" msgid "Warning: Editing imported animation" msgstr "è¦å‘Šï¼šæ£åœ¨ç·¨è¼¯åŒ¯å…¥çš„å‹•ç•«" -#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp -msgid "Select All" -msgstr "é¸æ“‡å…¨éƒ¨" - -#: editor/animation_track_editor.cpp -#, fuzzy -msgid "Select None" -msgstr "é¸æ“‡æ¨¡å¼" - #: editor/animation_track_editor.cpp #, fuzzy msgid "Select an AnimationPlayer node to create and edit animations." @@ -681,7 +672,8 @@ msgid "Scale Ratio:" msgstr "縮放比例:" #: editor/animation_track_editor.cpp -msgid "Select tracks to copy:" +#, fuzzy +msgid "Select Tracks to Copy" msgstr "é¸æ“‡è¦è¤‡è£½çš„軌é“:" #: editor/animation_track_editor.cpp editor/editor_log.cpp @@ -693,6 +685,11 @@ msgstr "é¸æ“‡è¦è¤‡è£½çš„軌é“:" msgid "Copy" msgstr "複製" +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Select All/None" +msgstr "é¸æ“‡æ¨¡å¼" + #: editor/animation_track_editor_plugins.cpp #, fuzzy msgid "Add Audio Track Clip" @@ -1025,7 +1022,7 @@ msgid "Resource" msgstr "資æº" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp msgid "Path" msgstr "路徑" @@ -1516,7 +1513,8 @@ msgstr "新增 AutoLoad" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp -#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" msgstr "路徑:" @@ -1572,7 +1570,7 @@ msgstr "新增資料夾" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp -#: scene/gui/file_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" msgstr "å稱:" @@ -2003,6 +2001,7 @@ msgid "Class:" msgstr "Class:" #: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp msgid "Inherits:" msgstr "繼承:" @@ -3072,7 +3071,7 @@ msgstr "屬性é¢æ¿" msgid "Expand Bottom Panel" msgstr "展開底部é¢æ¿" -#: editor/editor_node.cpp scene/resources/visual_shader.cpp +#: editor/editor_node.cpp msgid "Output" msgstr "輸出(output)" @@ -3313,6 +3312,11 @@ msgstr "é¸æ“‡ä¸€å€‹è¦–å£" msgid "New Script" msgstr "新建腳本" +#: editor/editor_properties.cpp editor/scene_tree_dock.cpp +#, fuzzy +msgid "Extend Script" +msgstr "開啟最近å˜å–" + #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" msgstr "新建 %s" @@ -3340,14 +3344,6 @@ msgstr "粘貼" msgid "Convert To %s" msgstr "轉æ›æˆ..." -#: editor/editor_properties.cpp -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy -msgid "Open Editor" -msgstr "相ä¾æ€§ç·¨è¼¯å™¨" - #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" msgstr "é¸å®šçš„節點ä¸æ˜¯è¦–å£!" @@ -4182,7 +4178,7 @@ msgstr "挿件å稱:" msgid "Subfolder:" msgstr "å資料夾:" -#: editor/plugin_config_dialog.cpp +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" msgstr "語言:" @@ -4329,6 +4325,13 @@ msgstr "點" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp +#, fuzzy +msgid "Open Editor" +msgstr "相ä¾æ€§ç·¨è¼¯å™¨" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp #, fuzzy msgid "Open Animation Node" @@ -4695,7 +4698,6 @@ msgstr "å‹•ç•«å稱:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp -#: editor/script_create_dialog.cpp msgid "Error!" msgstr "錯誤ï¼" @@ -4871,6 +4873,8 @@ msgid "Current:" msgstr "當å‰ï¼š" #: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Add Input" msgstr "æ·»åŠ è¼¸å…¥" @@ -5084,6 +5088,10 @@ msgid "All" msgstr "全部" #: editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy msgid "Import..." msgstr "å°Žå…¥" @@ -5384,22 +5392,28 @@ msgid "Ruler Mode" msgstr "縮放模å¼" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Toggle snapping." +#, fuzzy +msgid "Toggle smart snapping." msgstr "切æ›å¸é™„。" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/spatial_editor_plugin.cpp -msgid "Use Snap" +#, fuzzy +msgid "Use Smart Snap" msgstr "使用å¸é™„" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snapping Options" -msgstr "å¸é™„é¸é …" +#, fuzzy +msgid "Toggle grid snapping." +msgstr "切æ›å¸é™„。" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Snap to Grid" -msgstr "å¸é™„åˆ°ç¶²æ ¼" +msgid "Use Grid Snap" +msgstr "ç¶²æ ¼å¸é™„" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snapping Options" +msgstr "å¸é™„é¸é …" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy @@ -5501,8 +5515,8 @@ msgid "View" msgstr "視圖" #: editor/plugins/canvas_item_editor_plugin.cpp -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Show Grid" +#, fuzzy +msgid "Always Show Grid" msgstr "é¡¯ç¤ºç¶²æ ¼" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5775,6 +5789,10 @@ msgstr "切æ›æ›²ç·šç›´ç·šåˆ‡ç·š" msgid "Hold Shift to edit tangents individually" msgstr "æŒ‰ä½ Shift éµå¯å–®ç¨ç·¨è¼¯åˆ‡ç·š" +#: editor/plugins/curve_editor_plugin.cpp +msgid "Right click to add point" +msgstr "" + #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" msgstr "渲染 GI Probe" @@ -6425,6 +6443,10 @@ msgid "Grid" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "é¡¯ç¤ºç¶²æ ¼" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Configure Grid:" msgstr "" @@ -6481,6 +6503,7 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp msgid "Type:" msgstr "" @@ -6591,6 +6614,11 @@ msgid "Find Next" msgstr "查找下一個" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "查找上一個" + +#: editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Filter scripts" msgstr "éŽæ¿¾æª”案..." @@ -6876,6 +6904,11 @@ msgstr "刪除" msgid "Cut" msgstr "剪切" +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "é¸æ“‡å…¨éƒ¨" + #: editor/plugins/script_text_editor.cpp #, fuzzy msgid "Delete Line" @@ -6938,10 +6971,6 @@ msgid "Auto Indent" msgstr "自動縮進" #: editor/plugins/script_text_editor.cpp -msgid "Find Previous" -msgstr "查找上一個" - -#: editor/plugins/script_text_editor.cpp #, fuzzy msgid "Find in Files..." msgstr "在檔ä¸æŸ¥æ‰¾..。" @@ -7275,6 +7304,11 @@ msgid "Freelook Speed Modifier" msgstr "自由視圖速度調節" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Freelook Slow Modifier" +msgstr "自由視圖速度調節" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." @@ -7309,6 +7343,10 @@ msgid "Use Local Space" msgstr "本地空間模å¼ï¼ˆ%s)" #: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "使用å¸é™„" + +#: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" msgstr "底部視圖" @@ -7549,6 +7587,11 @@ msgid "Simplification: " msgstr "簡化: " #: editor/plugins/sprite_editor_plugin.cpp +#, fuzzy +msgid "Shrink (Pixels): " +msgstr "擴展(åƒç´ ): " + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "擴展(åƒç´ ): " @@ -8379,12 +8422,7 @@ msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy -msgid "Add input +" -msgstr "æ·»åŠ è¼¸å…¥" - -#: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy -msgid "Add output +" +msgid "Add Output" msgstr "æ·»åŠ è¼¸å…¥" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -8402,6 +8440,10 @@ msgid "Boolean" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sampler" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy msgid "Add input port" msgstr "æ·»åŠ è¼¸å…¥" @@ -9285,12 +9327,14 @@ msgstr "è¦è¼¸å‡ºçš„資æº:" #: editor/project_export.cpp msgid "" -"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp msgid "" -"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" #: editor/project_export.cpp @@ -10324,11 +10368,9 @@ msgid "" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Editable Children" -msgstr "" - -#: editor/scene_tree_dock.cpp -msgid "Load As Placeholder" +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." msgstr "" #: editor/scene_tree_dock.cpp @@ -10408,6 +10450,14 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "" + +#: editor/scene_tree_dock.cpp #, fuzzy msgid "Open Documentation" msgstr "開啟最近å˜å–" @@ -10427,11 +10477,6 @@ msgstr "" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Extend Script" -msgstr "開啟最近å˜å–" - -#: editor/scene_tree_dock.cpp -#, fuzzy msgid "Reparent to New Node" msgstr "新增 %s" @@ -10681,24 +10726,19 @@ msgid "Will load an existing script file." msgstr "讀å–ç¾å˜çš„ Bus é…置。" #: editor/script_create_dialog.cpp -msgid "Language" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Inherits" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Class Name" -msgstr "" +#, fuzzy +msgid "Class Name:" +msgstr "Class:" #: editor/script_create_dialog.cpp -msgid "Template" -msgstr "" +#, fuzzy +msgid "Template:" +msgstr "移除範本" #: editor/script_create_dialog.cpp -msgid "Built-in Script" -msgstr "" +#, fuzzy +msgid "Built-in Script:" +msgstr "開啟最近å˜å–" #: editor/script_create_dialog.cpp msgid "Attach Node Script" @@ -11384,6 +11424,11 @@ msgid "Add Function" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Delete input port" +msgstr "刪除點" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" msgstr "" @@ -11392,6 +11437,26 @@ msgid "Add Signal" msgstr "" #: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Input Port" +msgstr "æ·»åŠ è¼¸å…¥" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Add Output Port" +msgstr "æ·»åŠ è¼¸å…¥" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Input Port" +msgstr "刪除點" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Remove Output Port" +msgstr "刪除點" + +#: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" msgstr "" @@ -11432,10 +11497,20 @@ msgid "Add Preload Node" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "" +"Can't drop properties because script '%s' is not used in this scene.\n" +"Drop holding 'Shift' to just copy the signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" msgstr "" @@ -11463,6 +11538,11 @@ msgstr "連接..." #: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Disconnect Nodes" +msgstr "連接..." + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Connect Node Data" msgstr "連接..." @@ -11496,6 +11576,27 @@ msgid "Paste VisualScript Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function with a function node." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select atleast one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Create Function" +msgstr "創建輪廓" + +#: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" msgstr "" @@ -11520,16 +11621,13 @@ msgid "Make Tool:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Base Type:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Available Nodes:" -msgstr "" +#, fuzzy +msgid "function_name" +msgstr "函數:" #: modules/visual_script/visual_script_editor.cpp msgid "Select or create a function to edit its graph." @@ -11553,6 +11651,16 @@ msgstr "" #: modules/visual_script/visual_script_editor.cpp #, fuzzy +msgid "Make Function" +msgstr "函數:" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy +msgid "Refresh Graph" +msgstr "é‡æ–°æ•´ç†" + +#: modules/visual_script/visual_script_editor.cpp +#, fuzzy msgid "Edit Member" msgstr "éŽæ¿¾æª”案..." @@ -11648,6 +11756,10 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export.cpp +msgid "Select device from the list" +msgstr "從清單ä¸é¸æ“‡è¨å‚™" + +#: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." msgstr "" @@ -11749,6 +11861,10 @@ msgid "Required icon is not specified in the preset." msgstr "" #: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp msgid "Run in Browser" msgstr "" @@ -12318,10 +12434,6 @@ msgid "" "texture to some node for display." msgstr "" -#: scene/resources/visual_shader.cpp -msgid "Input" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp #, fuzzy msgid "Invalid source for preview." @@ -12353,6 +12465,14 @@ msgstr "" msgid "Constants cannot be modified." msgstr "" +#, fuzzy +#~ msgid "Snap to Grid" +#~ msgstr "å¸é™„åˆ°ç¶²æ ¼" + +#, fuzzy +#~ msgid "Add input +" +#~ msgstr "æ·»åŠ è¼¸å…¥" + #~ msgid "Properties:" #~ msgstr "效能:" @@ -12508,9 +12628,6 @@ msgstr "" #~ msgid "Go to parent folder" #~ msgstr "無法新增資料夾" -#~ msgid "Select device from the list" -#~ msgstr "從清單ä¸é¸æ“‡è¨å‚™" - #, fuzzy #~ msgid "Open Scene(s)" #~ msgstr "é–‹å•Ÿå ´æ™¯" diff --git a/main/main.cpp b/main/main.cpp index 42c90fc027..fe0f5a0215 100644 --- a/main/main.cpp +++ b/main/main.cpp @@ -1856,9 +1856,7 @@ bool Main::start() { // Hide console window if requested (Windows-only). bool hide_console = EditorSettings::get_singleton()->get_setting("interface/editor/hide_console_window"); OS::get_singleton()->set_console_visible(!hide_console); - } - if (project_manager || editor) { // Load SSL Certificates from Editor Settings (or builtin) Crypto::load_default_certificates(EditorSettings::get_singleton()->get_setting("network/ssl/editor_ssl_certificates").operator String()); } diff --git a/main/splash.png b/main/splash.png Binary files differindex 32960db65f..7bddd4325a 100644 --- a/main/splash.png +++ b/main/splash.png diff --git a/main/splash_editor.png b/main/splash_editor.png Binary files differindex ab10716a2e..2967d8dd3e 100644 --- a/main/splash_editor.png +++ b/main/splash_editor.png diff --git a/misc/dist/ios_xcode/godot_ios/Images.xcassets/LaunchImage.launchimage/Default-480h@2x.png b/misc/dist/ios_xcode/godot_ios/Images.xcassets/LaunchImage.launchimage/Default-480h@2x.png Binary files differindex 1299ceaee5..7c9cac3f0e 100644 --- a/misc/dist/ios_xcode/godot_ios/Images.xcassets/LaunchImage.launchimage/Default-480h@2x.png +++ b/misc/dist/ios_xcode/godot_ios/Images.xcassets/LaunchImage.launchimage/Default-480h@2x.png diff --git a/misc/dist/ios_xcode/godot_ios/Images.xcassets/LaunchImage.launchimage/Default-568h@2x.png b/misc/dist/ios_xcode/godot_ios/Images.xcassets/LaunchImage.launchimage/Default-568h@2x.png Binary files differindex 604a7ba701..0226bdf7cd 100644 --- a/misc/dist/ios_xcode/godot_ios/Images.xcassets/LaunchImage.launchimage/Default-568h@2x.png +++ b/misc/dist/ios_xcode/godot_ios/Images.xcassets/LaunchImage.launchimage/Default-568h@2x.png diff --git a/misc/dist/ios_xcode/godot_ios/Images.xcassets/LaunchImage.launchimage/Default-667h@2x.png b/misc/dist/ios_xcode/godot_ios/Images.xcassets/LaunchImage.launchimage/Default-667h@2x.png Binary files differindex bffb8c9fde..25904c186c 100644 --- a/misc/dist/ios_xcode/godot_ios/Images.xcassets/LaunchImage.launchimage/Default-667h@2x.png +++ b/misc/dist/ios_xcode/godot_ios/Images.xcassets/LaunchImage.launchimage/Default-667h@2x.png diff --git a/misc/dist/ios_xcode/godot_ios/Images.xcassets/LaunchImage.launchimage/Default-Landscape-736h@3x.png b/misc/dist/ios_xcode/godot_ios/Images.xcassets/LaunchImage.launchimage/Default-Landscape-736h@3x.png Binary files differindex 47826cd683..649df071f9 100644 --- a/misc/dist/ios_xcode/godot_ios/Images.xcassets/LaunchImage.launchimage/Default-Landscape-736h@3x.png +++ b/misc/dist/ios_xcode/godot_ios/Images.xcassets/LaunchImage.launchimage/Default-Landscape-736h@3x.png diff --git a/misc/dist/ios_xcode/godot_ios/Images.xcassets/LaunchImage.launchimage/Default-Landscape-X.png b/misc/dist/ios_xcode/godot_ios/Images.xcassets/LaunchImage.launchimage/Default-Landscape-X.png Binary files differindex 0f44a704b5..f3bd86a7de 100644 --- a/misc/dist/ios_xcode/godot_ios/Images.xcassets/LaunchImage.launchimage/Default-Landscape-X.png +++ b/misc/dist/ios_xcode/godot_ios/Images.xcassets/LaunchImage.launchimage/Default-Landscape-X.png diff --git a/misc/dist/ios_xcode/godot_ios/Images.xcassets/LaunchImage.launchimage/Default-Landscape.png b/misc/dist/ios_xcode/godot_ios/Images.xcassets/LaunchImage.launchimage/Default-Landscape.png Binary files differindex 07ab777bc2..d5692eaffa 100644 --- a/misc/dist/ios_xcode/godot_ios/Images.xcassets/LaunchImage.launchimage/Default-Landscape.png +++ b/misc/dist/ios_xcode/godot_ios/Images.xcassets/LaunchImage.launchimage/Default-Landscape.png diff --git a/misc/dist/ios_xcode/godot_ios/Images.xcassets/LaunchImage.launchimage/Default-Landscape@2x.png b/misc/dist/ios_xcode/godot_ios/Images.xcassets/LaunchImage.launchimage/Default-Landscape@2x.png Binary files differindex 774b9c5bbf..8c4fe87b9c 100644 --- a/misc/dist/ios_xcode/godot_ios/Images.xcassets/LaunchImage.launchimage/Default-Landscape@2x.png +++ b/misc/dist/ios_xcode/godot_ios/Images.xcassets/LaunchImage.launchimage/Default-Landscape@2x.png diff --git a/misc/dist/ios_xcode/godot_ios/Images.xcassets/LaunchImage.launchimage/Default-Portrait-736h@3x.png b/misc/dist/ios_xcode/godot_ios/Images.xcassets/LaunchImage.launchimage/Default-Portrait-736h@3x.png Binary files differindex fff36679c7..e755beb803 100644 --- a/misc/dist/ios_xcode/godot_ios/Images.xcassets/LaunchImage.launchimage/Default-Portrait-736h@3x.png +++ b/misc/dist/ios_xcode/godot_ios/Images.xcassets/LaunchImage.launchimage/Default-Portrait-736h@3x.png diff --git a/misc/dist/ios_xcode/godot_ios/Images.xcassets/LaunchImage.launchimage/Default-Portrait-X.png b/misc/dist/ios_xcode/godot_ios/Images.xcassets/LaunchImage.launchimage/Default-Portrait-X.png Binary files differindex 0804519faa..f676fda263 100644 --- a/misc/dist/ios_xcode/godot_ios/Images.xcassets/LaunchImage.launchimage/Default-Portrait-X.png +++ b/misc/dist/ios_xcode/godot_ios/Images.xcassets/LaunchImage.launchimage/Default-Portrait-X.png diff --git a/misc/dist/ios_xcode/godot_ios/Images.xcassets/LaunchImage.launchimage/Default-Portrait.png b/misc/dist/ios_xcode/godot_ios/Images.xcassets/LaunchImage.launchimage/Default-Portrait.png Binary files differindex 833142222c..43da4f3ed6 100644 --- a/misc/dist/ios_xcode/godot_ios/Images.xcassets/LaunchImage.launchimage/Default-Portrait.png +++ b/misc/dist/ios_xcode/godot_ios/Images.xcassets/LaunchImage.launchimage/Default-Portrait.png diff --git a/misc/dist/ios_xcode/godot_ios/Images.xcassets/LaunchImage.launchimage/Default-Portrait@2x.png b/misc/dist/ios_xcode/godot_ios/Images.xcassets/LaunchImage.launchimage/Default-Portrait@2x.png Binary files differindex 4c934c4a53..075a6790ce 100644 --- a/misc/dist/ios_xcode/godot_ios/Images.xcassets/LaunchImage.launchimage/Default-Portrait@2x.png +++ b/misc/dist/ios_xcode/godot_ios/Images.xcassets/LaunchImage.launchimage/Default-Portrait@2x.png diff --git a/misc/travis/android-tools-linux.sh b/misc/travis/android-tools-linux.sh index fb6e2f0f9b..d0c123ee6c 100755 --- a/misc/travis/android-tools-linux.sh +++ b/misc/travis/android-tools-linux.sh @@ -24,12 +24,12 @@ ANDROID_SDK_URL=$ANDROID_BASE_URL/$ANDROID_SDK_FILENAME ANDROID_SDK_PATH=$GODOT_BUILD_TOOLS_PATH/$ANDROID_SDK_DIR ANDROID_SDK_SHA256=92ffee5a1d98d856634e8b71132e8a95d96c83a63fde1099be3d86df3106def9 -ANDROID_NDK_RELEASE=r18 +ANDROID_NDK_RELEASE=r20 ANDROID_NDK_DIR=android-ndk ANDROID_NDK_FILENAME=android-ndk-$ANDROID_NDK_RELEASE-linux-x86_64.zip ANDROID_NDK_URL=$ANDROID_BASE_URL/$ANDROID_NDK_FILENAME ANDROID_NDK_PATH=$GODOT_BUILD_TOOLS_PATH/$ANDROID_NDK_DIR -ANDROID_NDK_SHA1=2ac2e8e1ef73ed551cac3a1479bb28bd49369212 +ANDROID_NDK_SHA1=8665fc84a1b1f0d6ab3b5fdd1e30200cc7b9adff echo echo "Download and install Android development tools ..." @@ -70,12 +70,13 @@ if [ ! -d $ANDROID_NDK_DIR ]; then echo fi -echo "Installing: Android Tools ..." mkdir -p ~/.android && echo "count=0" > ~/.android/repositories.cfg +echo "Installing: Accepting Licenses ..." yes | $ANDROID_SDK_DIR/tools/bin/sdkmanager --licenses > /dev/null +echo "Installing: Android Build and Platform Tools ..." yes | $ANDROID_SDK_DIR/tools/bin/sdkmanager 'tools' > /dev/null yes | $ANDROID_SDK_DIR/tools/bin/sdkmanager 'platform-tools' > /dev/null -yes | $ANDROID_SDK_DIR/tools/bin/sdkmanager 'build-tools;28.0.1' > /dev/null +yes | $ANDROID_SDK_DIR/tools/bin/sdkmanager 'build-tools;28.0.3' > /dev/null echo EXPORT_VAL="export ANDROID_HOME=$ANDROID_SDK_PATH" diff --git a/misc/travis/android-tools-osx.sh b/misc/travis/android-tools-osx.sh deleted file mode 100755 index 96125a3a3f..0000000000 --- a/misc/travis/android-tools-osx.sh +++ /dev/null @@ -1,107 +0,0 @@ -#!/bin/bash - -# SDK -# https://dl.google.com/android/repository/sdk-tools-darwin-3859397.zip -# SHA-256 4a81754a760fce88cba74d69c364b05b31c53d57b26f9f82355c61d5fe4b9df9 -# latest version available here: https://developer.android.com/studio/index.html - -# NDK -# https://dl.google.com/android/repository/android-ndk-r15c-darwin-x86_64.zip -# SHA-1 ea4b5d76475db84745aa8828000d009625fc1f98 -# latest version available here: https://developer.android.com/ndk/downloads/index.html - -BASH_RC=~/.bashrc -GODOT_BUILD_TOOLS_PATH=./godot-dev/build-tools -mkdir -p $GODOT_BUILD_TOOLS_PATH -cd $GODOT_BUILD_TOOLS_PATH - -ANDROID_BASE_URL=http://dl.google.com/android/repository - -ANDROID_SDK_RELEASE=3859397 -ANDROID_SDK_DIR=android-sdk -ANDROID_SDK_FILENAME=sdk-tools-darwin-$ANDROID_SDK_RELEASE.zip -ANDROID_SDK_URL=$ANDROID_BASE_URL/$ANDROID_SDK_FILENAME -ANDROID_SDK_PATH=$GODOT_BUILD_TOOLS_PATH/$ANDROID_SDK_DIR -ANDROID_SDK_SHA256=4a81754a760fce88cba74d69c364b05b31c53d57b26f9f82355c61d5fe4b9df9 - -ANDROID_NDK_RELEASE=r15c -ANDROID_NDK_DIR=android-ndk -ANDROID_NDK_FILENAME=android-ndk-$ANDROID_NDK_RELEASE-darwin-x86_64.zip -ANDROID_NDK_URL=$ANDROID_BASE_URL/$ANDROID_NDK_FILENAME -ANDROID_NDK_PATH=$GODOT_BUILD_TOOLS_PATH/$ANDROID_NDK_DIR -ANDROID_NDK_SHA1=ea4b5d76475db84745aa8828000d009625fc1f98 - -echo -echo "Download and install Android development tools ..." -echo - -if [ ! -e $ANDROID_SDK_FILENAME ]; then - echo "Downloading: Android SDK ..." - curl -L -O $ANDROID_SDK_URL -else - echo $ANDROID_SDK_SHA1 $ANDROID_SDK_FILENAME > $ANDROID_SDK_FILENAME.sha1 - if [ $(shasum -a 256 < $ANDROID_SDK_FILENAME | awk '{print $1;}') != $ANDROID_SDK_SHA1 ]; then - echo "Downloading: Android SDK ..." - curl -L -O $ANDROID_SDK_URL - fi -fi - -if [ ! -d $ANDROID_SDK_DIR ]; then - echo "Extracting: Android SDK ..." - mkdir -p $ANDROID_SDK_DIR && tar -xf $ANDROID_SDK_FILENAME -C $ANDROID_SDK_DIR - echo -fi - -if [ ! -e $ANDROID_NDK_FILENAME ]; then - echo "Downloading: Android NDK ..." - curl -L -O $ANDROID_NDK_URL -else - echo $ANDROID_NDK_MD5 $ANDROID_NDK_FILENAME > $ANDROID_NDK_FILENAME.md5 - if [ $(shasum -a 1 < $ANDROID_NDK_FILENAME | awk '{print $1;}') != $ANDROID_NDK_SHA1 ]; then - echo "Downloading: Android NDK ..." - curl -L -O $ANDROID_NDK_URL - fi -fi - -if [ ! -d $ANDROID_NDK_DIR ]; then - echo "Extracting: Android NDK ..." - tar -xf $ANDROID_NDK_FILENAME - mv android-ndk-$ANDROID_NDK_RELEASE $ANDROID_NDK_DIR - echo -fi - -echo "Installing: Android Tools ..." -#$ANDROID_SDK_DIR/tools/bin/sdkmanager --all -yes | $ANDROID_SDK_DIR/tools/bin/sdkmanager --licenses > /dev/null -$ANDROID_SDK_DIR/tools/bin/sdkmanager 'tools' > /dev/null -$ANDROID_SDK_DIR/tools/bin/sdkmanager 'platform-tools' > /dev/null -$ANDROID_SDK_DIR/tools/bin/sdkmanager 'build-tools;26.0.2' > /dev/null -echo - -EXPORT_VAL="export ANDROID_HOME=$ANDROID_SDK_PATH" -if ! grep -q "^$EXPORT_VAL" $BASH_RC; then - echo $EXPORT_VAL >> $BASH_RC -fi -#eval $EXPORT_VAL - -EXPORT_VAL="export ANDROID_NDK_ROOT=$ANDROID_NDK_PATH" -if ! grep -q "^$EXPORT_VAL" $BASH_RC; then - echo $EXPORT_VAL >> $BASH_RC -fi -#eval $EXPORT_VAL - -EXPORT_VAL="export PATH=$PATH:$ANDROID_SDK_PATH/tools" -if ! grep -q "^export PATH=.*$ANDROID_SDK_PATH/tools.*" $BASH_RC; then - echo $EXPORT_VAL >> $BASH_RC -fi -#eval $EXPORT_VAL - -EXPORT_VAL="export PATH=$PATH:$ANDROID_SDK_PATH/tools/bin" -if ! grep -q "^export PATH=.*$ANDROID_SDK_PATH/tools/bin.*" $BASH_RC; then - echo $EXPORT_VAL >> $BASH_RC -fi -#eval $EXPORT_VAL - -echo -echo "Done!" -echo diff --git a/modules/assimp/editor_scene_importer_assimp.cpp b/modules/assimp/editor_scene_importer_assimp.cpp index f2f51d9dd3..1ea9399c02 100644 --- a/modules/assimp/editor_scene_importer_assimp.cpp +++ b/modules/assimp/editor_scene_importer_assimp.cpp @@ -29,11 +29,12 @@ /*************************************************************************/ #include "editor_scene_importer_assimp.h" + #include "core/bind/core_bind.h" #include "core/io/image_loader.h" #include "editor/editor_file_system.h" +#include "editor/editor_settings.h" #include "editor/import/resource_importer_scene.h" -#include "editor_settings.h" #include "import_utils.h" #include "scene/3d/camera.h" #include "scene/3d/light.h" @@ -1350,4 +1351,4 @@ void EditorSceneImporterAssimp::_generate_node( _generate_node(state, recursive_state.skeleton, recursive_state.assimp_node->mChildren[i], recursive_state.new_node != NULL ? recursive_state.new_node : recursive_state.parent_node); } -}
\ No newline at end of file +} diff --git a/modules/bullet/btRayShape.h b/modules/bullet/btRayShape.h index 7f3229b3e8..09c1f6c241 100644 --- a/modules/bullet/btRayShape.h +++ b/modules/bullet/btRayShape.h @@ -62,7 +62,7 @@ public: virtual void setMargin(btScalar margin); - void setSlipsOnSlope(bool p_slipOnSlope); + void setSlipsOnSlope(bool p_slipsOnSlope); bool getSlipsOnSlope() const { return slipsOnSlope; } const btTransform &getSupportPoint() const { return m_cacheSupportPoint; } diff --git a/modules/bullet/collision_object_bullet.h b/modules/bullet/collision_object_bullet.h index c9430bec18..04231b0814 100644 --- a/modules/bullet/collision_object_bullet.h +++ b/modules/bullet/collision_object_bullet.h @@ -167,14 +167,18 @@ public: _FORCE_INLINE_ const VSet<RID> &get_exceptions() const { return exceptions; } _FORCE_INLINE_ void set_collision_layer(uint32_t p_layer) { - collisionLayer = p_layer; - on_collision_filters_change(); + if (collisionLayer != p_layer) { + collisionLayer = p_layer; + on_collision_filters_change(); + } } _FORCE_INLINE_ uint32_t get_collision_layer() const { return collisionLayer; } _FORCE_INLINE_ void set_collision_mask(uint32_t p_mask) { - collisionMask = p_mask; - on_collision_filters_change(); + if (collisionMask != p_mask) { + collisionMask = p_mask; + on_collision_filters_change(); + } } _FORCE_INLINE_ uint32_t get_collision_mask() const { return collisionMask; } diff --git a/modules/bullet/rigid_body_bullet.cpp b/modules/bullet/rigid_body_bullet.cpp index 8d21b25b20..d611810bfa 100644 --- a/modules/bullet/rigid_body_bullet.cpp +++ b/modules/bullet/rigid_body_bullet.cpp @@ -126,16 +126,16 @@ void BulletPhysicsDirectBodyState::add_torque(const Vector3 &p_torque) { body->apply_torque(p_torque); } -void BulletPhysicsDirectBodyState::apply_central_impulse(const Vector3 &p_j) { - body->apply_central_impulse(p_j); +void BulletPhysicsDirectBodyState::apply_central_impulse(const Vector3 &p_impulse) { + body->apply_central_impulse(p_impulse); } -void BulletPhysicsDirectBodyState::apply_impulse(const Vector3 &p_pos, const Vector3 &p_j) { - body->apply_impulse(p_pos, p_j); +void BulletPhysicsDirectBodyState::apply_impulse(const Vector3 &p_pos, const Vector3 &p_impulse) { + body->apply_impulse(p_pos, p_impulse); } -void BulletPhysicsDirectBodyState::apply_torque_impulse(const Vector3 &p_j) { - body->apply_torque_impulse(p_j); +void BulletPhysicsDirectBodyState::apply_torque_impulse(const Vector3 &p_impulse) { + body->apply_torque_impulse(p_impulse); } void BulletPhysicsDirectBodyState::set_sleep_state(bool p_enable) { @@ -411,6 +411,8 @@ void RigidBodyBullet::on_collision_filters_change() { if (space) { space->reload_collision_filters(this); } + + set_activation_state(true); } void RigidBodyBullet::on_collision_checker_start() { @@ -471,7 +473,7 @@ void RigidBodyBullet::assert_no_constraints() { void RigidBodyBullet::set_activation_state(bool p_active) { if (p_active) { - btBody->setActivationState(ACTIVE_TAG); + btBody->activate(); } else { btBody->setActivationState(WANTS_DEACTIVATION); } @@ -918,7 +920,7 @@ void RigidBodyBullet::reload_space_override_modificator() { currentArea = areasWhereIam[i]; - if (PhysicsServer::AREA_SPACE_OVERRIDE_DISABLED == currentArea->get_spOv_mode()) { + if (!currentArea || PhysicsServer::AREA_SPACE_OVERRIDE_DISABLED == currentArea->get_spOv_mode()) { continue; } diff --git a/modules/bullet/rigid_body_bullet.h b/modules/bullet/rigid_body_bullet.h index f63148092f..0b6dc997db 100644 --- a/modules/bullet/rigid_body_bullet.h +++ b/modules/bullet/rigid_body_bullet.h @@ -114,8 +114,8 @@ public: virtual void add_force(const Vector3 &p_force, const Vector3 &p_pos); virtual void add_torque(const Vector3 &p_torque); virtual void apply_central_impulse(const Vector3 &p_impulse); - virtual void apply_impulse(const Vector3 &p_pos, const Vector3 &p_j); - virtual void apply_torque_impulse(const Vector3 &p_j); + virtual void apply_impulse(const Vector3 &p_pos, const Vector3 &p_impulse); + virtual void apply_torque_impulse(const Vector3 &p_impulse); virtual void set_sleep_state(bool p_enable); virtual bool is_sleeping() const; diff --git a/modules/bullet/space_bullet.cpp b/modules/bullet/space_bullet.cpp index d2b16b0fd1..e74c29769f 100644 --- a/modules/bullet/space_bullet.cpp +++ b/modules/bullet/space_bullet.cpp @@ -42,6 +42,7 @@ #include "servers/physics_server.h" #include "soft_body_bullet.h" +#include <BulletCollision/BroadphaseCollision/btBroadphaseProxy.h> #include <BulletCollision/CollisionDispatch/btCollisionObject.h> #include <BulletCollision/CollisionDispatch/btGhostObject.h> #include <BulletCollision/NarrowPhaseCollision/btGjkEpaPenetrationDepthSolver.h> @@ -459,9 +460,13 @@ void SpaceBullet::remove_area(AreaBullet *p_area) { } void SpaceBullet::reload_collision_filters(AreaBullet *p_area) { - // This is necessary to change collision filter - dynamicsWorld->removeCollisionObject(p_area->get_bt_ghost()); - dynamicsWorld->addCollisionObject(p_area->get_bt_ghost(), p_area->get_collision_layer(), p_area->get_collision_mask()); + btGhostObject *ghost_object = p_area->get_bt_ghost(); + + btBroadphaseProxy *ghost_proxy = ghost_object->getBroadphaseHandle(); + ghost_proxy->m_collisionFilterGroup = p_area->get_collision_layer(); + ghost_proxy->m_collisionFilterMask = p_area->get_collision_mask(); + + dynamicsWorld->refreshBroadphaseProxy(ghost_object); } void SpaceBullet::add_rigid_body(RigidBodyBullet *p_body) { @@ -482,9 +487,13 @@ void SpaceBullet::remove_rigid_body(RigidBodyBullet *p_body) { } void SpaceBullet::reload_collision_filters(RigidBodyBullet *p_body) { - // This is necessary to change collision filter - remove_rigid_body(p_body); - add_rigid_body(p_body); + btRigidBody *rigid_body = p_body->get_bt_rigid_body(); + + btBroadphaseProxy *body_proxy = rigid_body->getBroadphaseProxy(); + body_proxy->m_collisionFilterGroup = p_body->get_collision_layer(); + body_proxy->m_collisionFilterMask = p_body->get_collision_mask(); + + dynamicsWorld->refreshBroadphaseProxy(rigid_body); } void SpaceBullet::add_soft_body(SoftBodyBullet *p_body) { diff --git a/modules/etc/image_etc.cpp b/modules/etc/image_etc.cpp index 6f54436bf9..f0cbf6ae28 100644 --- a/modules/etc/image_etc.cpp +++ b/modules/etc/image_etc.cpp @@ -168,6 +168,7 @@ static void _compress_etc(Image *p_img, float p_lossy_quality, bool force_etc1_f } PoolVector<uint8_t>::Read r = img->get_data().read(); + ERR_FAIL_COND(!r.ptr()); unsigned int target_size = Image::get_image_data_size(imgw, imgh, etc_format, p_img->has_mipmaps()); int mmc = 1 + (p_img->has_mipmaps() ? Image::get_image_required_mipmaps(imgw, imgh, etc_format) : 0); diff --git a/modules/freetype/SCsub b/modules/freetype/SCsub index b47377cbc4..8f4a8de895 100644 --- a/modules/freetype/SCsub +++ b/modules/freetype/SCsub @@ -66,7 +66,7 @@ if env['builtin_freetype']: env.Prepend(CPPPATH=[thirdparty_dir + "/include"]) env_freetype.Append(CPPDEFINES=['FT2_BUILD_LIBRARY', 'FT_CONFIG_OPTION_USE_PNG']) - if (env['target'] != 'release'): + if (env['target'] == 'debug'): env_freetype.Append(CPPDEFINES=['ZLIB_DEBUG']) # Also requires libpng headers diff --git a/modules/gdnative/gdnative/pool_arrays.cpp b/modules/gdnative/gdnative/pool_arrays.cpp index 74c540ca14..23791af67e 100644 --- a/modules/gdnative/gdnative/pool_arrays.cpp +++ b/modules/gdnative/gdnative/pool_arrays.cpp @@ -129,6 +129,11 @@ godot_int GDAPI godot_pool_byte_array_size(const godot_pool_byte_array *p_self) return self->size(); } +godot_bool GDAPI godot_pool_byte_array_empty(const godot_pool_byte_array *p_self) { + const PoolVector<uint8_t> *self = (const PoolVector<uint8_t> *)p_self; + return self->empty(); +} + void GDAPI godot_pool_byte_array_destroy(godot_pool_byte_array *p_self) { ((PoolVector<uint8_t> *)p_self)->~PoolVector(); } @@ -218,6 +223,11 @@ godot_int GDAPI godot_pool_int_array_size(const godot_pool_int_array *p_self) { return self->size(); } +godot_bool GDAPI godot_pool_int_array_empty(const godot_pool_int_array *p_self) { + const PoolVector<godot_int> *self = (const PoolVector<godot_int> *)p_self; + return self->empty(); +} + void GDAPI godot_pool_int_array_destroy(godot_pool_int_array *p_self) { ((PoolVector<godot_int> *)p_self)->~PoolVector(); } @@ -307,6 +317,11 @@ godot_int GDAPI godot_pool_real_array_size(const godot_pool_real_array *p_self) return self->size(); } +godot_bool GDAPI godot_pool_real_array_empty(const godot_pool_real_array *p_self) { + const PoolVector<godot_real> *self = (const PoolVector<godot_real> *)p_self; + return self->empty(); +} + void GDAPI godot_pool_real_array_destroy(godot_pool_real_array *p_self) { ((PoolVector<godot_real> *)p_self)->~PoolVector(); } @@ -404,6 +419,11 @@ godot_int GDAPI godot_pool_string_array_size(const godot_pool_string_array *p_se return self->size(); } +godot_bool GDAPI godot_pool_string_array_empty(const godot_pool_string_array *p_self) { + const PoolVector<String> *self = (const PoolVector<String> *)p_self; + return self->empty(); +} + void GDAPI godot_pool_string_array_destroy(godot_pool_string_array *p_self) { ((PoolVector<String> *)p_self)->~PoolVector(); } @@ -500,6 +520,11 @@ godot_int GDAPI godot_pool_vector2_array_size(const godot_pool_vector2_array *p_ return self->size(); } +godot_bool GDAPI godot_pool_vector2_array_empty(const godot_pool_vector2_array *p_self) { + const PoolVector<Vector2> *self = (const PoolVector<Vector2> *)p_self; + return self->empty(); +} + void GDAPI godot_pool_vector2_array_destroy(godot_pool_vector2_array *p_self) { ((PoolVector<Vector2> *)p_self)->~PoolVector(); } @@ -596,6 +621,11 @@ godot_int GDAPI godot_pool_vector3_array_size(const godot_pool_vector3_array *p_ return self->size(); } +godot_bool GDAPI godot_pool_vector3_array_empty(const godot_pool_vector3_array *p_self) { + const PoolVector<Vector3> *self = (const PoolVector<Vector3> *)p_self; + return self->empty(); +} + void GDAPI godot_pool_vector3_array_destroy(godot_pool_vector3_array *p_self) { ((PoolVector<Vector3> *)p_self)->~PoolVector(); } @@ -692,6 +722,11 @@ godot_int GDAPI godot_pool_color_array_size(const godot_pool_color_array *p_self return self->size(); } +godot_bool GDAPI godot_pool_color_array_empty(const godot_pool_color_array *p_self) { + const PoolVector<Color> *self = (const PoolVector<Color> *)p_self; + return self->empty(); +} + void GDAPI godot_pool_color_array_destroy(godot_pool_color_array *p_self) { ((PoolVector<Color> *)p_self)->~PoolVector(); } diff --git a/modules/gdnative/gdnative_api.json b/modules/gdnative/gdnative_api.json index 55ba4ecc1e..2f304ca49c 100644 --- a/modules/gdnative/gdnative_api.json +++ b/modules/gdnative/gdnative_api.json @@ -1717,6 +1717,13 @@ ] }, { + "name": "godot_pool_byte_array_empty", + "return_type": "godot_bool", + "arguments": [ + ["const godot_pool_byte_array *", "p_self"] + ] + }, + { "name": "godot_pool_byte_array_destroy", "return_type": "void", "arguments": [ @@ -1841,6 +1848,13 @@ ] }, { + "name": "godot_pool_int_array_empty", + "return_type": "godot_bool", + "arguments": [ + ["const godot_pool_int_array *", "p_self"] + ] + }, + { "name": "godot_pool_int_array_destroy", "return_type": "void", "arguments": [ @@ -1965,6 +1979,13 @@ ] }, { + "name": "godot_pool_real_array_empty", + "return_type": "godot_bool", + "arguments": [ + ["const godot_pool_real_array *", "p_self"] + ] + }, + { "name": "godot_pool_real_array_destroy", "return_type": "void", "arguments": [ @@ -2089,6 +2110,13 @@ ] }, { + "name": "godot_pool_string_array_empty", + "return_type": "godot_bool", + "arguments": [ + ["const godot_pool_string_array *", "p_self"] + ] + }, + { "name": "godot_pool_string_array_destroy", "return_type": "void", "arguments": [ @@ -2213,6 +2241,13 @@ ] }, { + "name": "godot_pool_vector2_array_empty", + "return_type": "godot_bool", + "arguments": [ + ["const godot_pool_vector2_array *", "p_self"] + ] + }, + { "name": "godot_pool_vector2_array_destroy", "return_type": "void", "arguments": [ @@ -2337,6 +2372,13 @@ ] }, { + "name": "godot_pool_vector3_array_empty", + "return_type": "godot_bool", + "arguments": [ + ["const godot_pool_vector3_array *", "p_self"] + ] + }, + { "name": "godot_pool_vector3_array_destroy", "return_type": "void", "arguments": [ @@ -2461,6 +2503,13 @@ ] }, { + "name": "godot_pool_color_array_empty", + "return_type": "godot_bool", + "arguments": [ + ["const godot_pool_color_array *", "p_self"] + ] + }, + { "name": "godot_pool_color_array_destroy", "return_type": "void", "arguments": [ diff --git a/modules/gdnative/include/gdnative/array.h b/modules/gdnative/include/gdnative/array.h index 2e3ce58033..a27626325e 100644 --- a/modules/gdnative/include/gdnative/array.h +++ b/modules/gdnative/include/gdnative/array.h @@ -132,7 +132,7 @@ void GDAPI godot_array_destroy(godot_array *p_self); godot_array GDAPI godot_array_duplicate(const godot_array *p_self, const godot_bool p_deep); -godot_array GDAPI godot_array_slice(const godot_array *p_self, const godot_int p_begin, const godot_int p_end, const godot_int p_delta, const godot_bool p_deep); +godot_array GDAPI godot_array_slice(const godot_array *p_self, const godot_int p_begin, const godot_int p_end, const godot_int p_step, const godot_bool p_deep); godot_variant GDAPI godot_array_max(const godot_array *p_self); diff --git a/modules/gdnative/include/gdnative/pool_arrays.h b/modules/gdnative/include/gdnative/pool_arrays.h index 96730ab085..63e8267f0e 100644 --- a/modules/gdnative/include/gdnative/pool_arrays.h +++ b/modules/gdnative/include/gdnative/pool_arrays.h @@ -191,6 +191,8 @@ uint8_t GDAPI godot_pool_byte_array_get(const godot_pool_byte_array *p_self, con godot_int GDAPI godot_pool_byte_array_size(const godot_pool_byte_array *p_self); +godot_bool GDAPI godot_pool_byte_array_empty(const godot_pool_byte_array *p_self); + void GDAPI godot_pool_byte_array_destroy(godot_pool_byte_array *p_self); // int @@ -222,6 +224,8 @@ godot_int GDAPI godot_pool_int_array_get(const godot_pool_int_array *p_self, con godot_int GDAPI godot_pool_int_array_size(const godot_pool_int_array *p_self); +godot_bool GDAPI godot_pool_int_array_empty(const godot_pool_int_array *p_self); + void GDAPI godot_pool_int_array_destroy(godot_pool_int_array *p_self); // real @@ -253,6 +257,8 @@ godot_real GDAPI godot_pool_real_array_get(const godot_pool_real_array *p_self, godot_int GDAPI godot_pool_real_array_size(const godot_pool_real_array *p_self); +godot_bool GDAPI godot_pool_real_array_empty(const godot_pool_real_array *p_self); + void GDAPI godot_pool_real_array_destroy(godot_pool_real_array *p_self); // string @@ -284,6 +290,8 @@ godot_string GDAPI godot_pool_string_array_get(const godot_pool_string_array *p_ godot_int GDAPI godot_pool_string_array_size(const godot_pool_string_array *p_self); +godot_bool GDAPI godot_pool_string_array_empty(const godot_pool_string_array *p_self); + void GDAPI godot_pool_string_array_destroy(godot_pool_string_array *p_self); // vector2 @@ -315,6 +323,8 @@ godot_vector2 GDAPI godot_pool_vector2_array_get(const godot_pool_vector2_array godot_int GDAPI godot_pool_vector2_array_size(const godot_pool_vector2_array *p_self); +godot_bool GDAPI godot_pool_vector2_array_empty(const godot_pool_vector2_array *p_self); + void GDAPI godot_pool_vector2_array_destroy(godot_pool_vector2_array *p_self); // vector3 @@ -346,6 +356,8 @@ godot_vector3 GDAPI godot_pool_vector3_array_get(const godot_pool_vector3_array godot_int GDAPI godot_pool_vector3_array_size(const godot_pool_vector3_array *p_self); +godot_bool GDAPI godot_pool_vector3_array_empty(const godot_pool_vector3_array *p_self); + void GDAPI godot_pool_vector3_array_destroy(godot_pool_vector3_array *p_self); // color @@ -377,6 +389,8 @@ godot_color GDAPI godot_pool_color_array_get(const godot_pool_color_array *p_sel godot_int GDAPI godot_pool_color_array_size(const godot_pool_color_array *p_self); +godot_bool GDAPI godot_pool_color_array_empty(const godot_pool_color_array *p_self); + void GDAPI godot_pool_color_array_destroy(godot_pool_color_array *p_self); // diff --git a/modules/gdnative/register_types.cpp b/modules/gdnative/register_types.cpp index 0194199133..fa59c704d5 100644 --- a/modules/gdnative/register_types.cpp +++ b/modules/gdnative/register_types.cpp @@ -158,7 +158,7 @@ void GDNativeExportPlugin::_export_file(const String &p_path, const String &p_ty String additional_code = "extern void register_dynamic_symbol(char *name, void *address);\n" "extern void add_ios_init_callback(void (*cb)());\n"; String linker_flags = ""; - for (unsigned int i = 0; i < sizeof(expected_symbols) / sizeof(expected_symbols[0]); ++i) { + for (unsigned long i = 0; i < sizeof(expected_symbols) / sizeof(expected_symbols[0]); ++i) { String full_name = lib->get_symbol_prefix() + expected_symbols[i].name; String code = declare_pattern.replace("$name", full_name); code = code.replace("$weak", expected_symbols[i].is_required ? "" : " __attribute__((weak))"); @@ -174,7 +174,7 @@ void GDNativeExportPlugin::_export_file(const String &p_path, const String &p_ty additional_code += String("void $prefixinit() {\n").replace("$prefix", lib->get_symbol_prefix()); String register_pattern = " if (&$name) register_dynamic_symbol((char *)\"$name\", (void *)$name);\n"; - for (unsigned int i = 0; i < sizeof(expected_symbols) / sizeof(expected_symbols[0]); ++i) { + for (unsigned long i = 0; i < sizeof(expected_symbols) / sizeof(expected_symbols[0]); ++i) { String full_name = lib->get_symbol_prefix() + expected_symbols[i].name; additional_code += register_pattern.replace("$name", full_name); } diff --git a/modules/gdnative/videodecoder/video_stream_gdnative.cpp b/modules/gdnative/videodecoder/video_stream_gdnative.cpp index f3c34fd5e0..14b7f9a2ef 100644 --- a/modules/gdnative/videodecoder/video_stream_gdnative.cpp +++ b/modules/gdnative/videodecoder/video_stream_gdnative.cpp @@ -279,7 +279,7 @@ void VideoStreamPlaybackGDNative::set_paused(bool p_paused) { paused = p_paused; } -Ref<Texture> VideoStreamPlaybackGDNative::get_texture() { +Ref<Texture> VideoStreamPlaybackGDNative::get_texture() const { return texture; } diff --git a/modules/gdnative/videodecoder/video_stream_gdnative.h b/modules/gdnative/videodecoder/video_stream_gdnative.h index 9aed1fd2a0..5ff7acb616 100644 --- a/modules/gdnative/videodecoder/video_stream_gdnative.h +++ b/modules/gdnative/videodecoder/video_stream_gdnative.h @@ -168,7 +168,7 @@ public: //virtual int mix(int16_t* p_buffer,int p_frames)=0; - virtual Ref<Texture> get_texture(); + virtual Ref<Texture> get_texture() const; virtual void update(float p_delta); virtual void set_mix_callback(AudioMixCallback p_callback, void *p_userdata); diff --git a/modules/gdscript/gdscript_editor.cpp b/modules/gdscript/gdscript_editor.cpp index 9b3bf8ad5b..1d82735328 100644 --- a/modules/gdscript/gdscript_editor.cpp +++ b/modules/gdscript/gdscript_editor.cpp @@ -1944,11 +1944,10 @@ static void _find_identifiers_in_base(const GDScriptCompletionContext &p_context ScriptCodeCompletionOption option(E->get().name, ScriptCodeCompletionOption::KIND_MEMBER); r_result.insert(option.display, option); } - } else { - for (const Set<StringName>::Element *E = script->get_members().front(); E; E = E->next()) { - ScriptCodeCompletionOption option(E->get().operator String(), ScriptCodeCompletionOption::KIND_MEMBER); - r_result.insert(option.display, option); - } + } + for (const Set<StringName>::Element *E = script->get_members().front(); E; E = E->next()) { + ScriptCodeCompletionOption option(E->get().operator String(), ScriptCodeCompletionOption::KIND_MEMBER); + r_result.insert(option.display, option); } } if (!p_only_functions) { diff --git a/modules/gdscript/gdscript_functions.cpp b/modules/gdscript/gdscript_functions.cpp index d9535d0f1f..185eb6c3fc 100644 --- a/modules/gdscript/gdscript_functions.cpp +++ b/modules/gdscript/gdscript_functions.cpp @@ -589,7 +589,8 @@ void GDScriptFunctions::call(Function p_func, const Variant **p_args, int p_arg_ r_ret = wref; } } else if (p_args[0]->get_type() == Variant::NIL) { - r_ret = memnew(WeakRef); + Ref<WeakRef> wref = memnew(WeakRef); + r_ret = wref; } else { r_error.error = Variant::CallError::CALL_ERROR_INVALID_ARGUMENT; r_error.argument = 0; @@ -1273,6 +1274,7 @@ void GDScriptFunctions::call(Function p_func, const Variant **p_args, int p_arg_ if (err != OK) { r_ret = Variant(); + ERR_PRINTS(vformat("Error parsing JSON at line %s: %s", errl, errs)); } } break; diff --git a/modules/gdscript/gdscript_parser.cpp b/modules/gdscript/gdscript_parser.cpp index 21434cd150..9d229adb2a 100644 --- a/modules/gdscript/gdscript_parser.cpp +++ b/modules/gdscript/gdscript_parser.cpp @@ -89,8 +89,8 @@ bool GDScriptParser::_enter_indent_block(BlockNode *p_block) { if (tokenizer->get_token() != GDScriptTokenizer::TK_NEWLINE) { // be more python-like - int current = tab_level.back()->get(); - tab_level.push_back(current); + IndentLevel current_level = indent_level.back()->get(); + indent_level.push_back(current_level); return true; //_set_error("newline expected after ':'."); //return false; @@ -105,12 +105,19 @@ bool GDScriptParser::_enter_indent_block(BlockNode *p_block) { } else if (tokenizer->get_token(1) != GDScriptTokenizer::TK_NEWLINE) { int indent = tokenizer->get_token_line_indent(); - int current = tab_level.back()->get(); - if (indent <= current) { + int tabs = tokenizer->get_token_line_tab_indent(); + IndentLevel current_level = indent_level.back()->get(); + IndentLevel new_indent(indent, tabs); + if (new_indent.is_mixed(current_level)) { + _set_error("Mixed tabs and spaces in indentation."); return false; } - tab_level.push_back(indent); + if (indent <= current_level.indent) { + return false; + } + + indent_level.push_back(new_indent); tokenizer->advance(); return true; @@ -858,11 +865,23 @@ GDScriptParser::Node *GDScriptParser::_parse_expression(Node *p_parent, bool p_s if (current_function) { int arg_idx = current_function->arguments.find(identifier); if (arg_idx != -1) { - if (tokenizer->get_token() == GDScriptTokenizer::TK_OP_ASSIGN) { - // Assignment is not really usage - current_function->arguments_usage.write[arg_idx] = current_function->arguments_usage[arg_idx] - 1; - } else { - current_function->arguments_usage.write[arg_idx] = current_function->arguments_usage[arg_idx] + 1; + switch (tokenizer->get_token()) { + case GDScriptTokenizer::TK_OP_ASSIGN_ADD: + case GDScriptTokenizer::TK_OP_ASSIGN_BIT_AND: + case GDScriptTokenizer::TK_OP_ASSIGN_BIT_OR: + case GDScriptTokenizer::TK_OP_ASSIGN_BIT_XOR: + case GDScriptTokenizer::TK_OP_ASSIGN_DIV: + case GDScriptTokenizer::TK_OP_ASSIGN_MOD: + case GDScriptTokenizer::TK_OP_ASSIGN_MUL: + case GDScriptTokenizer::TK_OP_ASSIGN_SHIFT_LEFT: + case GDScriptTokenizer::TK_OP_ASSIGN_SHIFT_RIGHT: + case GDScriptTokenizer::TK_OP_ASSIGN_SUB: + case GDScriptTokenizer::TK_OP_ASSIGN: { + // Assignment is not really usage + } break; + default: { + current_function->arguments_usage.write[arg_idx] = current_function->arguments_usage[arg_idx] + 1; + } } } } @@ -2213,7 +2232,7 @@ GDScriptParser::PatternNode *GDScriptParser::_parse_pattern(bool p_static) { } void GDScriptParser::_parse_pattern_block(BlockNode *p_block, Vector<PatternBranchNode *> &p_branches, bool p_static) { - int indent_level = tab_level.back()->get(); + IndentLevel current_level = indent_level.back()->get(); p_block->has_return = true; @@ -2228,13 +2247,11 @@ void GDScriptParser::_parse_pattern_block(BlockNode *p_block, Vector<PatternBran if (error_set) return; - if (indent_level > tab_level.back()->get()) { + if (current_level.indent > indent_level.back()->get().indent) { break; // go back a level } - if (pending_newline != -1) { - pending_newline = -1; - } + pending_newline = -1; PatternBranchNode *branch = alloc_node<PatternBranchNode>(); branch->body = alloc_node<BlockNode>(); @@ -2685,7 +2702,7 @@ void GDScriptParser::_transform_match_statment(MatchNode *p_match_statement) { void GDScriptParser::_parse_block(BlockNode *p_block, bool p_static) { - int indent_level = tab_level.back()->get(); + IndentLevel current_level = indent_level.back()->get(); #ifdef DEBUG_ENABLED @@ -2698,9 +2715,13 @@ void GDScriptParser::_parse_block(BlockNode *p_block, bool p_static) { bool is_first_line = true; while (true) { - if (!is_first_line && tab_level.back()->prev() && tab_level.back()->prev()->get() == indent_level) { + if (!is_first_line && indent_level.back()->prev() && indent_level.back()->prev()->get().indent == current_level.indent) { + if (indent_level.back()->prev()->get().is_mixed(current_level)) { + _set_error("Mixed tabs and spaces in indentation."); + return; + } // pythonic single-line expression, don't parse future lines - tab_level.pop_back(); + indent_level.pop_back(); p_block->end_line = tokenizer->get_token_line(); return; } @@ -2710,7 +2731,7 @@ void GDScriptParser::_parse_block(BlockNode *p_block, bool p_static) { if (error_set) return; - if (indent_level > tab_level.back()->get()) { + if (current_level.indent > indent_level.back()->get().indent) { p_block->end_line = tokenizer->get_token_line(); return; //go back a level } @@ -2914,14 +2935,14 @@ void GDScriptParser::_parse_block(BlockNode *p_block, bool p_static) { while (tokenizer->get_token() == GDScriptTokenizer::TK_NEWLINE && _parse_newline()) ; - if (tab_level.back()->get() < indent_level) { //not at current indent level + if (indent_level.back()->get().indent < current_level.indent) { //not at current indent level p_block->end_line = tokenizer->get_token_line(); return; } if (tokenizer->get_token() == GDScriptTokenizer::TK_CF_ELIF) { - if (tab_level.back()->get() > indent_level) { + if (indent_level.back()->get().indent > current_level.indent) { _set_error("Invalid indentation."); return; @@ -2969,7 +2990,7 @@ void GDScriptParser::_parse_block(BlockNode *p_block, bool p_static) { } else if (tokenizer->get_token() == GDScriptTokenizer::TK_CF_ELSE) { - if (tab_level.back()->get() > indent_level) { + if (indent_level.back()->get().indent > current_level.indent) { _set_error("Invalid indentation."); return; } @@ -3341,32 +3362,45 @@ bool GDScriptParser::_parse_newline() { if (tokenizer->get_token(1) != GDScriptTokenizer::TK_EOF && tokenizer->get_token(1) != GDScriptTokenizer::TK_NEWLINE) { + IndentLevel current_level = indent_level.back()->get(); int indent = tokenizer->get_token_line_indent(); - int current_indent = tab_level.back()->get(); + int tabs = tokenizer->get_token_line_tab_indent(); + IndentLevel new_level(indent, tabs); + + if (new_level.is_mixed(current_level)) { + _set_error("Mixed tabs and spaces in indentation."); + return false; + } - if (indent > current_indent) { + if (indent > current_level.indent) { _set_error("Unexpected indentation."); return false; } - if (indent < current_indent) { + if (indent < current_level.indent) { - while (indent < current_indent) { + while (indent < current_level.indent) { //exit block - if (tab_level.size() == 1) { + if (indent_level.size() == 1) { _set_error("Invalid indentation. Bug?"); return false; } - tab_level.pop_back(); + indent_level.pop_back(); - if (tab_level.back()->get() < indent) { + if (indent_level.back()->get().indent < indent) { _set_error("Unindent does not match any outer indentation level."); return false; } - current_indent = tab_level.back()->get(); + + if (indent_level.back()->get().is_mixed(current_level)) { + _set_error("Mixed tabs and spaces in indentation."); + return false; + } + + current_level = indent_level.back()->get(); } tokenizer->advance(); @@ -3464,7 +3498,7 @@ void GDScriptParser::_parse_extends(ClassNode *p_class) { void GDScriptParser::_parse_class(ClassNode *p_class) { - int indent_level = tab_level.back()->get(); + IndentLevel current_level = indent_level.back()->get(); while (true) { @@ -3472,7 +3506,7 @@ void GDScriptParser::_parse_class(ClassNode *p_class) { if (error_set) return; - if (indent_level > tab_level.back()->get()) { + if (current_level.indent > indent_level.back()->get().indent) { p_class->end_line = tokenizer->get_token_line(); return; //go back a level } @@ -6111,12 +6145,18 @@ bool GDScriptParser::_is_type_compatible(const DataType &p_container, const Data break; } + // Some classes are prefixed with `_` internally + if (!ClassDB::class_exists(expr_native)) { + expr_native = "_" + expr_native; + } + switch (p_container.kind) { case DataType::NATIVE: { if (p_container.is_meta_type) { return ClassDB::is_parent_class(expr_native, GDScriptNativeClass::get_class_static()); } else { - return ClassDB::is_parent_class(expr_native, p_container.native_type); + StringName container_native = ClassDB::class_exists(p_container.native_type) ? p_container.native_type : StringName("_" + p_container.native_type); + return ClassDB::is_parent_class(expr_native, container_native); } } break; case DataType::SCRIPT: @@ -8546,8 +8586,8 @@ void GDScriptParser::clear() { validating = false; for_completion = false; error_set = false; - tab_level.clear(); - tab_level.push_back(0); + indent_level.clear(); + indent_level.push_back(IndentLevel(0, 0)); error_line = 0; error_column = 0; pending_newline = -1; diff --git a/modules/gdscript/gdscript_parser.h b/modules/gdscript/gdscript_parser.h index 04ce9cf4c6..93557d745d 100644 --- a/modules/gdscript/gdscript_parser.h +++ b/modules/gdscript/gdscript_parser.h @@ -552,7 +552,27 @@ private: int pending_newline; - List<int> tab_level; + struct IndentLevel { + int indent; + int tabs; + + bool is_mixed(IndentLevel other) { + return ( + (indent == other.indent && tabs != other.tabs) || + (indent > other.indent && tabs < other.tabs) || + (indent < other.indent && tabs > other.tabs)); + } + + IndentLevel() : + indent(0), + tabs(0) {} + + IndentLevel(int p_indent, int p_tabs) : + indent(p_indent), + tabs(p_tabs) {} + }; + + List<IndentLevel> indent_level; String base_path; String self_path; diff --git a/modules/gdscript/gdscript_tokenizer.cpp b/modules/gdscript/gdscript_tokenizer.cpp index 8b20b0ff48..23a86f8d2b 100644 --- a/modules/gdscript/gdscript_tokenizer.cpp +++ b/modules/gdscript/gdscript_tokenizer.cpp @@ -450,11 +450,11 @@ void GDScriptTokenizerText::_make_error(const String &p_error) { tk_rb_pos = (tk_rb_pos + 1) % TK_RB_SIZE; } -void GDScriptTokenizerText::_make_newline(int p_spaces) { +void GDScriptTokenizerText::_make_newline(int p_indentation, int p_tabs) { TokenData &tk = tk_rb[tk_rb_pos]; tk.type = TK_NEWLINE; - tk.constant = p_spaces; + tk.constant = Vector2(p_indentation, p_tabs); tk.line = line; tk.col = column; tk_rb_pos = (tk_rb_pos + 1) % TK_RB_SIZE; @@ -511,33 +511,6 @@ void GDScriptTokenizerText::_advance() { case ' ': INCPOS(1); continue; - case '\n': { - line++; - INCPOS(1); - column = 1; - int i = 0; - while (true) { - if (GETCHAR(i) == ' ') { - if (file_indent_type == INDENT_NONE) file_indent_type = INDENT_SPACES; - if (file_indent_type != INDENT_SPACES) { - _make_error("Spaces used for indentation in tab-indented file!"); - return; - } - } else if (GETCHAR(i) == '\t') { - if (file_indent_type == INDENT_NONE) file_indent_type = INDENT_TABS; - if (file_indent_type != INDENT_TABS) { - _make_error("Tabs used for indentation in space-indented file!"); - return; - } - } else { - break; // not indentation anymore - } - i++; - } - - _make_newline(i); - return; - } case '#': { // line comment skip #ifdef DEBUG_ENABLED String comment; @@ -565,33 +538,34 @@ void GDScriptTokenizerText::_advance() { ignore_warnings = true; } #endif // DEBUG_ENABLED + FALLTHROUGH; + } + case '\n': { + line++; INCPOS(1); + bool used_spaces = false; + int tabs = 0; column = 1; - line++; int i = 0; while (true) { if (GETCHAR(i) == ' ') { - if (file_indent_type == INDENT_NONE) file_indent_type = INDENT_SPACES; - if (file_indent_type != INDENT_SPACES) { - _make_error("Spaces used for indentation in tab-indented file!"); - return; - } + i++; + used_spaces = true; } else if (GETCHAR(i) == '\t') { - if (file_indent_type == INDENT_NONE) file_indent_type = INDENT_TABS; - if (file_indent_type != INDENT_TABS) { - _make_error("Tabs used for indentation in space-indented file!"); + if (used_spaces) { + _make_error("Spaces used before tabs on a line"); return; } + i++; + tabs++; } else { break; // not indentation anymore } - i++; } - _make_newline(i); + _make_newline(i, tabs); return; - - } break; + } case '/': { switch (GETCHAR(1)) { @@ -849,12 +823,8 @@ void GDScriptTokenizerText::_advance() { _make_error("Unterminated String"); return; } - if (!((c >= '0' && c <= '9') || (c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F'))) { - _make_error("Malformed hex constant in string"); - return; - } - CharType v; + CharType v = 0; if (c >= '0' && c <= '9') { v = c - '0'; } else if (c >= 'a' && c <= 'f') { @@ -864,8 +834,8 @@ void GDScriptTokenizerText::_advance() { v = c - 'A'; v += 10; } else { - ERR_PRINT("BUG"); - v = 0; + _make_error("Malformed hex constant in string"); + return; } res <<= 4; @@ -1112,7 +1082,6 @@ void GDScriptTokenizerText::set_code(const String &p_code) { ignore_warnings = false; #endif // DEBUG_ENABLED last_error = ""; - file_indent_type = INDENT_NONE; for (int i = 0; i < MAX_LOOKAHEAD + 1; i++) _advance(); } @@ -1187,7 +1156,17 @@ int GDScriptTokenizerText::get_token_line_indent(int p_offset) const { int ofs = (TK_RB_SIZE + tk_rb_pos + p_offset - MAX_LOOKAHEAD - 1) % TK_RB_SIZE; ERR_FAIL_COND_V(tk_rb[ofs].type != TK_NEWLINE, 0); - return tk_rb[ofs].constant; + return tk_rb[ofs].constant.operator Vector2().x; +} + +int GDScriptTokenizerText::get_token_line_tab_indent(int p_offset) const { + + ERR_FAIL_COND_V(p_offset <= -MAX_LOOKAHEAD, 0); + ERR_FAIL_COND_V(p_offset >= MAX_LOOKAHEAD, 0); + + int ofs = (TK_RB_SIZE + tk_rb_pos + p_offset - MAX_LOOKAHEAD - 1) % TK_RB_SIZE; + ERR_FAIL_COND_V(tk_rb[ofs].type != TK_NEWLINE, 0); + return tk_rb[ofs].constant.operator Vector2().y; } String GDScriptTokenizerText::get_token_error(int p_offset) const { diff --git a/modules/gdscript/gdscript_tokenizer.h b/modules/gdscript/gdscript_tokenizer.h index 89d586b912..58749012b7 100644 --- a/modules/gdscript/gdscript_tokenizer.h +++ b/modules/gdscript/gdscript_tokenizer.h @@ -168,6 +168,7 @@ public: virtual int get_token_line(int p_offset = 0) const = 0; virtual int get_token_column(int p_offset = 0) const = 0; virtual int get_token_line_indent(int p_offset = 0) const = 0; + virtual int get_token_line_tab_indent(int p_offset = 0) const = 0; virtual String get_token_error(int p_offset = 0) const = 0; virtual void advance(int p_amount = 1) = 0; #ifdef DEBUG_ENABLED @@ -205,7 +206,7 @@ class GDScriptTokenizerText : public GDScriptTokenizer { }; void _make_token(Token p_type); - void _make_newline(int p_spaces = 0); + void _make_newline(int p_indentation = 0, int p_tabs = 0); void _make_identifier(const StringName &p_identifier); void _make_built_in_func(GDScriptFunctions::Function p_func); void _make_constant(const Variant &p_constant); @@ -222,11 +223,6 @@ class GDScriptTokenizerText : public GDScriptTokenizer { int tk_rb_pos; String last_error; bool error_flag; - enum { - INDENT_NONE, - INDENT_SPACES, - INDENT_TABS, - } file_indent_type; #ifdef DEBUG_ENABLED Vector<Pair<int, String> > warning_skips; @@ -245,6 +241,7 @@ public: virtual int get_token_line(int p_offset = 0) const; virtual int get_token_column(int p_offset = 0) const; virtual int get_token_line_indent(int p_offset = 0) const; + virtual int get_token_line_tab_indent(int p_offset = 0) const; virtual const Variant &get_token_constant(int p_offset = 0) const; virtual String get_token_error(int p_offset = 0) const; virtual void advance(int p_amount = 1); @@ -283,6 +280,7 @@ public: virtual int get_token_line(int p_offset = 0) const; virtual int get_token_column(int p_offset = 0) const; virtual int get_token_line_indent(int p_offset = 0) const; + virtual int get_token_line_tab_indent(int p_offset = 0) const { return 0; } virtual const Variant &get_token_constant(int p_offset = 0) const; virtual String get_token_error(int p_offset = 0) const; virtual void advance(int p_amount = 1); diff --git a/modules/gdscript/language_server/gdscript_extend_parser.cpp b/modules/gdscript/language_server/gdscript_extend_parser.cpp index 03d731a5f0..6b5c26ec81 100644 --- a/modules/gdscript/language_server/gdscript_extend_parser.cpp +++ b/modules/gdscript/language_server/gdscript_extend_parser.cpp @@ -298,7 +298,7 @@ void ExtendGDScriptParser::parse_function_symbol(const GDScriptParser::FunctionN const int line = LINE_NUMBER_TO_INDEX(p_func->line); r_symbol.range.start.line = line; r_symbol.range.start.character = p_func->column; - r_symbol.range.end.line = MAX(p_func->body->end_line - 2, p_func->body->line); + r_symbol.range.end.line = MAX(p_func->body->end_line - 2, r_symbol.range.start.line); r_symbol.range.end.character = lines[r_symbol.range.end.line].length(); r_symbol.selectionRange.start.line = r_symbol.range.start.line; r_symbol.documentation = parse_documentation(line); diff --git a/modules/gdscript/language_server/gdscript_language_protocol.cpp b/modules/gdscript/language_server/gdscript_language_protocol.cpp index ae2aaf6aee..90646f73ba 100644 --- a/modules/gdscript/language_server/gdscript_language_protocol.cpp +++ b/modules/gdscript/language_server/gdscript_language_protocol.cpp @@ -134,6 +134,22 @@ Dictionary GDScriptLanguageProtocol::initialize(const Dictionary &p_params) { } void GDScriptLanguageProtocol::initialized(const Variant &p_params) { + + lsp::GodotCapabilities capabilities; + + DocData *doc = EditorHelp::get_doc_data(); + for (Map<String, DocData::ClassDoc>::Element *E = doc->class_list.front(); E; E = E->next()) { + + lsp::GodotNativeClassInfo gdclass; + gdclass.name = E->get().name; + gdclass.class_doc = &(E->get()); + if (ClassDB::ClassInfo *ptr = ClassDB::classes.getptr(StringName(E->get().name))) { + gdclass.class_info = ptr; + } + capabilities.native_classes.push_back(gdclass); + } + + notify_client("gdscript/capabilities", capabilities.to_json()); } void GDScriptLanguageProtocol::poll() { diff --git a/modules/gdscript/language_server/gdscript_language_server.cpp b/modules/gdscript/language_server/gdscript_language_server.cpp index 62c212a2bd..8d58b99e02 100644 --- a/modules/gdscript/language_server/gdscript_language_server.cpp +++ b/modules/gdscript/language_server/gdscript_language_server.cpp @@ -56,8 +56,9 @@ void GDScriptLanguageServer::_notification(int p_what) { void GDScriptLanguageServer::thread_main(void *p_userdata) { GDScriptLanguageServer *self = static_cast<GDScriptLanguageServer *>(p_userdata); while (!self->thread_exit) { + // Poll 20 times per second self->protocol.poll(); - OS::get_singleton()->delay_usec(10); + OS::get_singleton()->delay_usec(50000); } } diff --git a/modules/gdscript/language_server/gdscript_workspace.cpp b/modules/gdscript/language_server/gdscript_workspace.cpp index 6baa7e4219..c289ff6c07 100644 --- a/modules/gdscript/language_server/gdscript_workspace.cpp +++ b/modules/gdscript/language_server/gdscript_workspace.cpp @@ -269,7 +269,11 @@ Error GDScriptWorkspace::initialize() { params += params.empty() ? "..." : ", ..."; } - symbol.detail = "func " + class_name + "." + data.name + "(" + params + ") -> " + data.return_type; + String return_type = data.return_type; + if (return_type.empty()) { + return_type = "void"; + } + symbol.detail = "func " + class_name + "." + data.name + "(" + params + ") -> " + return_type; symbol.documentation = data.description; class_symbol.children.push_back(symbol); } diff --git a/modules/gdscript/language_server/lsp.hpp b/modules/gdscript/language_server/lsp.hpp index 61a0980c41..a048af88bb 100644 --- a/modules/gdscript/language_server/lsp.hpp +++ b/modules/gdscript/language_server/lsp.hpp @@ -31,7 +31,9 @@ #ifndef GODOT_LSP_H #define GODOT_LSP_H -#include "core/variant.h" +#include "core/class_db.h" +#include "core/list.h" +#include "editor/doc/doc_data.h" namespace lsp { @@ -494,7 +496,7 @@ struct TextDocumentSyncOptions { dict["willSave"] = willSave; dict["openClose"] = openClose; dict["change"] = change; - dict["change"] = save.to_json(); + dict["save"] = save.to_json(); return dict; } }; @@ -1567,6 +1569,39 @@ struct InitializeResult { } }; +struct GodotNativeClassInfo { + + String name; + const DocData::ClassDoc *class_doc = NULL; + const ClassDB::ClassInfo *class_info = NULL; + + Dictionary to_json() { + Dictionary dict; + dict["name"] = name; + dict["inherits"] = class_doc->inherits; + return dict; + } +}; + +/** Features not included in the standart lsp specifications */ +struct GodotCapabilities { + + /** + * Native class list + */ + List<GodotNativeClassInfo> native_classes; + + Dictionary to_json() { + Dictionary dict; + Array classes; + for (List<GodotNativeClassInfo>::Element *E = native_classes.front(); E; E = E->next()) { + classes.push_back(E->get().to_json()); + } + dict["native_classes"] = classes; + return dict; + } +}; + /** Format BBCode documentation from DocData to markdown */ static String marked_documentation(const String &p_bbcode) { diff --git a/modules/gridmap/doc_classes/GridMap.xml b/modules/gridmap/doc_classes/GridMap.xml index 1bd3d72066..b762868f2c 100644 --- a/modules/gridmap/doc_classes/GridMap.xml +++ b/modules/gridmap/doc_classes/GridMap.xml @@ -217,6 +217,14 @@ Deprecated, use [member mesh_library] instead. </member> </members> + <signals> + <signal name="cell_size_changed"> + <argument index="0" name="cell_size" type="Vector3"> + </argument> + <description> + </description> + </signal> + </signals> <constants> <constant name="INVALID_CELL_ITEM" value="-1"> Invalid cell item that can be used in [method set_cell_item] to clear cells (or represent an empty cell in [method get_cell_item]). diff --git a/modules/gridmap/grid_map.cpp b/modules/gridmap/grid_map.cpp index b36afd4386..47ac0de7f9 100644 --- a/modules/gridmap/grid_map.cpp +++ b/modules/gridmap/grid_map.cpp @@ -227,10 +227,10 @@ Ref<MeshLibrary> GridMap::get_mesh_library() const { } void GridMap::set_cell_size(const Vector3 &p_size) { - ERR_FAIL_COND(p_size.x < 0.001 || p_size.y < 0.001 || p_size.z < 0.001); cell_size = p_size; _recreate_octant_data(); + emit_signal("cell_size_changed", cell_size); } Vector3 GridMap::get_cell_size() const { @@ -902,6 +902,8 @@ void GridMap::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::INT, "collision_mask", PROPERTY_HINT_LAYERS_3D_PHYSICS), "set_collision_mask", "get_collision_mask"); BIND_CONSTANT(INVALID_CELL_ITEM); + + ADD_SIGNAL(MethodInfo("cell_size_changed", PropertyInfo(Variant::VECTOR3, "cell_size"))); } void GridMap::set_clip(bool p_enabled, bool p_clip_above, int p_floor, Vector3::Axis p_axis) { diff --git a/modules/gridmap/grid_map_editor_plugin.cpp b/modules/gridmap/grid_map_editor_plugin.cpp index c97524a54d..f79aea9531 100644 --- a/modules/gridmap/grid_map_editor_plugin.cpp +++ b/modules/gridmap/grid_map_editor_plugin.cpp @@ -40,11 +40,8 @@ void GridMapEditor::_node_removed(Node *p_node) { - if (p_node == node) { + if (p_node == node) node = NULL; - hide(); - mesh_library_palette->hide(); - } } void GridMapEditor::_configure() { @@ -279,6 +276,7 @@ void GridMapEditor::_update_cursor_transform() { cursor_transform = Transform(); cursor_transform.origin = cursor_origin; cursor_transform.basis.set_orthogonal_index(cursor_rot); + cursor_transform.basis *= node->get_cell_scale(); cursor_transform = node->get_global_transform() * cursor_transform; if (cursor_instance.is_valid()) { @@ -301,7 +299,7 @@ void GridMapEditor::_update_selection_transform() { } Transform xf; - xf.scale(Vector3(1, 1, 1) * (Vector3(1, 1, 1) + (selection.end - selection.begin)) * node->get_cell_size()); + xf.scale((Vector3(1, 1, 1) + (selection.end - selection.begin)) * node->get_cell_size()); xf.origin = selection.begin * node->get_cell_size(); VisualServer::get_singleton()->instance_set_transform(selection_instance, node->get_global_transform() * xf); @@ -353,7 +351,14 @@ void GridMapEditor::_set_selection(bool p_active, const Vector3 &p_begin, const selection.click = p_begin; selection.current = p_end; - _update_selection_transform(); + if (is_visible_in_tree()) { + _update_selection_transform(); + } + + options->get_popup()->set_item_disabled(options->get_popup()->get_item_index(MENU_OPTION_SELECTION_CLEAR), !selection.active); + options->get_popup()->set_item_disabled(options->get_popup()->get_item_index(MENU_OPTION_SELECTION_CUT), !selection.active); + options->get_popup()->set_item_disabled(options->get_popup()->get_item_index(MENU_OPTION_SELECTION_DUPLICATE), !selection.active); + options->get_popup()->set_item_disabled(options->get_popup()->get_item_index(MENU_OPTION_SELECTION_FILL), !selection.active); } bool GridMapEditor::do_input_action(Camera *p_camera, const Point2 &p_point, bool p_click) { @@ -591,7 +596,7 @@ void GridMapEditor::_update_paste_indicator() { Basis item_rot; item_rot.set_orthogonal_index(item.orientation); - xf.basis = item_rot * xf.basis; + xf.basis = item_rot * xf.basis * node->get_cell_scale(); VisualServer::get_singleton()->instance_set_transform(item.instance, node->get_global_transform() * xf); } @@ -929,9 +934,10 @@ void GridMapEditor::update_palette() { } void GridMapEditor::edit(GridMap *p_gridmap) { + if (!p_gridmap && node) + node->disconnect("cell_size_changed", this, "_draw_grids"); node = p_gridmap; - VS *vs = VS::get_singleton(); input_action = INPUT_NONE; selection.active = false; @@ -957,75 +963,13 @@ void GridMapEditor::edit(GridMap *p_gridmap) { set_process(true); - Vector3 edited_floor = p_gridmap->has_meta("_editor_floor_") ? p_gridmap->get_meta("_editor_floor_") : Variant(); clip_mode = p_gridmap->has_meta("_editor_clip_") ? ClipMode(p_gridmap->get_meta("_editor_clip_").operator int()) : CLIP_DISABLED; - for (int i = 0; i < 3; i++) { - if (vs->mesh_get_surface_count(grid[i]) > 0) - vs->mesh_remove_surface(grid[i], 0); - edit_floor[i] = edited_floor[i]; - } - - { - - // Update grids. - indicator_mat.instance(); - indicator_mat->set_flag(SpatialMaterial::FLAG_UNSHADED, true); - indicator_mat->set_feature(SpatialMaterial::FEATURE_TRANSPARENT, true); - indicator_mat->set_flag(SpatialMaterial::FLAG_SRGB_VERTEX_COLOR, true); - indicator_mat->set_flag(SpatialMaterial::FLAG_ALBEDO_FROM_VERTEX_COLOR, true); - indicator_mat->set_albedo(Color(0.8, 0.5, 0.1)); - - Vector<Vector3> grid_points[3]; - Vector<Color> grid_colors[3]; - - float cell_size[3] = { p_gridmap->get_cell_size().x, p_gridmap->get_cell_size().y, p_gridmap->get_cell_size().z }; - - for (int i = 0; i < 3; i++) { - - Vector3 axis; - axis[i] = 1; - Vector3 axis_n1; - axis_n1[(i + 1) % 3] = cell_size[(i + 1) % 3]; - Vector3 axis_n2; - axis_n2[(i + 2) % 3] = cell_size[(i + 2) % 3]; - - for (int j = -GRID_CURSOR_SIZE; j <= GRID_CURSOR_SIZE; j++) { - - for (int k = -GRID_CURSOR_SIZE; k <= GRID_CURSOR_SIZE; k++) { - - Vector3 p = axis_n1 * j + axis_n2 * k; - float trans = Math::pow(MAX(0, 1.0 - (Vector2(j, k).length() / GRID_CURSOR_SIZE)), 2); - - Vector3 pj = axis_n1 * (j + 1) + axis_n2 * k; - float transj = Math::pow(MAX(0, 1.0 - (Vector2(j + 1, k).length() / GRID_CURSOR_SIZE)), 2); - - Vector3 pk = axis_n1 * j + axis_n2 * (k + 1); - float transk = Math::pow(MAX(0, 1.0 - (Vector2(j, k + 1).length() / GRID_CURSOR_SIZE)), 2); - - grid_points[i].push_back(p); - grid_points[i].push_back(pk); - grid_colors[i].push_back(Color(1, 1, 1, trans)); - grid_colors[i].push_back(Color(1, 1, 1, transk)); - - grid_points[i].push_back(p); - grid_points[i].push_back(pj); - grid_colors[i].push_back(Color(1, 1, 1, trans)); - grid_colors[i].push_back(Color(1, 1, 1, transj)); - } - } - - Array d; - d.resize(VS::ARRAY_MAX); - d[VS::ARRAY_VERTEX] = grid_points[i]; - d[VS::ARRAY_COLOR] = grid_colors[i]; - VisualServer::get_singleton()->mesh_add_surface_from_arrays(grid[i], VisualServer::PRIMITIVE_LINES, d); - VisualServer::get_singleton()->mesh_surface_set_material(grid[i], 0, indicator_mat->get_rid()); - } - } - + _draw_grids(node->get_cell_size()); update_grid(); _update_clip(); + + node->connect("cell_size_changed", this, "_draw_grids"); } void GridMapEditor::_update_clip() { @@ -1055,6 +999,61 @@ void GridMapEditor::update_grid() { updating = false; } +void GridMapEditor::_draw_grids(const Vector3 &cell_size) { + Vector3 edited_floor = node->has_meta("_editor_floor_") ? node->get_meta("_editor_floor_") : Variant(); + + for (int i = 0; i < 3; i++) { + if (VS::get_singleton()->mesh_get_surface_count(grid[i]) > 0) + VS::get_singleton()->mesh_remove_surface(grid[i], 0); + edit_floor[i] = edited_floor[i]; + } + + Vector<Vector3> grid_points[3]; + Vector<Color> grid_colors[3]; + + for (int i = 0; i < 3; i++) { + + Vector3 axis; + axis[i] = 1; + Vector3 axis_n1; + axis_n1[(i + 1) % 3] = cell_size[(i + 1) % 3]; + Vector3 axis_n2; + axis_n2[(i + 2) % 3] = cell_size[(i + 2) % 3]; + + for (int j = -GRID_CURSOR_SIZE; j <= GRID_CURSOR_SIZE; j++) { + + for (int k = -GRID_CURSOR_SIZE; k <= GRID_CURSOR_SIZE; k++) { + + Vector3 p = axis_n1 * j + axis_n2 * k; + float trans = Math::pow(MAX(0, 1.0 - (Vector2(j, k).length() / GRID_CURSOR_SIZE)), 2); + + Vector3 pj = axis_n1 * (j + 1) + axis_n2 * k; + float transj = Math::pow(MAX(0, 1.0 - (Vector2(j + 1, k).length() / GRID_CURSOR_SIZE)), 2); + + Vector3 pk = axis_n1 * j + axis_n2 * (k + 1); + float transk = Math::pow(MAX(0, 1.0 - (Vector2(j, k + 1).length() / GRID_CURSOR_SIZE)), 2); + + grid_points[i].push_back(p); + grid_points[i].push_back(pk); + grid_colors[i].push_back(Color(1, 1, 1, trans)); + grid_colors[i].push_back(Color(1, 1, 1, transk)); + + grid_points[i].push_back(p); + grid_points[i].push_back(pj); + grid_colors[i].push_back(Color(1, 1, 1, trans)); + grid_colors[i].push_back(Color(1, 1, 1, transj)); + } + } + + Array d; + d.resize(VS::ARRAY_MAX); + d[VS::ARRAY_VERTEX] = grid_points[i]; + d[VS::ARRAY_COLOR] = grid_colors[i]; + VisualServer::get_singleton()->mesh_add_surface_from_arrays(grid[i], VisualServer::PRIMITIVE_LINES, d); + VisualServer::get_singleton()->mesh_surface_set_material(grid[i], 0, indicator_mat->get_rid()); + } +} + void GridMapEditor::_notification(int p_what) { switch (p_what) { @@ -1193,6 +1192,7 @@ void GridMapEditor::_bind_methods() { ClassDB::bind_method("_node_removed", &GridMapEditor::_node_removed); ClassDB::bind_method(D_METHOD("_set_display_mode", "mode"), &GridMapEditor::_set_display_mode); + ClassDB::bind_method("_draw_grids", &GridMapEditor::_draw_grids); } GridMapEditor::GridMapEditor(EditorNode *p_editor) { @@ -1465,9 +1465,16 @@ GridMapEditor::GridMapEditor(EditorNode *p_editor) { } } - selection.active = false; + _set_selection(false); updating = false; accumulated_floor_delta = 0.0; + + indicator_mat.instance(); + indicator_mat->set_flag(SpatialMaterial::FLAG_UNSHADED, true); + indicator_mat->set_feature(SpatialMaterial::FEATURE_TRANSPARENT, true); + indicator_mat->set_flag(SpatialMaterial::FLAG_SRGB_VERTEX_COLOR, true); + indicator_mat->set_flag(SpatialMaterial::FLAG_ALBEDO_FROM_VERTEX_COLOR, true); + indicator_mat->set_albedo(Color(0.8, 0.5, 0.1)); } GridMapEditor::~GridMapEditor() { diff --git a/modules/gridmap/grid_map_editor_plugin.h b/modules/gridmap/grid_map_editor_plugin.h index 48a07e9c7f..42e62f2842 100644 --- a/modules/gridmap/grid_map_editor_plugin.h +++ b/modules/gridmap/grid_map_editor_plugin.h @@ -201,7 +201,8 @@ class GridMapEditor : public VBoxContainer { EditorNode *editor; - void update_grid(); + void update_grid(); // Change which and where the grid is displayed + void _draw_grids(const Vector3 &cell_size); void _configure(); void _menu_option(int); void update_palette(); diff --git a/modules/mbedtls/crypto_mbedtls.cpp b/modules/mbedtls/crypto_mbedtls.cpp index ca656b4b9b..204f4e8905 100644 --- a/modules/mbedtls/crypto_mbedtls.cpp +++ b/modules/mbedtls/crypto_mbedtls.cpp @@ -237,6 +237,7 @@ Ref<CryptoKey> CryptoMbedTLS::generate_rsa(int p_bytes) { Ref<X509Certificate> CryptoMbedTLS::generate_self_signed_certificate(Ref<CryptoKey> p_key, String p_issuer_name, String p_not_before, String p_not_after) { Ref<CryptoKeyMbedTLS> key = static_cast<Ref<CryptoKeyMbedTLS> >(p_key); + ERR_FAIL_COND_V_MSG(key.is_null(), NULL, "Invalid private key argument."); mbedtls_x509write_cert crt; mbedtls_x509write_crt_init(&crt); diff --git a/modules/mono/editor/GodotTools/GodotTools/BuildManager.cs b/modules/mono/editor/GodotTools/GodotTools/BuildManager.cs index 417032da54..ab37d89955 100644 --- a/modules/mono/editor/GodotTools/GodotTools/BuildManager.cs +++ b/modules/mono/editor/GodotTools/GodotTools/BuildManager.cs @@ -160,9 +160,16 @@ namespace GodotTools if (!File.Exists(GodotSharpDirs.ProjectSlnPath)) return true; // No solution to build - // Make sure to update the API assemblies if they happen to be missing. Just in - // case the user decided to delete them at some point after they were loaded. - Internal.UpdateApiAssembliesFromPrebuilt(); + // Make sure the API assemblies are up to date before building the project. + // We may not have had the chance to update the release API assemblies, and the debug ones + // may have been deleted by the user at some point after they were loaded by the Godot editor. + string apiAssembliesUpdateError = Internal.UpdateApiAssembliesFromPrebuilt(config == "Release" ? "Release" : "Debug"); + + if (!string.IsNullOrEmpty(apiAssembliesUpdateError)) + { + ShowBuildErrorDialog("Failed to update the Godot API assemblies"); + return false; + } var editorSettings = GodotSharpEditor.Instance.GetEditorInterface().GetEditorSettings(); var buildTool = (BuildTool) editorSettings.GetSetting("mono/builds/build_tool"); diff --git a/modules/mono/editor/GodotTools/GodotTools/GodotSharpEditor.cs b/modules/mono/editor/GodotTools/GodotTools/GodotSharpEditor.cs index 7da7cff933..12edd651df 100644 --- a/modules/mono/editor/GodotTools/GodotTools/GodotSharpEditor.cs +++ b/modules/mono/editor/GodotTools/GodotTools/GodotSharpEditor.cs @@ -34,7 +34,7 @@ namespace GodotTools private bool CreateProjectSolution() { - using (var pr = new EditorProgress("create_csharp_solution", "Generating solution...".TTR(), 2)) + using (var pr = new EditorProgress("create_csharp_solution", "Generating solution...".TTR(), 3)) { pr.Step("Generating C# project...".TTR()); @@ -73,9 +73,23 @@ namespace GodotTools return false; } - // Make sure to update the API assemblies if they happen to be missing. Just in - // case the user decided to delete them at some point after they were loaded. - Internal.UpdateApiAssembliesFromPrebuilt(); + pr.Step("Updating Godot API assemblies...".TTR()); + + string debugApiAssembliesError = Internal.UpdateApiAssembliesFromPrebuilt("Debug"); + + if (!string.IsNullOrEmpty(debugApiAssembliesError)) + { + ShowErrorDialog("Failed to update the Godot API assemblies: " + debugApiAssembliesError); + return false; + } + + string releaseApiAssembliesError = Internal.UpdateApiAssembliesFromPrebuilt("Release"); + + if (!string.IsNullOrEmpty(releaseApiAssembliesError)) + { + ShowErrorDialog("Failed to update the Godot API assemblies: " + releaseApiAssembliesError); + return false; + } pr.Step("Done".TTR()); diff --git a/modules/mono/editor/GodotTools/GodotTools/Ides/GodotIdeManager.cs b/modules/mono/editor/GodotTools/GodotTools/Ides/GodotIdeManager.cs index 9e24138143..01aa0d0ab1 100644 --- a/modules/mono/editor/GodotTools/GodotTools/Ides/GodotIdeManager.cs +++ b/modules/mono/editor/GodotTools/GodotTools/Ides/GodotIdeManager.cs @@ -40,8 +40,7 @@ namespace GodotTools.Ides protected ILogger Logger { - get => logger ?? (logger = new ConsoleLogger()); - set => logger = value; + get => logger ?? (logger = new GodotLogger()); } private void StartServer() diff --git a/modules/mono/editor/GodotTools/GodotTools/Internals/Internal.cs b/modules/mono/editor/GodotTools/GodotTools/Internals/Internal.cs index 7783576910..836c9c11e4 100644 --- a/modules/mono/editor/GodotTools/GodotTools/Internals/Internal.cs +++ b/modules/mono/editor/GodotTools/GodotTools/Internals/Internal.cs @@ -10,8 +10,8 @@ namespace GodotTools.Internals public const string CSharpLanguageType = "CSharpScript"; public const string CSharpLanguageExtension = "cs"; - public static string UpdateApiAssembliesFromPrebuilt() => - internal_UpdateApiAssembliesFromPrebuilt(); + public static string UpdateApiAssembliesFromPrebuilt(string config) => + internal_UpdateApiAssembliesFromPrebuilt(config); public static string FullTemplatesDir => internal_FullTemplatesDir(); @@ -55,7 +55,7 @@ namespace GodotTools.Internals // Internal Calls [MethodImpl(MethodImplOptions.InternalCall)] - private static extern string internal_UpdateApiAssembliesFromPrebuilt(); + private static extern string internal_UpdateApiAssembliesFromPrebuilt(string config); [MethodImpl(MethodImplOptions.InternalCall)] private static extern string internal_FullTemplatesDir(); diff --git a/modules/mono/editor/csharp_project.cpp b/modules/mono/editor/csharp_project.cpp index 0e6c58c9d7..748447005f 100644 --- a/modules/mono/editor/csharp_project.cpp +++ b/modules/mono/editor/csharp_project.cpp @@ -75,7 +75,7 @@ bool generate_api_solution(const String &p_solution_dir, const String &p_core_pr p_editor_proj_dir, p_editor_compile_items, GDMono::get_singleton()->get_tools_project_editor_assembly()); } else { - MonoDomain *temp_domain = GDMonoUtils::create_domain("GodotEngine.ApiSolutionGenerationDomain"); + MonoDomain *temp_domain = GDMonoUtils::create_domain("GodotEngine.Domain.ApiSolutionGeneration"); CRASH_COND(temp_domain == NULL); _GDMONO_SCOPE_EXIT_DOMAIN_UNLOAD_(temp_domain); diff --git a/modules/mono/editor/editor_internal_calls.cpp b/modules/mono/editor/editor_internal_calls.cpp index 5a84d9e3b8..1564d73c2a 100644 --- a/modules/mono/editor/editor_internal_calls.cpp +++ b/modules/mono/editor/editor_internal_calls.cpp @@ -230,31 +230,9 @@ uint32_t godot_icall_GodotSharpExport_GetExportedAssemblyDependencies(MonoString return GodotSharpExport::get_exported_assembly_dependencies(project_dll_name, project_dll_src_path, build_config, custom_lib_dir, dependencies); } -float godot_icall_Globals_EditorScale() { - return EDSCALE; -} - -MonoObject *godot_icall_Globals_GlobalDef(MonoString *p_setting, MonoObject *p_default_value, MonoBoolean p_restart_if_changed) { - String setting = GDMonoMarshal::mono_string_to_godot(p_setting); - Variant default_value = GDMonoMarshal::mono_object_to_variant(p_default_value); - Variant result = _GLOBAL_DEF(setting, default_value, (bool)p_restart_if_changed); - return GDMonoMarshal::variant_to_mono_object(result); -} - -MonoObject *godot_icall_Globals_EditorDef(MonoString *p_setting, MonoObject *p_default_value, MonoBoolean p_restart_if_changed) { - String setting = GDMonoMarshal::mono_string_to_godot(p_setting); - Variant default_value = GDMonoMarshal::mono_object_to_variant(p_default_value); - Variant result = _EDITOR_DEF(setting, default_value, (bool)p_restart_if_changed); - return GDMonoMarshal::variant_to_mono_object(result); -} - -MonoString *godot_icall_Globals_TTR(MonoString *p_text) { - String text = GDMonoMarshal::mono_string_to_godot(p_text); - return GDMonoMarshal::mono_string_from_godot(TTR(text)); -} - -MonoString *godot_icall_Internal_UpdateApiAssembliesFromPrebuilt() { - String error_str = GDMono::get_singleton()->update_api_assemblies_from_prebuilt(); +MonoString *godot_icall_Internal_UpdateApiAssembliesFromPrebuilt(MonoString *p_config) { + String config = GDMonoMarshal::mono_string_to_godot(p_config); + String error_str = GDMono::get_singleton()->update_api_assemblies_from_prebuilt(config); return GDMonoMarshal::mono_string_from_godot(error_str); } @@ -365,6 +343,29 @@ void godot_icall_Internal_ScriptEditorDebugger_ReloadScripts() { } } +float godot_icall_Globals_EditorScale() { + return EDSCALE; +} + +MonoObject *godot_icall_Globals_GlobalDef(MonoString *p_setting, MonoObject *p_default_value, MonoBoolean p_restart_if_changed) { + String setting = GDMonoMarshal::mono_string_to_godot(p_setting); + Variant default_value = GDMonoMarshal::mono_object_to_variant(p_default_value); + Variant result = _GLOBAL_DEF(setting, default_value, (bool)p_restart_if_changed); + return GDMonoMarshal::variant_to_mono_object(result); +} + +MonoObject *godot_icall_Globals_EditorDef(MonoString *p_setting, MonoObject *p_default_value, MonoBoolean p_restart_if_changed) { + String setting = GDMonoMarshal::mono_string_to_godot(p_setting); + Variant default_value = GDMonoMarshal::mono_object_to_variant(p_default_value); + Variant result = _EDITOR_DEF(setting, default_value, (bool)p_restart_if_changed); + return GDMonoMarshal::variant_to_mono_object(result); +} + +MonoString *godot_icall_Globals_TTR(MonoString *p_text) { + String text = GDMonoMarshal::mono_string_to_godot(p_text); + return GDMonoMarshal::mono_string_from_godot(TTR(text)); +} + MonoString *godot_icall_Utils_OS_GetPlatformName() { String os_name = OS::get_singleton()->get_name(); return GDMonoMarshal::mono_string_from_godot(os_name); diff --git a/modules/mono/editor/godotsharp_export.cpp b/modules/mono/editor/godotsharp_export.cpp index 80a7335b1d..e83152d668 100644 --- a/modules/mono/editor/godotsharp_export.cpp +++ b/modules/mono/editor/godotsharp_export.cpp @@ -32,9 +32,13 @@ #include <mono/metadata/image.h> +#include "core/os/os.h" + #include "../mono_gd/gd_mono.h" #include "../mono_gd/gd_mono_assembly.h" +namespace GodotSharpExport { + String get_assemblyref_name(MonoImage *p_image, int index) { const MonoTableInfo *table_info = mono_image_get_table_info(p_image, MONO_TABLE_ASSEMBLYREF); @@ -45,7 +49,7 @@ String get_assemblyref_name(MonoImage *p_image, int index) { return String::utf8(mono_metadata_string_heap(p_image, cols[MONO_ASSEMBLYREF_NAME])); } -Error GodotSharpExport::get_assembly_dependencies(GDMonoAssembly *p_assembly, const Vector<String> &p_search_dirs, Dictionary &r_dependencies) { +Error get_assembly_dependencies(GDMonoAssembly *p_assembly, const Vector<String> &p_search_dirs, Dictionary &r_dependencies) { MonoImage *image = p_assembly->get_image(); for (int i = 0; i < mono_image_get_table_rows(image, MONO_TABLE_ASSEMBLYREF); i++) { @@ -96,8 +100,8 @@ Error GodotSharpExport::get_assembly_dependencies(GDMonoAssembly *p_assembly, co return OK; } -Error GodotSharpExport::get_exported_assembly_dependencies(const String &p_project_dll_name, const String &p_project_dll_src_path, const String &p_build_config, const String &p_custom_lib_dir, Dictionary &r_dependencies) { - MonoDomain *export_domain = GDMonoUtils::create_domain("GodotEngine.ProjectExportDomain"); +Error get_exported_assembly_dependencies(const String &p_project_dll_name, const String &p_project_dll_src_path, const String &p_build_config, const String &p_custom_bcl_dir, Dictionary &r_dependencies) { + MonoDomain *export_domain = GDMonoUtils::create_domain("GodotEngine.Domain.ProjectExport"); ERR_FAIL_NULL_V(export_domain, FAILED); _GDMONO_SCOPE_EXIT_DOMAIN_UNLOAD_(export_domain); @@ -110,7 +114,9 @@ Error GodotSharpExport::get_exported_assembly_dependencies(const String &p_proje ERR_FAIL_COND_V_MSG(!load_success, ERR_CANT_RESOLVE, "Cannot load assembly (refonly): '" + p_project_dll_name + "'."); Vector<String> search_dirs; - GDMonoAssembly::fill_search_dirs(search_dirs, p_build_config, p_custom_lib_dir); + GDMonoAssembly::fill_search_dirs(search_dirs, p_build_config, p_custom_bcl_dir); return get_assembly_dependencies(scripts_assembly, search_dirs, r_dependencies); } + +} // namespace GodotSharpExport diff --git a/modules/mono/editor/godotsharp_export.h b/modules/mono/editor/godotsharp_export.h index 8d121a6bc3..58e46e2f2d 100644 --- a/modules/mono/editor/godotsharp_export.h +++ b/modules/mono/editor/godotsharp_export.h @@ -39,10 +39,11 @@ namespace GodotSharpExport { +Error get_assembly_dependencies(GDMonoAssembly *p_assembly, const Vector<String> &p_search_dirs, Dictionary &r_dependencies); + Error get_exported_assembly_dependencies(const String &p_project_dll_name, const String &p_project_dll_src_path, const String &p_build_config, const String &p_custom_lib_dir, Dictionary &r_dependencies); -Error get_assembly_dependencies(GDMonoAssembly *p_assembly, const Vector<String> &p_search_dirs, Dictionary &r_dependencies); } // namespace GodotSharpExport diff --git a/modules/mono/glue/Managed/Files/Plane.cs b/modules/mono/glue/Managed/Files/Plane.cs index a13161d2e6..26e717e089 100644 --- a/modules/mono/glue/Managed/Files/Plane.cs +++ b/modules/mono/glue/Managed/Files/Plane.cs @@ -82,12 +82,12 @@ namespace Godot return Mathf.Abs(dist) <= epsilon; } - public Vector3 Intersect3(Plane b, Plane c) + public Vector3? Intersect3(Plane b, Plane c) { real_t denom = _normal.Cross(b._normal).Dot(c._normal); - if (Mathf.Abs(denom) <= Mathf.Epsilon) - return new Vector3(); + if (Mathf.IsZeroApprox(denom)) + return null; Vector3 result = b._normal.Cross(c._normal) * D + c._normal.Cross(_normal) * b.D + @@ -96,34 +96,35 @@ namespace Godot return result / denom; } - public Vector3 IntersectRay(Vector3 from, Vector3 dir) + public Vector3? IntersectRay(Vector3 from, Vector3 dir) { real_t den = _normal.Dot(dir); - if (Mathf.Abs(den) <= Mathf.Epsilon) - return new Vector3(); + if (Mathf.IsZeroApprox(den)) + return null; real_t dist = (_normal.Dot(from) - D) / den; // This is a ray, before the emitting pos (from) does not exist if (dist > Mathf.Epsilon) - return new Vector3(); + return null; return from + dir * -dist; } - public Vector3 IntersectSegment(Vector3 begin, Vector3 end) + public Vector3? IntersectSegment(Vector3 begin, Vector3 end) { Vector3 segment = begin - end; real_t den = _normal.Dot(segment); - if (Mathf.Abs(den) <= Mathf.Epsilon) - return new Vector3(); + if (Mathf.IsZeroApprox(den)) + return null; real_t dist = (_normal.Dot(begin) - D) / den; + // Only allow dist to be in the range of 0 to 1, with tolerance. if (dist < -Mathf.Epsilon || dist > 1.0f + Mathf.Epsilon) - return new Vector3(); + return null; return begin + segment * -dist; } diff --git a/modules/mono/godotsharp_dirs.cpp b/modules/mono/godotsharp_dirs.cpp index 4b2525c692..5fa8aed5a9 100644 --- a/modules/mono/godotsharp_dirs.cpp +++ b/modules/mono/godotsharp_dirs.cpp @@ -43,6 +43,8 @@ #include "utils/android_utils.h" #endif +#include "mono_gd/gd_mono.h" + namespace GodotSharpDirs { String _get_expected_build_config() { @@ -59,20 +61,6 @@ String _get_expected_build_config() { #endif } -String _get_expected_api_build_config() { -#ifdef TOOLS_ENABLED - return "Debug"; -#else - -#ifdef DEBUG_ENABLED - return "Debug"; -#else - return "Release"; -#endif - -#endif -} - String _get_mono_user_dir() { #ifdef TOOLS_ENABLED if (EditorSettings::get_singleton()) { @@ -134,7 +122,7 @@ private: res_data_dir = "res://.mono"; res_metadata_dir = res_data_dir.plus_file("metadata"); res_assemblies_base_dir = res_data_dir.plus_file("assemblies"); - res_assemblies_dir = res_assemblies_base_dir.plus_file(_get_expected_api_build_config()); + res_assemblies_dir = res_assemblies_base_dir.plus_file(GDMono::get_expected_api_build_config()); res_config_dir = res_data_dir.plus_file("etc").plus_file("mono"); // TODO use paths from csproj diff --git a/modules/mono/mono_gd/gd_mono.cpp b/modules/mono/mono_gd/gd_mono.cpp index 544bfc4615..504b8d41d0 100644 --- a/modules/mono/mono_gd/gd_mono.cpp +++ b/modules/mono/mono_gd/gd_mono.cpp @@ -381,10 +381,10 @@ void GDMono::initialize_load_assemblies() { } bool GDMono::_are_api_assemblies_out_of_sync() { - bool out_of_sync = core_api_assembly && (core_api_assembly_out_of_sync || !GDMonoUtils::mono_cache.godot_api_cache_updated); + bool out_of_sync = core_api_assembly.assembly && (core_api_assembly.out_of_sync || !GDMonoUtils::mono_cache.godot_api_cache_updated); #ifdef TOOLS_ENABLED if (!out_of_sync) - out_of_sync = editor_api_assembly && editor_api_assembly_out_of_sync; + out_of_sync = editor_api_assembly.assembly && editor_api_assembly.out_of_sync; #endif return out_of_sync; } @@ -523,10 +523,10 @@ bool GDMono::load_assembly_from(const String &p_name, const String &p_path, GDMo return true; } -APIAssembly::Version APIAssembly::Version::get_from_loaded_assembly(GDMonoAssembly *p_api_assembly, APIAssembly::Type p_api_type) { - APIAssembly::Version api_assembly_version; +ApiAssemblyInfo::Version ApiAssemblyInfo::Version::get_from_loaded_assembly(GDMonoAssembly *p_api_assembly, ApiAssemblyInfo::Type p_api_type) { + ApiAssemblyInfo::Version api_assembly_version; - const char *nativecalls_name = p_api_type == APIAssembly::API_CORE ? + const char *nativecalls_name = p_api_type == ApiAssemblyInfo::API_CORE ? BINDINGS_CLASS_NATIVECALLS : BINDINGS_CLASS_NATIVECALLS_EDITOR; @@ -549,8 +549,8 @@ APIAssembly::Version APIAssembly::Version::get_from_loaded_assembly(GDMonoAssemb return api_assembly_version; } -String APIAssembly::to_string(APIAssembly::Type p_type) { - return p_type == APIAssembly::API_CORE ? "API_CORE" : "API_EDITOR"; +String ApiAssemblyInfo::to_string(ApiAssemblyInfo::Type p_type) { + return p_type == ApiAssemblyInfo::API_CORE ? "API_CORE" : "API_EDITOR"; } bool GDMono::_load_corlib_assembly() { @@ -567,16 +567,12 @@ bool GDMono::_load_corlib_assembly() { } #ifdef TOOLS_ENABLED -bool GDMono::copy_prebuilt_api_assembly(APIAssembly::Type p_api_type, const String &p_config) { - - bool &api_assembly_out_of_sync = (p_api_type == APIAssembly::API_CORE) ? - GDMono::get_singleton()->core_api_assembly_out_of_sync : - GDMono::get_singleton()->editor_api_assembly_out_of_sync; +bool GDMono::copy_prebuilt_api_assembly(ApiAssemblyInfo::Type p_api_type, const String &p_config) { String src_dir = GodotSharpDirs::get_data_editor_prebuilt_api_dir().plus_file(p_config); String dst_dir = GodotSharpDirs::get_res_assemblies_base_dir().plus_file(p_config); - String assembly_name = p_api_type == APIAssembly::API_CORE ? CORE_API_ASSEMBLY_NAME : EDITOR_API_ASSEMBLY_NAME; + String assembly_name = p_api_type == ApiAssemblyInfo::API_CORE ? CORE_API_ASSEMBLY_NAME : EDITOR_API_ASSEMBLY_NAME; // Create destination directory if needed if (!DirAccess::exists(dst_dir)) { @@ -590,35 +586,102 @@ bool GDMono::copy_prebuilt_api_assembly(APIAssembly::Type p_api_type, const Stri } } + DirAccessRef da = DirAccess::create(DirAccess::ACCESS_FILESYSTEM); + + String xml_file = assembly_name + ".xml"; + if (da->copy(src_dir.plus_file(xml_file), dst_dir.plus_file(xml_file)) != OK) + WARN_PRINTS("Failed to copy '" + xml_file + "'."); + + String pdb_file = assembly_name + ".pdb"; + if (da->copy(src_dir.plus_file(pdb_file), dst_dir.plus_file(pdb_file)) != OK) + WARN_PRINTS("Failed to copy '" + pdb_file + "'."); + String assembly_file = assembly_name + ".dll"; - String assembly_src = src_dir.plus_file(assembly_file); - String assembly_dst = dst_dir.plus_file(assembly_file); + if (da->copy(src_dir.plus_file(assembly_file), dst_dir.plus_file(assembly_file)) != OK) { + ERR_PRINTS("Failed to copy '" + assembly_file + "'."); + return false; + } + + return true; +} - if (!FileAccess::exists(assembly_dst) || api_assembly_out_of_sync) { - DirAccessRef da = DirAccess::create(DirAccess::ACCESS_FILESYSTEM); +static bool try_get_cached_api_hash_for(const String &p_api_assemblies_dir, bool &r_out_of_sync) { + String core_api_assembly_path = p_api_assemblies_dir.plus_file(CORE_API_ASSEMBLY_NAME ".dll"); + String editor_api_assembly_path = p_api_assemblies_dir.plus_file(EDITOR_API_ASSEMBLY_NAME ".dll"); - String xml_file = assembly_name + ".xml"; - if (da->copy(src_dir.plus_file(xml_file), dst_dir.plus_file(xml_file)) != OK) - WARN_PRINTS("Failed to copy '" + xml_file + "'."); + if (!FileAccess::exists(core_api_assembly_path) || !FileAccess::exists(editor_api_assembly_path)) + return false; - String pdb_file = assembly_name + ".pdb"; - if (da->copy(src_dir.plus_file(pdb_file), dst_dir.plus_file(pdb_file)) != OK) - WARN_PRINTS("Failed to copy '" + pdb_file + "'."); + String cached_api_hash_path = p_api_assemblies_dir.plus_file("api_hash_cache.cfg"); - Error err = da->copy(assembly_src, assembly_dst); + if (!FileAccess::exists(cached_api_hash_path)) + return false; - if (err != OK) { - ERR_PRINTS("Failed to copy '" + assembly_file + "'."); - return false; - } + Ref<ConfigFile> cfg; + cfg.instance(); + Error cfg_err = cfg->load(cached_api_hash_path); + ERR_FAIL_COND_V(cfg_err != OK, false); - api_assembly_out_of_sync = false; + // Checking the modified time is good enough + if (FileAccess::get_modified_time(core_api_assembly_path) != (uint64_t)cfg->get_value("core", "modified_time") || + FileAccess::get_modified_time(editor_api_assembly_path) != (uint64_t)cfg->get_value("editor", "modified_time")) { + return false; } + r_out_of_sync = GodotSharpBindings::get_bindings_version() != (uint32_t)cfg->get_value("core", "bindings_version") || + GodotSharpBindings::get_cs_glue_version() != (uint32_t)cfg->get_value("core", "cs_glue_version") || + GodotSharpBindings::get_bindings_version() != (uint32_t)cfg->get_value("editor", "bindings_version") || + GodotSharpBindings::get_cs_glue_version() != (uint32_t)cfg->get_value("editor", "cs_glue_version") || + GodotSharpBindings::get_core_api_hash() != (uint64_t)cfg->get_value("core", "api_hash") || + GodotSharpBindings::get_editor_api_hash() != (uint64_t)cfg->get_value("editor", "api_hash"); + return true; } -String GDMono::update_api_assemblies_from_prebuilt() { +static void create_cached_api_hash_for(const String &p_api_assemblies_dir) { + + String core_api_assembly_path = p_api_assemblies_dir.plus_file(CORE_API_ASSEMBLY_NAME ".dll"); + String editor_api_assembly_path = p_api_assemblies_dir.plus_file(EDITOR_API_ASSEMBLY_NAME ".dll"); + String cached_api_hash_path = p_api_assemblies_dir.plus_file("api_hash_cache.cfg"); + + Ref<ConfigFile> cfg; + cfg.instance(); + + cfg->set_value("core", "modified_time", FileAccess::get_modified_time(core_api_assembly_path)); + cfg->set_value("editor", "modified_time", FileAccess::get_modified_time(editor_api_assembly_path)); + + cfg->set_value("core", "bindings_version", GodotSharpBindings::get_bindings_version()); + cfg->set_value("core", "cs_glue_version", GodotSharpBindings::get_cs_glue_version()); + cfg->set_value("editor", "bindings_version", GodotSharpBindings::get_bindings_version()); + cfg->set_value("editor", "cs_glue_version", GodotSharpBindings::get_cs_glue_version()); + + // This assumes the prebuilt api assemblies we copied to the project are not out of sync + cfg->set_value("core", "api_hash", GodotSharpBindings::get_core_api_hash()); + cfg->set_value("editor", "api_hash", GodotSharpBindings::get_editor_api_hash()); + + Error err = cfg->save(cached_api_hash_path); + ERR_FAIL_COND(err != OK); +} + +bool GDMono::_temp_domain_load_are_assemblies_out_of_sync(const String &p_config) { + MonoDomain *temp_domain = GDMonoUtils::create_domain("GodotEngine.Domain.CheckApiAssemblies"); + ERR_FAIL_NULL_V(temp_domain, "Failed to create temporary domain to check API assemblies"); + _GDMONO_SCOPE_EXIT_DOMAIN_UNLOAD_(temp_domain); + + _GDMONO_SCOPE_DOMAIN_(temp_domain); + + GDMono::LoadedApiAssembly temp_core_api_assembly; + GDMono::LoadedApiAssembly temp_editor_api_assembly; + + if (!_try_load_api_assemblies(temp_core_api_assembly, temp_editor_api_assembly, + p_config, /* refonly: */ true, /* loaded_callback: */ NULL)) { + return temp_core_api_assembly.out_of_sync || temp_editor_api_assembly.out_of_sync; + } + + return true; // Failed to load, assume they're outdated assemblies +} + +String GDMono::update_api_assemblies_from_prebuilt(const String &p_config, const bool *p_core_api_out_of_sync, const bool *p_editor_api_out_of_sync) { #define FAIL_REASON(m_out_of_sync, m_prebuilt_exists) \ ( \ @@ -629,46 +692,55 @@ String GDMono::update_api_assemblies_from_prebuilt() { String("and the prebuilt assemblies are missing.") : \ String("and we failed to copy the prebuilt assemblies."))) - bool api_assembly_out_of_sync = core_api_assembly_out_of_sync || editor_api_assembly_out_of_sync; + String dst_assemblies_dir = GodotSharpDirs::get_res_assemblies_base_dir().plus_file(p_config); - String core_assembly_path = GodotSharpDirs::get_res_assemblies_dir().plus_file(CORE_API_ASSEMBLY_NAME ".dll"); - String editor_assembly_path = GodotSharpDirs::get_res_assemblies_dir().plus_file(EDITOR_API_ASSEMBLY_NAME ".dll"); + String core_assembly_path = dst_assemblies_dir.plus_file(CORE_API_ASSEMBLY_NAME ".dll"); + String editor_assembly_path = dst_assemblies_dir.plus_file(EDITOR_API_ASSEMBLY_NAME ".dll"); - if (!api_assembly_out_of_sync && FileAccess::exists(core_assembly_path) && FileAccess::exists(editor_assembly_path)) - return String(); // No update needed + bool api_assemblies_out_of_sync = false; + + if (p_core_api_out_of_sync && p_editor_api_out_of_sync) { + api_assemblies_out_of_sync = p_core_api_out_of_sync || p_editor_api_out_of_sync; + } else if (FileAccess::exists(core_assembly_path) && FileAccess::exists(editor_assembly_path)) { + // Determine if they're out of sync + if (!try_get_cached_api_hash_for(dst_assemblies_dir, api_assemblies_out_of_sync)) { + api_assemblies_out_of_sync = _temp_domain_load_are_assemblies_out_of_sync(p_config); + } + } - const int CONFIGS_LEN = 2; - String configs[CONFIGS_LEN] = { String("Debug"), String("Release") }; + // Note: Even if only one of the assemblies if missing or out of sync, we update both - for (int i = 0; i < CONFIGS_LEN; i++) { - String config = configs[i]; + if (!api_assemblies_out_of_sync && FileAccess::exists(core_assembly_path) && FileAccess::exists(editor_assembly_path)) + return String(); // No update needed - print_verbose("Updating '" + config + "' API assemblies"); + print_verbose("Updating '" + p_config + "' API assemblies"); - String prebuilt_api_dir = GodotSharpDirs::get_data_editor_prebuilt_api_dir().plus_file(config); - String prebuilt_core_dll_path = prebuilt_api_dir.plus_file(CORE_API_ASSEMBLY_NAME ".dll"); - String prebuilt_editor_dll_path = prebuilt_api_dir.plus_file(EDITOR_API_ASSEMBLY_NAME ".dll"); + String prebuilt_api_dir = GodotSharpDirs::get_data_editor_prebuilt_api_dir().plus_file(p_config); + String prebuilt_core_dll_path = prebuilt_api_dir.plus_file(CORE_API_ASSEMBLY_NAME ".dll"); + String prebuilt_editor_dll_path = prebuilt_api_dir.plus_file(EDITOR_API_ASSEMBLY_NAME ".dll"); - if (!FileAccess::exists(prebuilt_core_dll_path) || !FileAccess::exists(prebuilt_editor_dll_path)) { - return FAIL_REASON(api_assembly_out_of_sync, /* prebuilt_exists: */ false); - } + if (!FileAccess::exists(prebuilt_core_dll_path) || !FileAccess::exists(prebuilt_editor_dll_path)) { + return FAIL_REASON(api_assemblies_out_of_sync, /* prebuilt_exists: */ false); + } - // Copy the prebuilt Api - if (!copy_prebuilt_api_assembly(APIAssembly::API_CORE, config) || - !copy_prebuilt_api_assembly(APIAssembly::API_EDITOR, config)) { - return FAIL_REASON(api_assembly_out_of_sync, /* prebuilt_exists: */ true); - } + // Copy the prebuilt Api + if (!copy_prebuilt_api_assembly(ApiAssemblyInfo::API_CORE, p_config) || + !copy_prebuilt_api_assembly(ApiAssemblyInfo::API_EDITOR, p_config)) { + return FAIL_REASON(api_assemblies_out_of_sync, /* prebuilt_exists: */ true); } + // Cache the api hash of the assemblies we just copied + create_cached_api_hash_for(dst_assemblies_dir); + return String(); // Updated successfully #undef FAIL_REASON } #endif -bool GDMono::_load_core_api_assembly() { +bool GDMono::_load_core_api_assembly(LoadedApiAssembly &r_loaded_api_assembly, const String &p_config, bool p_refonly) { - if (core_api_assembly) + if (r_loaded_api_assembly.assembly) return true; #ifdef TOOLS_ENABLED @@ -676,101 +748,115 @@ bool GDMono::_load_core_api_assembly() { // If running the project manager, load it from the prebuilt API directory String assembly_dir = !Main::is_project_manager() ? - GodotSharpDirs::get_res_assemblies_dir() : - GodotSharpDirs::get_data_editor_prebuilt_api_dir().plus_file("Debug"); + GodotSharpDirs::get_res_assemblies_base_dir().plus_file(p_config) : + GodotSharpDirs::get_data_editor_prebuilt_api_dir().plus_file(p_config); String assembly_path = assembly_dir.plus_file(CORE_API_ASSEMBLY_NAME ".dll"); bool success = FileAccess::exists(assembly_path) && - load_assembly_from(CORE_API_ASSEMBLY_NAME, assembly_path, &core_api_assembly); + load_assembly_from(CORE_API_ASSEMBLY_NAME, assembly_path, &r_loaded_api_assembly.assembly, p_refonly); #else - bool success = load_assembly(CORE_API_ASSEMBLY_NAME, &core_api_assembly); + bool success = load_assembly(CORE_API_ASSEMBLY_NAME, &r_loaded_api_assembly.assembly, p_refonly); #endif if (success) { - APIAssembly::Version api_assembly_ver = APIAssembly::Version::get_from_loaded_assembly(core_api_assembly, APIAssembly::API_CORE); - core_api_assembly_out_of_sync = GodotSharpBindings::get_core_api_hash() != api_assembly_ver.godot_api_hash || - GodotSharpBindings::get_bindings_version() != api_assembly_ver.bindings_version || - GodotSharpBindings::get_cs_glue_version() != api_assembly_ver.cs_glue_version; - if (!core_api_assembly_out_of_sync) { - GDMonoUtils::update_godot_api_cache(); - - _install_trace_listener(); - } + ApiAssemblyInfo::Version api_assembly_ver = ApiAssemblyInfo::Version::get_from_loaded_assembly(r_loaded_api_assembly.assembly, ApiAssemblyInfo::API_CORE); + r_loaded_api_assembly.out_of_sync = GodotSharpBindings::get_core_api_hash() != api_assembly_ver.godot_api_hash || + GodotSharpBindings::get_bindings_version() != api_assembly_ver.bindings_version || + GodotSharpBindings::get_cs_glue_version() != api_assembly_ver.cs_glue_version; } else { - core_api_assembly_out_of_sync = false; + r_loaded_api_assembly.out_of_sync = false; } return success; } #ifdef TOOLS_ENABLED -bool GDMono::_load_editor_api_assembly() { +bool GDMono::_load_editor_api_assembly(LoadedApiAssembly &r_loaded_api_assembly, const String &p_config, bool p_refonly) { - if (editor_api_assembly) + if (r_loaded_api_assembly.assembly) return true; // For the editor and the editor player we want to load it from a specific path to make sure we can keep it up to date // If running the project manager, load it from the prebuilt API directory String assembly_dir = !Main::is_project_manager() ? - GodotSharpDirs::get_res_assemblies_dir() : - GodotSharpDirs::get_data_editor_prebuilt_api_dir().plus_file("Debug"); + GodotSharpDirs::get_res_assemblies_base_dir().plus_file(p_config) : + GodotSharpDirs::get_data_editor_prebuilt_api_dir().plus_file(p_config); String assembly_path = assembly_dir.plus_file(EDITOR_API_ASSEMBLY_NAME ".dll"); bool success = FileAccess::exists(assembly_path) && - load_assembly_from(EDITOR_API_ASSEMBLY_NAME, assembly_path, &editor_api_assembly); + load_assembly_from(EDITOR_API_ASSEMBLY_NAME, assembly_path, &r_loaded_api_assembly.assembly, p_refonly); if (success) { - APIAssembly::Version api_assembly_ver = APIAssembly::Version::get_from_loaded_assembly(editor_api_assembly, APIAssembly::API_EDITOR); - editor_api_assembly_out_of_sync = GodotSharpBindings::get_editor_api_hash() != api_assembly_ver.godot_api_hash || - GodotSharpBindings::get_bindings_version() != api_assembly_ver.bindings_version || - GodotSharpBindings::get_cs_glue_version() != api_assembly_ver.cs_glue_version; + ApiAssemblyInfo::Version api_assembly_ver = ApiAssemblyInfo::Version::get_from_loaded_assembly(r_loaded_api_assembly.assembly, ApiAssemblyInfo::API_EDITOR); + r_loaded_api_assembly.out_of_sync = GodotSharpBindings::get_editor_api_hash() != api_assembly_ver.godot_api_hash || + GodotSharpBindings::get_bindings_version() != api_assembly_ver.bindings_version || + GodotSharpBindings::get_cs_glue_version() != api_assembly_ver.cs_glue_version; } else { - editor_api_assembly_out_of_sync = false; + r_loaded_api_assembly.out_of_sync = false; } return success; } #endif -bool GDMono::_try_load_api_assemblies() { - - if (!_load_core_api_assembly()) { +bool GDMono::_try_load_api_assemblies(LoadedApiAssembly &r_core_api_assembly, LoadedApiAssembly &r_editor_api_assembly, + const String &p_config, bool p_refonly, CoreApiAssemblyLoadedCallback p_callback) { + if (!_load_core_api_assembly(r_core_api_assembly, p_config, p_refonly)) { if (OS::get_singleton()->is_stdout_verbose()) print_error("Mono: Failed to load Core API assembly"); return false; } #ifdef TOOLS_ENABLED - if (!_load_editor_api_assembly()) { + if (!_load_editor_api_assembly(r_editor_api_assembly, p_config, p_refonly)) { if (OS::get_singleton()->is_stdout_verbose()) print_error("Mono: Failed to load Editor API assembly"); return false; } - if (editor_api_assembly_out_of_sync) + if (r_editor_api_assembly.out_of_sync) return false; #endif // Check if the core API assembly is out of sync only after trying to load the // editor API assembly. Otherwise, if both assemblies are out of sync, we would // only update the former as we won't know the latter also needs to be updated. - if (core_api_assembly_out_of_sync || !GDMonoUtils::mono_cache.godot_api_cache_updated) + if (r_core_api_assembly.out_of_sync) + return false; + + if (p_callback) + return p_callback(); + + return true; +} + +bool GDMono::_on_core_api_assembly_loaded() { + GDMonoUtils::update_godot_api_cache(); + + if (!GDMonoUtils::mono_cache.godot_api_cache_updated) return false; + get_singleton()->_install_trace_listener(); + return true; } +bool GDMono::_try_load_api_assemblies_preset() { + return _try_load_api_assemblies(core_api_assembly, editor_api_assembly, + get_expected_api_build_config(), /* refonly: */ false, _on_core_api_assembly_loaded); +} + void GDMono::_load_api_assemblies() { - bool api_assemblies_loaded = _try_load_api_assemblies(); + bool api_assemblies_loaded = _try_load_api_assemblies_preset(); if (!api_assemblies_loaded) { #ifdef TOOLS_ENABLED - // The API assemblies are out of sync. Fine, try one more time, but this time - // update them from the prebuilt assemblies directory before trying to load them. + // The API assemblies are out of sync or some other error happened. Fine, try one more time, but + // this time update them from the prebuilt assemblies directory before trying to load them again. // Shouldn't happen. The project manager loads the prebuilt API assemblies CRASH_COND_MSG(Main::is_project_manager(), "Failed to load one of the prebuilt API assemblies."); @@ -780,7 +866,7 @@ void GDMono::_load_api_assemblies() { CRASH_COND_MSG(domain_unload_err != OK, "Mono: Failed to unload scripts domain."); // 2. Update the API assemblies - String update_error = update_api_assemblies_from_prebuilt(); + String update_error = update_api_assemblies_from_prebuilt("Debug", &core_api_assembly.out_of_sync, &editor_api_assembly.out_of_sync); CRASH_COND_MSG(!update_error.empty(), update_error); // 3. Load the scripts domain again @@ -788,7 +874,7 @@ void GDMono::_load_api_assemblies() { CRASH_COND_MSG(domain_load_err != OK, "Mono: Failed to load scripts domain."); // 4. Try loading the updated assemblies - api_assemblies_loaded = _try_load_api_assemblies(); + api_assemblies_loaded = _try_load_api_assemblies_preset(); #endif } @@ -796,14 +882,14 @@ void GDMono::_load_api_assemblies() { // welp... too bad if (_are_api_assemblies_out_of_sync()) { - if (core_api_assembly_out_of_sync) { + if (core_api_assembly.out_of_sync) { ERR_PRINT("The assembly '" CORE_API_ASSEMBLY_NAME "' is out of sync."); } else if (!GDMonoUtils::mono_cache.godot_api_cache_updated) { ERR_PRINT("The loaded assembly '" CORE_API_ASSEMBLY_NAME "' is in sync, but the cache update failed."); } #ifdef TOOLS_ENABLED - if (editor_api_assembly_out_of_sync) { + if (editor_api_assembly.out_of_sync) { ERR_PRINT("The assembly '" EDITOR_API_ASSEMBLY_NAME "' is out of sync."); } #endif @@ -852,15 +938,14 @@ void GDMono::_install_trace_listener() { #ifdef DEBUG_ENABLED // Install the trace listener now before the project assembly is loaded - typedef void (*DebuggingUtils_InstallTraceListener)(MonoObject **); + GDMonoClass *debug_utils = get_core_api_assembly()->get_class(BINDINGS_NAMESPACE, "DebuggingUtils"); + GDMonoMethod *install_func = debug_utils->get_method("InstallTraceListener"); + MonoException *exc = NULL; - GDMonoClass *debug_utils = core_api_assembly->get_class(BINDINGS_NAMESPACE, "DebuggingUtils"); - DebuggingUtils_InstallTraceListener install_func = - (DebuggingUtils_InstallTraceListener)debug_utils->get_method_thunk("InstallTraceListener"); - install_func((MonoObject **)&exc); + install_func->invoke_raw(NULL, NULL, &exc); if (exc) { - ERR_PRINT("Failed to install 'System.Diagnostics.Trace' listener."); GDMonoUtils::debug_print_unhandled_exception(exc); + ERR_PRINT("Failed to install 'System.Diagnostics.Trace' listener."); } #endif } @@ -871,7 +956,7 @@ Error GDMono::_load_scripts_domain() { print_verbose("Mono: Loading scripts domain..."); - scripts_domain = GDMonoUtils::create_domain("GodotEngine.ScriptsDomain"); + scripts_domain = GDMonoUtils::create_domain("GodotEngine.Domain.Scripts"); ERR_FAIL_NULL_V_MSG(scripts_domain, ERR_CANT_CREATE, "Mono: Could not create scripts app domain."); @@ -903,10 +988,13 @@ Error GDMono::_unload_scripts_domain() { _domain_assemblies_cleanup(mono_domain_get_id(scripts_domain)); - core_api_assembly = NULL; + core_api_assembly.assembly = NULL; +#ifdef TOOLS_ENABLED + editor_api_assembly.assembly = NULL; +#endif + project_assembly = NULL; #ifdef TOOLS_ENABLED - editor_api_assembly = NULL; tools_assembly = NULL; tools_project_editor_assembly = NULL; #endif @@ -1076,16 +1164,9 @@ GDMono::GDMono() { root_domain = NULL; scripts_domain = NULL; - core_api_assembly_out_of_sync = false; -#ifdef TOOLS_ENABLED - editor_api_assembly_out_of_sync = false; -#endif - corlib_assembly = NULL; - core_api_assembly = NULL; project_assembly = NULL; #ifdef TOOLS_ENABLED - editor_api_assembly = NULL; tools_assembly = NULL; tools_project_editor_assembly = NULL; #endif diff --git a/modules/mono/mono_gd/gd_mono.h b/modules/mono/mono_gd/gd_mono.h index 343d68bc2d..e14a0d8409 100644 --- a/modules/mono/mono_gd/gd_mono.h +++ b/modules/mono/mono_gd/gd_mono.h @@ -41,7 +41,7 @@ #include "../utils/mono_reg_utils.h" #endif -namespace APIAssembly { +namespace ApiAssemblyInfo { enum Type { API_CORE, API_EDITOR @@ -76,7 +76,7 @@ struct Version { }; String to_string(Type p_type); -} // namespace APIAssembly +} // namespace ApiAssemblyInfo class GDMono { @@ -86,44 +86,58 @@ public: POLICY_LOG_ERROR }; + struct LoadedApiAssembly { + GDMonoAssembly *assembly; + bool out_of_sync; + + LoadedApiAssembly() : + assembly(NULL), + out_of_sync(false) { + } + }; + private: bool runtime_initialized; bool finalizing_scripts_domain; + UnhandledExceptionPolicy unhandled_exception_policy; + MonoDomain *root_domain; MonoDomain *scripts_domain; - bool core_api_assembly_out_of_sync; -#ifdef TOOLS_ENABLED - bool editor_api_assembly_out_of_sync; -#endif + HashMap<uint32_t, HashMap<String, GDMonoAssembly *> > assemblies; GDMonoAssembly *corlib_assembly; - GDMonoAssembly *core_api_assembly; GDMonoAssembly *project_assembly; #ifdef TOOLS_ENABLED - GDMonoAssembly *editor_api_assembly; GDMonoAssembly *tools_assembly; GDMonoAssembly *tools_project_editor_assembly; #endif - HashMap<uint32_t, HashMap<String, GDMonoAssembly *> > assemblies; - - UnhandledExceptionPolicy unhandled_exception_policy; + LoadedApiAssembly core_api_assembly; + LoadedApiAssembly editor_api_assembly; - void _domain_assemblies_cleanup(uint32_t p_domain_id); + typedef bool (*CoreApiAssemblyLoadedCallback)(); bool _are_api_assemblies_out_of_sync(); + bool _temp_domain_load_are_assemblies_out_of_sync(const String &p_config); + + bool _load_core_api_assembly(LoadedApiAssembly &r_loaded_api_assembly, const String &p_config, bool p_refonly); +#ifdef TOOLS_ENABLED + bool _load_editor_api_assembly(LoadedApiAssembly &r_loaded_api_assembly, const String &p_config, bool p_refonly); +#endif + + static bool _on_core_api_assembly_loaded(); bool _load_corlib_assembly(); - bool _load_core_api_assembly(); #ifdef TOOLS_ENABLED - bool _load_editor_api_assembly(); bool _load_tools_assemblies(); #endif bool _load_project_assembly(); - bool _try_load_api_assemblies(); + bool _try_load_api_assemblies(LoadedApiAssembly &r_core_api_assembly, LoadedApiAssembly &r_editor_api_assembly, + const String &p_config, bool p_refonly, CoreApiAssemblyLoadedCallback p_callback); + bool _try_load_api_assemblies_preset(); void _load_api_assemblies(); void _install_trace_listener(); @@ -133,6 +147,8 @@ private: Error _load_scripts_domain(); Error _unload_scripts_domain(); + void _domain_assemblies_cleanup(uint32_t p_domain_id); + uint64_t api_core_hash; #ifdef TOOLS_ENABLED uint64_t api_editor_hash; @@ -166,9 +182,21 @@ public: #endif // TOOLS_ENABLED #endif // DEBUG_METHODS_ENABLED + _FORCE_INLINE_ static String get_expected_api_build_config() { +#ifdef TOOLS_ENABLED + return "Debug"; +#else +#ifdef DEBUG_ENABLED + return "Debug"; +#else + return "Release"; +#endif +#endif + } + #ifdef TOOLS_ENABLED - bool copy_prebuilt_api_assembly(APIAssembly::Type p_api_type, const String &p_config); - String update_api_assemblies_from_prebuilt(); + bool copy_prebuilt_api_assembly(ApiAssemblyInfo::Type p_api_type, const String &p_config); + String update_api_assemblies_from_prebuilt(const String &p_config, const bool *p_core_api_out_of_sync = NULL, const bool *p_editor_api_out_of_sync = NULL); #endif static GDMono *get_singleton() { return singleton; } @@ -188,10 +216,10 @@ public: _FORCE_INLINE_ MonoDomain *get_scripts_domain() { return scripts_domain; } _FORCE_INLINE_ GDMonoAssembly *get_corlib_assembly() const { return corlib_assembly; } - _FORCE_INLINE_ GDMonoAssembly *get_core_api_assembly() const { return core_api_assembly; } + _FORCE_INLINE_ GDMonoAssembly *get_core_api_assembly() const { return core_api_assembly.assembly; } _FORCE_INLINE_ GDMonoAssembly *get_project_assembly() const { return project_assembly; } #ifdef TOOLS_ENABLED - _FORCE_INLINE_ GDMonoAssembly *get_editor_api_assembly() const { return editor_api_assembly; } + _FORCE_INLINE_ GDMonoAssembly *get_editor_api_assembly() const { return editor_api_assembly.assembly; } _FORCE_INLINE_ GDMonoAssembly *get_tools_assembly() const { return tools_assembly; } _FORCE_INLINE_ GDMonoAssembly *get_tools_project_editor_assembly() const { return tools_project_editor_assembly; } #endif diff --git a/modules/mono/mono_gd/gd_mono_utils.cpp b/modules/mono/mono_gd/gd_mono_utils.cpp index e385f4c601..6504fbe423 100644 --- a/modules/mono/mono_gd/gd_mono_utils.cpp +++ b/modules/mono/mono_gd/gd_mono_utils.cpp @@ -550,6 +550,8 @@ MonoObject *create_managed_from(const Dictionary &p_from, GDMonoClass *p_class) } MonoDomain *create_domain(const String &p_friendly_name) { + print_verbose("Mono: Creating domain '" + p_friendly_name + "'..."); + MonoDomain *domain = mono_domain_create_appdomain((char *)p_friendly_name.utf8().get_data(), NULL); if (domain) { diff --git a/modules/recast/navigation_mesh_generator.cpp b/modules/recast/navigation_mesh_generator.cpp index c5b60f2dca..320591cf7c 100644 --- a/modules/recast/navigation_mesh_generator.cpp +++ b/modules/recast/navigation_mesh_generator.cpp @@ -131,7 +131,7 @@ void EditorNavigationMeshGenerator::_add_faces(const PoolVector3Array &p_faces, } } -void EditorNavigationMeshGenerator::_parse_geometry(Transform p_accumulated_transform, Node *p_node, Vector<float> &p_verticies, Vector<int> &p_indices, int p_generate_from, uint32_t p_collision_mask) { +void EditorNavigationMeshGenerator::_parse_geometry(Transform p_accumulated_transform, Node *p_node, Vector<float> &p_verticies, Vector<int> &p_indices, int p_generate_from, uint32_t p_collision_mask, bool p_recurse_children) { if (Object::cast_to<MeshInstance>(p_node) && p_generate_from != NavigationMesh::PARSED_GEOMETRY_STATIC_COLLIDERS) { @@ -263,8 +263,10 @@ void EditorNavigationMeshGenerator::_parse_geometry(Transform p_accumulated_tran p_accumulated_transform = p_accumulated_transform * spatial->get_transform(); } - for (int i = 0; i < p_node->get_child_count(); i++) { - _parse_geometry(p_accumulated_transform, p_node->get_child(i), p_verticies, p_indices, p_generate_from, p_collision_mask); + if (p_recurse_children) { + for (int i = 0; i < p_node->get_child_count(); i++) { + _parse_geometry(p_accumulated_transform, p_node->get_child(i), p_verticies, p_indices, p_generate_from, p_collision_mask, p_recurse_children); + } } } @@ -439,7 +441,21 @@ void EditorNavigationMeshGenerator::bake(Ref<NavigationMesh> p_nav_mesh, Node *p Vector<float> vertices; Vector<int> indices; - _parse_geometry(Object::cast_to<Spatial>(p_node)->get_transform().affine_inverse(), p_node, vertices, indices, p_nav_mesh->get_parsed_geometry_type(), p_nav_mesh->get_collision_mask()); + List<Node *> parse_nodes; + + if (p_nav_mesh->get_source_geometry_mode() == NavigationMesh::SOURCE_GEOMETRY_NAVMESH_CHILDREN) { + parse_nodes.push_back(p_node); + } else { + p_node->get_tree()->get_nodes_in_group(p_nav_mesh->get_source_group_name(), &parse_nodes); + } + + Transform navmesh_xform = Object::cast_to<Spatial>(p_node)->get_transform().affine_inverse(); + for (const List<Node *>::Element *E = parse_nodes.front(); E; E = E->next()) { + int geometry_type = p_nav_mesh->get_parsed_geometry_type(); + uint32_t collision_mask = p_nav_mesh->get_collision_mask(); + bool recurse_children = p_nav_mesh->get_source_geometry_mode() != NavigationMesh::SOURCE_GEOMETRY_GROUPS_EXPLICIT; + _parse_geometry(navmesh_xform, E->get(), vertices, indices, geometry_type, collision_mask, recurse_children); + } if (vertices.size() > 0 && indices.size() > 0) { diff --git a/modules/recast/navigation_mesh_generator.h b/modules/recast/navigation_mesh_generator.h index 30a6e3c835..f19622a4a9 100644 --- a/modules/recast/navigation_mesh_generator.h +++ b/modules/recast/navigation_mesh_generator.h @@ -47,7 +47,7 @@ protected: static void _add_vertex(const Vector3 &p_vec3, Vector<float> &p_verticies); static void _add_mesh(const Ref<Mesh> &p_mesh, const Transform &p_xform, Vector<float> &p_verticies, Vector<int> &p_indices); static void _add_faces(const PoolVector3Array &p_faces, const Transform &p_xform, Vector<float> &p_verticies, Vector<int> &p_indices); - static void _parse_geometry(Transform p_accumulated_transform, Node *p_node, Vector<float> &p_verticies, Vector<int> &p_indices, int p_generate_from, uint32_t p_collision_mask); + static void _parse_geometry(Transform p_accumulated_transform, Node *p_node, Vector<float> &p_verticies, Vector<int> &p_indices, int p_generate_from, uint32_t p_collision_mask, bool p_recurse_children); static void _convert_detail_mesh_to_native_navigation_mesh(const rcPolyMeshDetail *p_detail_mesh, Ref<NavigationMesh> p_nav_mesh); static void _build_recast_navigation_mesh(Ref<NavigationMesh> p_nav_mesh, EditorProgress *ep, diff --git a/modules/theora/video_stream_theora.cpp b/modules/theora/video_stream_theora.cpp index 28a8b77283..ed1a7f682b 100644 --- a/modules/theora/video_stream_theora.cpp +++ b/modules/theora/video_stream_theora.cpp @@ -368,7 +368,7 @@ float VideoStreamPlaybackTheora::get_time() const { return time - AudioServer::get_singleton()->get_output_latency() - delay_compensation; //-((get_total())/(float)vi.rate); }; -Ref<Texture> VideoStreamPlaybackTheora::get_texture() { +Ref<Texture> VideoStreamPlaybackTheora::get_texture() const { return texture; } diff --git a/modules/theora/video_stream_theora.h b/modules/theora/video_stream_theora.h index 0c37d33358..b241722cd1 100644 --- a/modules/theora/video_stream_theora.h +++ b/modules/theora/video_stream_theora.h @@ -147,7 +147,7 @@ public: void set_file(const String &p_file); - virtual Ref<Texture> get_texture(); + virtual Ref<Texture> get_texture() const; virtual void update(float p_delta); virtual void set_mix_callback(AudioMixCallback p_callback, void *p_userdata); diff --git a/modules/visual_script/visual_script_editor.cpp b/modules/visual_script/visual_script_editor.cpp index 093901ad07..ca0d77f047 100644 --- a/modules/visual_script/visual_script_editor.cpp +++ b/modules/visual_script/visual_script_editor.cpp @@ -1916,8 +1916,6 @@ bool VisualScriptEditor::can_drop_data_fw(const Point2 &p_point, const Variant & return false; } -#ifdef TOOLS_ENABLED - static Node *_find_script_node(Node *p_edited_scene, Node *p_current_node, const Ref<Script> &script) { if (p_edited_scene != p_current_node && p_current_node->get_owner() != p_edited_scene) @@ -1937,8 +1935,6 @@ static Node *_find_script_node(Node *p_edited_scene, Node *p_current_node, const return NULL; } -#endif - void VisualScriptEditor::drop_data_fw(const Point2 &p_point, const Variant &p_data, Control *p_from) { if (p_from != graph) { @@ -2167,7 +2163,7 @@ void VisualScriptEditor::drop_data_fw(const Point2 &p_point, const Variant &p_da Node *sn = _find_script_node(get_tree()->get_edited_scene_root(), get_tree()->get_edited_scene_root(), script); if (!sn) { - EditorNode::get_singleton()->show_warning(TTR("Can't drop nodes because script '" + get_name() + "' is not used in this scene.")); + EditorNode::get_singleton()->show_warning(vformat(TTR("Can't drop nodes because script '%s' is not used in this scene."), get_name())); return; } @@ -2237,7 +2233,7 @@ void VisualScriptEditor::drop_data_fw(const Point2 &p_point, const Variant &p_da Node *sn = _find_script_node(get_tree()->get_edited_scene_root(), get_tree()->get_edited_scene_root(), script); if (!sn && !Input::get_singleton()->is_key_pressed(KEY_SHIFT)) { - EditorNode::get_singleton()->show_warning(TTR("Can't drop properties because script '" + get_name() + "' is not used in this scene.\nDrop holding 'Shift' to just copy the signature.")); + EditorNode::get_singleton()->show_warning(vformat(TTR("Can't drop properties because script '%s' is not used in this scene.\nDrop holding 'Shift' to just copy the signature."), get_name())); return; } @@ -2456,12 +2452,8 @@ Ref<Texture> VisualScriptEditor::get_icon() { } bool VisualScriptEditor::is_unsaved() { -#ifdef TOOLS_ENABLED return script->is_edited() || script->are_subnodes_edited(); -#else - return false; -#endif } Variant VisualScriptEditor::get_edit_state() { diff --git a/modules/visual_script/visual_script_editor.h b/modules/visual_script/visual_script_editor.h index 5a00469eea..fbf021e7b6 100644 --- a/modules/visual_script/visual_script_editor.h +++ b/modules/visual_script/visual_script_editor.h @@ -228,7 +228,7 @@ class VisualScriptEditor : public ScriptEditorBase { void _update_node_size(int p_id); void _port_name_focus_out(const Node *p_name_box, int p_id, int p_port, bool is_input); - Vector2 _get_available_pos(bool centered = true, Vector2 pos = Vector2()) const; + Vector2 _get_available_pos(bool centered = true, Vector2 ofs = Vector2()) const; StringName _get_function_of_node(int p_id) const; void _move_nodes_with_rescan(const StringName &p_func_from, const StringName &p_func_to, int p_id); diff --git a/modules/visual_script/visual_script_func_nodes.cpp b/modules/visual_script/visual_script_func_nodes.cpp index 7f36549ae4..4e90a08009 100644 --- a/modules/visual_script/visual_script_func_nodes.cpp +++ b/modules/visual_script/visual_script_func_nodes.cpp @@ -1039,7 +1039,7 @@ PropertyInfo VisualScriptPropertySet::get_input_value_port_info(int p_idx) const } List<PropertyInfo> props; - ClassDB::get_property_list(_get_base_type(), &props, true); + ClassDB::get_property_list(_get_base_type(), &props, false); for (List<PropertyInfo>::Element *E = props.front(); E; E = E->next()) { if (E->get().name == property) { PropertyInfo pinfo = PropertyInfo(E->get().type, "value", PROPERTY_HINT_TYPE_STRING, E->get().hint_string); @@ -1808,7 +1808,7 @@ PropertyInfo VisualScriptPropertyGet::get_input_value_port_info(int p_idx) const PropertyInfo VisualScriptPropertyGet::get_output_value_port_info(int p_idx) const { List<PropertyInfo> props; - ClassDB::get_property_list(_get_base_type(), &props, true); + ClassDB::get_property_list(_get_base_type(), &props, false); for (List<PropertyInfo>::Element *E = props.front(); E; E = E->next()) { if (E->get().name == property) { return PropertyInfo(E->get().type, "value." + String(index)); diff --git a/modules/visual_script/visual_script_property_selector.cpp b/modules/visual_script/visual_script_property_selector.cpp index 42d4c5e209..62b818150c 100644 --- a/modules/visual_script/visual_script_property_selector.cpp +++ b/modules/visual_script/visual_script_property_selector.cpp @@ -32,7 +32,7 @@ #include "core/os/keyboard.h" #include "editor/editor_node.h" -#include "editor_scale.h" +#include "editor/editor_scale.h" #include "modules/visual_script/visual_script.h" #include "modules/visual_script/visual_script_builtin_funcs.h" #include "modules/visual_script/visual_script_flow_control.h" diff --git a/modules/visual_script/visual_script_property_selector.h b/modules/visual_script/visual_script_property_selector.h index 13ce9bdca2..3a7c8de6a2 100644 --- a/modules/visual_script/visual_script_property_selector.h +++ b/modules/visual_script/visual_script_property_selector.h @@ -31,8 +31,8 @@ #ifndef VISUALSCRIPT_PROPERTYSELECTOR_H #define VISUALSCRIPT_PROPERTYSELECTOR_H +#include "editor/editor_help.h" #include "editor/property_editor.h" -#include "editor_help.h" #include "scene/gui/rich_text_label.h" class VisualScriptPropertySelector : public ConfirmationDialog { @@ -45,7 +45,7 @@ class VisualScriptPropertySelector : public ConfirmationDialog { void create_visualscript_item(const String &name, TreeItem *const root, const String &search_input, const String &text); - void get_visual_node_names(const String &root_filter, const Set<String> &filter, bool &found, TreeItem *const root, LineEdit *const search_box); + void get_visual_node_names(const String &root_filter, const Set<String> &p_modifiers, bool &found, TreeItem *const root, LineEdit *const search_box); void _sbox_input(const Ref<InputEvent> &p_ie); diff --git a/modules/webm/video_stream_webm.cpp b/modules/webm/video_stream_webm.cpp index fa3602ad27..4ce0db3746 100644 --- a/modules/webm/video_stream_webm.cpp +++ b/modules/webm/video_stream_webm.cpp @@ -230,7 +230,7 @@ void VideoStreamPlaybackWebm::set_audio_track(int p_idx) { audio_track = p_idx; } -Ref<Texture> VideoStreamPlaybackWebm::get_texture() { +Ref<Texture> VideoStreamPlaybackWebm::get_texture() const { return texture; } diff --git a/modules/webm/video_stream_webm.h b/modules/webm/video_stream_webm.h index ddcbb1eb08..4f79d46cce 100644 --- a/modules/webm/video_stream_webm.h +++ b/modules/webm/video_stream_webm.h @@ -90,7 +90,7 @@ public: virtual void set_audio_track(int p_idx); - virtual Ref<Texture> get_texture(); + virtual Ref<Texture> get_texture() const; virtual void update(float p_delta); virtual void set_mix_callback(AudioMixCallback p_callback, void *p_userdata); diff --git a/modules/websocket/doc_classes/WebSocketClient.xml b/modules/websocket/doc_classes/WebSocketClient.xml index c3baf9de83..705e3485f5 100644 --- a/modules/websocket/doc_classes/WebSocketClient.xml +++ b/modules/websocket/doc_classes/WebSocketClient.xml @@ -21,10 +21,13 @@ </argument> <argument index="2" name="gd_mp_api" type="bool" default="false"> </argument> + <argument index="3" name="custom_headers" type="PoolStringArray" default="PoolStringArray( )"> + </argument> <description> Connects to the given URL requesting one of the given [code]protocols[/code] as sub-protocol. If the list empty (default), no sub-protocol will be requested. If [code]true[/code] is passed as [code]gd_mp_api[/code], the client will behave like a network peer for the [MultiplayerAPI], connections to non-Godot servers will not work, and [signal data_received] will not be emitted. If [code]false[/code] is passed instead (default), you must call [PacketPeer] functions ([code]put_packet[/code], [code]get_packet[/code], etc.) on the [WebSocketPeer] returned via [code]get_peer(1)[/code] and not on this object directly (e.g. [code]get_peer(1).put_packet(data)[/code]). + You can optionally pass a list of [code]custom_headers[/code] to be added to the handshake HTTP request (not supported in HTML5 platform). </description> </method> <method name="disconnect_from_host"> @@ -38,8 +41,25 @@ Disconnects this client from the connected host. See [method WebSocketPeer.close] for more information. </description> </method> + <method name="get_connected_host" qualifiers="const"> + <return type="String"> + </return> + <description> + Return the IP address of the currently connected host. + </description> + </method> + <method name="get_connected_port" qualifiers="const"> + <return type="int"> + </return> + <description> + Return the IP port of the currently connected host. + </description> + </method> </methods> <members> + <member name="trusted_ssl_certificate" type="X509Certificate" setter="set_trusted_ssl_certificate" getter="get_trusted_ssl_certificate"> + If specified, this [X509Certificate] will be the only one accepted when connecting to an SSL host. Any other certificate provided by the server will be regarded as invalid. + </member> <member name="verify_ssl" type="bool" setter="set_verify_ssl_enabled" getter="is_verify_ssl_enabled"> If [code]true[/code], SSL certificate verification is enabled. [b]Note:[/b] You must specify the certificates to be used in the Project Settings for it to work when exported. diff --git a/modules/websocket/doc_classes/WebSocketServer.xml b/modules/websocket/doc_classes/WebSocketServer.xml index 63318e5874..86f2dae64f 100644 --- a/modules/websocket/doc_classes/WebSocketServer.xml +++ b/modules/websocket/doc_classes/WebSocketServer.xml @@ -82,6 +82,17 @@ </description> </method> </methods> + <members> + <member name="ca_chain" type="X509Certificate" setter="set_ca_chain" getter="get_ca_chain"> + When using SSL (see [member private_key] and [member ssl_certificate]), you can set this to a valid [X509Certificate] to be provided as additional CA chain information during the SSL handshake. + </member> + <member name="private_key" type="CryptoKey" setter="set_private_key" getter="get_private_key"> + When set to a valid [CryptoKey] (along with [member ssl_certificate]) will cause the server to require SSL instead of regular TCP (i.e. the [code]wss://[/code] protocol). + </member> + <member name="ssl_certificate" type="X509Certificate" setter="set_ssl_certificate" getter="get_ssl_certificate"> + When set to a valid [X509Certificate] (along with [member private_key]) will cause the server to require SSL instead of regular TCP (i.e. the [code]wss://[/code] protocol). + </member> + </members> <signals> <signal name="client_close_request"> <argument index="0" name="id" type="int"> diff --git a/modules/websocket/emws_client.cpp b/modules/websocket/emws_client.cpp index 409cc9f699..983db60d5e 100644 --- a/modules/websocket/emws_client.cpp +++ b/modules/websocket/emws_client.cpp @@ -64,13 +64,26 @@ EMSCRIPTEN_KEEPALIVE void _esws_on_close(void *obj, int code, char *reason, int } } -Error EMWSClient::connect_to_host(String p_host, String p_path, uint16_t p_port, bool p_ssl, PoolVector<String> p_protocols) { +Error EMWSClient::connect_to_host(String p_host, String p_path, uint16_t p_port, bool p_ssl, const Vector<String> p_protocols, const Vector<String> p_custom_headers) { + + String proto_string; + for (int i = 0; i < p_protocols.size(); i++) { + if (i != 0) + proto_string += ","; + proto_string += p_protocols[i]; + } - String proto_string = p_protocols.join(","); String str = "ws://"; - if (p_ssl) + if (p_custom_headers.size()) { + WARN_PRINT_ONCE("Custom headers are not supported in in HTML5 platform."); + } + if (p_ssl) { str = "wss://"; + if (ssl_cert.is_valid()) { + WARN_PRINT_ONCE("Custom SSL certificate is not supported in HTML5 platform."); + } + } str += p_host + ":" + itos(p_port) + p_path; _is_connecting = true; @@ -193,12 +206,12 @@ void EMWSClient::disconnect_from_host(int p_code, String p_reason) { IP_Address EMWSClient::get_connected_host() const { - return IP_Address(); + ERR_FAIL_V_MSG(IP_Address(), "Not supported in HTML5 export."); }; uint16_t EMWSClient::get_connected_port() const { - return 1025; + ERR_FAIL_V_MSG(0, "Not supported in HTML5 export."); }; int EMWSClient::get_max_packet_size() const { diff --git a/modules/websocket/emws_client.h b/modules/websocket/emws_client.h index 1811d05eea..67705891b2 100644 --- a/modules/websocket/emws_client.h +++ b/modules/websocket/emws_client.h @@ -50,7 +50,7 @@ public: bool _is_connecting; Error set_buffers(int p_in_buffer, int p_in_packets, int p_out_buffer, int p_out_packets); - Error connect_to_host(String p_host, String p_path, uint16_t p_port, bool p_ssl, PoolVector<String> p_protocol = PoolVector<String>()); + Error connect_to_host(String p_host, String p_path, uint16_t p_port, bool p_ssl, const Vector<String> p_protocol = Vector<String>(), const Vector<String> p_custom_headers = Vector<String>()); Ref<WebSocketPeer> get_peer(int p_peer_id) const; void disconnect_from_host(int p_code = 1000, String p_reason = ""); IP_Address get_connected_host() const; diff --git a/modules/websocket/emws_server.cpp b/modules/websocket/emws_server.cpp index c4bb459ad0..9a6a30d613 100644 --- a/modules/websocket/emws_server.cpp +++ b/modules/websocket/emws_server.cpp @@ -33,7 +33,7 @@ #include "emws_server.h" #include "core/os/os.h" -Error EMWSServer::listen(int p_port, PoolVector<String> p_protocols, bool gd_mp_api) { +Error EMWSServer::listen(int p_port, Vector<String> p_protocols, bool gd_mp_api) { return FAILED; } diff --git a/modules/websocket/emws_server.h b/modules/websocket/emws_server.h index a5e5b4090e..e8da8c26b4 100644 --- a/modules/websocket/emws_server.h +++ b/modules/websocket/emws_server.h @@ -43,7 +43,7 @@ class EMWSServer : public WebSocketServer { public: Error set_buffers(int p_in_buffer, int p_in_packets, int p_out_buffer, int p_out_packets); - Error listen(int p_port, PoolVector<String> p_protocols = PoolVector<String>(), bool gd_mp_api = false); + Error listen(int p_port, Vector<String> p_protocols = Vector<String>(), bool gd_mp_api = false); void stop(); bool is_listening() const; bool has_peer(int p_id) const; diff --git a/modules/websocket/websocket_client.cpp b/modules/websocket/websocket_client.cpp index 4ff5404c61..8bbd5aa37f 100644 --- a/modules/websocket/websocket_client.cpp +++ b/modules/websocket/websocket_client.cpp @@ -40,7 +40,7 @@ WebSocketClient::WebSocketClient() { WebSocketClient::~WebSocketClient() { } -Error WebSocketClient::connect_to_url(String p_url, PoolVector<String> p_protocols, bool gd_mp_api) { +Error WebSocketClient::connect_to_url(String p_url, const Vector<String> p_protocols, bool gd_mp_api, const Vector<String> p_custom_headers) { _is_multiplayer = gd_mp_api; String host = p_url; @@ -72,7 +72,7 @@ Error WebSocketClient::connect_to_url(String p_url, PoolVector<String> p_protoco host = host.substr(0, p_len); } - return connect_to_host(host, path, port, ssl, p_protocols); + return connect_to_host(host, path, port, ssl, p_protocols, p_custom_headers); } void WebSocketClient::set_verify_ssl_enabled(bool p_verify_ssl) { @@ -85,6 +85,17 @@ bool WebSocketClient::is_verify_ssl_enabled() const { return verify_ssl; } +Ref<X509Certificate> WebSocketClient::get_trusted_ssl_certificate() const { + + return ssl_cert; +} + +void WebSocketClient::set_trusted_ssl_certificate(Ref<X509Certificate> p_cert) { + + ERR_FAIL_COND(get_connection_status() != CONNECTION_DISCONNECTED); + ssl_cert = p_cert; +} + bool WebSocketClient::is_server() const { return false; @@ -132,13 +143,20 @@ void WebSocketClient::_on_error() { } void WebSocketClient::_bind_methods() { - ClassDB::bind_method(D_METHOD("connect_to_url", "url", "protocols", "gd_mp_api"), &WebSocketClient::connect_to_url, DEFVAL(PoolVector<String>()), DEFVAL(false)); + ClassDB::bind_method(D_METHOD("connect_to_url", "url", "protocols", "gd_mp_api", "custom_headers"), &WebSocketClient::connect_to_url, DEFVAL(Vector<String>()), DEFVAL(false), DEFVAL(Vector<String>())); ClassDB::bind_method(D_METHOD("disconnect_from_host", "code", "reason"), &WebSocketClient::disconnect_from_host, DEFVAL(1000), DEFVAL("")); + ClassDB::bind_method(D_METHOD("get_connected_host"), &WebSocketClient::get_connected_host); + ClassDB::bind_method(D_METHOD("get_connected_port"), &WebSocketClient::get_connected_port); ClassDB::bind_method(D_METHOD("set_verify_ssl_enabled", "enabled"), &WebSocketClient::set_verify_ssl_enabled); ClassDB::bind_method(D_METHOD("is_verify_ssl_enabled"), &WebSocketClient::is_verify_ssl_enabled); ADD_PROPERTY(PropertyInfo(Variant::BOOL, "verify_ssl", PROPERTY_HINT_NONE, "", 0), "set_verify_ssl_enabled", "is_verify_ssl_enabled"); + ClassDB::bind_method(D_METHOD("get_trusted_ssl_certificate"), &WebSocketClient::get_trusted_ssl_certificate); + ClassDB::bind_method(D_METHOD("set_trusted_ssl_certificate"), &WebSocketClient::set_trusted_ssl_certificate); + + ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "trusted_ssl_certificate", PROPERTY_HINT_RESOURCE_TYPE, "X509Certificate", 0), "set_trusted_ssl_certificate", "get_trusted_ssl_certificate"); + ADD_SIGNAL(MethodInfo("data_received")); ADD_SIGNAL(MethodInfo("connection_established", PropertyInfo(Variant::STRING, "protocol"))); ADD_SIGNAL(MethodInfo("server_close_request", PropertyInfo(Variant::INT, "code"), PropertyInfo(Variant::STRING, "reason"))); diff --git a/modules/websocket/websocket_client.h b/modules/websocket/websocket_client.h index 7ddb9468a5..08fd6798fe 100644 --- a/modules/websocket/websocket_client.h +++ b/modules/websocket/websocket_client.h @@ -31,6 +31,7 @@ #ifndef WEBSOCKET_CLIENT_H #define WEBSOCKET_CLIENT_H +#include "core/crypto/crypto.h" #include "core/error_list.h" #include "websocket_multiplayer_peer.h" #include "websocket_peer.h" @@ -43,17 +44,20 @@ class WebSocketClient : public WebSocketMultiplayerPeer { protected: Ref<WebSocketPeer> _peer; bool verify_ssl; + Ref<X509Certificate> ssl_cert; static void _bind_methods(); public: - Error connect_to_url(String p_url, PoolVector<String> p_protocols = PoolVector<String>(), bool gd_mp_api = false); + Error connect_to_url(String p_url, const Vector<String> p_protocols = Vector<String>(), bool gd_mp_api = false, const Vector<String> p_custom_headers = Vector<String>()); void set_verify_ssl_enabled(bool p_verify_ssl); bool is_verify_ssl_enabled() const; + Ref<X509Certificate> get_trusted_ssl_certificate() const; + void set_trusted_ssl_certificate(Ref<X509Certificate> p_cert); virtual void poll() = 0; - virtual Error connect_to_host(String p_host, String p_path, uint16_t p_port, bool p_ssl, PoolVector<String> p_protocol = PoolVector<String>()) = 0; + virtual Error connect_to_host(String p_host, String p_path, uint16_t p_port, bool p_ssl, const Vector<String> p_protocol = Vector<String>(), const Vector<String> p_custom_headers = Vector<String>()) = 0; virtual void disconnect_from_host(int p_code = 1000, String p_reason = "") = 0; virtual IP_Address get_connected_host() const = 0; virtual uint16_t get_connected_port() const = 0; diff --git a/modules/websocket/websocket_server.cpp b/modules/websocket/websocket_server.cpp index ef5f6f5c20..c7414075ed 100644 --- a/modules/websocket/websocket_server.cpp +++ b/modules/websocket/websocket_server.cpp @@ -42,19 +42,58 @@ WebSocketServer::~WebSocketServer() { void WebSocketServer::_bind_methods() { ClassDB::bind_method(D_METHOD("is_listening"), &WebSocketServer::is_listening); - ClassDB::bind_method(D_METHOD("listen", "port", "protocols", "gd_mp_api"), &WebSocketServer::listen, DEFVAL(PoolVector<String>()), DEFVAL(false)); + ClassDB::bind_method(D_METHOD("listen", "port", "protocols", "gd_mp_api"), &WebSocketServer::listen, DEFVAL(Vector<String>()), DEFVAL(false)); ClassDB::bind_method(D_METHOD("stop"), &WebSocketServer::stop); ClassDB::bind_method(D_METHOD("has_peer", "id"), &WebSocketServer::has_peer); ClassDB::bind_method(D_METHOD("get_peer_address", "id"), &WebSocketServer::get_peer_address); ClassDB::bind_method(D_METHOD("get_peer_port", "id"), &WebSocketServer::get_peer_port); ClassDB::bind_method(D_METHOD("disconnect_peer", "id", "code", "reason"), &WebSocketServer::disconnect_peer, DEFVAL(1000), DEFVAL("")); + ClassDB::bind_method(D_METHOD("get_private_key"), &WebSocketServer::get_private_key); + ClassDB::bind_method(D_METHOD("set_private_key"), &WebSocketServer::set_private_key); + ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "private_key", PROPERTY_HINT_RESOURCE_TYPE, "CryptoKey", 0), "set_private_key", "get_private_key"); + + ClassDB::bind_method(D_METHOD("get_ssl_certificate"), &WebSocketServer::get_ssl_certificate); + ClassDB::bind_method(D_METHOD("set_ssl_certificate"), &WebSocketServer::set_ssl_certificate); + ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "ssl_certificate", PROPERTY_HINT_RESOURCE_TYPE, "X509Certificate", 0), "set_ssl_certificate", "get_ssl_certificate"); + + ClassDB::bind_method(D_METHOD("get_ca_chain"), &WebSocketServer::get_ca_chain); + ClassDB::bind_method(D_METHOD("set_ca_chain"), &WebSocketServer::set_ca_chain); + ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "ca_chain", PROPERTY_HINT_RESOURCE_TYPE, "X509Certificate", 0), "set_ca_chain", "get_ca_chain"); + ADD_SIGNAL(MethodInfo("client_close_request", PropertyInfo(Variant::INT, "id"), PropertyInfo(Variant::INT, "code"), PropertyInfo(Variant::STRING, "reason"))); ADD_SIGNAL(MethodInfo("client_disconnected", PropertyInfo(Variant::INT, "id"), PropertyInfo(Variant::BOOL, "was_clean_close"))); ADD_SIGNAL(MethodInfo("client_connected", PropertyInfo(Variant::INT, "id"), PropertyInfo(Variant::STRING, "protocol"))); ADD_SIGNAL(MethodInfo("data_received", PropertyInfo(Variant::INT, "id"))); } +Ref<CryptoKey> WebSocketServer::get_private_key() const { + return private_key; +} + +void WebSocketServer::set_private_key(Ref<CryptoKey> p_key) { + ERR_FAIL_COND(is_listening()); + private_key = p_key; +} + +Ref<X509Certificate> WebSocketServer::get_ssl_certificate() const { + return ssl_cert; +} + +void WebSocketServer::set_ssl_certificate(Ref<X509Certificate> p_cert) { + ERR_FAIL_COND(is_listening()); + ssl_cert = p_cert; +} + +Ref<X509Certificate> WebSocketServer::get_ca_chain() const { + return ca_chain; +} + +void WebSocketServer::set_ca_chain(Ref<X509Certificate> p_ca_chain) { + ERR_FAIL_COND(is_listening()); + ca_chain = p_ca_chain; +} + NetworkedMultiplayerPeer::ConnectionStatus WebSocketServer::get_connection_status() const { if (is_listening()) return CONNECTION_CONNECTED; diff --git a/modules/websocket/websocket_server.h b/modules/websocket/websocket_server.h index 83c0c10419..0b39f94473 100644 --- a/modules/websocket/websocket_server.h +++ b/modules/websocket/websocket_server.h @@ -31,6 +31,7 @@ #ifndef WEBSOCKET_H #define WEBSOCKET_H +#include "core/crypto/crypto.h" #include "core/reference.h" #include "websocket_multiplayer_peer.h" #include "websocket_peer.h" @@ -43,9 +44,13 @@ class WebSocketServer : public WebSocketMultiplayerPeer { protected: static void _bind_methods(); + Ref<CryptoKey> private_key; + Ref<X509Certificate> ssl_cert; + Ref<X509Certificate> ca_chain; + public: virtual void poll() = 0; - virtual Error listen(int p_port, PoolVector<String> p_protocols = PoolVector<String>(), bool gd_mp_api = false) = 0; + virtual Error listen(int p_port, const Vector<String> p_protocols = Vector<String>(), bool gd_mp_api = false) = 0; virtual void stop() = 0; virtual bool is_listening() const = 0; virtual bool has_peer(int p_id) const = 0; @@ -62,6 +67,15 @@ public: void _on_disconnect(int32_t p_peer_id, bool p_was_clean); void _on_close_request(int32_t p_peer_id, int p_code, String p_reason); + Ref<CryptoKey> get_private_key() const; + void set_private_key(Ref<CryptoKey> p_key); + + Ref<X509Certificate> get_ssl_certificate() const; + void set_ssl_certificate(Ref<X509Certificate> p_cert); + + Ref<X509Certificate> get_ca_chain() const; + void set_ca_chain(Ref<X509Certificate> p_ca_chain); + virtual Error set_buffers(int p_in_buffer, int p_in_packets, int p_out_buffer, int p_out_packets) = 0; WebSocketServer(); diff --git a/modules/websocket/wsl_client.cpp b/modules/websocket/wsl_client.cpp index 0006a057e0..ad70c9c0e1 100644 --- a/modules/websocket/wsl_client.cpp +++ b/modules/websocket/wsl_client.cpp @@ -86,6 +86,7 @@ void WSLClient::_do_handshake() { WSLPeer::PeerData *data = memnew(struct WSLPeer::PeerData); data->obj = this; data->conn = _connection; + data->tcp = _tcp; data->is_server = false; data->id = 1; _peer->make_context(data, _in_buf_size, _in_pkt_size, _out_buf_size, _out_pkt_size); @@ -151,7 +152,7 @@ bool WSLClient::_verify_headers(String &r_protocol) { return true; } -Error WSLClient::connect_to_host(String p_host, String p_path, uint16_t p_port, bool p_ssl, PoolVector<String> p_protocols) { +Error WSLClient::connect_to_host(String p_host, String p_path, uint16_t p_port, bool p_ssl, const Vector<String> p_protocols, const Vector<String> p_custom_headers) { ERR_FAIL_COND_V(_connection.is_valid(), ERR_ALREADY_IN_USE); @@ -180,7 +181,12 @@ Error WSLClient::connect_to_host(String p_host, String p_path, uint16_t p_port, _connection = _tcp; _use_ssl = p_ssl; _host = p_host; - _protocols = p_protocols; + // Strip edges from protocols. + _protocols.resize(p_protocols.size()); + String *pw = _protocols.ptrw(); + for (int i = 0; i < p_protocols.size(); i++) { + pw[i] = p_protocols[i].strip_edges(); + } _key = WSLPeer::generate_key(); // TODO custom extra headers (allow overriding this too?) @@ -199,6 +205,9 @@ Error WSLClient::connect_to_host(String p_host, String p_path, uint16_t p_port, } request += "\r\n"; } + for (int i = 0; i < p_custom_headers.size(); i++) { + request += p_custom_headers[i] + "\r\n"; + } request += "\r\n"; _request = request.utf8(); @@ -236,7 +245,7 @@ void WSLClient::poll() { ssl = Ref<StreamPeerSSL>(StreamPeerSSL::create()); ERR_FAIL_COND_MSG(ssl.is_null(), "SSL is not available in this build."); ssl->set_blocking_handshake_enabled(false); - if (ssl->connect_to_stream(_tcp, verify_ssl, _host) != OK) { + if (ssl->connect_to_stream(_tcp, verify_ssl, _host, ssl_cert) != OK) { disconnect_from_host(); _on_error(); return; @@ -293,7 +302,7 @@ void WSLClient::disconnect_from_host(int p_code, String p_reason) { _key = ""; _host = ""; - _protocols.resize(0); + _protocols.clear(); _use_ssl = false; _request = ""; @@ -305,12 +314,14 @@ void WSLClient::disconnect_from_host(int p_code, String p_reason) { IP_Address WSLClient::get_connected_host() const { - return IP_Address(); + ERR_FAIL_COND_V(!_peer->is_connected_to_host(), IP_Address()); + return _peer->get_connected_host(); } uint16_t WSLClient::get_connected_port() const { - return 1025; + ERR_FAIL_COND_V(!_peer->is_connected_to_host(), 0); + return _peer->get_connected_port(); } Error WSLClient::set_buffers(int p_in_buffer, int p_in_packets, int p_out_buffer, int p_out_packets) { diff --git a/modules/websocket/wsl_client.h b/modules/websocket/wsl_client.h index 57dfd635b7..870be94a87 100644 --- a/modules/websocket/wsl_client.h +++ b/modules/websocket/wsl_client.h @@ -64,7 +64,7 @@ private: String _key; String _host; - PoolVector<String> _protocols; + Vector<String> _protocols; bool _use_ssl; void _do_handshake(); @@ -72,7 +72,7 @@ private: public: Error set_buffers(int p_in_buffer, int p_in_packets, int p_out_buffer, int p_out_packets); - Error connect_to_host(String p_host, String p_path, uint16_t p_port, bool p_ssl, PoolVector<String> p_protocol = PoolVector<String>()); + Error connect_to_host(String p_host, String p_path, uint16_t p_port, bool p_ssl, const Vector<String> p_protocol = Vector<String>(), const Vector<String> p_custom_headers = Vector<String>()); int get_max_packet_size() const; Ref<WebSocketPeer> get_peer(int p_peer_id) const; void disconnect_from_host(int p_code = 1000, String p_reason = ""); diff --git a/modules/websocket/wsl_peer.cpp b/modules/websocket/wsl_peer.cpp index 74fb901232..32beccde5d 100644 --- a/modules/websocket/wsl_peer.cpp +++ b/modules/websocket/wsl_peer.cpp @@ -208,7 +208,6 @@ void WSLPeer::make_context(PeerData *p_data, unsigned int p_in_buf_size, unsigne _data = p_data; _data->peer = this; _data->valid = true; - _connection = Ref<StreamPeer>(_data->conn); if (_data->is_server) wslay_event_context_server_init(&(_data->ctx), &wsl_callbacks, _data); @@ -302,18 +301,16 @@ void WSLPeer::close(int p_code, String p_reason) { IP_Address WSLPeer::get_connected_host() const { - ERR_FAIL_COND_V(!is_connected_to_host(), IP_Address()); + ERR_FAIL_COND_V(!is_connected_to_host() || _data->tcp.is_null(), IP_Address()); - IP_Address ip; - return ip; + return _data->tcp->get_connected_host(); } uint16_t WSLPeer::get_connected_port() const { - ERR_FAIL_COND_V(!is_connected_to_host(), 0); + ERR_FAIL_COND_V(!is_connected_to_host() || _data->tcp.is_null(), 0); - uint16_t port = 0; - return port; + return _data->tcp->get_connected_port(); } void WSLPeer::invalidate() { diff --git a/modules/websocket/wsl_peer.h b/modules/websocket/wsl_peer.h index d51b304fe1..01ad250468 100644 --- a/modules/websocket/wsl_peer.h +++ b/modules/websocket/wsl_peer.h @@ -35,6 +35,7 @@ #include "core/error_list.h" #include "core/io/packet_peer.h" +#include "core/io/stream_peer_tcp.h" #include "core/ring_buffer.h" #include "packet_buffer.h" #include "websocket_peer.h" @@ -55,6 +56,7 @@ public: void *obj; void *peer; Ref<StreamPeer> conn; + Ref<StreamPeerTCP> tcp; int id; wslay_event_context_ptr ctx; @@ -77,7 +79,6 @@ private: static bool _wsl_poll(struct PeerData *p_data); static void _wsl_destroy(struct PeerData **p_data); - Ref<StreamPeer> _connection; struct PeerData *_data; uint8_t _is_string; // Our packet info is just a boolean (is_string), using uint8_t for it. diff --git a/modules/websocket/wsl_server.cpp b/modules/websocket/wsl_server.cpp index efb526eed1..2181775b99 100644 --- a/modules/websocket/wsl_server.cpp +++ b/modules/websocket/wsl_server.cpp @@ -35,6 +35,7 @@ #include "core/project_settings.h" WSLServer::PendingPeer::PendingPeer() { + use_ssl = false; time = 0; has_request = false; response_sent = 0; @@ -42,7 +43,7 @@ WSLServer::PendingPeer::PendingPeer() { memset(req_buf, 0, sizeof(req_buf)); } -bool WSLServer::PendingPeer::_parse_request(const PoolStringArray p_protocols) { +bool WSLServer::PendingPeer::_parse_request(const Vector<String> p_protocols) { Vector<String> psa = String((char *)req_buf).split("\r\n"); int len = psa.size(); ERR_FAIL_COND_V_MSG(len < 4, false, "Not enough response headers, got: " + itos(len) + ", expected >= 4."); @@ -79,11 +80,12 @@ bool WSLServer::PendingPeer::_parse_request(const PoolStringArray p_protocols) { if (headers.has("sec-websocket-protocol")) { Vector<String> protos = headers["sec-websocket-protocol"].split(","); for (int i = 0; i < protos.size(); i++) { + String proto = protos[i].strip_edges(); // Check if we have the given protocol for (int j = 0; j < p_protocols.size(); j++) { - if (protos[i] != p_protocols[j]) + if (proto != p_protocols[j]) continue; - protocol = protos[i]; + protocol = proto; break; } // Found a protocol @@ -97,9 +99,19 @@ bool WSLServer::PendingPeer::_parse_request(const PoolStringArray p_protocols) { return true; } -Error WSLServer::PendingPeer::do_handshake(PoolStringArray p_protocols) { +Error WSLServer::PendingPeer::do_handshake(const Vector<String> p_protocols) { if (OS::get_singleton()->get_ticks_msec() - time > WSL_SERVER_TIMEOUT) return ERR_TIMEOUT; + if (use_ssl) { + Ref<StreamPeerSSL> ssl = static_cast<Ref<StreamPeerSSL> >(connection); + if (ssl.is_null()) + return FAILED; + ssl->poll(); + if (ssl->get_status() == StreamPeerSSL::STATUS_HANDSHAKING) + return ERR_BUSY; + else if (ssl->get_status() != StreamPeerSSL::STATUS_CONNECTED) + return FAILED; + } if (!has_request) { int read = 0; while (true) { @@ -143,11 +155,16 @@ Error WSLServer::PendingPeer::do_handshake(PoolStringArray p_protocols) { return OK; } -Error WSLServer::listen(int p_port, PoolVector<String> p_protocols, bool gd_mp_api) { +Error WSLServer::listen(int p_port, const Vector<String> p_protocols, bool gd_mp_api) { ERR_FAIL_COND_V(is_listening(), ERR_ALREADY_IN_USE); _is_multiplayer = gd_mp_api; - _protocols = p_protocols; + // Strip edges from protocols. + _protocols.resize(p_protocols.size()); + String *pw = _protocols.ptrw(); + for (int i = 0; i < p_protocols.size(); i++) { + pw[i] = p_protocols[i].strip_edges(); + } _server->listen(p_port); return OK; @@ -185,6 +202,7 @@ void WSLServer::poll() { WSLPeer::PeerData *data = memnew(struct WSLPeer::PeerData); data->obj = this; data->conn = ppeer->connection; + data->tcp = ppeer->tcp; data->is_server = true; data->id = id; @@ -204,12 +222,21 @@ void WSLServer::poll() { return; while (_server->is_connection_available()) { - Ref<StreamPeer> conn = _server->take_connection(); + Ref<StreamPeerTCP> conn = _server->take_connection(); if (is_refusing_new_connections()) continue; // Conn will go out-of-scope and be closed. Ref<PendingPeer> peer = memnew(PendingPeer); - peer->connection = conn; + if (private_key.is_valid() && ssl_cert.is_valid()) { + Ref<StreamPeerSSL> ssl = Ref<StreamPeerSSL>(StreamPeerSSL::create()); + ssl->set_blocking_handshake_enabled(false); + ssl->accept_stream(conn, private_key, ssl_cert, ca_chain); + peer->connection = ssl; + peer->use_ssl = true; + } else { + peer->connection = conn; + } + peer->tcp = conn; peer->time = OS::get_singleton()->get_ticks_msec(); _pending.push_back(peer); } @@ -231,6 +258,7 @@ void WSLServer::stop() { } _pending.clear(); _peer_map.clear(); + _protocols.clear(); } bool WSLServer::has_peer(int p_id) const { diff --git a/modules/websocket/wsl_server.h b/modules/websocket/wsl_server.h index 2ceb941073..aae563355e 100644 --- a/modules/websocket/wsl_server.h +++ b/modules/websocket/wsl_server.h @@ -36,6 +36,7 @@ #include "websocket_server.h" #include "wsl_peer.h" +#include "core/io/stream_peer_ssl.h" #include "core/io/stream_peer_tcp.h" #include "core/io/tcp_server.h" @@ -49,10 +50,12 @@ private: class PendingPeer : public Reference { private: - bool _parse_request(const PoolStringArray p_protocols); + bool _parse_request(const Vector<String> p_protocols); public: + Ref<StreamPeerTCP> tcp; Ref<StreamPeer> connection; + bool use_ssl; int time; uint8_t req_buf[WSL_MAX_HEADER_SIZE]; @@ -65,7 +68,7 @@ private: PendingPeer(); - Error do_handshake(const PoolStringArray p_protocols); + Error do_handshake(const Vector<String> p_protocols); }; int _in_buf_size; @@ -75,11 +78,11 @@ private: List<Ref<PendingPeer> > _pending; Ref<TCP_Server> _server; - PoolStringArray _protocols; + Vector<String> _protocols; public: Error set_buffers(int p_in_buffer, int p_in_packets, int p_out_buffer, int p_out_packets); - Error listen(int p_port, PoolVector<String> p_protocols = PoolVector<String>(), bool gd_mp_api = false); + Error listen(int p_port, const Vector<String> p_protocols = Vector<String>(), bool gd_mp_api = false); void stop(); bool is_listening() const; int get_max_packet_size() const; diff --git a/platform/android/export/export.cpp b/platform/android/export/export.cpp index b61575e2aa..6d021ad33a 100644 --- a/platform/android/export/export.cpp +++ b/platform/android/export/export.cpp @@ -766,17 +766,9 @@ class EditorExportPlatformAndroid : public EditorExportPlatform { uint32_t attr_value = decode_uint32(&p_manifest[iofs + 8]); uint32_t attr_resid = decode_uint32(&p_manifest[iofs + 16]); - String value; - if (attr_value != 0xFFFFFFFF) - value = string_table[attr_value]; - else - value = "Res #" + itos(attr_resid); + const String value = (attr_value != 0xFFFFFFFF) ? string_table[attr_value] : "Res #" + itos(attr_resid); String attrname = string_table[attr_name]; - String nspace; - if (attr_nspace != 0xFFFFFFFF) - nspace = string_table[attr_nspace]; - else - nspace = ""; + const String nspace = (attr_nspace != 0xFFFFFFFF) ? string_table[attr_nspace] : ""; //replace project information if (tname == "manifest" && attrname == "package") { @@ -828,14 +820,16 @@ class EditorExportPlatformAndroid : public EditorExportPlatform { encode_uint32(min_gles3 ? 0x00030000 : 0x00020000, &p_manifest.write[iofs + 16]); } - if (tname == "meta-data" && attrname == "name" && string_table[attr_value] == "xr_mode_metadata_name") { + // FIXME: `attr_value != 0xFFFFFFFF` below added as a stopgap measure for GH-32553, + // but the issue should be debugged further and properly addressed. + if (tname == "meta-data" && attrname == "name" && value == "xr_mode_metadata_name") { // Update the meta-data 'android:name' attribute based on the selected XR mode. if (xr_mode_index == 1 /* XRMode.OVR */) { string_table.write[attr_value] = "com.samsung.android.vr.application.mode"; } } - if (tname == "meta-data" && attrname == "value" && string_table[attr_value] == "xr_mode_metadata_value") { + if (tname == "meta-data" && attrname == "value" && value == "xr_mode_metadata_value") { // Update the meta-data 'android:value' attribute based on the selected XR mode. if (xr_mode_index == 1 /* XRMode.OVR */) { string_table.write[attr_value] = "vr_only"; @@ -1351,7 +1345,7 @@ public: return logo; } - virtual bool poll_devices() { + virtual bool poll_export() { bool dc = devices_changed; if (dc) { @@ -1361,7 +1355,7 @@ public: return dc; } - virtual int get_device_count() const { + virtual int get_options_count() const { device_lock->lock(); int dc = devices.size(); @@ -1370,20 +1364,31 @@ public: return dc; } - virtual String get_device_name(int p_device) const { + virtual String get_options_tooltip() const { - ERR_FAIL_INDEX_V(p_device, devices.size(), ""); + return TTR("Select device from the list"); + } + + virtual String get_option_label(int p_index) const { + + ERR_FAIL_INDEX_V(p_index, devices.size(), ""); device_lock->lock(); - String s = devices[p_device].name; + String s = devices[p_index].name; device_lock->unlock(); return s; } - virtual String get_device_info(int p_device) const { + virtual String get_option_tooltip(int p_index) const { - ERR_FAIL_INDEX_V(p_device, devices.size(), ""); + ERR_FAIL_INDEX_V(p_index, devices.size(), ""); device_lock->lock(); - String s = devices[p_device].description; + String s = devices[p_index].description; + if (devices.size() == 1) { + // Tooltip will be: + // Name + // Description + s = devices[p_index].name + "\n\n" + s; + } device_lock->unlock(); return s; } diff --git a/platform/android/java/lib/res/drawable-hdpi/notify_panel_notification_icon_bg.png b/platform/android/java/lib/res/drawable-hdpi/notify_panel_notification_icon_bg.png Binary files differindex 2c246b04a4..f849d8e90d 100644 --- a/platform/android/java/lib/res/drawable-hdpi/notify_panel_notification_icon_bg.png +++ b/platform/android/java/lib/res/drawable-hdpi/notify_panel_notification_icon_bg.png diff --git a/platform/android/java/lib/res/drawable-mdpi/notify_panel_notification_icon_bg.png b/platform/android/java/lib/res/drawable-mdpi/notify_panel_notification_icon_bg.png Binary files differindex 8bcd464bed..1dfb28b33a 100644 --- a/platform/android/java/lib/res/drawable-mdpi/notify_panel_notification_icon_bg.png +++ b/platform/android/java/lib/res/drawable-mdpi/notify_panel_notification_icon_bg.png diff --git a/platform/android/java/lib/res/drawable-xxhdpi/notify_panel_notification_icon_bg.png b/platform/android/java/lib/res/drawable-xxhdpi/notify_panel_notification_icon_bg.png Binary files differindex b458ff3057..302a972049 100644 --- a/platform/android/java/lib/res/drawable-xxhdpi/notify_panel_notification_icon_bg.png +++ b/platform/android/java/lib/res/drawable-xxhdpi/notify_panel_notification_icon_bg.png diff --git a/platform/android/java/lib/src/org/godotengine/godot/Godot.java b/platform/android/java/lib/src/org/godotengine/godot/Godot.java index 739aa285bf..4dae2dcc53 100644 --- a/platform/android/java/lib/src/org/godotengine/godot/Godot.java +++ b/platform/android/java/lib/src/org/godotengine/godot/Godot.java @@ -30,7 +30,6 @@ package org.godotengine.godot; -import android.Manifest; import android.annotation.SuppressLint; import android.app.Activity; import android.app.ActivityManager; @@ -56,12 +55,14 @@ import android.hardware.SensorManager; import android.os.Build; import android.os.Bundle; import android.os.Environment; +import android.os.Handler; +import android.os.Looper; import android.os.Messenger; import android.os.VibrationEffect; import android.os.Vibrator; import android.provider.Settings.Secure; import android.support.annotation.Keep; -import android.support.v4.content.ContextCompat; +import android.support.annotation.Nullable; import android.view.Display; import android.view.KeyEvent; import android.view.MotionEvent; @@ -95,14 +96,12 @@ import java.util.Locale; import javax.microedition.khronos.opengles.GL10; import org.godotengine.godot.input.GodotEditText; import org.godotengine.godot.payments.PaymentsManager; +import org.godotengine.godot.utils.PermissionsUtil; import org.godotengine.godot.xr.XRMode; public abstract class Godot extends Activity implements SensorEventListener, IDownloaderClient { static final int MAX_SINGLETONS = 64; - static final int REQUEST_RECORD_AUDIO_PERMISSION = 1; - static final int REQUEST_CAMERA_PERMISSION = 2; - static final int REQUEST_VIBRATE_PERMISSION = 3; private IStub mDownloaderClientStub; private TextView mStatusText; private TextView mProgressFraction; @@ -126,6 +125,9 @@ public abstract class Godot extends Activity implements SensorEventListener, IDo private boolean activityResumed; private int mState; + // Used to dispatch events to the main thread. + private final Handler mainThreadHandler = new Handler(Looper.getMainLooper()); + static private Intent mCurrentIntent; @Override @@ -187,6 +189,20 @@ public abstract class Godot extends Activity implements SensorEventListener, IDo Godot.singletons[Godot.singleton_count++] = this; } + /** + * Invoked once during the Godot Android initialization process after creation of the + * {@link GodotView} view. + * <p> + * This method should be overridden by descendants of this class that would like to add + * their view/layout to the Godot view hierarchy. + * + * @return the view to be included; null if no views should be included. + */ + @Nullable + protected View onMainCreateView(Activity activity) { + return null; + } + protected void onMainActivityResult(int requestCode, int resultCode, Intent data) { } @@ -306,6 +322,20 @@ public abstract class Godot extends Activity implements SensorEventListener, IDo public void run() { GodotLib.setup(current_command_line); setKeepScreenOn("True".equals(GodotLib.getGlobal("display/window/energy_saving/keep_screen_on"))); + + // The Godot Android plugins are setup on completion of GodotLib.setup + mainThreadHandler.post(new Runnable() { + @Override + public void run() { + // Include the non-null views returned in the Godot view hierarchy. + for (int i = 0; i < singleton_count; i++) { + View view = singletons[i].onMainCreateView(Godot.this); + if (view != null) { + layout.addView(view); + } + } + } + }); } }); } @@ -973,32 +1003,15 @@ public abstract class Godot extends Activity implements SensorEventListener, IDo } public boolean requestPermission(String p_name) { - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) { - // Not necessary, asked on install already - return true; - } - - if (p_name.equals("RECORD_AUDIO")) { - if (ContextCompat.checkSelfPermission(this, Manifest.permission.RECORD_AUDIO) != PackageManager.PERMISSION_GRANTED) { - requestPermissions(new String[] { Manifest.permission.RECORD_AUDIO }, REQUEST_RECORD_AUDIO_PERMISSION); - return false; - } - } + return PermissionsUtil.requestPermission(p_name, this); + } - if (p_name.equals("CAMERA")) { - if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) { - requestPermissions(new String[] { Manifest.permission.CAMERA }, REQUEST_CAMERA_PERMISSION); - return false; - } - } + public boolean requestPermissions() { + return PermissionsUtil.requestManifestPermissions(this); + } - if (p_name.equals("VIBRATE")) { - if (ContextCompat.checkSelfPermission(this, Manifest.permission.VIBRATE) != PackageManager.PERMISSION_GRANTED) { - requestPermissions(new String[] { Manifest.permission.VIBRATE }, REQUEST_VIBRATE_PERMISSION); - return false; - } - } - return true; + public String[] getGrantedPermissions() { + return PermissionsUtil.getGrantedPermissions(this); } /** diff --git a/platform/android/java/lib/src/org/godotengine/godot/utils/PermissionsUtil.java b/platform/android/java/lib/src/org/godotengine/godot/utils/PermissionsUtil.java new file mode 100644 index 0000000000..2c4a444e5a --- /dev/null +++ b/platform/android/java/lib/src/org/godotengine/godot/utils/PermissionsUtil.java @@ -0,0 +1,157 @@ +package org.godotengine.godot.utils; + +import android.Manifest; +import android.content.pm.PackageInfo; +import android.content.pm.PackageManager; +import android.content.pm.PermissionInfo; +import android.os.Build; +import android.support.v4.content.ContextCompat; +import java.util.ArrayList; +import java.util.List; +import org.godotengine.godot.Godot; + +/** + * This class includes utility functions for Android permissions related operations. + * @author Cagdas Caglak <cagdascaglak@gmail.com> + */ +public final class PermissionsUtil { + + static final int REQUEST_RECORD_AUDIO_PERMISSION = 1; + static final int REQUEST_CAMERA_PERMISSION = 2; + static final int REQUEST_VIBRATE_PERMISSION = 3; + static final int REQUEST_ALL_PERMISSION_REQ_CODE = 1001; + + private PermissionsUtil() { + } + + /** + * Request a dangerous permission. name must be specified in <a href="https://github.com/aosp-mirror/platform_frameworks_base/blob/master/core/res/AndroidManifest.xml">this</a> + * @param name the name of the requested permission. + * @param activity the caller activity for this method. + * @return true/false. "true" if permission was granted otherwise returns "false". + */ + public static boolean requestPermission(String name, Godot activity) { + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) { + // Not necessary, asked on install already + return true; + } + + if (name.equals("RECORD_AUDIO") && ContextCompat.checkSelfPermission(activity, Manifest.permission.RECORD_AUDIO) != PackageManager.PERMISSION_GRANTED) { + activity.requestPermissions(new String[] { Manifest.permission.RECORD_AUDIO }, REQUEST_RECORD_AUDIO_PERMISSION); + return false; + } + + if (name.equals("CAMERA") && ContextCompat.checkSelfPermission(activity, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) { + activity.requestPermissions(new String[] { Manifest.permission.CAMERA }, REQUEST_CAMERA_PERMISSION); + return false; + } + + if (name.equals("VIBRATE") && ContextCompat.checkSelfPermission(activity, Manifest.permission.VIBRATE) != PackageManager.PERMISSION_GRANTED) { + activity.requestPermissions(new String[] { Manifest.permission.VIBRATE }, REQUEST_VIBRATE_PERMISSION); + return false; + } + return true; + } + + /** + * Request dangerous permissions which are defined in the Android manifest file from the user. + * @param activity the caller activity for this method. + * @return true/false. "true" if all permissions were granted otherwise returns "false". + */ + public static boolean requestManifestPermissions(Godot activity) { + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) { + return true; + } + + String[] manifestPermissions; + try { + manifestPermissions = getManifestPermissions(activity); + } catch (PackageManager.NameNotFoundException e) { + e.printStackTrace(); + return false; + } + + if (manifestPermissions == null || manifestPermissions.length == 0) + return true; + + List<String> dangerousPermissions = new ArrayList<>(); + for (String manifestPermission : manifestPermissions) { + try { + PermissionInfo permissionInfo = getPermissionInfo(activity, manifestPermission); + int protectionLevel = Build.VERSION.SDK_INT >= Build.VERSION_CODES.P ? permissionInfo.getProtection() : permissionInfo.protectionLevel; + if (protectionLevel == PermissionInfo.PROTECTION_DANGEROUS && ContextCompat.checkSelfPermission(activity, manifestPermission) != PackageManager.PERMISSION_GRANTED) { + dangerousPermissions.add(manifestPermission); + } + } catch (PackageManager.NameNotFoundException e) { + e.printStackTrace(); + return false; + } + } + + if (dangerousPermissions.isEmpty()) { + // If list is empty, all of dangerous permissions were granted. + return true; + } + + String[] requestedPermissions = dangerousPermissions.toArray(new String[0]); + activity.requestPermissions(requestedPermissions, REQUEST_ALL_PERMISSION_REQ_CODE); + return false; + } + + /** + * With this function you can get the list of dangerous permissions that have been granted to the Android application. + * @param activity the caller activity for this method. + * @return granted permissions list + */ + public static String[] getGrantedPermissions(Godot activity) { + String[] manifestPermissions; + try { + manifestPermissions = getManifestPermissions(activity); + } catch (PackageManager.NameNotFoundException e) { + e.printStackTrace(); + return new String[0]; + } + if (manifestPermissions == null || manifestPermissions.length == 0) + return new String[0]; + + List<String> dangerousPermissions = new ArrayList<>(); + for (String manifestPermission : manifestPermissions) { + try { + PermissionInfo permissionInfo = getPermissionInfo(activity, manifestPermission); + int protectionLevel = Build.VERSION.SDK_INT >= Build.VERSION_CODES.P ? permissionInfo.getProtection() : permissionInfo.protectionLevel; + if (protectionLevel == PermissionInfo.PROTECTION_DANGEROUS && ContextCompat.checkSelfPermission(activity, manifestPermission) == PackageManager.PERMISSION_GRANTED) { + dangerousPermissions.add(manifestPermission); + } + } catch (PackageManager.NameNotFoundException e) { + e.printStackTrace(); + return new String[0]; + } + } + + return dangerousPermissions.toArray(new String[0]); + } + + /** + * Returns the permissions defined in the AndroidManifest.xml file. + * @param activity the caller activity for this method. + * @return manifest permissions list + * @throws PackageManager.NameNotFoundException the exception is thrown when a given package, application, or component name cannot be found. + */ + private static String[] getManifestPermissions(Godot activity) throws PackageManager.NameNotFoundException { + PackageManager packageManager = activity.getPackageManager(); + PackageInfo packageInfo = packageManager.getPackageInfo(activity.getPackageName(), PackageManager.GET_PERMISSIONS); + return packageInfo.requestedPermissions; + } + + /** + * Returns the information of the desired permission. + * @param activity the caller activity for this method. + * @param permission the name of the permission. + * @return permission info object + * @throws PackageManager.NameNotFoundException the exception is thrown when a given package, application, or component name cannot be found. + */ + private static PermissionInfo getPermissionInfo(Godot activity, String permission) throws PackageManager.NameNotFoundException { + PackageManager packageManager = activity.getPackageManager(); + return packageManager.getPermissionInfo(permission, 0); + } +} diff --git a/platform/android/java_godot_lib_jni.cpp b/platform/android/java_godot_lib_jni.cpp index 7daea19961..a14e0a1960 100644 --- a/platform/android/java_godot_lib_jni.cpp +++ b/platform/android/java_godot_lib_jni.cpp @@ -1393,6 +1393,10 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_requestPermissionResu if (permission == "android.permission.RECORD_AUDIO" && p_result) { AudioDriver::get_singleton()->capture_start(); } + + if (os_android->get_main_loop()) { + os_android->get_main_loop()->emit_signal("on_request_permissions_result", permission, p_result == JNI_TRUE); + } } JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_onRendererResumed(JNIEnv *env, jclass clazz) { diff --git a/platform/android/java_godot_wrapper.cpp b/platform/android/java_godot_wrapper.cpp index 8194ee6ecf..e3e613d30b 100644 --- a/platform/android/java_godot_wrapper.cpp +++ b/platform/android/java_godot_wrapper.cpp @@ -59,6 +59,8 @@ GodotJavaWrapper::GodotJavaWrapper(JNIEnv *p_env, jobject p_godot_instance) { _get_clipboard = p_env->GetMethodID(cls, "getClipboard", "()Ljava/lang/String;"); _set_clipboard = p_env->GetMethodID(cls, "setClipboard", "(Ljava/lang/String;)V"); _request_permission = p_env->GetMethodID(cls, "requestPermission", "(Ljava/lang/String;)Z"); + _request_permissions = p_env->GetMethodID(cls, "requestPermissions", "()Z"); + _get_granted_permissions = p_env->GetMethodID(cls, "getGrantedPermissions", "()[Ljava/lang/String;"); _init_input_devices = p_env->GetMethodID(cls, "initInputDevices", "()V"); _get_surface = p_env->GetMethodID(cls, "getSurface", "()Landroid/view/Surface;"); _is_activity_resumed = p_env->GetMethodID(cls, "isActivityResumed", "()Z"); @@ -199,6 +201,34 @@ bool GodotJavaWrapper::request_permission(const String &p_name) { } } +bool GodotJavaWrapper::request_permissions() { + if (_request_permissions) { + JNIEnv *env = ThreadAndroid::get_env(); + return env->CallBooleanMethod(godot_instance, _request_permissions); + } else { + return false; + } +} + +Vector<String> GodotJavaWrapper::get_granted_permissions() const { + Vector<String> permissions_list; + if (_get_granted_permissions) { + JNIEnv *env = ThreadAndroid::get_env(); + jobject permissions_object = env->CallObjectMethod(godot_instance, _get_granted_permissions); + jobjectArray *arr = reinterpret_cast<jobjectArray *>(&permissions_object); + + int i = 0; + jsize len = env->GetArrayLength(*arr); + for (i = 0; i < len; i++) { + jstring jstr = (jstring)env->GetObjectArrayElement(*arr, i); + String str = jstring_to_string(jstr, env); + permissions_list.push_back(str); + env->DeleteLocalRef(jstr); + } + } + return permissions_list; +} + void GodotJavaWrapper::init_input_devices() { if (_init_input_devices) { JNIEnv *env = ThreadAndroid::get_env(); diff --git a/platform/android/java_godot_wrapper.h b/platform/android/java_godot_wrapper.h index b1bd9b7f48..d23ff273cb 100644 --- a/platform/android/java_godot_wrapper.h +++ b/platform/android/java_godot_wrapper.h @@ -54,6 +54,8 @@ private: jmethodID _get_clipboard = 0; jmethodID _set_clipboard = 0; jmethodID _request_permission = 0; + jmethodID _request_permissions = 0; + jmethodID _get_granted_permissions = 0; jmethodID _init_input_devices = 0; jmethodID _get_surface = 0; jmethodID _is_activity_resumed = 0; @@ -81,6 +83,8 @@ public: bool has_set_clipboard(); void set_clipboard(const String &p_text); bool request_permission(const String &p_name); + bool request_permissions(); + Vector<String> get_granted_permissions() const; void init_input_devices(); jobject get_surface(); bool is_activity_resumed(); diff --git a/platform/android/logo.png b/platform/android/logo.png Binary files differindex ba2a0e366a..df445f6a9c 100644 --- a/platform/android/logo.png +++ b/platform/android/logo.png diff --git a/platform/android/os_android.cpp b/platform/android/os_android.cpp index 91bd6cbdd2..defee8f1f1 100644 --- a/platform/android/os_android.cpp +++ b/platform/android/os_android.cpp @@ -220,6 +220,16 @@ bool OS_Android::request_permission(const String &p_name) { return godot_java->request_permission(p_name); } +bool OS_Android::request_permissions() { + + return godot_java->request_permissions(); +} + +Vector<String> OS_Android::get_granted_permissions() const { + + return godot_java->get_granted_permissions(); +} + Error OS_Android::open_dynamic_library(const String p_path, void *&p_library_handle, bool p_also_set_library_path) { p_library_handle = dlopen(p_path.utf8().get_data(), RTLD_NOW); ERR_FAIL_COND_V_MSG(!p_library_handle, ERR_CANT_OPEN, "Can't open dynamic library: " + p_path + ", error: " + dlerror() + "."); diff --git a/platform/android/os_android.h b/platform/android/os_android.h index 9bad9b2e01..a290c0cedd 100644 --- a/platform/android/os_android.h +++ b/platform/android/os_android.h @@ -125,6 +125,8 @@ public: virtual void alert(const String &p_alert, const String &p_title = "ALERT!"); virtual bool request_permission(const String &p_name); + virtual bool request_permissions(); + virtual Vector<String> get_granted_permissions() const; virtual Error open_dynamic_library(const String p_path, void *&p_library_handle, bool p_also_set_library_path = false); diff --git a/platform/iphone/gl_view.h b/platform/iphone/gl_view.h index 4fb721f159..e3c9d212f0 100644 --- a/platform/iphone/gl_view.h +++ b/platform/iphone/gl_view.h @@ -79,8 +79,6 @@ @property(strong, nonatomic) AVPlayer *avPlayer; @property(strong, nonatomic) AVPlayerLayer *avPlayerLayer; -// Old videoplayer properties -@property(strong, nonatomic) MPMoviePlayerController *moviePlayerController; @property(strong, nonatomic) UIWindow *backgroundWindow; @property(nonatomic) UITextAutocorrectionType autocorrectionType; diff --git a/platform/iphone/gl_view.mm b/platform/iphone/gl_view.mm index dfca2e3dd7..2ac158e6d3 100644 --- a/platform/iphone/gl_view.mm +++ b/platform/iphone/gl_view.mm @@ -729,40 +729,4 @@ static void clear_touches() { _stop_video(); } -/* -- (void)moviePlayBackDidFinish:(NSNotification*)notification { - - - NSNumber* reason = [[notification userInfo] objectForKey:MPMoviePlayerPlaybackDidFinishReasonUserInfoKey]; - switch ([reason intValue]) { - case MPMovieFinishReasonPlaybackEnded: - //NSLog(@"Playback Ended"); - break; - case MPMovieFinishReasonPlaybackError: - //NSLog(@"Playback Error"); - video_found_error = true; - break; - case MPMovieFinishReasonUserExited: - //NSLog(@"User Exited"); - video_found_error = true; - break; - default: - //NSLog(@"Unsupported reason!"); - break; - } - - MPMoviePlayerController *player = [notification object]; - - [[NSNotificationCenter defaultCenter] - removeObserver:self - name:MPMoviePlayerPlaybackDidFinishNotification - object:player]; - - [_instance.moviePlayerController stop]; - [_instance.moviePlayerController.view removeFromSuperview]; - - video_playing = false; -} -*/ - @end diff --git a/platform/iphone/godot_iphone.cpp b/platform/iphone/godot_iphone.cpp index db93db5021..992da2818b 100644 --- a/platform/iphone/godot_iphone.cpp +++ b/platform/iphone/godot_iphone.cpp @@ -47,7 +47,7 @@ int iphone_main(int, int, int, char **, String); int iphone_main(int width, int height, int argc, char **argv, String data_dir) { - int len = strlen(argv[0]); + size_t len = strlen(argv[0]); while (len--) { if (argv[0][len] == '/') break; diff --git a/platform/iphone/in_app_store.mm b/platform/iphone/in_app_store.mm index 490e84c571..8eef430621 100644 --- a/platform/iphone/in_app_store.mm +++ b/platform/iphone/in_app_store.mm @@ -92,7 +92,7 @@ void InAppStore::_bind_methods() { PoolStringArray localized_prices; PoolStringArray currency_codes; - for (int i = 0; i < [products count]; i++) { + for (NSUInteger i = 0; i < [products count]; i++) { SKProduct *product = [products objectAtIndex:i]; diff --git a/platform/iphone/ios.h b/platform/iphone/ios.h index 91c4725b35..ef45fc7ac3 100644 --- a/platform/iphone/ios.h +++ b/platform/iphone/ios.h @@ -42,6 +42,7 @@ class iOS : public Object { public: static void alert(const char *p_alert, const char *p_title); + String get_model() const; String get_rate_url(int p_app_id) const; iOS(); diff --git a/platform/iphone/ios.mm b/platform/iphone/ios.mm index 686422ceb2..6e986df493 100644 --- a/platform/iphone/ios.mm +++ b/platform/iphone/ios.mm @@ -29,6 +29,7 @@ /*************************************************************************/ #include "ios.h" +#include <sys/sysctl.h> #import <UIKit/UIKit.h> @@ -42,6 +43,21 @@ void iOS::alert(const char *p_alert, const char *p_title) { [alert show]; } +String iOS::get_model() const { + // [[UIDevice currentDevice] model] only returns "iPad" or "iPhone". + size_t size; + sysctlbyname("hw.machine", NULL, &size, NULL, 0); + char *model = (char *)malloc(size); + if (model == NULL) { + return ""; + } + sysctlbyname("hw.machine", model, &size, NULL, 0); + NSString *platform = [NSString stringWithCString:model encoding:NSUTF8StringEncoding]; + free(model); + const char *str = [platform UTF8String]; + return String(str != NULL ? str : ""); +} + String iOS::get_rate_url(int p_app_id) const { String templ = "itms-apps://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=APP_ID"; String templ_iOS7 = "itms-apps://itunes.apple.com/app/idAPP_ID"; diff --git a/platform/iphone/os_iphone.cpp b/platform/iphone/os_iphone.cpp index 353078c51c..83b0660ef7 100644 --- a/platform/iphone/os_iphone.cpp +++ b/platform/iphone/os_iphone.cpp @@ -47,8 +47,6 @@ #include "semaphore_iphone.h" -#include "ios.h" - #include <dlfcn.h> int OSIPhone::get_video_driver_count() const { @@ -184,7 +182,8 @@ Error OSIPhone::initialize(const VideoMode &p_desired, int p_video_driver, int p Engine::get_singleton()->add_singleton(Engine::Singleton("ICloud", icloud)); //icloud->connect(); #endif - Engine::get_singleton()->add_singleton(Engine::Singleton("iOS", memnew(iOS))); + ios = memnew(iOS); + Engine::get_singleton()->add_singleton(Engine::Singleton("iOS", ios)); return OK; }; @@ -507,6 +506,15 @@ String OSIPhone::get_name() const { return "iOS"; }; +String OSIPhone::get_model_name() const { + + String model = ios->get_model(); + if (model != "") + return model; + + return OS_Unix::get_model_name(); +} + Size2 OSIPhone::get_window_size() const { return Vector2(video_mode.width, video_mode.height); diff --git a/platform/iphone/os_iphone.h b/platform/iphone/os_iphone.h index 804ba0b1af..63799bbae8 100644 --- a/platform/iphone/os_iphone.h +++ b/platform/iphone/os_iphone.h @@ -41,6 +41,7 @@ #include "game_center.h" #include "icloud.h" #include "in_app_store.h" +#include "ios.h" #include "main/input_default.h" #include "servers/audio_server.h" #include "servers/visual/rasterizer.h" @@ -72,6 +73,7 @@ private: #ifdef ICLOUD_ENABLED ICloud *icloud; #endif + iOS *ios; MainLoop *main_loop; @@ -178,6 +180,7 @@ public: void set_data_dir(String p_dir); virtual String get_name() const; + virtual String get_model_name() const; Error shell_open(String p_uri); diff --git a/platform/javascript/export/export.cpp b/platform/javascript/export/export.cpp index 69dd038709..f3e8d6911a 100644 --- a/platform/javascript/export/export.cpp +++ b/platform/javascript/export/export.cpp @@ -28,9 +28,10 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ +#include "core/io/tcp_server.h" #include "core/io/zip_io.h" +#include "editor/editor_export.h" #include "editor/editor_node.h" -#include "editor_export.h" #include "main/splash.gen.h" #include "platform/javascript/logo.gen.h" #include "platform/javascript/run_icon.gen.h" @@ -38,16 +39,153 @@ #define EXPORT_TEMPLATE_WEBASSEMBLY_RELEASE "webassembly_release.zip" #define EXPORT_TEMPLATE_WEBASSEMBLY_DEBUG "webassembly_debug.zip" +class EditorHTTPServer : public Reference { + +private: + Ref<TCP_Server> server; + Ref<StreamPeerTCP> connection; + uint64_t time; + uint8_t req_buf[4096]; + int req_pos; + + void _clear_client() { + connection = Ref<StreamPeerTCP>(); + memset(req_buf, 0, sizeof(req_buf)); + time = 0; + req_pos = 0; + } + +public: + EditorHTTPServer() { + server.instance(); + stop(); + } + + void stop() { + server->stop(); + _clear_client(); + } + + Error listen(int p_port, IP_Address p_address) { + return server->listen(p_port, p_address); + } + + bool is_listening() const { + return server->is_listening(); + } + + void _send_response() { + Vector<String> psa = String((char *)req_buf).split("\r\n"); + int len = psa.size(); + ERR_FAIL_COND_MSG(len < 4, "Not enough response headers, got: " + itos(len) + ", expected >= 4."); + + Vector<String> req = psa[0].split(" ", false); + ERR_FAIL_COND_MSG(req.size() < 2, "Invalid protocol or status code."); + + // Wrong protocol + ERR_FAIL_COND_MSG(req[0] != "GET" || req[2] != "HTTP/1.1", "Invalid method or HTTP version."); + + String filepath = EditorSettings::get_singleton()->get_cache_dir().plus_file("tmp_js_export"); + String basereq = "/tmp_js_export"; + if (req[1] == basereq + ".html") { + filepath += ".html"; + } else if (req[1] == basereq + ".js") { + filepath += ".js"; + } else if (req[1] == basereq + ".pck") { + filepath += ".pck"; + } else if (req[1] == basereq + ".png") { + filepath += ".png"; + } else if (req[1] == basereq + ".wasm") { + filepath += ".wasm"; + } else { + String s = "HTTP/1.1 404 Not Found\r\n"; + s += "Connection: Close\r\n"; + s += "\r\n"; + CharString cs = s.utf8(); + connection->put_data((const uint8_t *)cs.get_data(), cs.size() - 1); + return; + } + FileAccess *f = FileAccess::open(filepath, FileAccess::READ); + ERR_FAIL_COND(!f); + String s = "HTTP/1.1 200 OK\r\n"; + s += "Connection: Close\r\n"; + s += "\r\n"; + CharString cs = s.utf8(); + Error err = connection->put_data((const uint8_t *)cs.get_data(), cs.size() - 1); + ERR_FAIL_COND(err != OK); + + while (true) { + uint8_t bytes[4096]; + int read = f->get_buffer(bytes, 4096); + if (read < 1) { + break; + } + err = connection->put_data(bytes, read); + ERR_FAIL_COND(err != OK); + } + } + + void poll() { + if (!server->is_listening()) + return; + if (connection.is_null()) { + if (!server->is_connection_available()) + return; + connection = server->take_connection(); + time = OS::get_singleton()->get_ticks_usec(); + } + if (OS::get_singleton()->get_ticks_usec() - time > 1000000) { + _clear_client(); + return; + } + if (connection->get_status() != StreamPeerTCP::STATUS_CONNECTED) + return; + + while (true) { + + char *r = (char *)req_buf; + int l = req_pos - 1; + if (l > 3 && r[l] == '\n' && r[l - 1] == '\r' && r[l - 2] == '\n' && r[l - 3] == '\r') { + _send_response(); + _clear_client(); + return; + } + + int read = 0; + ERR_FAIL_COND(req_pos >= 4096); + Error err = connection->get_partial_data(&req_buf[req_pos], 1, read); + if (err != OK) { + // Got an error + _clear_client(); + return; + } else if (read != 1) { + // Busy, wait next poll + return; + } + req_pos += read; + } + } +}; + class EditorExportPlatformJavaScript : public EditorExportPlatform { GDCLASS(EditorExportPlatformJavaScript, EditorExportPlatform); Ref<ImageTexture> logo; Ref<ImageTexture> run_icon; - bool runnable_when_last_polled; + Ref<ImageTexture> stop_icon; + int menu_options; void _fix_html(Vector<uint8_t> &p_html, const Ref<EditorExportPreset> &p_preset, const String &p_name, bool p_debug); +private: + Ref<EditorHTTPServer> server; + bool server_quit; + Mutex *server_lock; + Thread *server_thread; + + static void _server_thread_poll(void *data); + public: virtual void get_preset_features(const Ref<EditorExportPreset> &p_preset, List<String> *r_features); @@ -61,11 +199,12 @@ public: virtual List<String> get_binary_extensions(const Ref<EditorExportPreset> &p_preset) const; virtual Error export_project(const Ref<EditorExportPreset> &p_preset, bool p_debug, const String &p_path, int p_flags = 0); - virtual bool poll_devices(); - virtual int get_device_count() const; - virtual String get_device_name(int p_device) const { return TTR("Run in Browser"); } - virtual String get_device_info(int p_device) const { return TTR("Run exported HTML in the system's default browser."); } - virtual Error run(const Ref<EditorExportPreset> &p_preset, int p_device, int p_debug_flags); + virtual bool poll_export(); + virtual int get_options_count() const; + virtual String get_option_label(int p_index) const { return p_index ? TTR("Stop HTTP Server") : TTR("Run in Browser"); } + virtual String get_option_tooltip(int p_index) const { return p_index ? TTR("Stop HTTP Server") : TTR("Run exported HTML in the system's default browser."); } + virtual Ref<ImageTexture> get_option_icon(int p_index) const; + virtual Error run(const Ref<EditorExportPreset> &p_preset, int p_option, int p_debug_flags); virtual Ref<Texture> get_run_icon() const; virtual void get_platform_features(List<String> *r_features) { @@ -78,6 +217,7 @@ public: } EditorExportPlatformJavaScript(); + ~EditorExportPlatformJavaScript(); }; void EditorExportPlatformJavaScript::_fix_html(Vector<uint8_t> &p_html, const Ref<EditorExportPreset> &p_preset, const String &p_name, bool p_debug) { @@ -337,7 +477,7 @@ Error EditorExportPlatformJavaScript::export_project(const Ref<EditorExportPrese return OK; } -bool EditorExportPlatformJavaScript::poll_devices() { +bool EditorExportPlatformJavaScript::poll_export() { Ref<EditorExportPreset> preset; @@ -350,17 +490,37 @@ bool EditorExportPlatformJavaScript::poll_devices() { } } - bool prev = runnable_when_last_polled; - runnable_when_last_polled = preset.is_valid(); - return runnable_when_last_polled != prev; + int prev = menu_options; + menu_options = preset.is_valid(); + if (server->is_listening()) { + if (menu_options == 0) { + server_lock->lock(); + server->stop(); + server_lock->unlock(); + } else { + menu_options += 1; + } + } + return menu_options != prev; +} + +Ref<ImageTexture> EditorExportPlatformJavaScript::get_option_icon(int p_index) const { + return p_index == 1 ? stop_icon : EditorExportPlatform::get_option_icon(p_index); } -int EditorExportPlatformJavaScript::get_device_count() const { +int EditorExportPlatformJavaScript::get_options_count() const { - return runnable_when_last_polled; + return menu_options; } -Error EditorExportPlatformJavaScript::run(const Ref<EditorExportPreset> &p_preset, int p_device, int p_debug_flags) { +Error EditorExportPlatformJavaScript::run(const Ref<EditorExportPreset> &p_preset, int p_option, int p_debug_flags) { + + if (p_option == 1) { + server_lock->lock(); + server->stop(); + server_lock->unlock(); + return OK; + } String basepath = EditorSettings::get_singleton()->get_cache_dir().plus_file("tmp_js_export"); String path = basepath + ".html"; @@ -374,7 +534,26 @@ Error EditorExportPlatformJavaScript::run(const Ref<EditorExportPreset> &p_prese DirAccess::remove_file_or_error(basepath + ".wasm"); return err; } - OS::get_singleton()->shell_open(String("file://") + path); + + IP_Address bind_ip; + uint16_t bind_port = EDITOR_GET("export/web/http_port"); + // Resolve host if needed. + String bind_host = EDITOR_GET("export/web/http_host"); + if (bind_host.is_valid_ip_address()) { + bind_ip = bind_host; + } else { + bind_ip = IP::get_singleton()->resolve_hostname(bind_host); + } + ERR_FAIL_COND_V_MSG(!bind_ip.is_valid(), ERR_INVALID_PARAMETER, "Invalid editor setting 'export/web/http_host': '" + bind_host + "'. Try using '127.0.0.1'."); + + // Restart server. + server_lock->lock(); + server->stop(); + err = server->listen(bind_port, bind_ip); + server_lock->unlock(); + ERR_FAIL_COND_V_MSG(err != OK, err, "Unable to start HTTP server."); + + OS::get_singleton()->shell_open(String("http://" + bind_host + ":" + itos(bind_port) + "/tmp_js_export.html")); // FIXME: Find out how to clean up export files after running the successfully // exported game. Might not be trivial. return OK; @@ -385,8 +564,23 @@ Ref<Texture> EditorExportPlatformJavaScript::get_run_icon() const { return run_icon; } +void EditorExportPlatformJavaScript::_server_thread_poll(void *data) { + EditorExportPlatformJavaScript *ej = (EditorExportPlatformJavaScript *)data; + while (!ej->server_quit) { + OS::get_singleton()->delay_usec(1000); + ej->server_lock->lock(); + ej->server->poll(); + ej->server_lock->unlock(); + } +} + EditorExportPlatformJavaScript::EditorExportPlatformJavaScript() { + server.instance(); + server_quit = false; + server_lock = Mutex::create(); + server_thread = Thread::create(_server_thread_poll, this); + Ref<Image> img = memnew(Image(_javascript_logo)); logo.instance(); logo->create_from_image(img); @@ -395,11 +589,29 @@ EditorExportPlatformJavaScript::EditorExportPlatformJavaScript() { run_icon.instance(); run_icon->create_from_image(img); - runnable_when_last_polled = false; + Ref<Theme> theme = EditorNode::get_singleton()->get_editor_theme(); + if (theme.is_valid()) + stop_icon = theme->get_icon("Stop", "EditorIcons"); + else + stop_icon.instance(); + + menu_options = 0; +} + +EditorExportPlatformJavaScript::~EditorExportPlatformJavaScript() { + server->stop(); + server_quit = true; + Thread::wait_to_finish(server_thread); + memdelete(server_lock); + memdelete(server_thread); } void register_javascript_exporter() { + EDITOR_DEF("export/web/http_host", "localhost"); + EDITOR_DEF("export/web/http_port", 8060); + EditorSettings::get_singleton()->add_property_hint(PropertyInfo(Variant::INT, "export/web/http_port", PROPERTY_HINT_RANGE, "1,65535,1")); + Ref<EditorExportPlatformJavaScript> platform; platform.instance(); EditorExport::get_singleton()->add_export_platform(platform); diff --git a/platform/javascript/logo.png b/platform/javascript/logo.png Binary files differindex 36832d93ba..c046d87dc4 100644 --- a/platform/javascript/logo.png +++ b/platform/javascript/logo.png diff --git a/platform/javascript/os_javascript.cpp b/platform/javascript/os_javascript.cpp index b0661cb4dd..652f6a1ce1 100644 --- a/platform/javascript/os_javascript.cpp +++ b/platform/javascript/os_javascript.cpp @@ -837,7 +837,7 @@ void OS_JavaScript::set_clipboard(const String &p_text) { var text = UTF8ToString($0); if (!navigator.clipboard || !navigator.clipboard.writeText) return 1; - navigator.clipboard.writeText(text).catch(e => { + navigator.clipboard.writeText(text).catch(function(e) { // Setting OS clipboard is only possible from an input callback. console.error("Setting OS clipboard is only possible from an input callback for the HTML5 plafrom. Exception:", e); }); diff --git a/platform/osx/camera_osx.mm b/platform/osx/camera_osx.mm index f13cf76beb..af09eec2eb 100644 --- a/platform/osx/camera_osx.mm +++ b/platform/osx/camera_osx.mm @@ -150,8 +150,8 @@ { // do Y - int new_width = CVPixelBufferGetWidthOfPlane(pixelBuffer, 0); - int new_height = CVPixelBufferGetHeightOfPlane(pixelBuffer, 0); + size_t new_width = CVPixelBufferGetWidthOfPlane(pixelBuffer, 0); + size_t new_height = CVPixelBufferGetHeightOfPlane(pixelBuffer, 0); if ((width[0] != new_width) || (height[0] != new_height)) { width[0] = new_width; @@ -168,8 +168,8 @@ { // do CbCr - int new_width = CVPixelBufferGetWidthOfPlane(pixelBuffer, 1); - int new_height = CVPixelBufferGetHeightOfPlane(pixelBuffer, 1); + size_t new_width = CVPixelBufferGetWidthOfPlane(pixelBuffer, 1); + size_t new_height = CVPixelBufferGetHeightOfPlane(pixelBuffer, 1); if ((width[1] != new_width) || (height[1] != new_height)) { width[1] = new_width; diff --git a/platform/osx/crash_handler_osx.mm b/platform/osx/crash_handler_osx.mm index e19fdf1b9f..015859b3c0 100644 --- a/platform/osx/crash_handler_osx.mm +++ b/platform/osx/crash_handler_osx.mm @@ -95,7 +95,7 @@ static void handle_crash(int sig) { if (strings) { void *load_addr = (void *)load_address(); - for (int i = 1; i < size; i++) { + for (size_t i = 1; i < size; i++) { char fname[1024]; Dl_info info; @@ -142,7 +142,7 @@ static void handle_crash(int sig) { } } - fprintf(stderr, "[%d] %ls\n", i, output.c_str()); + fprintf(stderr, "[%zu] %ls\n", i, output.c_str()); } free(strings); diff --git a/platform/osx/detect.py b/platform/osx/detect.py index 881ed05025..7882253e7a 100644 --- a/platform/osx/detect.py +++ b/platform/osx/detect.py @@ -91,6 +91,9 @@ def configure(env): env['RANLIB'] = mpprefix + "/libexec/llvm-" + mpclangver + "/bin/llvm-ranlib" env['AS'] = mpprefix + "/libexec/llvm-" + mpclangver + "/bin/llvm-as" env.Append(CPPDEFINES=['__MACPORTS__']) #hack to fix libvpx MM256_BROADCASTSI128_SI256 define + else: + env['CC'] = 'clang' + env['CXX'] = 'clang++' detect_darwin_sdk_path('osx', env) env.Append(CCFLAGS=['-isysroot', '$MACOS_SDK_PATH']) diff --git a/platform/osx/dir_access_osx.mm b/platform/osx/dir_access_osx.mm index ada142005b..75f50aaa28 100644 --- a/platform/osx/dir_access_osx.mm +++ b/platform/osx/dir_access_osx.mm @@ -48,18 +48,25 @@ String DirAccessOSX::fix_unicode_name(const char *p_name) const { } int DirAccessOSX::get_drive_count() { - NSArray *vols = [[NSWorkspace sharedWorkspace] mountedLocalVolumePaths]; + NSArray *res_keys = [NSArray arrayWithObjects:NSURLVolumeURLKey, NSURLIsSystemImmutableKey, nil]; + NSArray *vols = [[NSFileManager defaultManager] mountedVolumeURLsIncludingResourceValuesForKeys:res_keys options:NSVolumeEnumerationSkipHiddenVolumes]; + return [vols count]; } String DirAccessOSX::get_drive(int p_drive) { - NSArray *vols = [[NSWorkspace sharedWorkspace] mountedLocalVolumePaths]; + NSArray *res_keys = [NSArray arrayWithObjects:NSURLVolumeURLKey, NSURLIsSystemImmutableKey, nil]; + NSArray *vols = [[NSFileManager defaultManager] mountedVolumeURLsIncludingResourceValuesForKeys:res_keys options:NSVolumeEnumerationSkipHiddenVolumes]; int count = [vols count]; ERR_FAIL_INDEX_V(p_drive, count, ""); - NSString *path = vols[p_drive]; - return String([path UTF8String]); + String volname; + NSString *path = [vols[p_drive] path]; + + volname.parse_utf8([path UTF8String]); + + return volname; } #endif //posix_enabled diff --git a/platform/osx/export/export.cpp b/platform/osx/export/export.cpp index c8ecbd5a2d..9226aea369 100644 --- a/platform/osx/export/export.cpp +++ b/platform/osx/export/export.cpp @@ -132,10 +132,12 @@ void EditorExportPlatformOSX::get_export_options(List<ExportOption> *r_options) r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "display/high_res"), false)); #ifdef OSX_ENABLED - r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "codesign/identity"), "")); + r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "codesign/enable"), false)); + r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "codesign/identity", PROPERTY_HINT_PLACEHOLDER_TEXT, "Type: Name (ID)"), "")); r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "codesign/timestamp"), true)); r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "codesign/hardened_runtime"), true)); r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "codesign/entitlements", PROPERTY_HINT_GLOBAL_FILE, "*.plist"), "")); + r_options->push_back(ExportOption(PropertyInfo(Variant::POOL_STRING_ARRAY, "codesign/custom_options"), PoolStringArray())); #endif r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "texture_format/s3tc"), true)); @@ -375,16 +377,27 @@ Error EditorExportPlatformOSX::_code_sign(const Ref<EditorExportPreset> &p_prese args.push_back("--entitlements"); args.push_back(p_preset->get("codesign/entitlements")); } + + PoolStringArray user_args = p_preset->get("codesign/custom_options"); + for (int i = 0; i < user_args.size(); i++) { + String user_arg = user_args[i].strip_edges(); + if (!user_arg.empty()) { + args.push_back(user_arg); + } + } + args.push_back("-s"); args.push_back(p_preset->get("codesign/identity")); + args.push_back("-v"); /* provide some more feedback */ + args.push_back(p_path); String str; Error err = OS::get_singleton()->execute("codesign", args, true, NULL, &str, NULL, true); ERR_FAIL_COND_V(err != OK, err); - print_line("codesign: " + str); + print_line("codesign (" + p_path + "): " + str); if (str.find("no identity found") != -1) { EditorNode::add_io_error("codesign: no identity found"); return FAILED; @@ -663,20 +676,20 @@ Error EditorExportPlatformOSX::export_project(const Ref<EditorExportPreset> &p_p err = save_pack(p_preset, pack_path, &shared_objects); // see if we can code sign our new package - String identity = p_preset->get("codesign/identity"); + bool sign_enabled = p_preset->get("codesign/enable"); if (err == OK) { DirAccess *da = DirAccess::create(DirAccess::ACCESS_FILESYSTEM); for (int i = 0; i < shared_objects.size(); i++) { err = da->copy(shared_objects[i].path, tmp_app_path_name + "/Contents/Frameworks/" + shared_objects[i].path.get_file()); - if (err == OK && identity != "") { + if (err == OK && sign_enabled) { err = _code_sign(p_preset, tmp_app_path_name + "/Contents/Frameworks/" + shared_objects[i].path.get_file()); } } memdelete(da); } - if (err == OK && identity != "") { + if (err == OK && sign_enabled) { if (ep.step("Code signing bundle", 2)) { return ERR_SKIP; } diff --git a/platform/osx/joypad_osx.cpp b/platform/osx/joypad_osx.cpp index fa124dac11..4edf347f61 100644 --- a/platform/osx/joypad_osx.cpp +++ b/platform/osx/joypad_osx.cpp @@ -578,7 +578,7 @@ JoypadOSX::JoypadOSX() { const size_t n_elements = sizeof(vals) / sizeof(vals[0]); CFArrayRef array = okay ? CFArrayCreate(kCFAllocatorDefault, vals, n_elements, &kCFTypeArrayCallBacks) : NULL; - for (int i = 0; i < n_elements; i++) { + for (size_t i = 0; i < n_elements; i++) { if (vals[i]) { CFRelease((CFTypeRef)vals[i]); } diff --git a/platform/osx/logo.png b/platform/osx/logo.png Binary files differindex 62086fc415..834bbf3ba6 100644 --- a/platform/osx/logo.png +++ b/platform/osx/logo.png diff --git a/platform/osx/os_osx.h b/platform/osx/os_osx.h index f1f37e24d2..09a871f26c 100644 --- a/platform/osx/os_osx.h +++ b/platform/osx/os_osx.h @@ -31,6 +31,8 @@ #ifndef OS_OSX_H #define OS_OSX_H +#define BitMap _QDBitMap // Suppress deprecated QuickDraw definition. + #include "camera_osx.h" #include "core/os/input.h" #include "crash_handler_osx.h" @@ -50,6 +52,7 @@ #include <ApplicationServices/ApplicationServices.h> #include <CoreVideo/CoreVideo.h> +#undef BitMap #undef CursorShape class OS_OSX : public OS_Unix { diff --git a/platform/osx/os_osx.mm b/platform/osx/os_osx.mm index d30cb1c092..ba3ac9862e 100644 --- a/platform/osx/os_osx.mm +++ b/platform/osx/os_osx.mm @@ -339,6 +339,8 @@ static CVReturn DisplayLinkCallback(CVDisplayLinkRef displayLink, const CVTimeSt CGFloat oldBackingScaleFactor = [[[notification userInfo] objectForKey:@"NSBackingPropertyOldScaleFactorKey"] doubleValue]; if (OS_OSX::singleton->is_hidpi_allowed()) { [OS_OSX::singleton->window_view setWantsBestResolutionOpenGLSurface:YES]; + } else { + [OS_OSX::singleton->window_view setWantsBestResolutionOpenGLSurface:NO]; } if (newBackingScaleFactor != oldBackingScaleFactor) { @@ -618,7 +620,7 @@ static const NSRange kEmptyRange = { NSNotFound, 0 }; NSArray *filenames = [pboard propertyListForType:NSFilenamesPboardType]; Vector<String> files; - for (int i = 0; i < filenames.count; i++) { + for (NSUInteger i = 0; i < filenames.count; i++) { NSString *ns = [filenames objectAtIndex:i]; char *utfs = strdup([ns UTF8String]); String ret; @@ -707,6 +709,11 @@ static void _mouseDownEvent(NSEvent *event, int index, int mask, bool pressed) { const CGFloat backingScaleFactor = [[event window] backingScaleFactor]; const Vector2 pos = get_mouse_pos([event locationInWindow], backingScaleFactor); mm->set_position(pos); + mm->set_pressure([event pressure]); + if ([event subtype] == NSTabletPointEventSubtype) { + const NSPoint p = [event tilt]; + mm->set_tilt(Vector2(p.x, p.y)); + } mm->set_global_position(pos); mm->set_speed(OS_OSX::singleton->input->get_last_mouse_speed()); Vector2 relativeMotion = Vector2(); @@ -1492,13 +1499,15 @@ Error OS_OSX::initialize(const VideoMode &p_desired, int p_video_driver, int p_a [window_view setWantsBestResolutionOpenGLSurface:YES]; //if (current_videomode.resizable) [window_object setCollectionBehavior:NSWindowCollectionBehaviorFullScreenPrimary]; + } else { + [window_view setWantsBestResolutionOpenGLSurface:NO]; } //[window_object setTitle:[NSString stringWithUTF8String:"GodotEnginies"]]; [window_object setContentView:window_view]; [window_object setDelegate:window_delegate]; [window_object setAcceptsMouseMovedEvents:YES]; - [window_object center]; + [(NSWindow *)window_object center]; [window_object setRestorable:NO]; @@ -2334,12 +2343,12 @@ void OS_OSX::set_current_screen(int p_screen) { }; Point2 OS_OSX::get_native_screen_position(int p_screen) const { - if (p_screen == -1) { + if (p_screen < 0) { p_screen = get_current_screen(); } NSArray *screenArray = [NSScreen screens]; - if (p_screen < [screenArray count]) { + if ((NSUInteger)p_screen < [screenArray count]) { float display_scale = _display_scale([screenArray objectAtIndex:p_screen]); NSRect nsrect = [[screenArray objectAtIndex:p_screen] frame]; // Return the top-left corner of the screen, for OS X the y starts at the bottom @@ -2358,12 +2367,12 @@ Point2 OS_OSX::get_screen_position(int p_screen) const { } int OS_OSX::get_screen_dpi(int p_screen) const { - if (p_screen == -1) { + if (p_screen < 0) { p_screen = get_current_screen(); } NSArray *screenArray = [NSScreen screens]; - if (p_screen < [screenArray count]) { + if ((NSUInteger)p_screen < [screenArray count]) { float displayScale = _display_scale([screenArray objectAtIndex:p_screen]); NSDictionary *description = [[screenArray objectAtIndex:p_screen] deviceDescription]; NSSize displayPixelSize = [[description objectForKey:NSDeviceSize] sizeValue]; @@ -2377,12 +2386,12 @@ int OS_OSX::get_screen_dpi(int p_screen) const { } Size2 OS_OSX::get_screen_size(int p_screen) const { - if (p_screen == -1) { + if (p_screen < 0) { p_screen = get_current_screen(); } NSArray *screenArray = [NSScreen screens]; - if (p_screen < [screenArray count]) { + if ((NSUInteger)p_screen < [screenArray count]) { float displayScale = _display_scale([screenArray objectAtIndex:p_screen]); // Note: Use frame to get the whole screen size NSRect nsrect = [[screenArray objectAtIndex:p_screen] frame]; diff --git a/platform/windows/detect.py b/platform/windows/detect.py index cc9ba720a8..9a2b2bcb98 100644 --- a/platform/windows/detect.py +++ b/platform/windows/detect.py @@ -65,6 +65,8 @@ def get_opts(): BoolVariable('separate_debug_symbols', 'Create a separate file containing debugging symbols', False), ('msvc_version', 'MSVC version to use. Ignored if VCINSTALLDIR is set in shell env.', None), BoolVariable('use_mingw', 'Use the Mingw compiler, even if MSVC is installed. Only used on Windows.', False), + BoolVariable('use_llvm', 'Use the LLVM compiler', False), + BoolVariable('use_thinlto', 'Use ThinLTO', False), ] @@ -312,17 +314,33 @@ def configure_mingw(env): env.Append(LINKFLAGS=['-static']) mingw_prefix = env["mingw_prefix_64"] - env["CC"] = mingw_prefix + "gcc" - env['AS'] = mingw_prefix + "as" - env['CXX'] = mingw_prefix + "g++" - env['AR'] = mingw_prefix + "gcc-ar" - env['RANLIB'] = mingw_prefix + "gcc-ranlib" - env['LINK'] = mingw_prefix + "g++" + if env['use_llvm']: + env["CC"] = mingw_prefix + "clang" + env['AS'] = mingw_prefix + "as" + env["CXX"] = mingw_prefix + "clang++" + env['AR'] = mingw_prefix + "ar" + env['RANLIB'] = mingw_prefix + "ranlib" + env["LINK"] = mingw_prefix + "clang++" + else: + env["CC"] = mingw_prefix + "gcc" + env['AS'] = mingw_prefix + "as" + env['CXX'] = mingw_prefix + "g++" + env['AR'] = mingw_prefix + "gcc-ar" + env['RANLIB'] = mingw_prefix + "gcc-ranlib" + env['LINK'] = mingw_prefix + "g++" env["x86_libtheora_opt_gcc"] = True if env['use_lto']: - env.Append(CCFLAGS=['-flto']) - env.Append(LINKFLAGS=['-flto=' + str(env.GetOption("num_jobs"))]) + if not env['use_llvm'] and env.GetOption("num_jobs") > 1: + env.Append(CCFLAGS=['-flto']) + env.Append(LINKFLAGS=['-flto=' + str(env.GetOption("num_jobs"))]) + else: + if env['use_thinlto']: + env.Append(CCFLAGS=['-flto=thin']) + env.Append(LINKFLAGS=['-flto=thin']) + else: + env.Append(CCFLAGS=['-flto']) + env.Append(LINKFLAGS=['-flto']) ## Compile flags @@ -332,7 +350,7 @@ def configure_mingw(env): env.Append(CPPDEFINES=[('WINVER', env['target_win_version']), ('_WIN32_WINNT', env['target_win_version'])]) env.Append(LIBS=['mingw32', 'opengl32', 'dsound', 'ole32', 'd3d9', 'winmm', 'gdi32', 'iphlpapi', 'shlwapi', 'wsock32', 'ws2_32', 'kernel32', 'oleaut32', 'dinput8', 'dxguid', 'ksuser', 'imm32', 'bcrypt', 'avrt', 'uuid']) - env.Append(CPPDEFINES=['MINGW_ENABLED']) + env.Append(CPPDEFINES=['MINGW_ENABLED', ('MINGW_HAS_SECURE_API', 1)]) # resrc env.Append(BUILDERS={'RES': env.Builder(action=build_res_file, suffix='.o', src_suffix='.rc')}) diff --git a/platform/windows/export/export.cpp b/platform/windows/export/export.cpp index 827daa2d58..3abb05b494 100644 --- a/platform/windows/export/export.cpp +++ b/platform/windows/export/export.cpp @@ -31,6 +31,7 @@ #include "core/os/file_access.h" #include "core/os/os.h" #include "editor/editor_export.h" +#include "editor/editor_node.h" #include "editor/editor_settings.h" #include "platform/windows/logo.gen.h" @@ -38,11 +39,22 @@ static Error fixup_embedded_pck(const String &p_path, int64_t p_embedded_start, class EditorExportPlatformWindows : public EditorExportPlatformPC { + Error _code_sign(const Ref<EditorExportPreset> &p_preset, const String &p_path); + public: virtual Error export_project(const Ref<EditorExportPreset> &p_preset, bool p_debug, const String &p_path, int p_flags = 0); + virtual Error sign_shared_object(const Ref<EditorExportPreset> &p_preset, bool p_debug, const String &p_path); virtual void get_export_options(List<ExportOption> *r_options); }; +Error EditorExportPlatformWindows::sign_shared_object(const Ref<EditorExportPreset> &p_preset, bool p_debug, const String &p_path) { + if (p_preset->get("codesign/enable")) { + return _code_sign(p_preset, p_path); + } else { + return OK; + } +} + Error EditorExportPlatformWindows::export_project(const Ref<EditorExportPreset> &p_preset, bool p_debug, const String &p_path, int p_flags) { Error err = EditorExportPlatformPC::export_project(p_preset, p_debug, p_path, p_flags); @@ -133,12 +145,28 @@ Error EditorExportPlatformWindows::export_project(const Ref<EditorExportPreset> OS::get_singleton()->execute(wine_path, args, true); #endif - return OK; + if (p_preset->get("codesign/enable") && err == OK) { + err = _code_sign(p_preset, p_path); + } + + return err; } void EditorExportPlatformWindows::get_export_options(List<ExportOption> *r_options) { EditorExportPlatformPC::get_export_options(r_options); + r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "codesign/enable"), false)); +#ifdef WINDOWS_ENABLED + r_options->push_back(ExportOption(PropertyInfo(Variant::INT, "codesign/identity_type", PROPERTY_HINT_ENUM, "Select automatically,Use PKCS12 file (specify *.PFX/*.P12 file),Use certificate store (specify SHA1 hash)"), 0)); +#endif + r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "codesign/identity", PROPERTY_HINT_GLOBAL_FILE, "*.pfx,*.p12"), "")); + r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "codesign/password"), "")); + r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "codesign/timestamp"), true)); + r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "codesign/timestamp_server_url"), "")); + r_options->push_back(ExportOption(PropertyInfo(Variant::INT, "codesign/digest_algorithm", PROPERTY_HINT_ENUM, "SHA1,SHA256"), 1)); + r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "codesign/description"), "")); + r_options->push_back(ExportOption(PropertyInfo(Variant::POOL_STRING_ARRAY, "codesign/custom_options"), PoolStringArray())); + r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "application/icon", PROPERTY_HINT_FILE, "*.ico"), "")); r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "application/file_version", PROPERTY_HINT_PLACEHOLDER_TEXT, "1.0.0"), "")); r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "application/product_version", PROPERTY_HINT_PLACEHOLDER_TEXT, "1.0.0"), "")); @@ -149,11 +177,164 @@ void EditorExportPlatformWindows::get_export_options(List<ExportOption> *r_optio r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "application/trademarks"), "")); } +Error EditorExportPlatformWindows::_code_sign(const Ref<EditorExportPreset> &p_preset, const String &p_path) { + List<String> args; + +#ifdef WINDOWS_ENABLED + String signtool_path = EditorSettings::get_singleton()->get("export/windows/signtool"); + if (signtool_path != String() && !FileAccess::exists(signtool_path)) { + ERR_PRINTS("Could not find signtool executable at " + signtool_path + ", aborting."); + return ERR_FILE_NOT_FOUND; + } + if (signtool_path == String()) { + signtool_path = "signtool"; // try to run signtool from PATH + } +#else + String signtool_path = EditorSettings::get_singleton()->get("export/windows/osslsigncode"); + if (signtool_path != String() && !FileAccess::exists(signtool_path)) { + ERR_PRINTS("Could not find osslsigncode executable at " + signtool_path + ", aborting."); + return ERR_FILE_NOT_FOUND; + } + if (signtool_path == String()) { + signtool_path = "osslsigncode"; // try to run signtool from PATH + } +#endif + + args.push_back("sign"); + + //identity +#ifdef WINDOWS_ENABLED + int id_type = p_preset->get("codesign/identity_type"); + if (id_type == 0) { //auto select + args.push_back("/a"); + } else if (id_type == 1) { //pkcs12 + if (p_preset->get("codesign/identity") != "") { + args.push_back("/f"); + args.push_back(p_preset->get("codesign/identity")); + } else { + EditorNode::add_io_error("codesign: no identity found"); + return FAILED; + } + } else if (id_type == 2) { //Windows certificate store + if (p_preset->get("codesign/identity") != "") { + args.push_back("/sha1"); + args.push_back(p_preset->get("codesign/identity")); + } else { + EditorNode::add_io_error("codesign: no identity found"); + return FAILED; + } + } else { + EditorNode::add_io_error("codesign: invalid identity type"); + return FAILED; + } +#else + if (p_preset->get("codesign/identity") != "") { + args.push_back("-pkcs12"); + args.push_back(p_preset->get("codesign/identity")); + } else { + EditorNode::add_io_error("codesign: no identity found"); + return FAILED; + } +#endif + + //password + if (p_preset->get("codesign/password") != "") { +#ifdef WINDOWS_ENABLED + args.push_back("/p"); +#else + args.push_back("-pass"); +#endif + args.push_back(p_preset->get("codesign/password")); + } + + //timestamp + if (p_preset->get("codesign/timestamp")) { + if (p_preset->get("codesign/timestamp_server") != "") { +#ifdef WINDOWS_ENABLED + args.push_back("/tr"); + args.push_back(p_preset->get("codesign/timestamp_server_url")); + args.push_back("/td"); + if ((int)p_preset->get("codesign/digest_algorithm") == 0) { + args.push_back("sha1"); + } else { + args.push_back("sha256"); + } +#else + args.push_back("-ts"); + args.push_back(p_preset->get("codesign/timestamp_server_url")); +#endif + } else { + EditorNode::add_io_error("codesign: invalid timestamp server"); + return FAILED; + } + } + + //digest +#ifdef WINDOWS_ENABLED + args.push_back("/fd"); +#else + args.push_back("-h"); +#endif + if ((int)p_preset->get("codesign/digest_algorithm") == 0) { + args.push_back("sha1"); + } else { + args.push_back("sha256"); + } + + //description + if (p_preset->get("codesign/description") != "") { +#ifdef WINDOWS_ENABLED + args.push_back("/d"); +#else + args.push_back("-n"); +#endif + args.push_back(p_preset->get("codesign/description")); + } + + //user options + PoolStringArray user_args = p_preset->get("codesign/custom_options"); + for (int i = 0; i < user_args.size(); i++) { + String user_arg = user_args[i].strip_edges(); + if (!user_arg.empty()) { + args.push_back(user_arg); + } + } + +#ifndef WINDOWS_ENABLED + args.push_back("-in"); +#endif + args.push_back(p_path); +#ifndef WINDOWS_ENABLED + args.push_back("-out"); + args.push_back(p_path); +#endif + + String str; + Error err = OS::get_singleton()->execute(signtool_path, args, true, NULL, &str, NULL, true); + ERR_FAIL_COND_V(err != OK, err); + + print_line("codesign (" + p_path + "): " + str); +#ifndef WINDOWS_ENABLED + if (str.find("SignTool Error") != -1) { +#else + if (str.find("Failed") != -1) { +#endif + return FAILED; + } + + return OK; +} + void register_windows_exporter() { EDITOR_DEF("export/windows/rcedit", ""); EditorSettings::get_singleton()->add_property_hint(PropertyInfo(Variant::STRING, "export/windows/rcedit", PROPERTY_HINT_GLOBAL_FILE, "*.exe")); -#ifndef WINDOWS_ENABLED +#ifdef WINDOWS_ENABLED + EDITOR_DEF("export/windows/signtool", ""); + EditorSettings::get_singleton()->add_property_hint(PropertyInfo(Variant::STRING, "export/windows/signtool", PROPERTY_HINT_GLOBAL_FILE, "*.exe")); +#else + EDITOR_DEF("export/windows/osslsigncode", ""); + EditorSettings::get_singleton()->add_property_hint(PropertyInfo(Variant::STRING, "export/windows/osslsigncode", PROPERTY_HINT_GLOBAL_FILE)); // On non-Windows we need WINE to run rcedit EDITOR_DEF("export/windows/wine", ""); EditorSettings::get_singleton()->add_property_hint(PropertyInfo(Variant::STRING, "export/windows/wine", PROPERTY_HINT_GLOBAL_FILE)); diff --git a/platform/windows/godot.natvis b/platform/windows/godot.natvis index 55c83c3f3c..593557cc69 100644 --- a/platform/windows/godot.natvis +++ b/platform/windows/godot.natvis @@ -143,4 +143,12 @@ <Item Name="alpha">a</Item> </Expand> </Type> + + <Type Name="Node" Inheritable="false"> + <Expand> + <Item Name="Object">(Object*)this</Item> + <Item Name="class_name">(StringName*)(((char*)this) + sizeof(Object))</Item> + <Item Name="data">(Node::Data*)(((char*)this) + sizeof(Object) + sizeof(StringName))</Item> + </Expand> + </Type> </AutoVisualizer> diff --git a/platform/windows/os_windows.cpp b/platform/windows/os_windows.cpp index 81b8d08b3d..c4cd8e068c 100644 --- a/platform/windows/os_windows.cpp +++ b/platform/windows/os_windows.cpp @@ -70,6 +70,10 @@ __declspec(dllexport) int AmdPowerXpressRequestHighPerformance = 1; #define WM_TOUCH 576 #endif +#ifndef WM_POINTERUPDATE +#define WM_POINTERUPDATE 0x0245 +#endif + typedef struct { int count; int screen; @@ -192,6 +196,9 @@ BOOL WINAPI HandlerRoutine(_In_ DWORD dwCtrlType) { } } +GetPointerTypePtr OS_Windows::win8p_GetPointerType = NULL; +GetPointerPenInfoPtr OS_Windows::win8p_GetPointerPenInfo = NULL; + void OS_Windows::initialize_debugging() { SetConsoleCtrlHandler(HandlerRoutine, TRUE); @@ -288,15 +295,16 @@ void OS_Windows::_drag_event(float p_x, float p_y, int idx) { if (curr->get() == Vector2(p_x, p_y)) return; - curr->get() = Vector2(p_x, p_y); - Ref<InputEventScreenDrag> event; event.instance(); event->set_index(idx); event->set_position(Vector2(p_x, p_y)); + event->set_relative(Vector2(p_x, p_y) - curr->get()); if (main_loop) input->accumulate_input_event(event); + + curr->get() = Vector2(p_x, p_y); }; LRESULT OS_Windows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { @@ -480,6 +488,113 @@ LRESULT OS_Windows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) } delete[] lpb; } break; + case WM_POINTERUPDATE: { + if (mouse_mode == MOUSE_MODE_CAPTURED && use_raw_input) { + break; + } + + if (!win8p_GetPointerType || !win8p_GetPointerPenInfo) { + break; + } + + uint32_t pointer_id = LOWORD(wParam); + POINTER_INPUT_TYPE pointer_type = PT_POINTER; + if (!win8p_GetPointerType(pointer_id, &pointer_type)) { + break; + } + + if (pointer_type != PT_PEN) { + break; + } + + POINTER_PEN_INFO pen_info; + if (!win8p_GetPointerPenInfo(pointer_id, &pen_info)) { + break; + } + + if (input->is_emulating_mouse_from_touch()) { + // Universal translation enabled; ignore OS translation + LPARAM extra = GetMessageExtraInfo(); + if (IsTouchEvent(extra)) { + break; + } + } + + if (outside) { + //mouse enter + + if (main_loop && mouse_mode != MOUSE_MODE_CAPTURED) + main_loop->notification(MainLoop::NOTIFICATION_WM_MOUSE_ENTER); + + CursorShape c = cursor_shape; + cursor_shape = CURSOR_MAX; + set_cursor_shape(c); + outside = false; + + //Once-Off notification, must call again.... + TRACKMOUSEEVENT tme; + tme.cbSize = sizeof(TRACKMOUSEEVENT); + tme.dwFlags = TME_LEAVE; + tme.hwndTrack = hWnd; + tme.dwHoverTime = HOVER_DEFAULT; + TrackMouseEvent(&tme); + } + + // Don't calculate relative mouse movement if we don't have focus in CAPTURED mode. + if (!window_has_focus && mouse_mode == MOUSE_MODE_CAPTURED) + break; + + Ref<InputEventMouseMotion> mm; + mm.instance(); + + mm->set_pressure(pen_info.pressure ? (float)pen_info.pressure / 1024 : 0); + mm->set_tilt(Vector2(pen_info.tiltX ? (float)pen_info.tiltX / 90 : 0, pen_info.tiltY ? (float)pen_info.tiltY / 90 : 0)); + + mm->set_control((wParam & MK_CONTROL) != 0); + mm->set_shift((wParam & MK_SHIFT) != 0); + mm->set_alt(alt_mem); + + mm->set_button_mask(last_button_state); + + mm->set_position(Vector2(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); + mm->set_global_position(Vector2(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); + + if (mouse_mode == MOUSE_MODE_CAPTURED) { + + Point2i c(video_mode.width / 2, video_mode.height / 2); + old_x = c.x; + old_y = c.y; + + if (mm->get_position() == c) { + center = c; + return 0; + } + + Point2i ncenter = mm->get_position(); + center = ncenter; + POINT pos = { (int)c.x, (int)c.y }; + ClientToScreen(hWnd, &pos); + SetCursorPos(pos.x, pos.y); + } + + input->set_mouse_position(mm->get_position()); + mm->set_speed(input->get_last_mouse_speed()); + + if (old_invalid) { + + old_x = mm->get_position().x; + old_y = mm->get_position().y; + old_invalid = false; + } + + mm->set_relative(Vector2(mm->get_position() - Vector2(old_x, old_y))); + old_x = mm->get_position().x; + old_y = mm->get_position().y; + if (window_has_focus && main_loop) + input->parse_input_event(mm); + + return 0; //Pointer event handled return 0 to avoid duplicate WM_MOUSEMOVE event + } break; case WM_MOUSEMOVE: { if (mouse_mode == MOUSE_MODE_CAPTURED && use_raw_input) { break; @@ -1875,6 +1990,8 @@ void OS_Windows::set_window_fullscreen(bool p_enabled) { if (p_enabled) { + was_maximized = maximized; + if (pre_fs_valid) { GetWindowRect(hWnd, &pre_fs_rect); } @@ -1904,7 +2021,7 @@ void OS_Windows::set_window_fullscreen(bool p_enabled) { rect.bottom = video_mode.height; } - _update_window_style(false); + _update_window_style(false, was_maximized); MoveWindow(hWnd, rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top, TRUE); @@ -2086,12 +2203,16 @@ bool OS_Windows::get_borderless_window() { return video_mode.borderless_window; } -void OS_Windows::_update_window_style(bool repaint) { +void OS_Windows::_update_window_style(bool p_repaint, bool p_maximized) { if (video_mode.fullscreen || video_mode.borderless_window) { SetWindowLongPtr(hWnd, GWL_STYLE, WS_SYSMENU | WS_POPUP | WS_CLIPCHILDREN | WS_CLIPSIBLINGS | WS_VISIBLE); } else { if (video_mode.resizable) { - SetWindowLongPtr(hWnd, GWL_STYLE, WS_OVERLAPPEDWINDOW | WS_VISIBLE); + if (p_maximized) { + SetWindowLongPtr(hWnd, GWL_STYLE, WS_OVERLAPPEDWINDOW | WS_VISIBLE | WS_MAXIMIZE); + } else { + SetWindowLongPtr(hWnd, GWL_STYLE, WS_OVERLAPPEDWINDOW | WS_VISIBLE); + } } else { SetWindowLongPtr(hWnd, GWL_STYLE, WS_CAPTION | WS_MINIMIZEBOX | WS_POPUPWINDOW | WS_VISIBLE); } @@ -2099,7 +2220,7 @@ void OS_Windows::_update_window_style(bool repaint) { SetWindowPos(hWnd, video_mode.always_on_top ? HWND_TOPMOST : HWND_NOTOPMOST, 0, 0, 0, 0, SWP_FRAMECHANGED | SWP_NOMOVE | SWP_NOSIZE); - if (repaint) { + if (p_repaint) { RECT rect; GetWindowRect(hWnd, &rect); MoveWindow(hWnd, rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top, TRUE); @@ -3246,8 +3367,16 @@ OS_Windows::OS_Windows(HINSTANCE _hInstance) { control_mem = false; meta_mem = false; minimized = false; + was_maximized = false; console_visible = IsWindowVisible(GetConsoleWindow()); + //Note: Functions for pen input, available on Windows 8+ + HMODULE user32_lib = LoadLibraryW(L"user32.dll"); + if (user32_lib) { + win8p_GetPointerType = (GetPointerTypePtr)GetProcAddress(user32_lib, "GetPointerType"); + win8p_GetPointerPenInfo = (GetPointerPenInfoPtr)GetProcAddress(user32_lib, "GetPointerPenInfo"); + } + hInstance = _hInstance; pressrc = 0; old_invalid = true; diff --git a/platform/windows/os_windows.h b/platform/windows/os_windows.h index 915d025e3b..ce279fb033 100644 --- a/platform/windows/os_windows.h +++ b/platform/windows/os_windows.h @@ -56,6 +56,71 @@ #include <windows.h> #include <windowsx.h> +#ifndef POINTER_STRUCTURES + +#define POINTER_STRUCTURES + +typedef DWORD POINTER_INPUT_TYPE; +typedef UINT32 POINTER_FLAGS; +typedef UINT32 PEN_FLAGS; +typedef UINT32 PEN_MASK; + +enum tagPOINTER_INPUT_TYPE { + PT_POINTER = 0x00000001, + PT_TOUCH = 0x00000002, + PT_PEN = 0x00000003, + PT_MOUSE = 0x00000004, + PT_TOUCHPAD = 0x00000005 +}; + +typedef enum tagPOINTER_BUTTON_CHANGE_TYPE { + POINTER_CHANGE_NONE, + POINTER_CHANGE_FIRSTBUTTON_DOWN, + POINTER_CHANGE_FIRSTBUTTON_UP, + POINTER_CHANGE_SECONDBUTTON_DOWN, + POINTER_CHANGE_SECONDBUTTON_UP, + POINTER_CHANGE_THIRDBUTTON_DOWN, + POINTER_CHANGE_THIRDBUTTON_UP, + POINTER_CHANGE_FOURTHBUTTON_DOWN, + POINTER_CHANGE_FOURTHBUTTON_UP, + POINTER_CHANGE_FIFTHBUTTON_DOWN, + POINTER_CHANGE_FIFTHBUTTON_UP, +} POINTER_BUTTON_CHANGE_TYPE; + +typedef struct tagPOINTER_INFO { + POINTER_INPUT_TYPE pointerType; + UINT32 pointerId; + UINT32 frameId; + POINTER_FLAGS pointerFlags; + HANDLE sourceDevice; + HWND hwndTarget; + POINT ptPixelLocation; + POINT ptHimetricLocation; + POINT ptPixelLocationRaw; + POINT ptHimetricLocationRaw; + DWORD dwTime; + UINT32 historyCount; + INT32 InputData; + DWORD dwKeyStates; + UINT64 PerformanceCount; + POINTER_BUTTON_CHANGE_TYPE ButtonChangeType; +} POINTER_INFO; + +typedef struct tagPOINTER_PEN_INFO { + POINTER_INFO pointerInfo; + PEN_FLAGS penFlags; + PEN_MASK penMask; + UINT32 pressure; + UINT32 rotation; + INT32 tiltX; + INT32 tiltY; +} POINTER_PEN_INFO; + +#endif + +typedef BOOL(WINAPI *GetPointerTypePtr)(uint32_t p_id, POINTER_INPUT_TYPE *p_type); +typedef BOOL(WINAPI *GetPointerPenInfoPtr)(uint32_t p_id, POINTER_PEN_INFO *p_pen_info); + typedef struct { BYTE bWidth; // Width, in pixels, of the image BYTE bHeight; // Height, in pixels, of the image @@ -77,11 +142,16 @@ typedef struct { class JoypadWindows; class OS_Windows : public OS { + static GetPointerTypePtr win8p_GetPointerType; + static GetPointerPenInfoPtr win8p_GetPointerPenInfo; + enum { KEY_EVENT_BUFFER_SIZE = 512 }; +#ifdef STDOUT_FILE FILE *stdo; +#endif struct KeyEvent { @@ -107,7 +177,6 @@ class OS_Windows : public OS { VisualServer *visual_server; CameraWindows *camera_server; int pressrc; - HDC hDC; // Private GDI Device Context HINSTANCE hInstance; // Holds The Instance Of The Application HWND hWnd; Point2 last_pos; @@ -175,7 +244,7 @@ class OS_Windows : public OS { void _drag_event(float p_x, float p_y, int idx); void _touch_event(bool p_pressed, float p_x, float p_y, int idx); - void _update_window_style(bool repaint = true); + void _update_window_style(bool p_repaint = true, bool p_maximized = false); void _set_mouse_mode_impl(MouseMode p_mode); @@ -208,6 +277,7 @@ protected: bool minimized; bool borderless; bool console_visible; + bool was_maximized; public: LRESULT WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam); diff --git a/platform/x11/os_x11.cpp b/platform/x11/os_x11.cpp index 39160ee720..c695d657e7 100644 --- a/platform/x11/os_x11.cpp +++ b/platform/x11/os_x11.cpp @@ -83,6 +83,12 @@ #define XINPUT_CLIENT_VERSION_MAJOR 2 #define XINPUT_CLIENT_VERSION_MINOR 2 +#define VALUATOR_ABSX 0 +#define VALUATOR_ABSY 1 +#define VALUATOR_PRESSURE 2 +#define VALUATOR_TILTX 3 +#define VALUATOR_TILTY 4 + static const double abs_resolution_mult = 10000.0; static const double abs_resolution_range_mult = 10.0; @@ -665,6 +671,15 @@ bool OS_X11::refresh_device_info() { int range_min_y = 0; int range_max_x = 0; int range_max_y = 0; + int pressure_resolution = 0; + int pressure_min = 0; + int pressure_max = 0; + int tilt_resolution_x = 0; + int tilt_resolution_y = 0; + int tilt_range_min_x = 0; + int tilt_range_min_y = 0; + int tilt_range_max_x = 0; + int tilt_range_max_y = 0; for (int j = 0; j < dev->num_classes; j++) { #ifdef TOUCH_ENABLED if (dev->classes[j]->type == XITouchClass && ((XITouchClassInfo *)dev->classes[j])->mode == XIDirectTouch) { @@ -674,16 +689,28 @@ bool OS_X11::refresh_device_info() { if (dev->classes[j]->type == XIValuatorClass) { XIValuatorClassInfo *class_info = (XIValuatorClassInfo *)dev->classes[j]; - if (class_info->number == 0 && class_info->mode == XIModeAbsolute) { + if (class_info->number == VALUATOR_ABSX && class_info->mode == XIModeAbsolute) { resolution_x = class_info->resolution; range_min_x = class_info->min; range_max_x = class_info->max; absolute_mode = true; - } else if (class_info->number == 1 && class_info->mode == XIModeAbsolute) { + } else if (class_info->number == VALUATOR_ABSY && class_info->mode == XIModeAbsolute) { resolution_y = class_info->resolution; range_min_y = class_info->min; range_max_y = class_info->max; absolute_mode = true; + } else if (class_info->number == VALUATOR_PRESSURE && class_info->mode == XIModeAbsolute) { + pressure_resolution = class_info->resolution; + pressure_min = class_info->min; + pressure_max = class_info->max; + } else if (class_info->number == VALUATOR_TILTX && class_info->mode == XIModeAbsolute) { + tilt_resolution_x = class_info->resolution; + tilt_range_min_x = class_info->min; + tilt_range_max_x = class_info->max; + } else if (class_info->number == VALUATOR_TILTY && class_info->mode == XIModeAbsolute) { + tilt_resolution_y = class_info->resolution; + tilt_range_min_y = class_info->min; + tilt_range_max_y = class_info->max; } } } @@ -703,6 +730,18 @@ bool OS_X11::refresh_device_info() { xi.absolute_devices[dev->deviceid] = Vector2(abs_resolution_mult / resolution_x, abs_resolution_mult / resolution_y); print_verbose("XInput: Absolute pointing device: " + String(dev->name)); } + + if (pressure_resolution <= 0) { + pressure_resolution = (pressure_max - pressure_min); + } + if (tilt_resolution_x <= 0) { + tilt_resolution_x = (tilt_range_max_x - tilt_range_min_x); + } + if (tilt_resolution_y <= 0) { + tilt_resolution_y = (tilt_range_max_y - tilt_range_min_y); + } + xi.pressure = 0; + xi.pen_devices[dev->deviceid] = Vector3(pressure_resolution, tilt_resolution_x, tilt_resolution_y); } XIFreeDeviceInfo(info); @@ -1767,7 +1806,8 @@ void OS_X11::handle_key_event(XKeyEvent *p_event, bool p_echo) { XKeyEvent xkeyevent_no_mod = *xkeyevent; xkeyevent_no_mod.state &= ~ShiftMask; xkeyevent_no_mod.state &= ~ControlMask; - XLookupString(&xkeyevent_no_mod, str, 256, &keysym_keycode, NULL); + XLookupString(xkeyevent, str, 256, &keysym_unicode, NULL); + XLookupString(&xkeyevent_no_mod, NULL, 0, &keysym_keycode, NULL); // Meanwhile, XLookupString returns keysyms useful for unicode. @@ -1777,8 +1817,6 @@ void OS_X11::handle_key_event(XKeyEvent *p_event, bool p_echo) { xmblen = 8; } - keysym_unicode = keysym_keycode; - if (xkeyevent->type == KeyPress && xic) { Status status; @@ -2096,14 +2134,39 @@ void OS_X11::process_xevents() { double rel_x = 0.0; double rel_y = 0.0; + double pressure = 0.0; + double tilt_x = 0.0; + double tilt_y = 0.0; - if (XIMaskIsSet(raw_event->valuators.mask, 0)) { + if (XIMaskIsSet(raw_event->valuators.mask, VALUATOR_ABSX)) { rel_x = *values; values++; } - if (XIMaskIsSet(raw_event->valuators.mask, 1)) { + if (XIMaskIsSet(raw_event->valuators.mask, VALUATOR_ABSY)) { rel_y = *values; + values++; + } + + if (XIMaskIsSet(raw_event->valuators.mask, VALUATOR_PRESSURE)) { + pressure = *values; + values++; + } + + if (XIMaskIsSet(raw_event->valuators.mask, VALUATOR_TILTX)) { + tilt_x = *values; + values++; + } + + if (XIMaskIsSet(raw_event->valuators.mask, VALUATOR_TILTY)) { + tilt_y = *values; + } + + Map<int, Vector3>::Element *pen_info = xi.pen_devices.find(device_id); + if (pen_info) { + Vector3 mult = pen_info->value(); + if (mult.x != 0.0) xi.pressure = pressure / mult.x; + if ((mult.y != 0.0) && (mult.z != 0.0)) xi.tilt = Vector2(tilt_x / mult.y, tilt_y / mult.z); } // https://bugs.freedesktop.org/show_bug.cgi?id=71609 @@ -2418,6 +2481,9 @@ void OS_X11::process_xevents() { Ref<InputEventMouseMotion> mm; mm.instance(); + mm->set_pressure(xi.pressure); + mm->set_tilt(xi.tilt); + // Make the absolute position integral so it doesn't look _too_ weird :) Point2i posi(pos); diff --git a/platform/x11/os_x11.h b/platform/x11/os_x11.h index e6c2effacf..a5576f4402 100644 --- a/platform/x11/os_x11.h +++ b/platform/x11/os_x11.h @@ -131,9 +131,12 @@ class OS_X11 : public OS_Unix { int opcode; Vector<int> touch_devices; Map<int, Vector2> absolute_devices; + Map<int, Vector3> pen_devices; XIEventMask all_event_mask; XIEventMask all_master_event_mask; Map<int, Vector2> state; + double pressure; + Vector2 tilt; Vector2 mouse_pos_to_filter; Vector2 relative_motion; Vector2 raw_pos; diff --git a/scene/2d/animated_sprite.cpp b/scene/2d/animated_sprite.cpp index 20ec06f033..9d02408641 100644 --- a/scene/2d/animated_sprite.cpp +++ b/scene/2d/animated_sprite.cpp @@ -604,10 +604,14 @@ bool AnimatedSprite::_is_playing() const { void AnimatedSprite::play(const StringName &p_animation, const bool p_backwards) { - if (p_animation) + backwards = p_backwards; + + if (p_animation) { set_animation(p_animation); + if (backwards && get_frame() == 0) + set_frame(frames->get_frame_count(p_animation) - 1); + } - backwards = p_backwards; _set_playing(true); } diff --git a/scene/2d/canvas_item.cpp b/scene/2d/canvas_item.cpp index b38fbfe981..fa23e3fd39 100644 --- a/scene/2d/canvas_item.cpp +++ b/scene/2d/canvas_item.cpp @@ -360,6 +360,10 @@ bool CanvasItem::_edit_is_selected_on_click(const Point2 &p_point, double p_tole } } +Transform2D CanvasItem::_edit_get_transform() const { + return Transform2D(_edit_get_rotation(), _edit_get_position() + _edit_get_pivot()); +} + bool CanvasItem::is_visible_in_tree() const { if (!is_inside_tree()) @@ -735,6 +739,19 @@ void CanvasItem::draw_polyline_colors(const Vector<Point2> &p_points, const Vect VisualServer::get_singleton()->canvas_item_add_polyline(canvas_item, p_points, p_colors, p_width, p_antialiased); } +void CanvasItem::draw_arc(const Vector2 &p_center, float p_radius, float p_start_angle, float p_end_angle, int p_point_count, const Color &p_color, float p_width, bool p_antialiased) { + + Vector<Point2> points; + points.resize(p_point_count); + const float delta_angle = p_end_angle - p_start_angle; + for (int i = 0; i < p_point_count; i++) { + float theta = (i / (p_point_count - 1.0f)) * delta_angle + p_start_angle; + points.set(i, p_center + Vector2(Math::cos(theta), Math::sin(theta)) * p_radius); + } + + draw_polyline(points, p_color, p_width, p_antialiased); +} + void CanvasItem::draw_multiline(const Vector<Point2> &p_points, const Color &p_color, float p_width, bool p_antialiased) { ERR_FAIL_COND_MSG(!drawing, "Drawing is only allowed inside NOTIFICATION_DRAW, _draw() function or 'draw' signal."); @@ -777,29 +794,29 @@ void CanvasItem::draw_rect(const Rect2 &p_rect, const Color &p_color, bool p_fil VisualServer::get_singleton()->canvas_item_add_line( canvas_item, - p_rect.position + Point2(-offset, 0), + p_rect.position + Size2(-offset, 0), p_rect.position + Size2(p_rect.size.width + offset, 0), p_color, p_width, p_antialiased); VisualServer::get_singleton()->canvas_item_add_line( canvas_item, - p_rect.position + Point2(0, offset), - p_rect.position + Size2(0, p_rect.size.height - offset), + p_rect.position + Size2(p_rect.size.width, offset), + p_rect.position + Size2(p_rect.size.width, p_rect.size.height - offset), p_color, p_width, p_antialiased); VisualServer::get_singleton()->canvas_item_add_line( canvas_item, - p_rect.position + Point2(-offset, p_rect.size.height), p_rect.position + Size2(p_rect.size.width + offset, p_rect.size.height), + p_rect.position + Size2(-offset, p_rect.size.height), p_color, p_width, p_antialiased); VisualServer::get_singleton()->canvas_item_add_line( canvas_item, - p_rect.position + Point2(p_rect.size.width, offset), - p_rect.position + Size2(p_rect.size.width, p_rect.size.height - offset), + p_rect.position + Size2(0, p_rect.size.height - offset), + p_rect.position + Size2(0, offset), p_color, p_width, p_antialiased); @@ -1120,6 +1137,7 @@ void CanvasItem::_bind_methods() { ClassDB::bind_method(D_METHOD("_edit_set_pivot", "pivot"), &CanvasItem::_edit_set_pivot); ClassDB::bind_method(D_METHOD("_edit_get_pivot"), &CanvasItem::_edit_get_pivot); ClassDB::bind_method(D_METHOD("_edit_use_pivot"), &CanvasItem::_edit_use_pivot); + ClassDB::bind_method(D_METHOD("_edit_get_transform"), &CanvasItem::_edit_get_transform); ClassDB::bind_method(D_METHOD("get_canvas_item"), &CanvasItem::get_canvas_item); @@ -1152,6 +1170,7 @@ void CanvasItem::_bind_methods() { ClassDB::bind_method(D_METHOD("draw_line", "from", "to", "color", "width", "antialiased"), &CanvasItem::draw_line, DEFVAL(1.0), DEFVAL(false)); ClassDB::bind_method(D_METHOD("draw_polyline", "points", "color", "width", "antialiased"), &CanvasItem::draw_polyline, DEFVAL(1.0), DEFVAL(false)); ClassDB::bind_method(D_METHOD("draw_polyline_colors", "points", "colors", "width", "antialiased"), &CanvasItem::draw_polyline_colors, DEFVAL(1.0), DEFVAL(false)); + ClassDB::bind_method(D_METHOD("draw_arc", "center", "radius", "start_angle", "end_angle", "point_count", "color", "width", "antialiased"), &CanvasItem::draw_arc, DEFVAL(1.0), DEFVAL(false)); ClassDB::bind_method(D_METHOD("draw_multiline", "points", "color", "width", "antialiased"), &CanvasItem::draw_multiline, DEFVAL(1.0), DEFVAL(false)); ClassDB::bind_method(D_METHOD("draw_multiline_colors", "points", "colors", "width", "antialiased"), &CanvasItem::draw_multiline_colors, DEFVAL(1.0), DEFVAL(false)); ClassDB::bind_method(D_METHOD("draw_rect", "rect", "color", "filled", "width", "antialiased"), &CanvasItem::draw_rect, DEFVAL(true), DEFVAL(1.0), DEFVAL(false)); diff --git a/scene/2d/canvas_item.h b/scene/2d/canvas_item.h index 9c6799a441..e51ee601e2 100644 --- a/scene/2d/canvas_item.h +++ b/scene/2d/canvas_item.h @@ -281,6 +281,8 @@ public: virtual void _edit_set_pivot(const Point2 &p_pivot){}; virtual Point2 _edit_get_pivot() const { return Point2(); }; + virtual Transform2D _edit_get_transform() const; + /* VISIBILITY */ void set_visible(bool p_visible); @@ -305,6 +307,7 @@ public: void draw_line(const Point2 &p_from, const Point2 &p_to, const Color &p_color, float p_width = 1.0, bool p_antialiased = false); void draw_polyline(const Vector<Point2> &p_points, const Color &p_color, float p_width = 1.0, bool p_antialiased = false); void draw_polyline_colors(const Vector<Point2> &p_points, const Vector<Color> &p_colors, float p_width = 1.0, bool p_antialiased = false); + void draw_arc(const Vector2 &p_center, float p_radius, float p_start_angle, float p_end_angle, int p_point_count, const Color &p_color, float p_width = 1.0, bool p_antialiased = false); void draw_multiline(const Vector<Point2> &p_points, const Color &p_color, float p_width = 1.0, bool p_antialiased = false); void draw_multiline_colors(const Vector<Point2> &p_points, const Vector<Color> &p_colors, float p_width = 1.0, bool p_antialiased = false); void draw_rect(const Rect2 &p_rect, const Color &p_color, bool p_filled = true, float p_width = 1.0, bool p_antialiased = false); diff --git a/scene/2d/cpu_particles_2d.cpp b/scene/2d/cpu_particles_2d.cpp index 85c423964b..372d8f614b 100644 --- a/scene/2d/cpu_particles_2d.cpp +++ b/scene/2d/cpu_particles_2d.cpp @@ -37,6 +37,9 @@ void CPUParticles2D::set_emitting(bool p_emitting) { + if (emitting == p_emitting) + return; + emitting = p_emitting; if (emitting) set_process_internal(true); @@ -257,8 +260,7 @@ void CPUParticles2D::restart() { inactive_time = 0; frame_remainder = 0; cycle = 0; - - set_emitting(true); + emitting = false; { int pc = particles.size(); @@ -268,6 +270,8 @@ void CPUParticles2D::restart() { w[i].active = false; } } + + set_emitting(true); } void CPUParticles2D::set_direction(Vector2 p_direction) { @@ -535,6 +539,74 @@ static float rand_from_seed(uint32_t &seed) { return float(seed % uint32_t(65536)) / 65535.0; } +void CPUParticles2D::_update_internal() { + + if (particles.size() == 0 || !is_visible_in_tree()) { + _set_redraw(false); + return; + } + + float delta = get_process_delta_time(); + if (emitting) { + inactive_time = 0; + } else { + inactive_time += delta; + if (inactive_time > lifetime * 1.2) { + set_process_internal(false); + _set_redraw(false); + + //reset variables + time = 0; + inactive_time = 0; + frame_remainder = 0; + cycle = 0; + return; + } + } + _set_redraw(true); + + if (time == 0 && pre_process_time > 0.0) { + + float frame_time; + if (fixed_fps > 0) + frame_time = 1.0 / fixed_fps; + else + frame_time = 1.0 / 30.0; + + float todo = pre_process_time; + + while (todo >= 0) { + _particles_process(frame_time); + todo -= frame_time; + } + } + + if (fixed_fps > 0) { + float frame_time = 1.0 / fixed_fps; + float decr = frame_time; + + float ldelta = delta; + if (ldelta > 0.1) { //avoid recursive stalls if fps goes below 10 + ldelta = 0.1; + } else if (ldelta <= 0.0) { //unlikely but.. + ldelta = 0.001; + } + float todo = frame_remainder + ldelta; + + while (todo >= frame_time) { + _particles_process(frame_time); + todo -= decr; + } + + frame_remainder = todo; + + } else { + _particles_process(delta); + } + + _update_particle_data_buffer(); +} + void CPUParticles2D::_particles_process(float p_delta) { p_delta *= speed_scale; @@ -965,7 +1037,9 @@ void CPUParticles2D::_set_redraw(bool p_redraw) { VS::get_singleton()->multimesh_set_visible_instances(multimesh, -1); } else { - VS::get_singleton()->disconnect("frame_pre_draw", this, "_update_render_thread"); + if (VS::get_singleton()->is_connected("frame_pre_draw", this, "_update_render_thread")) { + VS::get_singleton()->disconnect("frame_pre_draw", this, "_update_render_thread"); + } VS::get_singleton()->canvas_item_set_update_when_visible(get_canvas_item(), false); VS::get_singleton()->multimesh_set_visible_instances(multimesh, 0); @@ -1000,6 +1074,10 @@ void CPUParticles2D::_notification(int p_what) { } if (p_what == NOTIFICATION_DRAW) { + // first update before rendering to avoid one frame delay after emitting starts + if (emitting && (time == 0)) + _update_internal(); + if (!redraw) return; // don't add to render list @@ -1017,71 +1095,7 @@ void CPUParticles2D::_notification(int p_what) { } if (p_what == NOTIFICATION_INTERNAL_PROCESS) { - - if (particles.size() == 0 || !is_visible_in_tree()) { - _set_redraw(false); - return; - } - - float delta = get_process_delta_time(); - if (emitting) { - inactive_time = 0; - } else { - inactive_time += delta; - if (inactive_time > lifetime * 1.2) { - set_process_internal(false); - _set_redraw(false); - - //reset variables - time = 0; - inactive_time = 0; - frame_remainder = 0; - cycle = 0; - return; - } - } - _set_redraw(true); - - if (time == 0 && pre_process_time > 0.0) { - - float frame_time; - if (fixed_fps > 0) - frame_time = 1.0 / fixed_fps; - else - frame_time = 1.0 / 30.0; - - float todo = pre_process_time; - - while (todo >= 0) { - _particles_process(frame_time); - todo -= frame_time; - } - } - - if (fixed_fps > 0) { - float frame_time = 1.0 / fixed_fps; - float decr = frame_time; - - float ldelta = delta; - if (ldelta > 0.1) { //avoid recursive stalls if fps goes below 10 - ldelta = 0.1; - } else if (ldelta <= 0.0) { //unlikely but.. - ldelta = 0.001; - } - float todo = frame_remainder + ldelta; - - while (todo >= frame_time) { - _particles_process(frame_time); - todo -= decr; - } - - frame_remainder = todo; - - } else { - _particles_process(delta); - } - - _update_particle_data_buffer(); + _update_internal(); } if (p_what == NOTIFICATION_TRANSFORM_CHANGED) { @@ -1411,6 +1425,7 @@ CPUParticles2D::CPUParticles2D() { frame_remainder = 0; cycle = 0; redraw = false; + emitting = false; mesh = VisualServer::get_singleton()->mesh_create(); multimesh = VisualServer::get_singleton()->multimesh_create(); diff --git a/scene/2d/cpu_particles_2d.h b/scene/2d/cpu_particles_2d.h index da668664b9..47b4568dd4 100644 --- a/scene/2d/cpu_particles_2d.h +++ b/scene/2d/cpu_particles_2d.h @@ -174,6 +174,7 @@ private: Vector2 gravity; + void _update_internal(); void _particles_process(float p_delta); void _update_particle_data_buffer(); diff --git a/scene/2d/joints_2d.cpp b/scene/2d/joints_2d.cpp index d8156a0afe..847d08b025 100644 --- a/scene/2d/joints_2d.cpp +++ b/scene/2d/joints_2d.cpp @@ -37,8 +37,8 @@ void Joint2D::_update_joint(bool p_only_free) { if (joint.is_valid()) { - if (ba.is_valid() && bb.is_valid()) - Physics2DServer::get_singleton()->body_remove_collision_exception(ba, bb); + if (ba.is_valid() && bb.is_valid() && exclude_from_collision) + Physics2DServer::get_singleton()->joint_disable_collisions_between_bodies(joint, false); Physics2DServer::get_singleton()->free(joint); joint = RID(); @@ -61,8 +61,6 @@ void Joint2D::_update_joint(bool p_only_free) { if (!body_a || !body_b) return; - SWAP(body_a, body_b); - joint = _configure_joint(body_a, body_b); if (!joint.is_valid()) @@ -133,6 +131,8 @@ void Joint2D::set_exclude_nodes_from_collision(bool p_enable) { if (exclude_from_collision == p_enable) return; + + _update_joint(true); exclude_from_collision = p_enable; _update_joint(); } diff --git a/scene/2d/sprite.cpp b/scene/2d/sprite.cpp index 83f92ce2bc..8cdfceea52 100644 --- a/scene/2d/sprite.cpp +++ b/scene/2d/sprite.cpp @@ -269,8 +269,8 @@ int Sprite::get_frame() const { } void Sprite::set_frame_coords(const Vector2 &p_coord) { - ERR_FAIL_INDEX(int(p_coord.x), vframes); - ERR_FAIL_INDEX(int(p_coord.y), hframes); + ERR_FAIL_INDEX(int(p_coord.x), hframes); + ERR_FAIL_INDEX(int(p_coord.y), vframes); set_frame(int(p_coord.y) * hframes + int(p_coord.x)); } @@ -387,6 +387,10 @@ void Sprite::_validate_property(PropertyInfo &property) const { property.hint_string = "0," + itos(vframes * hframes - 1) + ",1"; property.usage |= PROPERTY_USAGE_KEYING_INCREMENTS; } + + if (property.name == "frame_coords") { + property.usage |= PROPERTY_USAGE_KEYING_INCREMENTS; + } } void Sprite::_texture_changed() { diff --git a/scene/2d/tile_map.cpp b/scene/2d/tile_map.cpp index c9ba51bafb..173214dfe4 100644 --- a/scene/2d/tile_map.cpp +++ b/scene/2d/tile_map.cpp @@ -955,6 +955,7 @@ void TileMap::update_bitmask_region(const Vector2 &p_start, const Vector2 &p_end void TileMap::update_cell_bitmask(int p_x, int p_y) { + ERR_FAIL_COND_MSG(tile_set.is_null(), "Cannot update cell bitmask if Tileset is not open."); PosKey p(p_x, p_y); Map<PosKey, Cell>::Element *E = tile_map.find(p); if (E != NULL) { diff --git a/scene/2d/touch_screen_button.cpp b/scene/2d/touch_screen_button.cpp index 9a1a759e72..cf68528388 100644 --- a/scene/2d/touch_screen_button.cpp +++ b/scene/2d/touch_screen_button.cpp @@ -325,8 +325,12 @@ void TouchScreenButton::_release(bool p_exiting_tree) { } Rect2 TouchScreenButton::_edit_get_rect() const { - if (texture.is_null()) - return CanvasItem::_edit_get_rect(); + if (texture.is_null()) { + if (shape.is_valid()) + return shape->get_rect(); + else + return CanvasItem::_edit_get_rect(); + } return Rect2(Size2(), texture->get_size()); } diff --git a/scene/3d/cpu_particles.cpp b/scene/3d/cpu_particles.cpp index 93ff60bc4e..86daabefd2 100644 --- a/scene/3d/cpu_particles.cpp +++ b/scene/3d/cpu_particles.cpp @@ -46,9 +46,17 @@ PoolVector<Face3> CPUParticles::get_faces(uint32_t p_usage_flags) const { void CPUParticles::set_emitting(bool p_emitting) { + if (emitting == p_emitting) + return; + emitting = p_emitting; - if (emitting) + if (emitting) { set_process_internal(true); + + // first update before rendering to avoid one frame delay after emitting starts + if (time == 0) + _update_internal(); + } } void CPUParticles::set_amount(int p_amount) { @@ -232,8 +240,7 @@ void CPUParticles::restart() { inactive_time = 0; frame_remainder = 0; cycle = 0; - - set_emitting(true); + emitting = false; { int pc = particles.size(); @@ -243,6 +250,8 @@ void CPUParticles::restart() { w[i].active = false; } } + + set_emitting(true); } void CPUParticles::set_direction(Vector3 p_direction) { @@ -508,6 +517,81 @@ static float rand_from_seed(uint32_t &seed) { return float(seed % uint32_t(65536)) / 65535.0; } +void CPUParticles::_update_internal() { + + if (particles.size() == 0 || !is_visible_in_tree()) { + _set_redraw(false); + return; + } + + float delta = get_process_delta_time(); + if (emitting) { + inactive_time = 0; + } else { + inactive_time += delta; + if (inactive_time > lifetime * 1.2) { + set_process_internal(false); + _set_redraw(false); + + //reset variables + time = 0; + inactive_time = 0; + frame_remainder = 0; + cycle = 0; + return; + } + } + _set_redraw(true); + + bool processed = false; + + if (time == 0 && pre_process_time > 0.0) { + + float frame_time; + if (fixed_fps > 0) + frame_time = 1.0 / fixed_fps; + else + frame_time = 1.0 / 30.0; + + float todo = pre_process_time; + + while (todo >= 0) { + _particles_process(frame_time); + processed = true; + todo -= frame_time; + } + } + + if (fixed_fps > 0) { + float frame_time = 1.0 / fixed_fps; + float decr = frame_time; + + float ldelta = delta; + if (ldelta > 0.1) { //avoid recursive stalls if fps goes below 10 + ldelta = 0.1; + } else if (ldelta <= 0.0) { //unlikely but.. + ldelta = 0.001; + } + float todo = frame_remainder + ldelta; + + while (todo >= frame_time) { + _particles_process(frame_time); + processed = true; + todo -= decr; + } + + frame_remainder = todo; + + } else { + _particles_process(delta); + processed = true; + } + + if (processed) { + _update_particle_data_buffer(); + } +} + void CPUParticles::_particles_process(float p_delta) { p_delta *= speed_scale; @@ -1040,7 +1124,9 @@ void CPUParticles::_set_redraw(bool p_redraw) { VS::get_singleton()->instance_geometry_set_flag(get_instance(), VS::INSTANCE_FLAG_DRAW_NEXT_FRAME_IF_VISIBLE, true); VS::get_singleton()->multimesh_set_visible_instances(multimesh, -1); } else { - VS::get_singleton()->disconnect("frame_pre_draw", this, "_update_render_thread"); + if (VS::get_singleton()->is_connected("frame_pre_draw", this, "_update_render_thread")) { + VS::get_singleton()->disconnect("frame_pre_draw", this, "_update_render_thread"); + } VS::get_singleton()->instance_geometry_set_flag(get_instance(), VS::INSTANCE_FLAG_DRAW_NEXT_FRAME_IF_VISIBLE, false); VS::get_singleton()->multimesh_set_visible_instances(multimesh, 0); } @@ -1068,85 +1154,24 @@ void CPUParticles::_notification(int p_what) { if (p_what == NOTIFICATION_ENTER_TREE) { set_process_internal(emitting); + + // first update before rendering to avoid one frame delay after emitting starts + if (emitting && (time == 0)) + _update_internal(); } if (p_what == NOTIFICATION_EXIT_TREE) { _set_redraw(false); } - if (p_what == NOTIFICATION_INTERNAL_PROCESS) { - - if (particles.size() == 0 || !is_visible_in_tree()) { - _set_redraw(false); - return; - } - - float delta = get_process_delta_time(); - if (emitting) { - inactive_time = 0; - } else { - inactive_time += delta; - if (inactive_time > lifetime * 1.2) { - set_process_internal(false); - _set_redraw(false); - - //reset variables - time = 0; - inactive_time = 0; - frame_remainder = 0; - cycle = 0; - return; - } - } - _set_redraw(true); - - bool processed = false; - - if (time == 0 && pre_process_time > 0.0) { - - float frame_time; - if (fixed_fps > 0) - frame_time = 1.0 / fixed_fps; - else - frame_time = 1.0 / 30.0; - - float todo = pre_process_time; - - while (todo >= 0) { - _particles_process(frame_time); - processed = true; - todo -= frame_time; - } - } - - if (fixed_fps > 0) { - float frame_time = 1.0 / fixed_fps; - float decr = frame_time; - - float ldelta = delta; - if (ldelta > 0.1) { //avoid recursive stalls if fps goes below 10 - ldelta = 0.1; - } else if (ldelta <= 0.0) { //unlikely but.. - ldelta = 0.001; - } - float todo = frame_remainder + ldelta; - - while (todo >= frame_time) { - _particles_process(frame_time); - processed = true; - todo -= decr; - } - - frame_remainder = todo; - - } else { - _particles_process(delta); - processed = true; - } + if (p_what == NOTIFICATION_VISIBILITY_CHANGED) { + // first update before rendering to avoid one frame delay after emitting starts + if (emitting && (time == 0)) + _update_internal(); + } - if (processed) { - _update_particle_data_buffer(); - } + if (p_what == NOTIFICATION_INTERNAL_PROCESS) { + _update_internal(); } if (p_what == NOTIFICATION_TRANSFORM_CHANGED) { @@ -1472,6 +1497,7 @@ CPUParticles::CPUParticles() { frame_remainder = 0; cycle = 0; redraw = false; + emitting = false; set_notify_transform(true); diff --git a/scene/3d/cpu_particles.h b/scene/3d/cpu_particles.h index 66b37f359a..635265be7f 100644 --- a/scene/3d/cpu_particles.h +++ b/scene/3d/cpu_particles.h @@ -173,6 +173,7 @@ private: Vector3 gravity; + void _update_internal(); void _particles_process(float p_delta); void _update_particle_data_buffer(); diff --git a/scene/3d/navigation_mesh.cpp b/scene/3d/navigation_mesh.cpp index f82543b789..496dc4b411 100644 --- a/scene/3d/navigation_mesh.cpp +++ b/scene/3d/navigation_mesh.cpp @@ -108,6 +108,24 @@ bool NavigationMesh::get_collision_mask_bit(int p_bit) const { return get_collision_mask() & (1 << p_bit); } +void NavigationMesh::set_source_geometry_mode(int p_geometry_mode) { + ERR_FAIL_INDEX(p_geometry_mode, SOURCE_GEOMETRY_MAX); + source_geometry_mode = static_cast<SourceGeometryMode>(p_geometry_mode); + _change_notify(); +} + +int NavigationMesh::get_source_geometry_mode() const { + return source_geometry_mode; +} + +void NavigationMesh::set_source_group_name(StringName p_group_name) { + source_group_name = p_group_name; +} + +StringName NavigationMesh::get_source_group_name() const { + return source_group_name; +} + void NavigationMesh::set_cell_size(float p_value) { cell_size = p_value; } @@ -387,6 +405,12 @@ void NavigationMesh::_bind_methods() { ClassDB::bind_method(D_METHOD("set_collision_mask_bit", "bit", "value"), &NavigationMesh::set_collision_mask_bit); ClassDB::bind_method(D_METHOD("get_collision_mask_bit", "bit"), &NavigationMesh::get_collision_mask_bit); + ClassDB::bind_method(D_METHOD("set_source_geometry_mode", "mask"), &NavigationMesh::set_source_geometry_mode); + ClassDB::bind_method(D_METHOD("get_source_geometry_mode"), &NavigationMesh::get_source_geometry_mode); + + ClassDB::bind_method(D_METHOD("set_source_group_name", "mask"), &NavigationMesh::set_source_group_name); + ClassDB::bind_method(D_METHOD("get_source_group_name"), &NavigationMesh::get_source_group_name); + ClassDB::bind_method(D_METHOD("set_cell_size", "cell_size"), &NavigationMesh::set_cell_size); ClassDB::bind_method(D_METHOD("get_cell_size"), &NavigationMesh::get_cell_size); @@ -462,6 +486,8 @@ void NavigationMesh::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::INT, "sample_partition_type/sample_partition_type", PROPERTY_HINT_ENUM, "Watershed,Monotone,Layers"), "set_sample_partition_type", "get_sample_partition_type"); ADD_PROPERTY(PropertyInfo(Variant::INT, "geometry/parsed_geometry_type", PROPERTY_HINT_ENUM, "Mesh Instances,Static Colliders,Both"), "set_parsed_geometry_type", "get_parsed_geometry_type"); ADD_PROPERTY(PropertyInfo(Variant::INT, "geometry/collision_mask", PROPERTY_HINT_LAYERS_3D_PHYSICS), "set_collision_mask", "get_collision_mask"); + ADD_PROPERTY(PropertyInfo(Variant::INT, "geometry/source_geometry_mode", PROPERTY_HINT_ENUM, "Navmesh Children, Group With Children, Group Explicit"), "set_source_geometry_mode", "get_source_geometry_mode"); + ADD_PROPERTY(PropertyInfo(Variant::STRING, "geometry/source_group_name"), "set_source_group_name", "get_source_group_name"); ADD_PROPERTY(PropertyInfo(Variant::REAL, "cell/size", PROPERTY_HINT_RANGE, "0.1,1.0,0.01,or_greater"), "set_cell_size", "get_cell_size"); ADD_PROPERTY(PropertyInfo(Variant::REAL, "cell/height", PROPERTY_HINT_RANGE, "0.1,1.0,0.01,or_greater"), "set_cell_height", "get_cell_height"); @@ -489,6 +515,13 @@ void NavigationMesh::_validate_property(PropertyInfo &property) const { return; } } + + if (property.name == "geometry/source_group_name") { + if (source_geometry_mode == SOURCE_GEOMETRY_NAVMESH_CHILDREN) { + property.usage = 0; + return; + } + } } NavigationMesh::NavigationMesh() { @@ -509,6 +542,8 @@ NavigationMesh::NavigationMesh() { partition_type = SAMPLE_PARTITION_WATERSHED; parsed_geometry_type = PARSED_GEOMETRY_MESH_INSTANCES; collision_mask = 0xFFFFFFFF; + source_geometry_mode = SOURCE_GEOMETRY_NAVMESH_CHILDREN; + source_group_name = "navmesh"; filter_low_hanging_obstacles = false; filter_ledge_spans = false; filter_walkable_low_height_spans = false; diff --git a/scene/3d/navigation_mesh.h b/scene/3d/navigation_mesh.h index 5fbf3998ff..d5de653e40 100644 --- a/scene/3d/navigation_mesh.h +++ b/scene/3d/navigation_mesh.h @@ -77,6 +77,13 @@ public: PARSED_GEOMETRY_MAX }; + enum SourceGeometryMode { + SOURCE_GEOMETRY_NAVMESH_CHILDREN = 0, + SOURCE_GEOMETRY_GROUPS_WITH_CHILDREN, + SOURCE_GEOMETRY_GROUPS_EXPLICIT, + SOURCE_GEOMETRY_MAX + }; + protected: float cell_size; float cell_height; @@ -96,6 +103,9 @@ protected: ParsedGeometryType parsed_geometry_type; uint32_t collision_mask; + SourceGeometryMode source_geometry_mode; + StringName source_group_name; + bool filter_low_hanging_obstacles; bool filter_ledge_spans; bool filter_walkable_low_height_spans; @@ -114,6 +124,12 @@ public: void set_collision_mask_bit(int p_bit, bool p_value); bool get_collision_mask_bit(int p_bit) const; + void set_source_geometry_mode(int p_geometry_mode); + int get_source_geometry_mode() const; + + void set_source_group_name(StringName p_group_name); + StringName get_source_group_name() const; + void set_cell_size(float p_value); float get_cell_size() const; diff --git a/scene/3d/soft_body.cpp b/scene/3d/soft_body.cpp index 6c3949a0a8..6883da7f6d 100644 --- a/scene/3d/soft_body.cpp +++ b/scene/3d/soft_body.cpp @@ -115,7 +115,7 @@ SoftBody::PinnedPoint SoftBody::PinnedPoint::operator=(const PinnedPoint &obj) { void SoftBody::_update_pickable() { if (!is_inside_tree()) return; - bool pickable = ray_pickable && is_inside_tree() && is_visible_in_tree(); + bool pickable = ray_pickable && is_visible_in_tree(); PhysicsServer::get_singleton()->soft_body_set_ray_pickable(physics_rid, pickable); } @@ -395,6 +395,8 @@ void SoftBody::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::REAL, "damping_coefficient", PROPERTY_HINT_RANGE, "0,1,0.01"), "set_damping_coefficient", "get_damping_coefficient"); ADD_PROPERTY(PropertyInfo(Variant::REAL, "drag_coefficient", PROPERTY_HINT_RANGE, "0,1,0.01"), "set_drag_coefficient", "get_drag_coefficient"); ADD_PROPERTY(PropertyInfo(Variant::REAL, "pose_matching_coefficient", PROPERTY_HINT_RANGE, "0,1,0.01"), "set_pose_matching_coefficient", "get_pose_matching_coefficient"); + + ADD_PROPERTY(PropertyInfo(Variant::BOOL, "ray_pickable"), "set_ray_pickable", "is_ray_pickable"); } String SoftBody::get_configuration_warning() const { @@ -460,7 +462,9 @@ void SoftBody::update_physics_server() { } else { PhysicsServer::get_singleton()->soft_body_set_mesh(physics_rid, NULL); - VS::get_singleton()->disconnect("frame_pre_draw", this, "_draw_soft_mesh"); + if (VS::get_singleton()->is_connected("frame_pre_draw", this, "_draw_soft_mesh")) { + VS::get_singleton()->disconnect("frame_pre_draw", this, "_draw_soft_mesh"); + } } } @@ -698,7 +702,8 @@ SoftBody::SoftBody() : collision_mask(1), collision_layer(1), simulation_started(false), - pinned_points_cache_dirty(true) { + pinned_points_cache_dirty(true), + ray_pickable(true) { PhysicsServer::get_singleton()->body_attach_object_instance_id(physics_rid, get_instance_id()); //set_notify_transform(true); diff --git a/scene/3d/spatial.cpp b/scene/3d/spatial.cpp index df831f92ef..9a659ef4af 100644 --- a/scene/3d/spatial.cpp +++ b/scene/3d/spatial.cpp @@ -690,11 +690,10 @@ void Spatial::look_at_from_position(const Vector3 &p_pos, const Vector3 &p_targe Transform lookat; lookat.origin = p_pos; - Vector3 original_scale(get_global_transform().basis.get_scale()); + Vector3 original_scale(get_scale()); lookat = lookat.looking_at(p_target, p_up); - // as basis was normalized, we just need to apply original scale back - lookat.basis.scale(original_scale); set_global_transform(lookat); + set_scale(original_scale); } Vector3 Spatial::to_local(Vector3 p_global) const { diff --git a/scene/3d/sprite_3d.cpp b/scene/3d/sprite_3d.cpp index a9dacc442c..adcd80b0ab 100644 --- a/scene/3d/sprite_3d.cpp +++ b/scene/3d/sprite_3d.cpp @@ -577,9 +577,8 @@ void Sprite3D::set_frame(int p_frame) { ERR_FAIL_INDEX(p_frame, int64_t(vframes) * hframes); - if (frame != p_frame) + frame = p_frame; - frame = p_frame; _queue_update(); _change_notify("frame"); @@ -593,8 +592,8 @@ int Sprite3D::get_frame() const { } void Sprite3D::set_frame_coords(const Vector2 &p_coord) { - ERR_FAIL_INDEX(int(p_coord.x), vframes); - ERR_FAIL_INDEX(int(p_coord.y), hframes); + ERR_FAIL_INDEX(int(p_coord.x), hframes); + ERR_FAIL_INDEX(int(p_coord.y), vframes); set_frame(int(p_coord.y) * hframes + int(p_coord.x)); } @@ -663,6 +662,10 @@ void Sprite3D::_validate_property(PropertyInfo &property) const { property.hint_string = "0," + itos(vframes * hframes - 1) + ",1"; property.usage |= PROPERTY_USAGE_KEYING_INCREMENTS; } + + if (property.name == "frame_coords") { + property.usage |= PROPERTY_USAGE_KEYING_INCREMENTS; + } } void Sprite3D::_bind_methods() { diff --git a/scene/animation/tween.cpp b/scene/animation/tween.cpp index 1f9793190d..a7d936fcd3 100644 --- a/scene/animation/tween.cpp +++ b/scene/animation/tween.cpp @@ -281,7 +281,7 @@ void Tween::_bind_methods() { BIND_ENUM_CONSTANT(EASE_OUT_IN); } -Variant &Tween::_get_initial_val(InterpolateData &p_data) { +Variant Tween::_get_initial_val(const InterpolateData &p_data) const { // What type of data are we interpolating? switch (p_data.type) { @@ -299,7 +299,7 @@ Variant &Tween::_get_initial_val(InterpolateData &p_data) { ERR_FAIL_COND_V(object == NULL, p_data.initial_val); // Are we targeting a property or a method? - static Variant initial_val; + Variant initial_val; if (p_data.type == TARGETING_PROPERTY) { // Get the property from the target object bool valid = false; @@ -322,6 +322,41 @@ Variant &Tween::_get_initial_val(InterpolateData &p_data) { return p_data.delta_val; } +Variant Tween::_get_final_val(const InterpolateData &p_data) const { + switch (p_data.type) { + case FOLLOW_PROPERTY: + case FOLLOW_METHOD: { + // Get the object that is being followed + Object *target = ObjectDB::get_instance(p_data.target_id); + ERR_FAIL_COND_V(target == NULL, p_data.initial_val); + + // We want to figure out the final value + Variant final_val; + if (p_data.type == FOLLOW_PROPERTY) { + // Read the property as-is + bool valid = false; + final_val = target->get_indexed(p_data.target_key, &valid); + ERR_FAIL_COND_V(!valid, p_data.initial_val); + } else { + // We're looking at a method. Call the method on the target object + Variant::CallError error; + final_val = target->call(p_data.target_key[0], NULL, 0, error); + ERR_FAIL_COND_V(error.error != Variant::CallError::CALL_OK, p_data.initial_val); + } + + // If we're looking at an INT value, instead convert it to a REAL + // This is better for interpolation + if (final_val.get_type() == Variant::INT) final_val = final_val.operator real_t(); + + return final_val; + } + default: { + // If we're not following a final value/method, use the final value from the data + return p_data.final_val; + } + } +} + Variant &Tween::_get_delta_val(InterpolateData &p_data) { // What kind of data are we interpolating? @@ -384,7 +419,7 @@ Variant &Tween::_get_delta_val(InterpolateData &p_data) { Variant Tween::_run_equation(InterpolateData &p_data) { // Get the initial and delta values from the data - Variant &initial_val = _get_initial_val(p_data); + Variant initial_val = _get_initial_val(p_data); Variant &delta_val = _get_delta_val(p_data); Variant result; @@ -718,7 +753,8 @@ void Tween::_tween_process(float p_delta) { // Is the tween now finished? if (data.finish) { // Set it to the final value directly - _apply_tween_value(data, data.final_val); + Variant final_val = _get_final_val(data); + _apply_tween_value(data, final_val); // Mark the tween as completed and emit the signal data.elapsed = 0; diff --git a/scene/animation/tween.h b/scene/animation/tween.h index 64ce099ecd..574238f5c9 100644 --- a/scene/animation/tween.h +++ b/scene/animation/tween.h @@ -127,7 +127,8 @@ private: real_t _run_equation(TransitionType p_trans_type, EaseType p_ease_type, real_t t, real_t b, real_t c, real_t d); Variant &_get_delta_val(InterpolateData &p_data); - Variant &_get_initial_val(InterpolateData &p_data); + Variant _get_initial_val(const InterpolateData &p_data) const; + Variant _get_final_val(const InterpolateData &p_data) const; Variant _run_equation(InterpolateData &p_data); bool _calc_delta_val(const Variant &p_initial_val, const Variant &p_final_val, Variant &p_delta_val); bool _apply_tween_value(InterpolateData &p_data, Variant &value); diff --git a/scene/gui/color_picker.cpp b/scene/gui/color_picker.cpp index ffe011e5f7..96b62b97f9 100644 --- a/scene/gui/color_picker.cpp +++ b/scene/gui/color_picker.cpp @@ -35,8 +35,8 @@ #include "core/os/os.h" #ifdef TOOLS_ENABLED -#include "editor_scale.h" -#include "editor_settings.h" +#include "editor/editor_scale.h" +#include "editor/editor_settings.h" #endif #include "scene/main/viewport.h" diff --git a/scene/gui/control.cpp b/scene/gui/control.cpp index fafbcf0c55..8b4d5d4980 100644 --- a/scene/gui/control.cpp +++ b/scene/gui/control.cpp @@ -2221,9 +2221,11 @@ void Control::_modal_stack_remove() { if (!data.MI) return; - get_viewport()->_gui_remove_from_modal_stack(data.MI, data.modal_prev_focus_owner); - + List<Control *>::Element *element = data.MI; data.MI = NULL; + + get_viewport()->_gui_remove_from_modal_stack(element, data.modal_prev_focus_owner); + data.modal_prev_focus_owner = 0; } diff --git a/scene/gui/dialogs.cpp b/scene/gui/dialogs.cpp index 31551d6257..19bac5e5ac 100644 --- a/scene/gui/dialogs.cpp +++ b/scene/gui/dialogs.cpp @@ -239,13 +239,15 @@ void WindowDialog::_notification(int p_what) { #ifdef TOOLS_ENABLED case NOTIFICATION_POST_POPUP: { - if (get_tree() && Engine::get_singleton()->is_editor_hint() && EditorNode::get_singleton()) + if (get_tree() && Engine::get_singleton()->is_editor_hint() && EditorNode::get_singleton()) { + was_editor_dimmed = EditorNode::get_singleton()->is_editor_dimmed(); EditorNode::get_singleton()->dim_editor(true); + } } break; case NOTIFICATION_POPUP_HIDE: { - if (get_tree() && Engine::get_singleton()->is_editor_hint() && EditorNode::get_singleton() && !get_viewport()->gui_has_modal_stack()) - EditorNode::get_singleton()->dim_editor(false); + if (get_tree() && Engine::get_singleton()->is_editor_hint() && EditorNode::get_singleton()) + EditorNode::get_singleton()->dim_editor(was_editor_dimmed); } break; #endif } @@ -345,6 +347,10 @@ WindowDialog::WindowDialog() { close_button = memnew(TextureButton); add_child(close_button); close_button->connect("pressed", this, "_closed"); + +#ifdef TOOLS_ENABLED + was_editor_dimmed = false; +#endif } WindowDialog::~WindowDialog() { @@ -356,7 +362,7 @@ void PopupDialog::_notification(int p_what) { if (p_what == NOTIFICATION_DRAW) { RID ci = get_canvas_item(); - get_stylebox("panel", "PopupMenu")->draw(ci, Rect2(Point2(), get_size())); + get_stylebox("panel")->draw(ci, Rect2(Point2(), get_size())); } } diff --git a/scene/gui/dialogs.h b/scene/gui/dialogs.h index afd1173f28..2eb0978e9b 100644 --- a/scene/gui/dialogs.h +++ b/scene/gui/dialogs.h @@ -59,6 +59,10 @@ class WindowDialog : public Popup { Point2 drag_offset_far; bool resizable; +#ifdef TOOLS_ENABLED + bool was_editor_dimmed; +#endif + void _gui_input(const Ref<InputEvent> &p_event); void _closed(); int _drag_hit_test(const Point2 &pos) const; @@ -106,7 +110,6 @@ class AcceptDialog : public WindowDialog { HBoxContainer *hbc; Label *label; Button *ok; - //Button *cancel; no more cancel (there is X on that titlebar) bool hide_on_ok; void _custom_action(const String &p_action); diff --git a/scene/gui/file_dialog.cpp b/scene/gui/file_dialog.cpp index 24c046457b..6400061309 100644 --- a/scene/gui/file_dialog.cpp +++ b/scene/gui/file_dialog.cpp @@ -46,14 +46,31 @@ VBoxContainer *FileDialog::get_vbox() { void FileDialog::_notification(int p_what) { - if (p_what == NOTIFICATION_ENTER_TREE) { + if (p_what == NOTIFICATION_ENTER_TREE || p_what == NOTIFICATION_THEME_CHANGED) { - dir_up->set_icon(get_icon("parent_folder")); - refresh->set_icon(get_icon("reload")); - show_hidden->set_icon(get_icon("toggle_hidden")); - } + if (p_what == NOTIFICATION_ENTER_TREE) { + dir_up->set_icon(get_icon("parent_folder")); + refresh->set_icon(get_icon("reload")); + show_hidden->set_icon(get_icon("toggle_hidden")); + } + + Color font_color = get_color("font_color", "ToolButton"); + Color font_color_hover = get_color("font_color_hover", "ToolButton"); + Color font_color_pressed = get_color("font_color_pressed", "ToolButton"); + + dir_up->add_color_override("icon_color_normal", font_color); + dir_up->add_color_override("icon_color_hover", font_color_hover); + dir_up->add_color_override("icon_color_pressed", font_color_pressed); + + refresh->add_color_override("icon_color_normal", font_color); + refresh->add_color_override("icon_color_hover", font_color_hover); + refresh->add_color_override("icon_color_pressed", font_color_pressed); - if (p_what == NOTIFICATION_POPUP_HIDE) { + show_hidden->add_color_override("icon_color_normal", font_color); + show_hidden->add_color_override("icon_color_hover", font_color_hover); + show_hidden->add_color_override("icon_color_pressed", font_color_pressed); + + } else if (p_what == NOTIFICATION_POPUP_HIDE) { set_process_unhandled_input(false); } @@ -161,8 +178,12 @@ void FileDialog::_post_popup() { set_process_unhandled_input(true); // For open dir mode, deselect all items on file dialog open. - if (mode == MODE_OPEN_DIR) + if (mode == MODE_OPEN_DIR) { deselect_items(); + file_box->set_visible(false); + } else { + file_box->set_visible(true); + } } void FileDialog::_action_pressed() { @@ -396,6 +417,10 @@ void FileDialog::update_file_name() { void FileDialog::update_file_list() { tree->clear(); + + // Scroll back to the top after opening a directory + tree->get_vscroll_bar()->set_value(0); + dir_access->list_dir_begin(); TreeItem *root = tree->create_item(); @@ -877,6 +902,10 @@ FileDialog::FileDialog() { hbc->add_child(dir_up); dir_up->connect("pressed", this, "_go_up"); + drives = memnew(OptionButton); + hbc->add_child(drives); + drives->connect("item_selected", this, "_select_drive"); + hbc->add_child(memnew(Label(RTR("Path:")))); dir = memnew(LineEdit); hbc->add_child(dir); @@ -894,10 +923,6 @@ FileDialog::FileDialog() { show_hidden->connect("toggled", this, "set_show_hidden_files"); hbc->add_child(show_hidden); - drives = memnew(OptionButton); - hbc->add_child(drives); - drives->connect("item_selected", this, "_select_drive"); - makedir = memnew(Button); makedir->set_text(RTR("Create Folder")); makedir->connect("pressed", this, "_make_dir"); @@ -908,18 +933,18 @@ FileDialog::FileDialog() { tree->set_hide_root(true); vbc->add_margin_child(RTR("Directories & Files:"), tree, true); - hbc = memnew(HBoxContainer); - hbc->add_child(memnew(Label(RTR("File:")))); + file_box = memnew(HBoxContainer); + file_box->add_child(memnew(Label(RTR("File:")))); file = memnew(LineEdit); file->set_stretch_ratio(4); file->set_h_size_flags(SIZE_EXPAND_FILL); - hbc->add_child(file); + file_box->add_child(file); filter = memnew(OptionButton); filter->set_stretch_ratio(3); filter->set_h_size_flags(SIZE_EXPAND_FILL); filter->set_clip_text(true); // too many extensions overflows it - hbc->add_child(filter); - vbc->add_child(hbc); + file_box->add_child(filter); + vbc->add_child(file_box); dir_access = DirAccess::create(DirAccess::ACCESS_RESOURCES); access = ACCESS_RESOURCES; diff --git a/scene/gui/file_dialog.h b/scene/gui/file_dialog.h index 4fd6d0d13c..687ebc8036 100644 --- a/scene/gui/file_dialog.h +++ b/scene/gui/file_dialog.h @@ -78,10 +78,11 @@ private: LineEdit *dir; OptionButton *drives; Tree *tree; + HBoxContainer *file_box; LineEdit *file; + OptionButton *filter; AcceptDialog *mkdirerr; AcceptDialog *exterr; - OptionButton *filter; DirAccess *dir_access; ConfirmationDialog *confirm_save; diff --git a/scene/gui/grid_container.cpp b/scene/gui/grid_container.cpp index d304a37f82..154e67b6f3 100644 --- a/scene/gui/grid_container.cpp +++ b/scene/gui/grid_container.cpp @@ -44,7 +44,7 @@ void GridContainer::_notification(int p_what) { int hsep = get_constant("hseparation"); int vsep = get_constant("vseparation"); int max_col = MIN(get_child_count(), columns); - int max_row = get_child_count() / columns; + int max_row = ceil((float)get_child_count() / (float)columns); // Compute the per-column/per-row data. int valid_controls_index = 0; diff --git a/scene/gui/item_list.cpp b/scene/gui/item_list.cpp index 4d06bee0d4..1a0539effa 100644 --- a/scene/gui/item_list.cpp +++ b/scene/gui/item_list.cpp @@ -926,7 +926,7 @@ void ItemList::_notification(int p_what) { current_columns = max_columns; while (true) { - //repeat util all fits + //repeat until all fits bool all_fit = true; Vector2 ofs; int col = 0; diff --git a/scene/gui/label.cpp b/scene/gui/label.cpp index 510f1b18ad..4edd4b8530 100644 --- a/scene/gui/label.cpp +++ b/scene/gui/label.cpp @@ -452,6 +452,11 @@ void Label::regenerate_word_cache() { current_word_size += char_width; line_width += char_width; total_char_cache++; + + // allow autowrap to cut words when they exceed line width + if (autowrap && (current_word_size > width)) { + separatable = true; + } } if ((autowrap && (line_width >= width) && ((last && last->char_pos >= 0) || separatable)) || insert_newline) { diff --git a/scene/gui/popup_menu.cpp b/scene/gui/popup_menu.cpp index a7c6c5ccab..08faaf7d45 100644 --- a/scene/gui/popup_menu.cpp +++ b/scene/gui/popup_menu.cpp @@ -79,7 +79,7 @@ Size2 PopupMenu::get_minimum_size() const { if (items[i].checkable_type) has_check = true; - String text = items[i].shortcut.is_valid() ? String(tr(items[i].shortcut->get_name())) : items[i].xl_text; + String text = items[i].xl_text; size.width += font->get_string_size(text).width; if (i > 0) size.height += vseparation; @@ -519,7 +519,7 @@ void PopupMenu::_notification(int p_what) { hover->draw(ci, Rect2(item_ofs + Point2(-hseparation, -vseparation / 2), Size2(get_size().width - style->get_minimum_size().width + hseparation * 2, h + vseparation))); } - String text = items[i].shortcut.is_valid() ? String(tr(items[i].shortcut->get_name())) : items[i].xl_text; + String text = items[i].xl_text; item_ofs.x += items[i].h_ofs; if (items[i].separator) { @@ -627,63 +627,50 @@ void PopupMenu::_notification(int p_what) { } } -void PopupMenu::add_icon_item(const Ref<Texture> &p_icon, const String &p_label, int p_id, uint32_t p_accel) { +/* Methods to add items with or without icon, checkbox, shortcut. + * Be sure to keep them in sync when adding new properties in the Item struct. + */ - Item item; - item.icon = p_icon; - item.text = p_label; - item.xl_text = tr(p_label); +#define ITEM_SETUP_WITH_ACCEL(p_label, p_id, p_accel) \ + item.text = p_label; \ + item.xl_text = tr(p_label); \ + item.id = p_id == -1 ? items.size() : p_id; \ item.accel = p_accel; - item.id = p_id; - items.push_back(item); - update(); - minimum_size_changed(); -} + void PopupMenu::add_item(const String &p_label, int p_id, uint32_t p_accel) { Item item; - item.text = p_label; - item.xl_text = tr(p_label); - item.accel = p_accel; - item.id = p_id == -1 ? items.size() : p_id; + ITEM_SETUP_WITH_ACCEL(p_label, p_id, p_accel); items.push_back(item); update(); minimum_size_changed(); } -void PopupMenu::add_submenu_item(const String &p_label, const String &p_submenu, int p_id) { +void PopupMenu::add_icon_item(const Ref<Texture> &p_icon, const String &p_label, int p_id, uint32_t p_accel) { Item item; - item.text = p_label; - item.xl_text = tr(p_label); - item.id = p_id; - item.submenu = p_submenu; + ITEM_SETUP_WITH_ACCEL(p_label, p_id, p_accel); + item.icon = p_icon; items.push_back(item); update(); minimum_size_changed(); } -void PopupMenu::add_icon_check_item(const Ref<Texture> &p_icon, const String &p_label, int p_id, uint32_t p_accel) { +void PopupMenu::add_check_item(const String &p_label, int p_id, uint32_t p_accel) { Item item; - item.icon = p_icon; - item.text = p_label; - item.xl_text = tr(p_label); - item.accel = p_accel; - item.id = p_id; + ITEM_SETUP_WITH_ACCEL(p_label, p_id, p_accel); item.checkable_type = Item::CHECKABLE_TYPE_CHECK_BOX; items.push_back(item); update(); minimum_size_changed(); } -void PopupMenu::add_check_item(const String &p_label, int p_id, uint32_t p_accel) { +void PopupMenu::add_icon_check_item(const Ref<Texture> &p_icon, const String &p_label, int p_id, uint32_t p_accel) { Item item; - item.text = p_label; - item.xl_text = tr(p_label); - item.accel = p_accel; - item.id = p_id == -1 ? items.size() : p_id; + ITEM_SETUP_WITH_ACCEL(p_label, p_id, p_accel); + item.icon = p_icon; item.checkable_type = Item::CHECKABLE_TYPE_CHECK_BOX; items.push_back(item); update(); @@ -692,63 +679,59 @@ void PopupMenu::add_check_item(const String &p_label, int p_id, uint32_t p_accel void PopupMenu::add_radio_check_item(const String &p_label, int p_id, uint32_t p_accel) { - add_check_item(p_label, p_id, p_accel); - items.write[items.size() - 1].checkable_type = Item::CHECKABLE_TYPE_RADIO_BUTTON; + Item item; + ITEM_SETUP_WITH_ACCEL(p_label, p_id, p_accel); + item.checkable_type = Item::CHECKABLE_TYPE_RADIO_BUTTON; + items.push_back(item); update(); minimum_size_changed(); } void PopupMenu::add_icon_radio_check_item(const Ref<Texture> &p_icon, const String &p_label, int p_id, uint32_t p_accel) { - add_icon_check_item(p_icon, p_label, p_id, p_accel); - items.write[items.size() - 1].checkable_type = Item::CHECKABLE_TYPE_RADIO_BUTTON; + Item item; + ITEM_SETUP_WITH_ACCEL(p_label, p_id, p_accel); + item.icon = p_icon; + item.checkable_type = Item::CHECKABLE_TYPE_RADIO_BUTTON; + items.push_back(item); update(); minimum_size_changed(); } -void PopupMenu::add_icon_shortcut(const Ref<Texture> &p_icon, const Ref<ShortCut> &p_shortcut, int p_id, bool p_global) { - - ERR_FAIL_COND(p_shortcut.is_null()); - - _ref_shortcut(p_shortcut); +void PopupMenu::add_multistate_item(const String &p_label, int p_max_states, int p_default_state, int p_id, uint32_t p_accel) { Item item; - item.id = p_id; - item.icon = p_icon; - item.shortcut = p_shortcut; - item.shortcut_is_global = p_global; + ITEM_SETUP_WITH_ACCEL(p_label, p_id, p_accel); + item.max_states = p_max_states; + item.state = p_default_state; items.push_back(item); update(); minimum_size_changed(); } -void PopupMenu::add_shortcut(const Ref<ShortCut> &p_shortcut, int p_id, bool p_global) { - - ERR_FAIL_COND(p_shortcut.is_null()); +#define ITEM_SETUP_WITH_SHORTCUT(p_shortcut, p_id, p_global) \ + ERR_FAIL_COND_MSG(p_shortcut.is_null(), "Cannot add item with invalid ShortCut."); \ + _ref_shortcut(p_shortcut); \ + item.text = p_shortcut->get_name(); \ + item.xl_text = tr(item.text); \ + item.id = p_id == -1 ? items.size() : p_id; \ + item.shortcut = p_shortcut; \ + item.shortcut_is_global = p_global; - _ref_shortcut(p_shortcut); +void PopupMenu::add_shortcut(const Ref<ShortCut> &p_shortcut, int p_id, bool p_global) { Item item; - item.id = p_id; - item.shortcut = p_shortcut; - item.shortcut_is_global = p_global; + ITEM_SETUP_WITH_SHORTCUT(p_shortcut, p_id, p_global); items.push_back(item); update(); minimum_size_changed(); } -void PopupMenu::add_icon_check_shortcut(const Ref<Texture> &p_icon, const Ref<ShortCut> &p_shortcut, int p_id, bool p_global) { - - ERR_FAIL_COND(p_shortcut.is_null()); - - _ref_shortcut(p_shortcut); +void PopupMenu::add_icon_shortcut(const Ref<Texture> &p_icon, const Ref<ShortCut> &p_shortcut, int p_id, bool p_global) { Item item; - item.id = p_id; - item.shortcut = p_shortcut; - item.checkable_type = Item::CHECKABLE_TYPE_CHECK_BOX; + ITEM_SETUP_WITH_SHORTCUT(p_shortcut, p_id, p_global); item.icon = p_icon; - item.shortcut_is_global = p_global; items.push_back(item); update(); minimum_size_changed(); @@ -756,14 +739,19 @@ void PopupMenu::add_icon_check_shortcut(const Ref<Texture> &p_icon, const Ref<Sh void PopupMenu::add_check_shortcut(const Ref<ShortCut> &p_shortcut, int p_id, bool p_global) { - ERR_FAIL_COND(p_shortcut.is_null()); + Item item; + ITEM_SETUP_WITH_SHORTCUT(p_shortcut, p_id, p_global); + item.checkable_type = Item::CHECKABLE_TYPE_CHECK_BOX; + items.push_back(item); + update(); + minimum_size_changed(); +} - _ref_shortcut(p_shortcut); +void PopupMenu::add_icon_check_shortcut(const Ref<Texture> &p_icon, const Ref<ShortCut> &p_shortcut, int p_id, bool p_global) { Item item; - item.id = p_id; - item.shortcut = p_shortcut; - item.shortcut_is_global = p_global; + ITEM_SETUP_WITH_SHORTCUT(p_shortcut, p_id, p_global); + item.icon = p_icon; item.checkable_type = Item::CHECKABLE_TYPE_CHECK_BOX; items.push_back(item); update(); @@ -772,26 +760,42 @@ void PopupMenu::add_check_shortcut(const Ref<ShortCut> &p_shortcut, int p_id, bo void PopupMenu::add_radio_check_shortcut(const Ref<ShortCut> &p_shortcut, int p_id, bool p_global) { - add_check_shortcut(p_shortcut, p_id, p_global); - items.write[items.size() - 1].checkable_type = Item::CHECKABLE_TYPE_RADIO_BUTTON; + Item item; + ITEM_SETUP_WITH_SHORTCUT(p_shortcut, p_id, p_global); + item.checkable_type = Item::CHECKABLE_TYPE_RADIO_BUTTON; + items.push_back(item); update(); minimum_size_changed(); } -void PopupMenu::add_multistate_item(const String &p_label, int p_max_states, int p_default_state, int p_id, uint32_t p_accel) { +void PopupMenu::add_icon_radio_check_shortcut(const Ref<Texture> &p_icon, const Ref<ShortCut> &p_shortcut, int p_id, bool p_global) { + + Item item; + ITEM_SETUP_WITH_SHORTCUT(p_shortcut, p_id, p_global); + item.icon = p_icon; + item.checkable_type = Item::CHECKABLE_TYPE_RADIO_BUTTON; + items.push_back(item); + update(); + minimum_size_changed(); +} + +void PopupMenu::add_submenu_item(const String &p_label, const String &p_submenu, int p_id) { Item item; item.text = p_label; item.xl_text = tr(p_label); - item.accel = p_accel; - item.id = p_id; - item.max_states = p_max_states; - item.state = p_default_state; + item.id = p_id == -1 ? items.size() : p_id; + item.submenu = p_submenu; items.push_back(item); update(); minimum_size_changed(); } +#undef ITEM_SETUP_WITH_ACCEL +#undef ITEM_SETUP_WITH_SHORTCUT + +/* Methods to modify existing items. */ + void PopupMenu::set_item_text(int p_idx, const String &p_text) { ERR_FAIL_INDEX(p_idx, items.size()); @@ -1380,18 +1384,24 @@ void PopupMenu::clear_autohide_areas() { void PopupMenu::_bind_methods() { ClassDB::bind_method(D_METHOD("_gui_input"), &PopupMenu::_gui_input); - ClassDB::bind_method(D_METHOD("add_icon_item", "texture", "label", "id", "accel"), &PopupMenu::add_icon_item, DEFVAL(-1), DEFVAL(0)); + ClassDB::bind_method(D_METHOD("add_item", "label", "id", "accel"), &PopupMenu::add_item, DEFVAL(-1), DEFVAL(0)); - ClassDB::bind_method(D_METHOD("add_icon_check_item", "texture", "label", "id", "accel"), &PopupMenu::add_icon_check_item, DEFVAL(-1), DEFVAL(0)); + ClassDB::bind_method(D_METHOD("add_icon_item", "texture", "label", "id", "accel"), &PopupMenu::add_icon_item, DEFVAL(-1), DEFVAL(0)); ClassDB::bind_method(D_METHOD("add_check_item", "label", "id", "accel"), &PopupMenu::add_check_item, DEFVAL(-1), DEFVAL(0)); + ClassDB::bind_method(D_METHOD("add_icon_check_item", "texture", "label", "id", "accel"), &PopupMenu::add_icon_check_item, DEFVAL(-1), DEFVAL(0)); ClassDB::bind_method(D_METHOD("add_radio_check_item", "label", "id", "accel"), &PopupMenu::add_radio_check_item, DEFVAL(-1), DEFVAL(0)); - ClassDB::bind_method(D_METHOD("add_submenu_item", "label", "submenu", "id"), &PopupMenu::add_submenu_item, DEFVAL(-1)); + ClassDB::bind_method(D_METHOD("add_icon_radio_check_item", "texture", "label", "id", "accel"), &PopupMenu::add_icon_radio_check_item, DEFVAL(-1), DEFVAL(0)); + + ClassDB::bind_method(D_METHOD("add_multistate_item", "label", "max_states", "default_state", "id", "accel"), &PopupMenu::add_multistate_item, DEFVAL(0), DEFVAL(-1), DEFVAL(0)); - ClassDB::bind_method(D_METHOD("add_icon_shortcut", "texture", "shortcut", "id", "global"), &PopupMenu::add_icon_shortcut, DEFVAL(-1), DEFVAL(false)); ClassDB::bind_method(D_METHOD("add_shortcut", "shortcut", "id", "global"), &PopupMenu::add_shortcut, DEFVAL(-1), DEFVAL(false)); - ClassDB::bind_method(D_METHOD("add_icon_check_shortcut", "texture", "shortcut", "id", "global"), &PopupMenu::add_icon_check_shortcut, DEFVAL(-1), DEFVAL(false)); + ClassDB::bind_method(D_METHOD("add_icon_shortcut", "texture", "shortcut", "id", "global"), &PopupMenu::add_icon_shortcut, DEFVAL(-1), DEFVAL(false)); ClassDB::bind_method(D_METHOD("add_check_shortcut", "shortcut", "id", "global"), &PopupMenu::add_check_shortcut, DEFVAL(-1), DEFVAL(false)); + ClassDB::bind_method(D_METHOD("add_icon_check_shortcut", "texture", "shortcut", "id", "global"), &PopupMenu::add_icon_check_shortcut, DEFVAL(-1), DEFVAL(false)); ClassDB::bind_method(D_METHOD("add_radio_check_shortcut", "shortcut", "id", "global"), &PopupMenu::add_radio_check_shortcut, DEFVAL(-1), DEFVAL(false)); + ClassDB::bind_method(D_METHOD("add_icon_radio_check_shortcut", "texture", "shortcut", "id", "global"), &PopupMenu::add_icon_radio_check_shortcut, DEFVAL(-1), DEFVAL(false)); + + ClassDB::bind_method(D_METHOD("add_submenu_item", "label", "submenu", "id"), &PopupMenu::add_submenu_item, DEFVAL(-1)); ClassDB::bind_method(D_METHOD("set_item_text", "idx", "text"), &PopupMenu::set_item_text); ClassDB::bind_method(D_METHOD("set_item_icon", "idx", "icon"), &PopupMenu::set_item_icon); diff --git a/scene/gui/popup_menu.h b/scene/gui/popup_menu.h index 8bfe8fc607..8c33178b09 100644 --- a/scene/gui/popup_menu.h +++ b/scene/gui/popup_menu.h @@ -120,21 +120,23 @@ protected: static void _bind_methods(); public: - void add_icon_item(const Ref<Texture> &p_icon, const String &p_label, int p_id = -1, uint32_t p_accel = 0); void add_item(const String &p_label, int p_id = -1, uint32_t p_accel = 0); - void add_icon_check_item(const Ref<Texture> &p_icon, const String &p_label, int p_id = -1, uint32_t p_accel = 0); + void add_icon_item(const Ref<Texture> &p_icon, const String &p_label, int p_id = -1, uint32_t p_accel = 0); void add_check_item(const String &p_label, int p_id = -1, uint32_t p_accel = 0); + void add_icon_check_item(const Ref<Texture> &p_icon, const String &p_label, int p_id = -1, uint32_t p_accel = 0); void add_radio_check_item(const String &p_label, int p_id = -1, uint32_t p_accel = 0); void add_icon_radio_check_item(const Ref<Texture> &p_icon, const String &p_label, int p_id = -1, uint32_t p_accel = 0); - void add_submenu_item(const String &p_label, const String &p_submenu, int p_id = -1); - void add_icon_shortcut(const Ref<Texture> &p_icon, const Ref<ShortCut> &p_shortcut, int p_id = -1, bool p_global = false); + void add_multistate_item(const String &p_label, int p_max_states, int p_default_state = 0, int p_id = -1, uint32_t p_accel = 0); + void add_shortcut(const Ref<ShortCut> &p_shortcut, int p_id = -1, bool p_global = false); - void add_icon_check_shortcut(const Ref<Texture> &p_icon, const Ref<ShortCut> &p_shortcut, int p_id = -1, bool p_global = false); + void add_icon_shortcut(const Ref<Texture> &p_icon, const Ref<ShortCut> &p_shortcut, int p_id = -1, bool p_global = false); void add_check_shortcut(const Ref<ShortCut> &p_shortcut, int p_id = -1, bool p_global = false); + void add_icon_check_shortcut(const Ref<Texture> &p_icon, const Ref<ShortCut> &p_shortcut, int p_id = -1, bool p_global = false); void add_radio_check_shortcut(const Ref<ShortCut> &p_shortcut, int p_id = -1, bool p_global = false); + void add_icon_radio_check_shortcut(const Ref<Texture> &p_icon, const Ref<ShortCut> &p_shortcut, int p_id = -1, bool p_global = false); - void add_multistate_item(const String &p_label, int p_max_states, int p_default_state, int p_id = -1, uint32_t p_accel = 0); + void add_submenu_item(const String &p_label, const String &p_submenu, int p_id = -1); void set_item_text(int p_idx, const String &p_text); void set_item_icon(int p_idx, const Ref<Texture> &p_icon); diff --git a/scene/gui/rich_text_label.cpp b/scene/gui/rich_text_label.cpp index 42cb89b2d6..0331046492 100644 --- a/scene/gui/rich_text_label.cpp +++ b/scene/gui/rich_text_label.cpp @@ -555,12 +555,12 @@ int RichTextLabel::_process_line(ItemFrame *p_frame, const Vector2 &p_ofs, int & if (p_font_color_shadow.a > 0) { float x_ofs_shadow = align_ofs + pofs; float y_ofs_shadow = y + lh - line_descent; - font->draw_char(ci, Point2(x_ofs_shadow, y_ofs_shadow) + shadow_ofs, fx_char, c[i + 1], p_font_color_shadow); + font->draw_char(ci, Point2(x_ofs_shadow, y_ofs_shadow) + shadow_ofs + fx_offset, fx_char, c[i + 1], p_font_color_shadow); if (p_shadow_as_outline) { - font->draw_char(ci, Point2(x_ofs_shadow, y_ofs_shadow) + Vector2(-shadow_ofs.x, shadow_ofs.y), fx_char, c[i + 1], p_font_color_shadow); - font->draw_char(ci, Point2(x_ofs_shadow, y_ofs_shadow) + Vector2(shadow_ofs.x, -shadow_ofs.y), fx_char, c[i + 1], p_font_color_shadow); - font->draw_char(ci, Point2(x_ofs_shadow, y_ofs_shadow) + Vector2(-shadow_ofs.x, -shadow_ofs.y), fx_char, c[i + 1], p_font_color_shadow); + font->draw_char(ci, Point2(x_ofs_shadow, y_ofs_shadow) + Vector2(-shadow_ofs.x, shadow_ofs.y) + fx_offset, fx_char, c[i + 1], p_font_color_shadow); + font->draw_char(ci, Point2(x_ofs_shadow, y_ofs_shadow) + Vector2(shadow_ofs.x, -shadow_ofs.y) + fx_offset, fx_char, c[i + 1], p_font_color_shadow); + font->draw_char(ci, Point2(x_ofs_shadow, y_ofs_shadow) + Vector2(-shadow_ofs.x, -shadow_ofs.y) + fx_offset, fx_char, c[i + 1], p_font_color_shadow); } } @@ -624,19 +624,19 @@ int RichTextLabel::_process_line(ItemFrame *p_frame, const Vector2 &p_ofs, int & if (p_mode == PROCESS_POINTER && r_click_char) *r_click_char = 0; - ENSURE_WIDTH(img->image->get_width()); + ENSURE_WIDTH(img->size.width); - bool visible = visible_characters < 0 || (p_char_count < visible_characters && YRANGE_VISIBLE(y + lh - font->get_descent() - img->image->get_height(), img->image->get_height())); + bool visible = visible_characters < 0 || (p_char_count < visible_characters && YRANGE_VISIBLE(y + lh - font->get_descent() - img->size.height, img->size.height)); if (visible) line_is_blank = false; if (p_mode == PROCESS_DRAW && visible) { - img->image->draw(ci, p_ofs + Point2(align_ofs + wofs, y + lh - font->get_descent() - img->image->get_height())); + img->image->draw_rect(ci, Rect2(p_ofs + Point2(align_ofs + wofs, y + lh - font->get_descent() - img->size.height), img->size)); } p_char_count++; - ADVANCE(img->image->get_width()); - CHECK_HEIGHT((img->image->get_height() + font->get_descent())); + ADVANCE(img->size.width); + CHECK_HEIGHT((img->size.height + font->get_descent())); } break; case ITEM_NEWLINE: { @@ -859,7 +859,7 @@ int RichTextLabel::_process_line(ItemFrame *p_frame, const Vector2 &p_ofs, int & void RichTextLabel::_scroll_changed(double) { - if (updating_scroll) + if (updating_scroll || !scroll_active) return; if (scroll_follow && vscroll->get_value() >= (vscroll->get_max() - vscroll->get_page())) @@ -1634,7 +1634,7 @@ void RichTextLabel::_remove_item(Item *p_item, const int p_line, const int p_sub } } -void RichTextLabel::add_image(const Ref<Texture> &p_image) { +void RichTextLabel::add_image(const Ref<Texture> &p_image, const int p_width, const int p_height) { if (current->type == ITEM_TABLE) return; @@ -1643,6 +1643,30 @@ void RichTextLabel::add_image(const Ref<Texture> &p_image) { ItemImage *item = memnew(ItemImage); item->image = p_image; + + if (p_width > 0) { + // custom width + item->size.width = p_width; + if (p_height > 0) { + // custom height + item->size.height = p_height; + } else { + // calculate height to keep aspect ratio + item->size.height = p_image->get_height() * p_width / p_image->get_width(); + } + } else { + if (p_height > 0) { + // custom height + item->size.height = p_height; + // calculate width to keep aspect ratio + item->size.width = p_image->get_width() * p_height / p_image->get_height(); + } else { + // keep original width and height + item->size.height = p_image->get_height(); + item->size.width = p_image->get_width(); + } + } + _add_item(item, false); } @@ -1697,6 +1721,41 @@ void RichTextLabel::push_font(const Ref<Font> &p_font) { _add_item(item, true); } +void RichTextLabel::push_normal() { + Ref<Font> normal_font = get_font("normal_font"); + ERR_FAIL_COND(normal_font.is_null()); + + push_font(normal_font); +} + +void RichTextLabel::push_bold() { + Ref<Font> bold_font = get_font("bold_font"); + ERR_FAIL_COND(bold_font.is_null()); + + push_font(bold_font); +} + +void RichTextLabel::push_bold_italics() { + Ref<Font> bold_italics_font = get_font("bold_italics_font"); + ERR_FAIL_COND(bold_italics_font.is_null()); + + push_font(bold_italics_font); +} + +void RichTextLabel::push_italics() { + Ref<Font> italics_font = get_font("italics_font"); + ERR_FAIL_COND(italics_font.is_null()); + + push_font(italics_font); +} + +void RichTextLabel::push_mono() { + Ref<Font> mono_font = get_font("mono_font"); + ERR_FAIL_COND(mono_font.is_null()); + + push_font(mono_font); +} + void RichTextLabel::push_color(const Color &p_color) { ERR_FAIL_COND(current->type == ITEM_TABLE); @@ -2125,6 +2184,7 @@ Error RichTextLabel::append_bbcode(const String &p_bbcode) { int end = p_bbcode.find("[", brk_end); if (end == -1) end = p_bbcode.length(); + String image = p_bbcode.substr(brk_end + 1, end - brk_end - 1); Ref<Texture> texture = ResourceLoader::load(image, "Texture"); @@ -2133,6 +2193,32 @@ Error RichTextLabel::append_bbcode(const String &p_bbcode) { pos = end; tag_stack.push_front(tag); + } else if (tag.begins_with("img=")) { + + int width = 0; + int height = 0; + + String params = tag.substr(4, tag.length()); + int sep = params.find("x"); + if (sep == -1) { + width = params.to_int(); + } else { + width = params.substr(0, sep).to_int(); + height = params.substr(sep + 1, params.length()).to_int(); + } + + int end = p_bbcode.find("[", brk_end); + if (end == -1) + end = p_bbcode.length(); + + String image = p_bbcode.substr(brk_end + 1, end - brk_end - 1); + + Ref<Texture> texture = ResourceLoader::load(image, "Texture"); + if (texture.is_valid()) + add_image(texture, width, height); + + pos = end; + tag_stack.push_front("img"); } else if (tag.begins_with("color=")) { String col = tag.substr(6, tag.length()); @@ -2581,10 +2667,15 @@ void RichTextLabel::_bind_methods() { ClassDB::bind_method(D_METHOD("get_text"), &RichTextLabel::get_text); ClassDB::bind_method(D_METHOD("add_text", "text"), &RichTextLabel::add_text); ClassDB::bind_method(D_METHOD("set_text", "text"), &RichTextLabel::set_text); - ClassDB::bind_method(D_METHOD("add_image", "image"), &RichTextLabel::add_image); + ClassDB::bind_method(D_METHOD("add_image", "image", "width", "height"), &RichTextLabel::add_image, DEFVAL(0), DEFVAL(0)); ClassDB::bind_method(D_METHOD("newline"), &RichTextLabel::add_newline); ClassDB::bind_method(D_METHOD("remove_line", "line"), &RichTextLabel::remove_line); ClassDB::bind_method(D_METHOD("push_font", "font"), &RichTextLabel::push_font); + ClassDB::bind_method(D_METHOD("push_normal"), &RichTextLabel::push_normal); + ClassDB::bind_method(D_METHOD("push_bold"), &RichTextLabel::push_bold); + ClassDB::bind_method(D_METHOD("push_bold_italics"), &RichTextLabel::push_bold_italics); + ClassDB::bind_method(D_METHOD("push_italics"), &RichTextLabel::push_italics); + ClassDB::bind_method(D_METHOD("push_mono"), &RichTextLabel::push_mono); ClassDB::bind_method(D_METHOD("push_color", "color"), &RichTextLabel::push_color); ClassDB::bind_method(D_METHOD("push_align", "align"), &RichTextLabel::push_align); ClassDB::bind_method(D_METHOD("push_indent", "level"), &RichTextLabel::push_indent); diff --git a/scene/gui/rich_text_label.h b/scene/gui/rich_text_label.h index 1c90d974e4..b9837fdfcc 100644 --- a/scene/gui/rich_text_label.h +++ b/scene/gui/rich_text_label.h @@ -148,6 +148,7 @@ private: struct ItemImage : public Item { Ref<Texture> image; + Size2 size; ItemImage() { type = ITEM_IMAGE; } }; @@ -406,10 +407,15 @@ protected: public: String get_text(); void add_text(const String &p_text); - void add_image(const Ref<Texture> &p_image); + void add_image(const Ref<Texture> &p_image, const int p_width = 0, const int p_height = 0); void add_newline(); bool remove_line(const int p_line); void push_font(const Ref<Font> &p_font); + void push_normal(); + void push_bold(); + void push_bold_italics(); + void push_italics(); + void push_mono(); void push_color(const Color &p_color); void push_underline(); void push_strikethrough(); diff --git a/scene/gui/spin_box.cpp b/scene/gui/spin_box.cpp index 172c366c41..bf067898e6 100644 --- a/scene/gui/spin_box.cpp +++ b/scene/gui/spin_box.cpp @@ -108,21 +108,21 @@ void SpinBox::_gui_input(const Ref<InputEvent> &p_event) { case BUTTON_LEFT: { + line_edit->grab_focus(); + set_value(get_value() + (up ? get_step() : -get_step())); range_click_timer->set_wait_time(0.6); range_click_timer->set_one_shot(true); range_click_timer->start(); - line_edit->grab_focus(); - drag.allowed = true; drag.capture_pos = mb->get_position(); } break; case BUTTON_RIGHT: { - set_value((up ? get_max() : get_min())); line_edit->grab_focus(); + set_value((up ? get_max() : get_min())); } break; case BUTTON_WHEEL_UP: { if (line_edit->has_focus()) { diff --git a/scene/gui/text_edit.cpp b/scene/gui/text_edit.cpp index c0b0944e47..6d473b7939 100644 --- a/scene/gui/text_edit.cpp +++ b/scene/gui/text_edit.cpp @@ -161,57 +161,58 @@ void TextEdit::Text::_update_line_cache(int p_line) const { /* BEGIN */ int lr = cr.begin_key.length(); - if (lr == 0 || lr > left) - continue; + const CharType *kc; + bool match; - const CharType *kc = cr.begin_key.c_str(); + if (lr != 0 && lr <= left) { + kc = cr.begin_key.c_str(); - bool match = true; + match = true; - for (int k = 0; k < lr; k++) { - if (kc[k] != str[i + k]) { - match = false; - break; + for (int k = 0; k < lr; k++) { + if (kc[k] != str[i + k]) { + match = false; + break; + } } - } - if (match) { + if (match) { - ColorRegionInfo cri; - cri.end = false; - cri.region = j; - text.write[p_line].region_info[i] = cri; - i += lr - 1; + ColorRegionInfo cri; + cri.end = false; + cri.region = j; + text.write[p_line].region_info[i] = cri; + i += lr - 1; - break; + break; + } } /* END */ lr = cr.end_key.length(); - if (lr == 0 || lr > left) - continue; - - kc = cr.end_key.c_str(); + if (lr != 0 && lr <= left) { + kc = cr.end_key.c_str(); - match = true; + match = true; - for (int k = 0; k < lr; k++) { - if (kc[k] != str[i + k]) { - match = false; - break; + for (int k = 0; k < lr; k++) { + if (kc[k] != str[i + k]) { + match = false; + break; + } } - } - if (match) { + if (match) { - ColorRegionInfo cri; - cri.end = true; - cri.region = j; - text.write[p_line].region_info[i] = cri; - i += lr - 1; + ColorRegionInfo cri; + cri.end = true; + cri.region = j; + text.write[p_line].region_info[i] = cri; + i += lr - 1; - break; + break; + } } } } @@ -268,6 +269,12 @@ void TextEdit::Text::clear_wrap_cache() { } } +void TextEdit::Text::clear_info_icons() { + for (int i = 0; i < text.size(); i++) { + text.write[i].has_info = false; + } +} + void TextEdit::Text::clear() { text.clear(); @@ -302,6 +309,7 @@ void TextEdit::Text::insert(int p_at, const String &p_text) { line.breakpoint = false; line.bookmark = false; line.hidden = false; + line.has_info = false; line.width_cache = -1; line.wrap_amount_cache = -1; line.data = p_text; @@ -935,7 +943,7 @@ void TextEdit::_notification(int p_what) { int minimap_line = (v_scroll->get_max() <= minimap_visible_lines) ? -1 : first_visible_line; if (minimap_line >= 0) { minimap_line -= num_lines_from_rows(first_visible_line, 0, -num_lines_before, wi); - minimap_line -= (smooth_scroll_enabled ? 1 : 0); + minimap_line -= (minimap_line > 0 && smooth_scroll_enabled ? 1 : 0); } int minimap_draw_amount = minimap_visible_lines + times_line_wraps(minimap_line + 1); @@ -957,6 +965,10 @@ void TextEdit::_notification(int p_what) { } } + if (minimap_line < 0 || minimap_line >= (int)text.size()) { + break; + } + Map<int, HighlighterInfo> color_map; if (syntax_coloring) { color_map = _get_line_syntax_highlighting(minimap_line); @@ -1723,7 +1735,9 @@ void TextEdit::_notification(int p_what) { end = font->get_string_size(l.substr(0, l.rfind(String::chr(0xFFFF)))).x; } - draw_string(font, hint_ofs + sb->get_offset() + Vector2(0, font->get_ascent() + font->get_height() * i + spacing), l.replace(String::chr(0xFFFF), ""), font_color); + Point2 round_ofs = hint_ofs + sb->get_offset() + Vector2(0, font->get_ascent() + font->get_height() * i + spacing); + round_ofs = round_ofs.round(); + draw_string(font, round_ofs, l.replace(String::chr(0xFFFF), ""), font_color); if (end > 0) { Vector2 b = hint_ofs + sb->get_offset() + Vector2(begin, font->get_height() + font->get_height() * i + spacing - 1); draw_line(b, b + Vector2(end - begin, 0), font_color); @@ -2146,7 +2160,7 @@ void TextEdit::_get_minimap_mouse_row(const Point2i &p_mouse, int &r_row) const int minimap_line = (v_scroll->get_max() <= minimap_visible_lines) ? -1 : first_visible_line; if (first_visible_line > 0 && minimap_line >= 0) { minimap_line -= num_lines_from_rows(first_visible_line, 0, -num_lines_before, wi); - minimap_line -= (smooth_scroll_enabled ? 1 : 0); + minimap_line -= (minimap_line > 0 && smooth_scroll_enabled ? 1 : 0); } else { minimap_line = 0; } @@ -2843,19 +2857,51 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { // No need to indent if we are going upwards. if (auto_indent && !(k->get_command() && k->get_shift())) { - // Indent once again if previous line will end with ':' or '{' and the line is not a comment + // Indent once again if previous line will end with ':','{','[','(' and the line is not a comment // (i.e. colon/brace precedes current cursor position). - if (cursor.column > 0 && (text[cursor.line][cursor.column - 1] == ':' || text[cursor.line][cursor.column - 1] == '{') && !is_line_comment(cursor.line)) { - if (indent_using_spaces) { - ins += space_indent; - } else { - ins += "\t"; + if (cursor.column > 0) { + const Map<int, Text::ColorRegionInfo> &cri_map = text.get_color_region_info(cursor.line); + bool indent_char_found = false; + bool should_indent = false; + char indent_char = ':'; + char c = text[cursor.line][cursor.column]; + + for (int i = 0; i < cursor.column; i++) { + c = text[cursor.line][i]; + switch (c) { + case ':': + case '{': + case '[': + case '(': + indent_char_found = true; + should_indent = true; + indent_char = c; + continue; + } + + if (indent_char_found && cri_map.has(i) && (color_regions[cri_map[i].region].begin_key == "#" || color_regions[cri_map[i].region].begin_key == "//")) { + + should_indent = true; + break; + } else if (indent_char_found && !_is_whitespace(c)) { + should_indent = false; + indent_char_found = false; + } } - // No need to move the brace below if we are not taking the text with us. - if (text[cursor.line][cursor.column] == '}' && !k->get_command()) { - brace_indent = true; - ins += "\n" + ins.substr(1, ins.length() - 2); + if (!is_line_comment(cursor.line) && should_indent) { + if (indent_using_spaces) { + ins += space_indent; + } else { + ins += "\t"; + } + + // No need to move the brace below if we are not taking the text with us. + char closing_char = _get_right_pair_symbol(indent_char); + if ((closing_char != 0) && (closing_char == text[cursor.line][cursor.column]) && !k->get_command()) { + brace_indent = true; + ins += "\n" + ins.substr(1, ins.length() - 2); + } } } } @@ -4071,6 +4117,7 @@ void TextEdit::_insert_text_at_cursor(const String &p_text) { int new_column, new_line; _insert_text(cursor.line, cursor.column, p_text, &new_line, &new_column); + _update_scrollbars(); cursor_set_line(new_line); cursor_set_column(new_column); @@ -4750,6 +4797,9 @@ void TextEdit::set_text(String p_text) { selection.active = false; } + cursor_set_line(0); + cursor_set_column(0); + update(); setting_text = false; }; @@ -5051,15 +5101,18 @@ Map<int, TextEdit::Text::ColorRegionInfo> TextEdit::_get_line_color_region_info( void TextEdit::clear_colors() { keywords.clear(); + member_keywords.clear(); color_regions.clear(); color_region_cache.clear(); syntax_highlighting_cache.clear(); text.clear_width_cache(); + update(); } void TextEdit::add_keyword_color(const String &p_keyword, const Color &p_color) { keywords[p_keyword] = p_color; + syntax_highlighting_cache.clear(); update(); } @@ -5076,12 +5129,14 @@ Color TextEdit::get_keyword_color(String p_keyword) const { void TextEdit::add_color_region(const String &p_begin_key, const String &p_end_key, const Color &p_color, bool p_line_only) { color_regions.push_back(ColorRegion(p_begin_key, p_end_key, p_color, p_line_only)); + syntax_highlighting_cache.clear(); text.clear_width_cache(); update(); } void TextEdit::add_member_keyword(const String &p_keyword, const Color &p_color) { member_keywords[p_keyword] = p_color; + syntax_highlighting_cache.clear(); update(); } @@ -5095,6 +5150,7 @@ Color TextEdit::get_member_color(String p_member) const { void TextEdit::clear_member_keywords() { member_keywords.clear(); + syntax_highlighting_cache.clear(); update(); } @@ -5387,11 +5443,11 @@ int TextEdit::_get_column_pos_of_word(const String &p_key, const String &p_searc PoolVector<int> TextEdit::_search_bind(const String &p_key, uint32_t p_search_flags, int p_from_line, int p_from_column) const { int col, line; - if (search(p_key, p_search_flags, p_from_line, p_from_column, col, line)) { + if (search(p_key, p_search_flags, p_from_line, p_from_column, line, col)) { PoolVector<int> result; result.resize(2); - result.set(0, line); - result.set(1, col); + result.set(SEARCH_RESULT_COLUMN, col); + result.set(SEARCH_RESULT_LINE, line); return result; } else { @@ -5635,9 +5691,7 @@ void TextEdit::set_line_info_icon(int p_line, Ref<Texture> p_icon, String p_info } void TextEdit::clear_info_icons() { - for (int i = 0; i < text.size(); i++) { - text.set_info_icon(i, NULL, ""); - } + text.clear_info_icons(); update(); } @@ -5914,7 +5968,7 @@ void TextEdit::unfold_line(int p_line) { if (!is_folded(p_line) && !is_line_hidden(p_line)) return; - int fold_start = p_line; + int fold_start; for (fold_start = p_line; fold_start > 0; fold_start--) { if (is_folded(fold_start)) break; @@ -6019,6 +6073,7 @@ void TextEdit::undo() { } } + _update_scrollbars(); if (undo_stack_pos->get().type == TextOperation::TYPE_REMOVE) { cursor_set_line(undo_stack_pos->get().to_line); cursor_set_column(undo_stack_pos->get().to_column); @@ -6054,6 +6109,8 @@ void TextEdit::redo() { break; } } + + _update_scrollbars(); cursor_set_line(undo_stack_pos->get().to_line); cursor_set_column(undo_stack_pos->get().to_column); undo_stack_pos = undo_stack_pos->next(); @@ -6329,8 +6386,9 @@ void TextEdit::_confirm_completion() { String line = text[cursor.line]; CharType next_char = line[cursor.column]; CharType last_completion_char = completion_current.insert_text[completion_current.insert_text.length() - 1]; + CharType last_completion_char_display = completion_current.display[completion_current.display.length() - 1]; - if ((last_completion_char == '"' || last_completion_char == '\'') && last_completion_char == next_char) { + if ((last_completion_char == '"' || last_completion_char == '\'') && (last_completion_char == next_char || last_completion_char_display == next_char)) { _remove_text(cursor.line, cursor.column, cursor.line, cursor.column + 1); } @@ -6902,6 +6960,9 @@ void TextEdit::_bind_methods() { BIND_ENUM_CONSTANT(SEARCH_WHOLE_WORDS); BIND_ENUM_CONSTANT(SEARCH_BACKWARDS); + BIND_ENUM_CONSTANT(SEARCH_RESULT_COLUMN); + BIND_ENUM_CONSTANT(SEARCH_RESULT_LINE); + /* ClassDB::bind_method(D_METHOD("delete_char"),&TextEdit::delete_char); ClassDB::bind_method(D_METHOD("delete_line"),&TextEdit::delete_line); diff --git a/scene/gui/text_edit.h b/scene/gui/text_edit.h index e5d9b006fe..594366de7d 100644 --- a/scene/gui/text_edit.h +++ b/scene/gui/text_edit.h @@ -78,6 +78,7 @@ public: bool bookmark : 1; bool hidden : 1; bool safe : 1; + bool has_info : 1; int wrap_amount_cache : 24; Map<int, ColorRegionInfo> region_info; Ref<Texture> info_icon; @@ -115,10 +116,15 @@ public: void set_safe(int p_line, bool p_safe) { text.write[p_line].safe = p_safe; } bool is_safe(int p_line) const { return text[p_line].safe; } void set_info_icon(int p_line, Ref<Texture> p_icon, String p_info) { + if (p_icon.is_null()) { + text.write[p_line].has_info = false; + return; + } text.write[p_line].info_icon = p_icon; text.write[p_line].info = p_info; + text.write[p_line].has_info = true; } - bool has_info_icon(int p_line) const { return text[p_line].info_icon.is_valid(); } + bool has_info_icon(int p_line) const { return text[p_line].has_info; } const Ref<Texture> &get_info_icon(int p_line) const { return text[p_line].info_icon; } const String &get_info(int p_line) const { return text[p_line].info; } void insert(int p_at, const String &p_text); @@ -127,6 +133,7 @@ public: void clear(); void clear_width_cache(); void clear_wrap_cache(); + void clear_info_icons(); _FORCE_INLINE_ const String &operator[](int p_line) const { return text[p_line].data; } Text() { indent_size = 4; } }; @@ -497,12 +504,16 @@ public: }; enum SearchFlags { - SEARCH_MATCH_CASE = 1, SEARCH_WHOLE_WORDS = 2, SEARCH_BACKWARDS = 4 }; + enum SearchResult { + SEARCH_RESULT_COLUMN, + SEARCH_RESULT_LINE, + }; + virtual CursorShape get_cursor_shape(const Point2 &p_pos = Point2i()) const; void _get_mouse_pos(const Point2i &p_mouse, int &r_row, int &r_col) const; @@ -761,6 +772,7 @@ public: VARIANT_ENUM_CAST(TextEdit::MenuItems); VARIANT_ENUM_CAST(TextEdit::SearchFlags); +VARIANT_ENUM_CAST(TextEdit::SearchResult); class SyntaxHighlighter { protected: diff --git a/scene/gui/video_player.cpp b/scene/gui/video_player.cpp index 5768f58977..fd2d4a1a11 100644 --- a/scene/gui/video_player.cpp +++ b/scene/gui/video_player.cpp @@ -36,6 +36,10 @@ int VideoPlayer::sp_get_channel_count() const { + if (playback.is_null()) { + return 0; + } + return playback->get_channels(); } @@ -56,6 +60,9 @@ bool VideoPlayer::mix(AudioFrame *p_buffer, int p_frames) { // Called from main thread (eg VideoStreamPlaybackWebm::update) int VideoPlayer::_audio_mix_callback(void *p_udata, const float *p_data, int p_frames) { + ERR_FAIL_NULL_V(p_udata, 0); + ERR_FAIL_NULL_V(p_data, 0); + VideoPlayer *vp = (VideoPlayer *)p_udata; int todo = MIN(vp->resampler.get_writer_space(), p_frames); @@ -71,6 +78,12 @@ int VideoPlayer::_audio_mix_callback(void *p_udata, const float *p_data, int p_f return todo; } +void VideoPlayer::_mix_audios(void *p_self) { + + ERR_FAIL_NULL(p_self); + reinterpret_cast<VideoPlayer *>(p_self)->_mix_audio(); +} + // Called from audio thread void VideoPlayer::_mix_audio() { @@ -143,7 +156,7 @@ void VideoPlayer::_notification(int p_notification) { bus_index = AudioServer::get_singleton()->thread_find_bus_index(bus); - if (stream.is_null() || paused || !playback->is_playing()) + if (stream.is_null() || paused || playback.is_null() || !playback->is_playing()) return; double audio_time = USEC_TO_SEC(OS::get_singleton()->get_ticks_usec()); @@ -358,7 +371,7 @@ void VideoPlayer::set_stream_position(float p_position) { playback->seek(p_position); } -Ref<Texture> VideoPlayer::get_video_texture() { +Ref<Texture> VideoPlayer::get_video_texture() const { if (playback.is_valid()) return playback->get_texture(); @@ -394,9 +407,9 @@ StringName VideoPlayer::get_bus() const { return "Master"; } -void VideoPlayer::_validate_property(PropertyInfo &property) const { +void VideoPlayer::_validate_property(PropertyInfo &p_property) const { - if (property.name == "bus") { + if (p_property.name == "bus") { String options; for (int i = 0; i < AudioServer::get_singleton()->get_bus_count(); i++) { @@ -406,7 +419,7 @@ void VideoPlayer::_validate_property(PropertyInfo &property) const { options += name; } - property.hint_string = options; + p_property.hint_string = options; } } diff --git a/scene/gui/video_player.h b/scene/gui/video_player.h index 62fb7838b6..7d2821427e 100644 --- a/scene/gui/video_player.h +++ b/scene/gui/video_player.h @@ -55,7 +55,6 @@ class VideoPlayer : public Control { RID stream_rid; Ref<ImageTexture> texture; - Ref<Image> last_frame; AudioRBResampler resampler; Vector<AudioFrame> mix_buffer; @@ -75,19 +74,19 @@ class VideoPlayer : public Control { void _mix_audio(); static int _audio_mix_callback(void *p_udata, const float *p_data, int p_frames); - static void _mix_audios(void *self) { reinterpret_cast<VideoPlayer *>(self)->_mix_audio(); } + static void _mix_audios(void *p_self); protected: static void _bind_methods(); void _notification(int p_notification); - void _validate_property(PropertyInfo &property) const; + void _validate_property(PropertyInfo &p_property) const; public: Size2 get_minimum_size() const; void set_expand(bool p_expand); bool has_expand() const; - Ref<Texture> get_video_texture(); + Ref<Texture> get_video_texture() const; void set_stream(const Ref<VideoStream> &p_stream); Ref<VideoStream> get_stream() const; diff --git a/scene/main/node.cpp b/scene/main/node.cpp index 7b6c90766f..217dacfbfe 100644 --- a/scene/main/node.cpp +++ b/scene/main/node.cpp @@ -2832,6 +2832,8 @@ void Node::_bind_methods() { ClassDB::bind_method(D_METHOD("rset_unreliable", "property", "value"), &Node::rset_unreliable); ClassDB::bind_method(D_METHOD("rset_unreliable_id", "peer_id", "property", "value"), &Node::rset_unreliable_id); + ClassDB::bind_method(D_METHOD("update_configuration_warning"), &Node::update_configuration_warning); + BIND_CONSTANT(NOTIFICATION_ENTER_TREE); BIND_CONSTANT(NOTIFICATION_EXIT_TREE); BIND_CONSTANT(NOTIFICATION_MOVED_IN_PARENT); diff --git a/scene/main/scene_tree.cpp b/scene/main/scene_tree.cpp index 3ee21ce38b..38ad6886b1 100644 --- a/scene/main/scene_tree.cpp +++ b/scene/main/scene_tree.cpp @@ -70,15 +70,25 @@ float SceneTreeTimer::get_time_left() const { } void SceneTreeTimer::set_pause_mode_process(bool p_pause_mode_process) { - if (process_pause != p_pause_mode_process) { - process_pause = p_pause_mode_process; - } + + process_pause = p_pause_mode_process; } bool SceneTreeTimer::is_pause_mode_process() { return process_pause; } +void SceneTreeTimer::release_connections() { + + List<Connection> connections; + get_all_signal_connections(&connections); + + for (List<Connection>::Element *E = connections.front(); E; E = E->next()) { + Connection const &connection = E->get(); + disconnect(connection.signal, connection.target, connection.method); + } +} + SceneTreeTimer::SceneTreeTimer() { time_left = 0; process_pause = true; @@ -612,6 +622,12 @@ void SceneTree::finish() { memdelete(root); //delete root root = NULL; } + + // cleanup timers + for (List<Ref<SceneTreeTimer> >::Element *E = timers.front(); E; E = E->next()) { + E->get()->release_connections(); + } + timers.clear(); } void SceneTree::quit() { diff --git a/scene/main/scene_tree.h b/scene/main/scene_tree.h index d387886d61..ef847ebb5b 100644 --- a/scene/main/scene_tree.h +++ b/scene/main/scene_tree.h @@ -61,6 +61,8 @@ public: void set_pause_mode_process(bool p_pause_mode_process); bool is_pause_mode_process(); + void release_connections(); + SceneTreeTimer(); }; diff --git a/scene/main/viewport.cpp b/scene/main/viewport.cpp index 39c5759871..95536bbb23 100644 --- a/scene/main/viewport.cpp +++ b/scene/main/viewport.cpp @@ -1465,18 +1465,19 @@ void Viewport::_gui_show_tooltip() { rp->add_child(gui.tooltip_popup); gui.tooltip_popup->force_parent_owned(); gui.tooltip_popup->set_as_toplevel(true); - //gui.tooltip_popup->hide(); + if (gui.tooltip) // Avoids crash when rapidly switching controls. + gui.tooltip_popup->set_scale(gui.tooltip->get_global_transform().get_scale()); Point2 tooltip_offset = ProjectSettings::get_singleton()->get("display/mouse_cursor/tooltip_position_offset"); Rect2 r(gui.tooltip_pos + tooltip_offset, gui.tooltip_popup->get_minimum_size()); Rect2 vr = gui.tooltip_popup->get_viewport_rect(); - if (r.size.x + r.position.x > vr.size.x) - r.position.x = vr.size.x - r.size.x; + if (r.size.x * gui.tooltip_popup->get_scale().x + r.position.x > vr.size.x) + r.position.x = vr.size.x - r.size.x * gui.tooltip_popup->get_scale().x; else if (r.position.x < 0) r.position.x = 0; - if (r.size.y + r.position.y > vr.size.y) - r.position.y = vr.size.y - r.size.y; + if (r.size.y * gui.tooltip_popup->get_scale().y + r.position.y > vr.size.y) + r.position.y = vr.size.y - r.size.y * gui.tooltip_popup->get_scale().y; else if (r.position.y < 0) r.position.y = 0; @@ -2373,7 +2374,6 @@ void Viewport::_gui_remove_from_modal_stack(List<Control *>::Element *MI, Object List<Control *>::Element *next = MI->next(); gui.modal_stack.erase(MI); - MI = NULL; if (p_prev_focus_owner) { diff --git a/scene/resources/animation.cpp b/scene/resources/animation.cpp index 985b38f913..d932545da4 100644 --- a/scene/resources/animation.cpp +++ b/scene/resources/animation.cpp @@ -2741,77 +2741,77 @@ void Animation::copy_track(int p_track, Ref<Animation> p_to_animation) { void Animation::_bind_methods() { ClassDB::bind_method(D_METHOD("add_track", "type", "at_position"), &Animation::add_track, DEFVAL(-1)); - ClassDB::bind_method(D_METHOD("remove_track", "idx"), &Animation::remove_track); + ClassDB::bind_method(D_METHOD("remove_track", "track_idx"), &Animation::remove_track); ClassDB::bind_method(D_METHOD("get_track_count"), &Animation::get_track_count); - ClassDB::bind_method(D_METHOD("track_get_type", "idx"), &Animation::track_get_type); - ClassDB::bind_method(D_METHOD("track_get_path", "idx"), &Animation::track_get_path); - ClassDB::bind_method(D_METHOD("track_set_path", "idx", "path"), &Animation::track_set_path); + ClassDB::bind_method(D_METHOD("track_get_type", "track_idx"), &Animation::track_get_type); + ClassDB::bind_method(D_METHOD("track_get_path", "track_idx"), &Animation::track_get_path); + ClassDB::bind_method(D_METHOD("track_set_path", "track_idx", "path"), &Animation::track_set_path); ClassDB::bind_method(D_METHOD("find_track", "path"), &Animation::find_track); - ClassDB::bind_method(D_METHOD("track_move_up", "idx"), &Animation::track_move_up); - ClassDB::bind_method(D_METHOD("track_move_down", "idx"), &Animation::track_move_down); - ClassDB::bind_method(D_METHOD("track_move_to", "idx", "to_idx"), &Animation::track_move_to); - ClassDB::bind_method(D_METHOD("track_swap", "idx", "with_idx"), &Animation::track_swap); + ClassDB::bind_method(D_METHOD("track_move_up", "track_idx"), &Animation::track_move_up); + ClassDB::bind_method(D_METHOD("track_move_down", "track_idx"), &Animation::track_move_down); + ClassDB::bind_method(D_METHOD("track_move_to", "track_idx", "to_idx"), &Animation::track_move_to); + ClassDB::bind_method(D_METHOD("track_swap", "track_idx", "with_idx"), &Animation::track_swap); - ClassDB::bind_method(D_METHOD("track_set_imported", "idx", "imported"), &Animation::track_set_imported); - ClassDB::bind_method(D_METHOD("track_is_imported", "idx"), &Animation::track_is_imported); + ClassDB::bind_method(D_METHOD("track_set_imported", "track_idx", "imported"), &Animation::track_set_imported); + ClassDB::bind_method(D_METHOD("track_is_imported", "track_idx"), &Animation::track_is_imported); - ClassDB::bind_method(D_METHOD("track_set_enabled", "idx", "enabled"), &Animation::track_set_enabled); - ClassDB::bind_method(D_METHOD("track_is_enabled", "idx"), &Animation::track_is_enabled); + ClassDB::bind_method(D_METHOD("track_set_enabled", "track_idx", "enabled"), &Animation::track_set_enabled); + ClassDB::bind_method(D_METHOD("track_is_enabled", "track_idx"), &Animation::track_is_enabled); - ClassDB::bind_method(D_METHOD("transform_track_insert_key", "idx", "time", "location", "rotation", "scale"), &Animation::transform_track_insert_key); - ClassDB::bind_method(D_METHOD("track_insert_key", "idx", "time", "key", "transition"), &Animation::track_insert_key, DEFVAL(1)); - ClassDB::bind_method(D_METHOD("track_remove_key", "idx", "key_idx"), &Animation::track_remove_key); - ClassDB::bind_method(D_METHOD("track_remove_key_at_position", "idx", "position"), &Animation::track_remove_key_at_position); - ClassDB::bind_method(D_METHOD("track_set_key_value", "idx", "key", "value"), &Animation::track_set_key_value); - ClassDB::bind_method(D_METHOD("track_set_key_transition", "idx", "key_idx", "transition"), &Animation::track_set_key_transition); - ClassDB::bind_method(D_METHOD("track_set_key_time", "idx", "key_idx", "time"), &Animation::track_set_key_time); - ClassDB::bind_method(D_METHOD("track_get_key_transition", "idx", "key_idx"), &Animation::track_get_key_transition); + ClassDB::bind_method(D_METHOD("transform_track_insert_key", "track_idx", "time", "location", "rotation", "scale"), &Animation::transform_track_insert_key); + ClassDB::bind_method(D_METHOD("track_insert_key", "track_idx", "time", "key", "transition"), &Animation::track_insert_key, DEFVAL(1)); + ClassDB::bind_method(D_METHOD("track_remove_key", "track_idx", "key_idx"), &Animation::track_remove_key); + ClassDB::bind_method(D_METHOD("track_remove_key_at_position", "track_idx", "position"), &Animation::track_remove_key_at_position); + ClassDB::bind_method(D_METHOD("track_set_key_value", "track_idx", "key", "value"), &Animation::track_set_key_value); + ClassDB::bind_method(D_METHOD("track_set_key_transition", "track_idx", "key_idx", "transition"), &Animation::track_set_key_transition); + ClassDB::bind_method(D_METHOD("track_set_key_time", "track_idx", "key_idx", "time"), &Animation::track_set_key_time); + ClassDB::bind_method(D_METHOD("track_get_key_transition", "track_idx", "key_idx"), &Animation::track_get_key_transition); - ClassDB::bind_method(D_METHOD("track_get_key_count", "idx"), &Animation::track_get_key_count); - ClassDB::bind_method(D_METHOD("track_get_key_value", "idx", "key_idx"), &Animation::track_get_key_value); - ClassDB::bind_method(D_METHOD("track_get_key_time", "idx", "key_idx"), &Animation::track_get_key_time); - ClassDB::bind_method(D_METHOD("track_find_key", "idx", "time", "exact"), &Animation::track_find_key, DEFVAL(false)); + ClassDB::bind_method(D_METHOD("track_get_key_count", "track_idx"), &Animation::track_get_key_count); + ClassDB::bind_method(D_METHOD("track_get_key_value", "track_idx", "key_idx"), &Animation::track_get_key_value); + ClassDB::bind_method(D_METHOD("track_get_key_time", "track_idx", "key_idx"), &Animation::track_get_key_time); + ClassDB::bind_method(D_METHOD("track_find_key", "track_idx", "time", "exact"), &Animation::track_find_key, DEFVAL(false)); - ClassDB::bind_method(D_METHOD("track_set_interpolation_type", "idx", "interpolation"), &Animation::track_set_interpolation_type); - ClassDB::bind_method(D_METHOD("track_get_interpolation_type", "idx"), &Animation::track_get_interpolation_type); + ClassDB::bind_method(D_METHOD("track_set_interpolation_type", "track_idx", "interpolation"), &Animation::track_set_interpolation_type); + ClassDB::bind_method(D_METHOD("track_get_interpolation_type", "track_idx"), &Animation::track_get_interpolation_type); - ClassDB::bind_method(D_METHOD("track_set_interpolation_loop_wrap", "idx", "interpolation"), &Animation::track_set_interpolation_loop_wrap); - ClassDB::bind_method(D_METHOD("track_get_interpolation_loop_wrap", "idx"), &Animation::track_get_interpolation_loop_wrap); + ClassDB::bind_method(D_METHOD("track_set_interpolation_loop_wrap", "track_idx", "interpolation"), &Animation::track_set_interpolation_loop_wrap); + ClassDB::bind_method(D_METHOD("track_get_interpolation_loop_wrap", "track_idx"), &Animation::track_get_interpolation_loop_wrap); - ClassDB::bind_method(D_METHOD("transform_track_interpolate", "idx", "time_sec"), &Animation::_transform_track_interpolate); - ClassDB::bind_method(D_METHOD("value_track_set_update_mode", "idx", "mode"), &Animation::value_track_set_update_mode); - ClassDB::bind_method(D_METHOD("value_track_get_update_mode", "idx"), &Animation::value_track_get_update_mode); + ClassDB::bind_method(D_METHOD("transform_track_interpolate", "track_idx", "time_sec"), &Animation::_transform_track_interpolate); + ClassDB::bind_method(D_METHOD("value_track_set_update_mode", "track_idx", "mode"), &Animation::value_track_set_update_mode); + ClassDB::bind_method(D_METHOD("value_track_get_update_mode", "track_idx"), &Animation::value_track_get_update_mode); - ClassDB::bind_method(D_METHOD("value_track_get_key_indices", "idx", "time_sec", "delta"), &Animation::_value_track_get_key_indices); + ClassDB::bind_method(D_METHOD("value_track_get_key_indices", "track_idx", "time_sec", "delta"), &Animation::_value_track_get_key_indices); - ClassDB::bind_method(D_METHOD("method_track_get_key_indices", "idx", "time_sec", "delta"), &Animation::_method_track_get_key_indices); - ClassDB::bind_method(D_METHOD("method_track_get_name", "idx", "key_idx"), &Animation::method_track_get_name); - ClassDB::bind_method(D_METHOD("method_track_get_params", "idx", "key_idx"), &Animation::method_track_get_params); + ClassDB::bind_method(D_METHOD("method_track_get_key_indices", "track_idx", "time_sec", "delta"), &Animation::_method_track_get_key_indices); + ClassDB::bind_method(D_METHOD("method_track_get_name", "track_idx", "key_idx"), &Animation::method_track_get_name); + ClassDB::bind_method(D_METHOD("method_track_get_params", "track_idx", "key_idx"), &Animation::method_track_get_params); - ClassDB::bind_method(D_METHOD("bezier_track_insert_key", "track", "time", "value", "in_handle", "out_handle"), &Animation::bezier_track_insert_key, DEFVAL(Vector2()), DEFVAL(Vector2())); + ClassDB::bind_method(D_METHOD("bezier_track_insert_key", "track_idx", "time", "value", "in_handle", "out_handle"), &Animation::bezier_track_insert_key, DEFVAL(Vector2()), DEFVAL(Vector2())); - ClassDB::bind_method(D_METHOD("bezier_track_set_key_value", "idx", "key_idx", "value"), &Animation::bezier_track_set_key_value); - ClassDB::bind_method(D_METHOD("bezier_track_set_key_in_handle", "idx", "key_idx", "in_handle"), &Animation::bezier_track_set_key_in_handle); - ClassDB::bind_method(D_METHOD("bezier_track_set_key_out_handle", "idx", "key_idx", "out_handle"), &Animation::bezier_track_set_key_out_handle); + ClassDB::bind_method(D_METHOD("bezier_track_set_key_value", "track_idx", "key_idx", "value"), &Animation::bezier_track_set_key_value); + ClassDB::bind_method(D_METHOD("bezier_track_set_key_in_handle", "track_idx", "key_idx", "in_handle"), &Animation::bezier_track_set_key_in_handle); + ClassDB::bind_method(D_METHOD("bezier_track_set_key_out_handle", "track_idx", "key_idx", "out_handle"), &Animation::bezier_track_set_key_out_handle); - ClassDB::bind_method(D_METHOD("bezier_track_get_key_value", "idx", "key_idx"), &Animation::bezier_track_get_key_value); - ClassDB::bind_method(D_METHOD("bezier_track_get_key_in_handle", "idx", "key_idx"), &Animation::bezier_track_get_key_in_handle); - ClassDB::bind_method(D_METHOD("bezier_track_get_key_out_handle", "idx", "key_idx"), &Animation::bezier_track_get_key_out_handle); + ClassDB::bind_method(D_METHOD("bezier_track_get_key_value", "track_idx", "key_idx"), &Animation::bezier_track_get_key_value); + ClassDB::bind_method(D_METHOD("bezier_track_get_key_in_handle", "track_idx", "key_idx"), &Animation::bezier_track_get_key_in_handle); + ClassDB::bind_method(D_METHOD("bezier_track_get_key_out_handle", "track_idx", "key_idx"), &Animation::bezier_track_get_key_out_handle); - ClassDB::bind_method(D_METHOD("bezier_track_interpolate", "track", "time"), &Animation::bezier_track_interpolate); + ClassDB::bind_method(D_METHOD("bezier_track_interpolate", "track_idx", "time"), &Animation::bezier_track_interpolate); - ClassDB::bind_method(D_METHOD("audio_track_insert_key", "track", "time", "stream", "start_offset", "end_offset"), &Animation::audio_track_insert_key, DEFVAL(0), DEFVAL(0)); - ClassDB::bind_method(D_METHOD("audio_track_set_key_stream", "idx", "key_idx", "stream"), &Animation::audio_track_set_key_stream); - ClassDB::bind_method(D_METHOD("audio_track_set_key_start_offset", "idx", "key_idx", "offset"), &Animation::audio_track_set_key_start_offset); - ClassDB::bind_method(D_METHOD("audio_track_set_key_end_offset", "idx", "key_idx", "offset"), &Animation::audio_track_set_key_end_offset); - ClassDB::bind_method(D_METHOD("audio_track_get_key_stream", "idx", "key_idx"), &Animation::audio_track_get_key_stream); - ClassDB::bind_method(D_METHOD("audio_track_get_key_start_offset", "idx", "key_idx"), &Animation::audio_track_get_key_start_offset); - ClassDB::bind_method(D_METHOD("audio_track_get_key_end_offset", "idx", "key_idx"), &Animation::audio_track_get_key_end_offset); + ClassDB::bind_method(D_METHOD("audio_track_insert_key", "track_idx", "time", "stream", "start_offset", "end_offset"), &Animation::audio_track_insert_key, DEFVAL(0), DEFVAL(0)); + ClassDB::bind_method(D_METHOD("audio_track_set_key_stream", "track_idx", "key_idx", "stream"), &Animation::audio_track_set_key_stream); + ClassDB::bind_method(D_METHOD("audio_track_set_key_start_offset", "track_idx", "key_idx", "offset"), &Animation::audio_track_set_key_start_offset); + ClassDB::bind_method(D_METHOD("audio_track_set_key_end_offset", "track_idx", "key_idx", "offset"), &Animation::audio_track_set_key_end_offset); + ClassDB::bind_method(D_METHOD("audio_track_get_key_stream", "track_idx", "key_idx"), &Animation::audio_track_get_key_stream); + ClassDB::bind_method(D_METHOD("audio_track_get_key_start_offset", "track_idx", "key_idx"), &Animation::audio_track_get_key_start_offset); + ClassDB::bind_method(D_METHOD("audio_track_get_key_end_offset", "track_idx", "key_idx"), &Animation::audio_track_get_key_end_offset); - ClassDB::bind_method(D_METHOD("animation_track_insert_key", "track", "time", "animation"), &Animation::animation_track_insert_key); - ClassDB::bind_method(D_METHOD("animation_track_set_key_animation", "idx", "key_idx", "animation"), &Animation::animation_track_set_key_animation); - ClassDB::bind_method(D_METHOD("animation_track_get_key_animation", "idx", "key_idx"), &Animation::animation_track_get_key_animation); + ClassDB::bind_method(D_METHOD("animation_track_insert_key", "track_idx", "time", "animation"), &Animation::animation_track_insert_key); + ClassDB::bind_method(D_METHOD("animation_track_set_key_animation", "track_idx", "key_idx", "animation"), &Animation::animation_track_set_key_animation); + ClassDB::bind_method(D_METHOD("animation_track_get_key_animation", "track_idx", "key_idx"), &Animation::animation_track_get_key_animation); ClassDB::bind_method(D_METHOD("set_length", "time_sec"), &Animation::set_length); ClassDB::bind_method(D_METHOD("get_length"), &Animation::get_length); @@ -2823,7 +2823,7 @@ void Animation::_bind_methods() { ClassDB::bind_method(D_METHOD("get_step"), &Animation::get_step); ClassDB::bind_method(D_METHOD("clear"), &Animation::clear); - ClassDB::bind_method(D_METHOD("copy_track", "track", "to_animation"), &Animation::copy_track); + ClassDB::bind_method(D_METHOD("copy_track", "track_idx", "to_animation"), &Animation::copy_track); ADD_PROPERTY(PropertyInfo(Variant::REAL, "length", PROPERTY_HINT_RANGE, "0.001,99999,0.001"), "set_length", "get_length"); ADD_PROPERTY(PropertyInfo(Variant::BOOL, "loop"), "set_loop", "has_loop"); diff --git a/scene/resources/bit_map.cpp b/scene/resources/bit_map.cpp index e4a64a1de1..e6139dd707 100644 --- a/scene/resources/bit_map.cpp +++ b/scene/resources/bit_map.cpp @@ -197,16 +197,14 @@ Vector<Vector2> BitMap::_march_square(const Rect2i &rect, const Point2i &start) | 4 | 8 | <- current pixel (curx,cury) +---+---+ */ - //NOTE: due to the way we pick points from texture, rect needs to be smaller, otherwise it goes outside 1 pixel - Rect2i fixed_rect = Rect2i(rect.position, rect.size - Size2i(2, 2)); Point2i tl = Point2i(curx - 1, cury - 1); - sv += (fixed_rect.has_point(tl) && get_bit(tl)) ? 1 : 0; + sv += (rect.has_point(tl) && get_bit(tl)) ? 1 : 0; Point2i tr = Point2i(curx, cury - 1); - sv += (fixed_rect.has_point(tr) && get_bit(tr)) ? 2 : 0; + sv += (rect.has_point(tr) && get_bit(tr)) ? 2 : 0; Point2i bl = Point2i(curx - 1, cury); - sv += (fixed_rect.has_point(bl) && get_bit(bl)) ? 4 : 0; + sv += (rect.has_point(bl) && get_bit(bl)) ? 4 : 0; Point2i br = Point2i(curx, cury); - sv += (fixed_rect.has_point(br) && get_bit(br)) ? 8 : 0; + sv += (rect.has_point(br) && get_bit(br)) ? 8 : 0; ERR_FAIL_COND_V(sv == 0 || sv == 15, Vector<Vector2>()); } @@ -300,15 +298,15 @@ Vector<Vector2> BitMap::_march_square(const Rect2i &rect, const Point2i &start) +---+---+ | 4 | | +---+---+ - this normally go RIGHT, but if its coming from UP, it should go LEFT + this normally go RIGHT, but if its coming from RIGHT, it should go LEFT */ if (case6s.has(Point2i(curx, cury))) { - //found, so we go down, and delete from case6s; + //found, so we go left, and delete from case6s; stepx = -1; stepy = 0; case6s.erase(Point2i(curx, cury)); } else { - //not found, we go up, and add to case6s; + //not found, we go right, and add to case6s; stepx = 1; stepy = 0; case6s.insert(Point2i(curx, cury)); @@ -510,12 +508,19 @@ Vector<Vector<Vector2> > BitMap::clip_opaque_to_polygons(const Rect2 &p_rect, fl for (int j = r.position.x; j < r.position.x + r.size.width; j++) { if (!fill->get_bit(Point2(j, i)) && get_bit(Point2(j, i))) { + fill_bits(this, fill, Point2i(j, i), r); + Vector<Vector2> polygon = _march_square(r, Point2i(j, i)); print_verbose("BitMap: Pre reduce: " + itos(polygon.size())); polygon = reduce(polygon, r, p_epsilon); print_verbose("BitMap: Post reduce: " + itos(polygon.size())); + + if (polygon.size() < 3) { + print_verbose("Invalid polygon, skipped"); + continue; + } + polygons.push_back(polygon); - fill_bits(this, fill, Point2i(j, i), r); } } } @@ -525,6 +530,13 @@ Vector<Vector<Vector2> > BitMap::clip_opaque_to_polygons(const Rect2 &p_rect, fl void BitMap::grow_mask(int p_pixels, const Rect2 &p_rect) { + if (p_pixels == 0) { + return; + } + + bool bit_value = p_pixels > 0; + p_pixels = Math::abs(p_pixels); + Rect2i r = Rect2i(0, 0, width, height).clip(p_rect); Ref<BitMap> copy; @@ -534,7 +546,7 @@ void BitMap::grow_mask(int p_pixels, const Rect2 &p_rect) { for (int i = r.position.y; i < r.position.y + r.size.height; i++) { for (int j = r.position.x; j < r.position.x + r.size.width; j++) { - if (copy->get_bit(Point2(j, i))) + if (bit_value == get_bit(Point2(j, i))) continue; bool found = false; @@ -542,16 +554,21 @@ void BitMap::grow_mask(int p_pixels, const Rect2 &p_rect) { for (int y = i - p_pixels; y <= i + p_pixels; y++) { for (int x = j - p_pixels; x <= j + p_pixels; x++) { - if (x < p_rect.position.x || x >= p_rect.position.x + p_rect.size.x) - continue; - if (y < p_rect.position.y || y >= p_rect.position.y + p_rect.size.y) - continue; + bool outside = false; + + if ((x < p_rect.position.x) || (x >= p_rect.position.x + p_rect.size.x) || (y < p_rect.position.y) || (y >= p_rect.position.y + p_rect.size.y)) { + // outside of rectangle counts as bit not set + if (!bit_value) + outside = true; + else + continue; + } float d = Point2(j, i).distance_to(Point2(x, y)) - CMP_EPSILON; if (d > p_pixels) continue; - if (copy->get_bit(Point2(x, y))) { + if (outside || (bit_value == copy->get_bit(Point2(x, y)))) { found = true; break; } @@ -561,12 +578,17 @@ void BitMap::grow_mask(int p_pixels, const Rect2 &p_rect) { } if (found) { - set_bit(Point2(j, i), true); + set_bit(Point2(j, i), bit_value); } } } } +void BitMap::shrink_mask(int p_pixels, const Rect2 &p_rect) { + + grow_mask(-p_pixels, p_rect); +} + Array BitMap::_opaque_to_polygons_bind(const Rect2 &p_rect, float p_epsilon) const { Vector<Vector<Vector2> > result = clip_opaque_to_polygons(p_rect, p_epsilon); diff --git a/scene/resources/bit_map.h b/scene/resources/bit_map.h index daf24affb1..b062dd7376 100644 --- a/scene/resources/bit_map.h +++ b/scene/resources/bit_map.h @@ -67,6 +67,7 @@ public: void resize(const Size2 &p_new_size); void grow_mask(int p_pixels, const Rect2 &p_rect); + void shrink_mask(int p_pixels, const Rect2 &p_rect); void blit(const Vector2 &p_pos, const Ref<BitMap> &p_bitmap); Ref<Image> convert_to_image() const; diff --git a/scene/resources/box_shape.cpp b/scene/resources/box_shape.cpp index d819e9f776..c6fe14e55e 100644 --- a/scene/resources/box_shape.cpp +++ b/scene/resources/box_shape.cpp @@ -31,7 +31,7 @@ #include "box_shape.h" #include "servers/physics_server.h" -Vector<Vector3> BoxShape::_gen_debug_mesh_lines() { +Vector<Vector3> BoxShape::get_debug_mesh_lines() { Vector<Vector3> lines; AABB aabb; diff --git a/scene/resources/box_shape.h b/scene/resources/box_shape.h index 42d54310a8..0bce929aee 100644 --- a/scene/resources/box_shape.h +++ b/scene/resources/box_shape.h @@ -42,12 +42,13 @@ protected: static void _bind_methods(); virtual void _update_shape(); - virtual Vector<Vector3> _gen_debug_mesh_lines(); public: void set_extents(const Vector3 &p_extents); Vector3 get_extents() const; + virtual Vector<Vector3> get_debug_mesh_lines(); + BoxShape(); }; diff --git a/scene/resources/capsule_shape.cpp b/scene/resources/capsule_shape.cpp index 669b261bfe..1ec3bd7158 100644 --- a/scene/resources/capsule_shape.cpp +++ b/scene/resources/capsule_shape.cpp @@ -31,7 +31,7 @@ #include "capsule_shape.h" #include "servers/physics_server.h" -Vector<Vector3> CapsuleShape::_gen_debug_mesh_lines() { +Vector<Vector3> CapsuleShape::get_debug_mesh_lines() { float radius = get_radius(); float height = get_height(); diff --git a/scene/resources/capsule_shape.h b/scene/resources/capsule_shape.h index 6bca53f783..befbc1dcd5 100644 --- a/scene/resources/capsule_shape.h +++ b/scene/resources/capsule_shape.h @@ -44,14 +44,14 @@ protected: virtual void _update_shape(); - virtual Vector<Vector3> _gen_debug_mesh_lines(); - public: void set_radius(float p_radius); float get_radius() const; void set_height(float p_height); float get_height() const; + virtual Vector<Vector3> get_debug_mesh_lines(); + CapsuleShape(); }; diff --git a/scene/resources/concave_polygon_shape.cpp b/scene/resources/concave_polygon_shape.cpp index b4cc38c8c0..dbc07ef591 100644 --- a/scene/resources/concave_polygon_shape.cpp +++ b/scene/resources/concave_polygon_shape.cpp @@ -32,7 +32,7 @@ #include "servers/physics_server.h" -Vector<Vector3> ConcavePolygonShape::_gen_debug_mesh_lines() { +Vector<Vector3> ConcavePolygonShape::get_debug_mesh_lines() { Set<DrawEdge> edges; diff --git a/scene/resources/concave_polygon_shape.h b/scene/resources/concave_polygon_shape.h index 1b8ddfc308..57362a29be 100644 --- a/scene/resources/concave_polygon_shape.h +++ b/scene/resources/concave_polygon_shape.h @@ -61,12 +61,13 @@ protected: static void _bind_methods(); virtual void _update_shape(); - virtual Vector<Vector3> _gen_debug_mesh_lines(); public: void set_faces(const PoolVector<Vector3> &p_faces); PoolVector<Vector3> get_faces() const; + Vector<Vector3> get_debug_mesh_lines(); + ConcavePolygonShape(); }; diff --git a/scene/resources/convex_polygon_shape.cpp b/scene/resources/convex_polygon_shape.cpp index 499688a185..af459ec311 100644 --- a/scene/resources/convex_polygon_shape.cpp +++ b/scene/resources/convex_polygon_shape.cpp @@ -32,7 +32,7 @@ #include "core/math/quick_hull.h" #include "servers/physics_server.h" -Vector<Vector3> ConvexPolygonShape::_gen_debug_mesh_lines() { +Vector<Vector3> ConvexPolygonShape::get_debug_mesh_lines() { PoolVector<Vector3> points = get_points(); diff --git a/scene/resources/convex_polygon_shape.h b/scene/resources/convex_polygon_shape.h index 5c192476d3..e6daf1bef4 100644 --- a/scene/resources/convex_polygon_shape.h +++ b/scene/resources/convex_polygon_shape.h @@ -43,12 +43,12 @@ protected: virtual void _update_shape(); - virtual Vector<Vector3> _gen_debug_mesh_lines(); - public: void set_points(const PoolVector<Vector3> &p_points); PoolVector<Vector3> get_points() const; + virtual Vector<Vector3> get_debug_mesh_lines(); + ConvexPolygonShape(); }; diff --git a/scene/resources/cylinder_shape.cpp b/scene/resources/cylinder_shape.cpp index f60f7ab376..c1a0a0ac5d 100644 --- a/scene/resources/cylinder_shape.cpp +++ b/scene/resources/cylinder_shape.cpp @@ -31,7 +31,7 @@ #include "cylinder_shape.h" #include "servers/physics_server.h" -Vector<Vector3> CylinderShape::_gen_debug_mesh_lines() { +Vector<Vector3> CylinderShape::get_debug_mesh_lines() { float radius = get_radius(); float height = get_height(); diff --git a/scene/resources/cylinder_shape.h b/scene/resources/cylinder_shape.h index 58a4f5a817..411c1515ed 100644 --- a/scene/resources/cylinder_shape.h +++ b/scene/resources/cylinder_shape.h @@ -43,14 +43,14 @@ protected: static void _bind_methods(); virtual void _update_shape(); - virtual Vector<Vector3> _gen_debug_mesh_lines(); - public: void set_radius(float p_radius); float get_radius() const; void set_height(float p_height); float get_height() const; + virtual Vector<Vector3> get_debug_mesh_lines(); + CylinderShape(); }; diff --git a/scene/resources/default_theme/button_hover.png b/scene/resources/default_theme/button_hover.png Binary files differindex ef226e3caf..ff2258281e 100644 --- a/scene/resources/default_theme/button_hover.png +++ b/scene/resources/default_theme/button_hover.png diff --git a/scene/resources/default_theme/button_normal.png b/scene/resources/default_theme/button_normal.png Binary files differindex 7d0bd16221..c189b61b89 100644 --- a/scene/resources/default_theme/button_normal.png +++ b/scene/resources/default_theme/button_normal.png diff --git a/scene/resources/default_theme/color_picker_hue.png b/scene/resources/default_theme/color_picker_hue.png Binary files differindex de2cd0c2bf..7b46f03cb4 100644 --- a/scene/resources/default_theme/color_picker_hue.png +++ b/scene/resources/default_theme/color_picker_hue.png diff --git a/scene/resources/default_theme/default_theme.cpp b/scene/resources/default_theme/default_theme.cpp index 0dcc184a1d..e82819f270 100644 --- a/scene/resources/default_theme/default_theme.cpp +++ b/scene/resources/default_theme/default_theme.cpp @@ -432,7 +432,7 @@ void fill_default_theme(Ref<Theme> &theme, const Ref<Font> &default_font, const theme->set_font("font", "TextEdit", default_font); - theme->set_color("background_color", "TextEdit", Color(0, 0, 0)); + theme->set_color("background_color", "TextEdit", Color(0, 0, 0, 0)); theme->set_color("completion_background_color", "TextEdit", Color(0.17, 0.16, 0.2)); theme->set_color("completion_selected_color", "TextEdit", Color(0.26, 0.26, 0.27)); theme->set_color("completion_existing_color", "TextEdit", Color(0.87, 0.87, 0.87, 0.13)); @@ -558,9 +558,14 @@ void fill_default_theme(Ref<Theme> &theme, const Ref<Font> &default_font, const theme->set_stylebox("panel", "PopupPanel", style_pp); + // PopupDialog + + Ref<StyleBoxTexture> style_pd = make_stylebox(popup_bg_png, 4, 4, 4, 4, 10, 10, 10, 10); + theme->set_stylebox("panel", "PopupDialog", style_pd); + // PopupMenu - theme->set_stylebox("panel", "PopupMenu", make_stylebox(popup_bg_png, 4, 4, 4, 4, 10, 10, 10, 10)); + theme->set_stylebox("panel", "PopupMenu", style_pd); theme->set_stylebox("panel_disabled", "PopupMenu", make_stylebox(popup_bg_disabled_png, 4, 4, 4, 4)); theme->set_stylebox("hover", "PopupMenu", selected); theme->set_stylebox("separator", "PopupMenu", make_stylebox(vseparator_png, 3, 3, 3, 3)); diff --git a/scene/resources/default_theme/error_icon.png b/scene/resources/default_theme/error_icon.png Binary files differindex 00680db5df..30336b91a4 100644 --- a/scene/resources/default_theme/error_icon.png +++ b/scene/resources/default_theme/error_icon.png diff --git a/scene/resources/default_theme/graph_node_selected.png b/scene/resources/default_theme/graph_node_selected.png Binary files differindex cc4eb7f753..c52d88586b 100644 --- a/scene/resources/default_theme/graph_node_selected.png +++ b/scene/resources/default_theme/graph_node_selected.png diff --git a/scene/resources/default_theme/graph_port.png b/scene/resources/default_theme/graph_port.png Binary files differindex f33ae3baf3..358934f4d8 100644 --- a/scene/resources/default_theme/graph_port.png +++ b/scene/resources/default_theme/graph_port.png diff --git a/scene/resources/default_theme/icon_visibility.png b/scene/resources/default_theme/icon_visibility.png Binary files differindex 6402571f3e..b2df8cbdb8 100644 --- a/scene/resources/default_theme/icon_visibility.png +++ b/scene/resources/default_theme/icon_visibility.png diff --git a/scene/resources/default_theme/option_button_normal.png b/scene/resources/default_theme/option_button_normal.png Binary files differindex 2dadb40338..43fc29e958 100644 --- a/scene/resources/default_theme/option_button_normal.png +++ b/scene/resources/default_theme/option_button_normal.png diff --git a/scene/resources/default_theme/scroll_grabber_hl.png b/scene/resources/default_theme/scroll_grabber_hl.png Binary files differindex 006cfa3361..21ee486e0b 100644 --- a/scene/resources/default_theme/scroll_grabber_hl.png +++ b/scene/resources/default_theme/scroll_grabber_hl.png diff --git a/scene/resources/default_theme/space.png b/scene/resources/default_theme/space.png Binary files differindex 7e458a6c45..3c66316074 100644 --- a/scene/resources/default_theme/space.png +++ b/scene/resources/default_theme/space.png diff --git a/scene/resources/default_theme/tab_container_bg.png b/scene/resources/default_theme/tab_container_bg.png Binary files differindex 7d0bd16221..c189b61b89 100644 --- a/scene/resources/default_theme/tab_container_bg.png +++ b/scene/resources/default_theme/tab_container_bg.png diff --git a/scene/resources/default_theme/tab_current.png b/scene/resources/default_theme/tab_current.png Binary files differindex 520d147217..d5641e917a 100644 --- a/scene/resources/default_theme/tab_current.png +++ b/scene/resources/default_theme/tab_current.png diff --git a/scene/resources/default_theme/tab_disabled.png b/scene/resources/default_theme/tab_disabled.png Binary files differindex 97157a58dd..a7c04effa3 100644 --- a/scene/resources/default_theme/tab_disabled.png +++ b/scene/resources/default_theme/tab_disabled.png diff --git a/scene/resources/default_theme/theme_data.h b/scene/resources/default_theme/theme_data.h index 0d57fc6b14..0a4e557451 100644 --- a/scene/resources/default_theme/theme_data.h +++ b/scene/resources/default_theme/theme_data.h @@ -19,11 +19,11 @@ static const unsigned char button_focus_png[] = { }; static const unsigned char button_hover_png[] = { - 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x10, 0x8, 0x3, 0x0, 0x0, 0x0, 0x28, 0x2d, 0xf, 0x53, 0x0, 0x0, 0x0, 0x8a, 0x50, 0x4c, 0x54, 0x45, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x42, 0x40, 0x4b, 0x5f, 0x5a, 0x6c, 0x5f, 0x5a, 0x6b, 0x56, 0x53, 0x64, 0x57, 0x53, 0x64, 0x3e, 0x3b, 0x46, 0x57, 0x53, 0x63, 0x57, 0x53, 0x63, 0x5b, 0x57, 0x68, 0x5a, 0x56, 0x67, 0x4d, 0x4a, 0x57, 0x49, 0x46, 0x52, 0x48, 0x45, 0x51, 0x5b, 0x57, 0x66, 0x59, 0x55, 0x64, 0x47, 0x44, 0x50, 0x58, 0x54, 0x64, 0x46, 0x43, 0x50, 0x56, 0x53, 0x63, 0x45, 0x42, 0x4f, 0x56, 0x53, 0x62, 0x45, 0x42, 0x4e, 0x55, 0x51, 0x62, 0x44, 0x41, 0x4e, 0x55, 0x51, 0x60, 0x44, 0x41, 0x4d, 0x43, 0x40, 0x4c, 0x47, 0x43, 0x51, 0x43, 0x3f, 0x4d, 0x42, 0x3f, 0x4c, 0x53, 0x50, 0x5f, 0x53, 0x4f, 0x5e, 0x40, 0xdc, 0xe6, 0x80, 0x0, 0x0, 0x0, 0x16, 0x74, 0x52, 0x4e, 0x53, 0x4, 0xa, 0x11, 0x19, 0x1f, 0x22, 0x24, 0x15, 0x25, 0x34, 0x3f, 0x46, 0x47, 0x48, 0x77, 0xef, 0xef, 0xef, 0xef, 0x77, 0xef, 0xed, 0x6b, 0x28, 0x52, 0x7a, 0x0, 0x0, 0x0, 0x67, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0x5d, 0xcf, 0x47, 0x2, 0x83, 0x30, 0x10, 0x43, 0x51, 0x69, 0x98, 0xf4, 0xe4, 0xfe, 0x87, 0x24, 0xfb, 0xf4, 0x8, 0xd1, 0xb1, 0x3f, 0xb8, 0xbd, 0xdd, 0x24, 0x38, 0x4, 0x40, 0x43, 0xc9, 0xfd, 0x24, 0x1a, 0x7a, 0x27, 0x2d, 0x7, 0xc2, 0x41, 0x2f, 0xbd, 0x69, 0x88, 0x23, 0x27, 0x38, 0x3d, 0xfd, 0x22, 0x2f, 0xd3, 0x1b, 0xc3, 0x35, 0xe9, 0x85, 0x39, 0xd, 0x10, 0x2c, 0x0, 0x25, 0x20, 0x81, 0x2d, 0xc0, 0xa0, 0x2d, 0x8, 0xa9, 0x12, 0x64, 0x0, 0x66, 0x91, 0xa5, 0x61, 0xf3, 0xbe, 0xc5, 0x18, 0xd9, 0x7e, 0x7e, 0x21, 0x45, 0x1b, 0x53, 0x77, 0x4a, 0xac, 0x87, 0x63, 0x3d, 0x7e, 0x7, 0x87, 0x7b, 0x3b, 0x5b, 0x7a, 0xd3, 0xea, 0x4, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 + 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x10, 0x8, 0x3, 0x0, 0x0, 0x0, 0x28, 0x2d, 0xf, 0x53, 0x0, 0x0, 0x0, 0x8a, 0x50, 0x4c, 0x54, 0x45, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x42, 0x40, 0x4b, 0x5f, 0x5a, 0x6c, 0x5f, 0x5a, 0x6b, 0x56, 0x53, 0x64, 0x57, 0x53, 0x64, 0x3e, 0x3b, 0x46, 0x57, 0x53, 0x63, 0x57, 0x53, 0x63, 0x5b, 0x57, 0x68, 0x5a, 0x56, 0x67, 0x4d, 0x4a, 0x57, 0x49, 0x46, 0x52, 0x48, 0x45, 0x51, 0x5b, 0x57, 0x66, 0x59, 0x55, 0x64, 0x47, 0x44, 0x50, 0x58, 0x54, 0x64, 0x46, 0x43, 0x50, 0x56, 0x53, 0x63, 0x45, 0x42, 0x4f, 0x56, 0x53, 0x62, 0x45, 0x42, 0x4e, 0x55, 0x51, 0x62, 0x44, 0x41, 0x4e, 0x55, 0x51, 0x60, 0x44, 0x41, 0x4d, 0x43, 0x40, 0x4c, 0x47, 0x43, 0x51, 0x43, 0x3f, 0x4d, 0x42, 0x3f, 0x4c, 0x53, 0x50, 0x5f, 0x53, 0x4f, 0x5e, 0x40, 0xdc, 0xe6, 0x80, 0x0, 0x0, 0x0, 0x16, 0x74, 0x52, 0x4e, 0x53, 0x4, 0xa, 0x11, 0x19, 0x1f, 0x22, 0x24, 0x15, 0x25, 0x34, 0x3f, 0x46, 0x47, 0x48, 0x77, 0xef, 0xef, 0xef, 0xef, 0x77, 0xef, 0xed, 0x6b, 0x28, 0x52, 0x7a, 0x0, 0x0, 0x0, 0x65, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0x6d, 0xcf, 0xc5, 0x1, 0x84, 0x40, 0x14, 0x4, 0xd1, 0x2e, 0x5c, 0xf3, 0xf, 0x92, 0xbd, 0xaf, 0xd3, 0xb8, 0x53, 0x30, 0xf6, 0x6e, 0x1f, 0x31, 0x26, 0xc9, 0x63, 0x90, 0xcc, 0xe2, 0xb1, 0x4f, 0x34, 0x48, 0x8a, 0x86, 0xfc, 0xf6, 0x87, 0x1e, 0x82, 0x8c, 0x19, 0xf2, 0x17, 0x4, 0x50, 0xce, 0x6f, 0x8d, 0xd7, 0x88, 0x7e, 0x69, 0xc9, 0x23, 0x4, 0x1c, 0x40, 0x47, 0x50, 0x24, 0xed, 0x41, 0x3d, 0x78, 0xf, 0x56, 0xe4, 0x23, 0xb8, 0x7, 0x69, 0x11, 0xf7, 0x12, 0x12, 0x7e, 0xea, 0x60, 0xa, 0x9a, 0xef, 0x3f, 0xb0, 0x83, 0x26, 0x98, 0x7b, 0x70, 0x33, 0xdc, 0x65, 0xfc, 0xe, 0x81, 0x4e, 0x3b, 0x55, 0xea, 0xaa, 0xb0, 0xe, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; static const unsigned char button_normal_png[] = { - 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x10, 0x8, 0x3, 0x0, 0x0, 0x0, 0x28, 0x2d, 0xf, 0x53, 0x0, 0x0, 0x0, 0x87, 0x50, 0x4c, 0x54, 0x45, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c, 0x3a, 0x44, 0x56, 0x53, 0x61, 0x56, 0x52, 0x60, 0x47, 0x44, 0x52, 0x33, 0x31, 0x39, 0x47, 0x44, 0x50, 0x47, 0x44, 0x51, 0x52, 0x50, 0x5d, 0x51, 0x4f, 0x5d, 0x46, 0x42, 0x4e, 0x42, 0x3e, 0x4a, 0x41, 0x3e, 0x49, 0x51, 0x4e, 0x5b, 0x40, 0x3e, 0x48, 0x4f, 0x4c, 0x59, 0x3f, 0x3d, 0x47, 0x4e, 0x4a, 0x58, 0x3e, 0x3b, 0x46, 0x4b, 0x49, 0x55, 0x3c, 0x3a, 0x44, 0x4a, 0x47, 0x54, 0x3b, 0x39, 0x43, 0x49, 0x46, 0x53, 0x3a, 0x38, 0x42, 0x47, 0x45, 0x50, 0x39, 0x37, 0x40, 0x47, 0x43, 0x50, 0x38, 0x35, 0x3f, 0x36, 0x34, 0x3e, 0x44, 0x42, 0x4d, 0x44, 0x41, 0x4c, 0x3f, 0x38, 0xaa, 0x5e, 0x0, 0x0, 0x0, 0x15, 0x74, 0x52, 0x4e, 0x53, 0x4, 0xa, 0x11, 0x19, 0x1f, 0x22, 0x24, 0x15, 0x25, 0x34, 0x3f, 0x46, 0x47, 0x48, 0x77, 0xef, 0xef, 0xef, 0x77, 0xef, 0xed, 0xe8, 0xff, 0x76, 0xed, 0x0, 0x0, 0x0, 0x65, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0x65, 0xcf, 0x45, 0x2, 0x84, 0x30, 0x14, 0x4, 0xd1, 0x2e, 0x1c, 0xee, 0x7f, 0xca, 0xd1, 0xed, 0x28, 0x8d, 0x4b, 0x92, 0x5a, 0xbe, 0xe8, 0x2f, 0xc4, 0x9c, 0x24, 0xcf, 0x15, 0x54, 0xab, 0x78, 0xee, 0x53, 0x30, 0x4a, 0x85, 0xa6, 0xfc, 0xf1, 0x87, 0x11, 0xb2, 0x9a, 0x15, 0x9a, 0x37, 0x13, 0x74, 0xce, 0xb4, 0xd4, 0x77, 0xcb, 0xe, 0xb4, 0x96, 0x99, 0x10, 0x34, 0x81, 0x42, 0x50, 0x21, 0x9d, 0x41, 0x23, 0xf8, 0xc, 0x56, 0xe1, 0x10, 0x9c, 0x40, 0x4e, 0xfe, 0x6e, 0x72, 0x96, 0x7e, 0xd7, 0xdf, 0x3f, 0xb3, 0x79, 0x90, 0xcd, 0xf1, 0xc4, 0x26, 0x1e, 0x8e, 0x78, 0xfc, 0x1, 0xf5, 0x61, 0x3f, 0x44, 0xe8, 0xf1, 0xdd, 0xba, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 + 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x10, 0x8, 0x3, 0x0, 0x0, 0x0, 0x28, 0x2d, 0xf, 0x53, 0x0, 0x0, 0x0, 0x87, 0x50, 0x4c, 0x54, 0x45, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c, 0x3a, 0x44, 0x56, 0x53, 0x61, 0x56, 0x52, 0x60, 0x47, 0x44, 0x52, 0x33, 0x31, 0x39, 0x47, 0x44, 0x50, 0x47, 0x44, 0x51, 0x52, 0x50, 0x5d, 0x51, 0x4f, 0x5d, 0x46, 0x42, 0x4e, 0x42, 0x3e, 0x4a, 0x41, 0x3e, 0x49, 0x51, 0x4e, 0x5b, 0x40, 0x3e, 0x48, 0x4f, 0x4c, 0x59, 0x3f, 0x3d, 0x47, 0x4e, 0x4a, 0x58, 0x3e, 0x3b, 0x46, 0x4b, 0x49, 0x55, 0x3c, 0x3a, 0x44, 0x4a, 0x47, 0x54, 0x3b, 0x39, 0x43, 0x49, 0x46, 0x53, 0x3a, 0x38, 0x42, 0x47, 0x45, 0x50, 0x39, 0x37, 0x40, 0x47, 0x43, 0x50, 0x38, 0x35, 0x3f, 0x36, 0x34, 0x3e, 0x44, 0x42, 0x4d, 0x44, 0x41, 0x4c, 0x3f, 0x38, 0xaa, 0x5e, 0x0, 0x0, 0x0, 0x15, 0x74, 0x52, 0x4e, 0x53, 0x4, 0xa, 0x11, 0x19, 0x1f, 0x22, 0x24, 0x15, 0x25, 0x34, 0x3f, 0x46, 0x47, 0x48, 0x77, 0xef, 0xef, 0xef, 0x77, 0xef, 0xed, 0xe8, 0xff, 0x76, 0xed, 0x0, 0x0, 0x0, 0x63, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0x6d, 0xcf, 0x45, 0x2, 0x84, 0x30, 0x0, 0x4, 0xc1, 0x69, 0x1c, 0xfe, 0xff, 0xca, 0xd5, 0xeb, 0x2a, 0x83, 0x6b, 0xd2, 0xb7, 0x54, 0x1c, 0x31, 0x26, 0xc9, 0x63, 0x50, 0xcc, 0x32, 0x8d, 0x3f, 0xd9, 0x20, 0x5, 0x1a, 0xf2, 0xc7, 0x1f, 0x7a, 0x48, 0x4a, 0x66, 0xa8, 0xde, 0xc, 0xd0, 0x38, 0xd1, 0x54, 0xdb, 0x4c, 0x2b, 0xd0, 0x5c, 0x62, 0x8e, 0xa0, 0x1, 0x74, 0x4, 0x65, 0xd2, 0x1e, 0xd4, 0x83, 0xf7, 0x60, 0x65, 0x3e, 0x82, 0x3, 0x48, 0x49, 0xdf, 0x55, 0xca, 0xd4, 0xef, 0xfa, 0xfb, 0x27, 0x36, 0xf, 0x92, 0x31, 0x9e, 0x44, 0x3e, 0x17, 0x7c, 0xbf, 0x3, 0xef, 0x34, 0x3f, 0x3e, 0xe0, 0x24, 0x67, 0xb9, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; static const unsigned char button_pressed_png[] = { @@ -47,7 +47,7 @@ static const unsigned char close_hl_png[] = { }; static const unsigned char color_picker_hue_png[] = { - 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x8, 0x2, 0x0, 0x0, 0x0, 0xfd, 0x5c, 0x8b, 0xcf, 0x0, 0x0, 0x0, 0x59, 0x49, 0x44, 0x41, 0x54, 0x28, 0x91, 0xcd, 0xd0, 0x31, 0xa, 0x3, 0x31, 0x10, 0x43, 0xd1, 0x87, 0xc0, 0xf6, 0xfd, 0x8f, 0x1b, 0xdb, 0x30, 0x69, 0x76, 0x21, 0x65, 0xd8, 0x14, 0x71, 0xf1, 0xf9, 0x8c, 0x84, 0x9a, 0x51, 0x44, 0x13, 0xfd, 0x21, 0xe3, 0x87, 0xed, 0xf7, 0xa8, 0xcd, 0x2a, 0x99, 0x8e, 0x46, 0x2b, 0x94, 0xd0, 0x43, 0xb, 0xe3, 0x64, 0xb3, 0x2a, 0xa6, 0x93, 0xb9, 0x9f, 0x9a, 0x4e, 0x3a, 0x69, 0x97, 0xc7, 0xe5, 0x3b, 0x1b, 0xff, 0xef, 0x6d, 0xa5, 0xec, 0x30, 0xc3, 0xeb, 0xf2, 0xc, 0xeb, 0xe3, 0x5e, 0x27, 0xf4, 0x8a, 0x37, 0x75, 0x7b, 0x8a, 0xe5, 0x90, 0x9a, 0xab, 0x81, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 + 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x8, 0x2, 0x0, 0x0, 0x0, 0xfd, 0x5c, 0x8b, 0xcf, 0x0, 0x0, 0x0, 0x54, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0xcd, 0xc9, 0x1, 0x6, 0x43, 0x31, 0x10, 0x45, 0xd1, 0x63, 0xc8, 0xcf, 0xfe, 0x97, 0xdb, 0x9f, 0xf0, 0x1a, 0x15, 0xb4, 0x0, 0xa5, 0x1a, 0x1c, 0xd7, 0xcc, 0x13, 0x4a, 0x5b, 0xae, 0x2f, 0xf5, 0xdd, 0xdf, 0x92, 0xc9, 0x88, 0xba, 0x1d, 0x4d, 0xb, 0xa2, 0xb8, 0x96, 0xb6, 0xf4, 0x93, 0xcb, 0x48, 0xb9, 0x9d, 0x8c, 0x16, 0xa4, 0x2e, 0x5e, 0xda, 0x6e, 0xe7, 0xe3, 0xd7, 0xff, 0xbf, 0x9b, 0x22, 0x66, 0x71, 0x2f, 0x8f, 0xdd, 0xc5, 0x78, 0xbb, 0xc7, 0x9, 0xbb, 0xf0, 0x4, 0x75, 0x7b, 0x8a, 0xe5, 0x7c, 0x23, 0x8a, 0xd3, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; static const unsigned char color_picker_sample_png[] = { @@ -59,7 +59,7 @@ static const unsigned char dropdown_png[] = { }; static const unsigned char error_icon_png[] = { - 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x10, 0x8, 0x4, 0x0, 0x0, 0x0, 0xb5, 0xfa, 0x37, 0xea, 0x0, 0x0, 0x0, 0x2, 0x62, 0x4b, 0x47, 0x44, 0x0, 0xff, 0x87, 0x8f, 0xcc, 0xbf, 0x0, 0x0, 0x0, 0x9, 0x70, 0x48, 0x59, 0x73, 0x0, 0x0, 0xb, 0x13, 0x0, 0x0, 0xb, 0x13, 0x1, 0x0, 0x9a, 0x9c, 0x18, 0x0, 0x0, 0x0, 0x7, 0x74, 0x49, 0x4d, 0x45, 0x7, 0xe2, 0xb, 0xf, 0x0, 0x22, 0x18, 0xc, 0x35, 0xef, 0x18, 0x0, 0x0, 0x0, 0xe, 0x49, 0x44, 0x41, 0x54, 0x28, 0xcf, 0x63, 0x60, 0x18, 0x5, 0xa3, 0x0, 0x1, 0x0, 0x2, 0x10, 0x0, 0x1, 0x14, 0xc2, 0xc0, 0x92, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 + 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x10, 0x8, 0x4, 0x0, 0x0, 0x0, 0xb5, 0xfa, 0x37, 0xea, 0x0, 0x0, 0x0, 0x9, 0x70, 0x48, 0x59, 0x73, 0x0, 0x0, 0xb, 0x13, 0x0, 0x0, 0xb, 0x13, 0x1, 0x0, 0x9a, 0x9c, 0x18, 0x0, 0x0, 0x0, 0x2, 0x62, 0x4b, 0x47, 0x44, 0x0, 0xff, 0x87, 0x8f, 0xcc, 0xbf, 0x0, 0x0, 0x0, 0xe, 0x49, 0x44, 0x41, 0x54, 0x28, 0xcf, 0x63, 0x60, 0x18, 0x5, 0xa3, 0x0, 0x1, 0x0, 0x2, 0x10, 0x0, 0x1, 0x14, 0xc2, 0xc0, 0x92, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; static const unsigned char focus_png[] = { @@ -99,11 +99,11 @@ static const unsigned char graph_node_position_png[] = { }; static const unsigned char graph_node_selected_png[] = { - 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x40, 0x8, 0x3, 0x0, 0x0, 0x0, 0x24, 0xa3, 0x7, 0xa4, 0x0, 0x0, 0x1, 0x5f, 0x50, 0x4c, 0x54, 0x45, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb2, 0xb2, 0xcc, 0xae, 0xa0, 0xbb, 0x9c, 0x92, 0xa6, 0x9a, 0x91, 0xa4, 0x95, 0x8c, 0x9e, 0xaf, 0x9f, 0xaf, 0xa0, 0x94, 0xa5, 0x8e, 0x84, 0x95, 0x7f, 0x75, 0x84, 0x73, 0x6a, 0x78, 0x6d, 0x64, 0x72, 0xa2, 0xa2, 0xb9, 0x9c, 0x90, 0xa2, 0x8b, 0x81, 0x90, 0xdc, 0xda, 0xce, 0xe2, 0xe1, 0xd2, 0x9d, 0x91, 0xa9, 0x85, 0x7c, 0x8c, 0xdb, 0xd9, 0xce, 0xdb, 0xd9, 0xcd, 0xda, 0xce, 0xe0, 0xde, 0xd5, 0xe3, 0xdf, 0xd6, 0xe4, 0x97, 0x8d, 0xa0, 0x7a, 0x70, 0x7f, 0xdb, 0xd0, 0xdf, 0xdb, 0xd0, 0xe1, 0xda, 0xd0, 0xe1, 0x70, 0x67, 0x75, 0xd8, 0xcb, 0xde, 0xda, 0xcf, 0xdf, 0xdb, 0xce, 0xe1, 0xdb, 0xcf, 0xe1, 0xdb, 0xd0, 0xe0, 0xda, 0xcf, 0xe0, 0xd8, 0xcc, 0xde, 0x90, 0x87, 0x99, 0x6d, 0x67, 0x72, 0xd7, 0xcc, 0xdf, 0xda, 0xce, 0xdf, 0xd8, 0xcb, 0xdf, 0xd7, 0xca, 0xde, 0xd9, 0xcc, 0xdf, 0xd9, 0xcd, 0xdf, 0xd6, 0xc9, 0xdd, 0xd9, 0xcd, 0xde, 0xd6, 0xc8, 0xdc, 0xd5, 0xc8, 0xdc, 0xd7, 0xcb, 0xdd, 0xd7, 0xca, 0xdd, 0xd5, 0xc7, 0xdc, 0xd3, 0xc6, 0xdb, 0xd5, 0xc9, 0xdc, 0xd5, 0xc9, 0xdd, 0xd6, 0xc9, 0xdc, 0xd4, 0xc6, 0xdb, 0xd3, 0xc5, 0xdb, 0xd5, 0xc8, 0xdb, 0xd4, 0xc8, 0xdc, 0xd3, 0xc4, 0xd9, 0xd4, 0xc6, 0xda, 0xd2, 0xc3, 0xd9, 0xd3, 0xc5, 0xda, 0xd2, 0xc5, 0xd9, 0xd3, 0xc5, 0xd9, 0xd2, 0xc5, 0xda, 0xd1, 0xc2, 0xd9, 0xd2, 0xc4, 0xd8, 0xd2, 0xc4, 0xd9, 0xd0, 0xc2, 0xd9, 0xd0, 0xc1, 0xd7, 0xd0, 0xc2, 0xd7, 0xd0, 0xc2, 0xd8, 0xd1, 0xc2, 0xd7, 0xcf, 0xc1, 0xd7, 0xd0, 0xc2, 0xd6, 0xcf, 0xc1, 0xd6, 0xcf, 0xc2, 0xd7, 0xcf, 0xc0, 0xd7, 0xce, 0xbf, 0xd6, 0xce, 0xc0, 0xd5, 0xce, 0xc0, 0xd6, 0xce, 0xbf, 0xd5, 0xcd, 0xbf, 0xd5, 0xcd, 0xbe, 0xd5, 0xcd, 0xbe, 0xd4, 0xcc, 0xbd, 0xd5, 0xcc, 0xbd, 0xd4, 0xcc, 0xbc, 0xd4, 0x47, 0x40, 0x4a, 0x1d, 0x1a, 0x1f, 0x69, 0x5f, 0x6f, 0x4a, 0x42, 0x4f, 0x5e, 0x54, 0x63, 0x3b, 0x34, 0x3f, 0x5e, 0x55, 0x63, 0x63, 0x59, 0x67, 0x77, 0x6d, 0x7b, 0x6d, 0x62, 0x73, 0x7f, 0x76, 0x85, 0xdb, 0xd9, 0xcd, 0xdb, 0xd8, 0xcd, 0x6d, 0x62, 0x74, 0x8f, 0x84, 0x94, 0x7f, 0x76, 0x83, 0xdb, 0xd8, 0xcd, 0xa4, 0x95, 0xa4, 0x7e, 0x74, 0x84, 0x74, 0x6b, 0x79, 0x6f, 0x66, 0x74, 0x96, 0x8a, 0xa2, 0x91, 0x88, 0x9b, 0x0, 0x0, 0x0, 0xaa, 0xaa, 0xaa, 0xbf, 0xbf, 0xbf, 0xf0, 0xc9, 0xec, 0x71, 0x0, 0x0, 0x0, 0x75, 0x74, 0x52, 0x4e, 0x53, 0x1, 0x3, 0xa, 0x13, 0x1a, 0x1c, 0x1d, 0x10, 0x2b, 0x4d, 0x64, 0x6e, 0x72, 0xb, 0x2c, 0x6a, 0xfc, 0xff, 0x15, 0x52, 0xfd, 0xff, 0xe2, 0xe2, 0xe2, 0x1b, 0x68, 0xe2, 0xe2, 0xe2, 0x71, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0x1e, 0x72, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0x6b, 0xc7, 0x56, 0xfe, 0xff, 0xc7, 0x30, 0x74, 0xfe, 0x11, 0x57, 0x6d, 0x72, 0x16, 0x1c, 0x0, 0x3, 0x4, 0x35, 0xf5, 0x4, 0x26, 0x0, 0x0, 0x1, 0x1f, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0xec, 0xd0, 0x35, 0x82, 0x1c, 0x31, 0x14, 0x84, 0xe1, 0xbf, 0xa4, 0xd7, 0x32, 0x33, 0xb3, 0xf, 0x63, 0x8e, 0xcd, 0x10, 0xcd, 0x99, 0x1c, 0x3a, 0x75, 0xe8, 0xcc, 0xbe, 0x8e, 0x99, 0x79, 0xb9, 0x49, 0x6f, 0x49, 0xd3, 0xcb, 0x7b, 0x82, 0xa9, 0xac, 0x3e, 0xb1, 0xc, 0xad, 0x4, 0xf0, 0x95, 0x98, 0xd2, 0x6, 0x68, 0xec, 0x60, 0xa9, 0xac, 0x52, 0xb2, 0x6a, 0xf3, 0x92, 0x3d, 0x9a, 0xdf, 0x2f, 0x39, 0x20, 0xf7, 0xb9, 0x7d, 0x6e, 0xbf, 0xcf, 0x62, 0xea, 0xaa, 0x96, 0x24, 0x69, 0xce, 0xbe, 0xd9, 0x55, 0x4d, 0xef, 0x5b, 0xd8, 0xbb, 0x90, 0x9a, 0xa6, 0x39, 0x21, 0xf6, 0x5d, 0xb5, 0x77, 0xa9, 0x8a, 0x7, 0x35, 0xd5, 0xc0, 0x19, 0x32, 0x9f, 0xcf, 0x1b, 0x10, 0x3d, 0x9c, 0x1, 0x20, 0x2, 0x6, 0x84, 0xbf, 0x24, 0x9a, 0x44, 0x73, 0xac, 0x80, 0x4e, 0x80, 0x5c, 0x4e, 0x28, 0x60, 0x2, 0xc9, 0x3d, 0xa8, 0x40, 0x25, 0xe6, 0x0, 0xe, 0xe4, 0x2, 0x51, 0x1c, 0x2, 0x40, 0x5, 0x82, 0xa4, 0x2c, 0x3c, 0x76, 0xc3, 0x12, 0x51, 0xfb, 0x9e, 0xba, 0xdb, 0x3b, 0x6c, 0x2a, 0x45, 0xd8, 0xaf, 0x3c, 0x86, 0x3e, 0x57, 0x31, 0xc7, 0x7e, 0x98, 0x51, 0x25, 0x39, 0xca, 0x15, 0x1a, 0x3, 0x2, 0x8f, 0xc0, 0x70, 0xa, 0x20, 0x1c, 0x2f, 0x10, 0x87, 0x2f, 0x1c, 0x66, 0xec, 0xe, 0x1b, 0x33, 0x81, 0xd, 0x99, 0xc0, 0x55, 0xfd, 0x8, 0x5e, 0x4a, 0xe0, 0x82, 0x1b, 0xf3, 0x68, 0xc, 0x62, 0x7e, 0xaf, 0x4d, 0xdf, 0x79, 0x15, 0xf2, 0x30, 0xe3, 0xfa, 0x1b, 0xab, 0xc3, 0x3d, 0x59, 0xe3, 0x99, 0xa0, 0xe4, 0xf7, 0xbc, 0xb6, 0xd6, 0xa4, 0x97, 0x65, 0xc6, 0x63, 0xf7, 0xd6, 0x66, 0x62, 0x1f, 0x9f, 0xe9, 0x5, 0x30, 0x72, 0xef, 0xe2, 0x8c, 0xf9, 0xf3, 0x83, 0x23, 0xbd, 0x3e, 0xf, 0x2c, 0x6e, 0xbb, 0xf7, 0xff, 0x5, 0x5f, 0xfe, 0xb3, 0x14, 0x31, 0xf4, 0x31, 0x33, 0xfa, 0x41, 0xd3, 0xe9, 0xe7, 0x22, 0x6, 0x0, 0xb4, 0xb3, 0x74, 0xef, 0x4f, 0xde, 0x59, 0x95, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 + 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x40, 0x8, 0x3, 0x0, 0x0, 0x0, 0x24, 0xa3, 0x7, 0xa4, 0x0, 0x0, 0x1, 0x5f, 0x50, 0x4c, 0x54, 0x45, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb2, 0xb2, 0xcc, 0xae, 0xa0, 0xbb, 0x9c, 0x92, 0xa6, 0x9a, 0x91, 0xa4, 0x95, 0x8c, 0x9e, 0xaf, 0x9f, 0xaf, 0xa0, 0x94, 0xa5, 0x8e, 0x84, 0x95, 0x7f, 0x75, 0x84, 0x73, 0x6a, 0x78, 0x6d, 0x64, 0x72, 0xa2, 0xa2, 0xb9, 0x9c, 0x90, 0xa2, 0x8b, 0x81, 0x90, 0xdc, 0xda, 0xce, 0xe2, 0xe1, 0xd2, 0x9d, 0x91, 0xa9, 0x85, 0x7c, 0x8c, 0xdb, 0xd9, 0xce, 0xdb, 0xd9, 0xcd, 0xda, 0xce, 0xe0, 0xde, 0xd5, 0xe3, 0xdf, 0xd6, 0xe4, 0x97, 0x8d, 0xa0, 0x7a, 0x70, 0x7f, 0xdb, 0xd0, 0xdf, 0xdb, 0xd0, 0xe1, 0xda, 0xd0, 0xe1, 0x70, 0x67, 0x75, 0xd8, 0xcb, 0xde, 0xda, 0xcf, 0xdf, 0xdb, 0xce, 0xe1, 0xdb, 0xcf, 0xe1, 0xdb, 0xd0, 0xe0, 0xda, 0xcf, 0xe0, 0xd8, 0xcc, 0xde, 0x90, 0x87, 0x99, 0x6d, 0x67, 0x72, 0xd7, 0xcc, 0xdf, 0xda, 0xce, 0xdf, 0xd8, 0xcb, 0xdf, 0xd7, 0xca, 0xde, 0xd9, 0xcc, 0xdf, 0xd9, 0xcd, 0xdf, 0xd6, 0xc9, 0xdd, 0xd9, 0xcd, 0xde, 0xd6, 0xc8, 0xdc, 0xd5, 0xc8, 0xdc, 0xd7, 0xcb, 0xdd, 0xd7, 0xca, 0xdd, 0xd5, 0xc7, 0xdc, 0xd3, 0xc6, 0xdb, 0xd5, 0xc9, 0xdc, 0xd5, 0xc9, 0xdd, 0xd6, 0xc9, 0xdc, 0xd4, 0xc6, 0xdb, 0xd3, 0xc5, 0xdb, 0xd5, 0xc8, 0xdb, 0xd4, 0xc8, 0xdc, 0xd3, 0xc4, 0xd9, 0xd4, 0xc6, 0xda, 0xd2, 0xc3, 0xd9, 0xd3, 0xc5, 0xda, 0xd2, 0xc5, 0xd9, 0xd3, 0xc5, 0xd9, 0xd2, 0xc5, 0xda, 0xd1, 0xc2, 0xd9, 0xd2, 0xc4, 0xd8, 0xd2, 0xc4, 0xd9, 0xd0, 0xc2, 0xd9, 0xd0, 0xc1, 0xd7, 0xd0, 0xc2, 0xd7, 0xd0, 0xc2, 0xd8, 0xd1, 0xc2, 0xd7, 0xcf, 0xc1, 0xd7, 0xd0, 0xc2, 0xd6, 0xcf, 0xc1, 0xd6, 0xcf, 0xc2, 0xd7, 0xcf, 0xc0, 0xd7, 0xce, 0xbf, 0xd6, 0xce, 0xc0, 0xd5, 0xce, 0xc0, 0xd6, 0xce, 0xbf, 0xd5, 0xcd, 0xbf, 0xd5, 0xcd, 0xbe, 0xd5, 0xcd, 0xbe, 0xd4, 0xcc, 0xbd, 0xd5, 0xcc, 0xbd, 0xd4, 0xcc, 0xbc, 0xd4, 0x47, 0x40, 0x4a, 0x1d, 0x1a, 0x1f, 0x69, 0x5f, 0x6f, 0x4a, 0x42, 0x4f, 0x5e, 0x54, 0x63, 0x3b, 0x34, 0x3f, 0x5e, 0x55, 0x63, 0x63, 0x59, 0x67, 0x77, 0x6d, 0x7b, 0x6d, 0x62, 0x73, 0x7f, 0x76, 0x85, 0xdb, 0xd9, 0xcd, 0xdb, 0xd8, 0xcd, 0x6d, 0x62, 0x74, 0x8f, 0x84, 0x94, 0x7f, 0x76, 0x83, 0xdb, 0xd8, 0xcd, 0xa4, 0x95, 0xa4, 0x7e, 0x74, 0x84, 0x74, 0x6b, 0x79, 0x6f, 0x66, 0x74, 0x96, 0x8a, 0xa2, 0x91, 0x88, 0x9b, 0x0, 0x0, 0x0, 0xaa, 0xaa, 0xaa, 0xbf, 0xbf, 0xbf, 0xf0, 0xc9, 0xec, 0x71, 0x0, 0x0, 0x0, 0x75, 0x74, 0x52, 0x4e, 0x53, 0x1, 0x3, 0xa, 0x13, 0x1a, 0x1c, 0x1d, 0x10, 0x2b, 0x4d, 0x64, 0x6e, 0x72, 0xb, 0x2c, 0x6a, 0xfc, 0xff, 0x15, 0x52, 0xfd, 0xff, 0xe2, 0xe2, 0xe2, 0x1b, 0x68, 0xe2, 0xe2, 0xe2, 0x71, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0x1e, 0x72, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0x6b, 0xc7, 0x56, 0xfe, 0xff, 0xc7, 0x30, 0x74, 0xfe, 0x11, 0x57, 0x6d, 0x72, 0x16, 0x1c, 0x0, 0x3, 0x4, 0x35, 0xf5, 0x4, 0x26, 0x0, 0x0, 0x1, 0x16, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0xed, 0xcc, 0xc5, 0x61, 0x95, 0x61, 0x10, 0x85, 0xe1, 0xf7, 0x8c, 0x5c, 0xc3, 0xdd, 0x65, 0x4d, 0xea, 0xc8, 0x6, 0xdb, 0x63, 0xab, 0x74, 0x90, 0x42, 0xe8, 0x20, 0x5b, 0x3a, 0xa0, 0x12, 0xaa, 0xc0, 0x25, 0xd7, 0xe5, 0x1f, 0xec, 0xc3, 0xa5, 0x82, 0x9c, 0xdd, 0x79, 0x46, 0x84, 0xbe, 0x4, 0xa8, 0x2f, 0x91, 0x7a, 0xbf, 0xc0, 0x52, 0x47, 0x5a, 0xa5, 0x51, 0xe4, 0x6f, 0x27, 0xd1, 0xd7, 0x6c, 0x24, 0x15, 0xa0, 0xaa, 0xe9, 0xb0, 0xec, 0x75, 0x10, 0x51, 0x9, 0xbd, 0xde, 0x60, 0x44, 0xbc, 0xb6, 0xeb, 0x43, 0x86, 0xc, 0x56, 0x3d, 0x96, 0xfb, 0x99, 0xc, 0xaf, 0xfb, 0xfe, 0xd4, 0x8f, 0xf5, 0xf3, 0xc3, 0x72, 0xb3, 0x39, 0x67, 0xec, 0xbf, 0x3b, 0x12, 0x80, 0x97, 0x9d, 0x3, 0xc0, 0x81, 0x0, 0xec, 0x2d, 0x3d, 0x96, 0x3d, 0x96, 0x27, 0x1a, 0xe8, 0x14, 0xa8, 0x54, 0x58, 0x83, 0x10, 0x48, 0x55, 0xa6, 0x6, 0x29, 0xa6, 0x0, 0x87, 0xba, 0x6, 0x2e, 0x8e, 0x0, 0xa0, 0x6, 0x26, 0xa9, 0x13, 0xe5, 0x6b, 0xc0, 0x80, 0xcc, 0x8c, 0xea, 0xb2, 0xd6, 0x83, 0xef, 0x4f, 0x25, 0x87, 0x91, 0xba, 0xb6, 0x11, 0x74, 0x96, 0xde, 0xf3, 0xae, 0x6d, 0x90, 0x3d, 0x15, 0xea, 0x12, 0xd1, 0x0, 0x41, 0x39, 0xd0, 0xc0, 0x4, 0x88, 0xa2, 0x1a, 0xb8, 0x0, 0xe0, 0x3b, 0xd8, 0x7f, 0xc1, 0xf8, 0x25, 0x7, 0xf0, 0x4b, 0x3b, 0x80, 0xb8, 0xae, 0x17, 0x56, 0xad, 0x18, 0x97, 0xca, 0x98, 0xa1, 0xd6, 0x11, 0x33, 0x6c, 0x7f, 0x1b, 0xe3, 0xfb, 0xc6, 0xf6, 0xbe, 0xf7, 0xb6, 0xb6, 0x2c, 0x3b, 0xa, 0xb3, 0xbe, 0x6e, 0xe8, 0x59, 0xac, 0x42, 0x7a, 0xd2, 0x36, 0xee, 0x57, 0xad, 0x62, 0xec, 0x1b, 0x7f, 0xa4, 0x3d, 0x60, 0xa7, 0x6a, 0xed, 0x63, 0xa1, 0xc3, 0x3b, 0x7a, 0xa, 0xc0, 0xad, 0xda, 0x1b, 0x57, 0xec, 0xf2, 0xd8, 0x75, 0x17, 0x0, 0x6a, 0x7f, 0x97, 0x8f, 0x54, 0xa2, 0x67, 0xc8, 0xba, 0xb8, 0x46, 0x24, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; static const unsigned char graph_port_png[] = { - 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0xa, 0x8, 0x4, 0x0, 0x0, 0x0, 0x27, 0x3b, 0x7, 0x36, 0x0, 0x0, 0x0, 0x72, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0x65, 0xce, 0x41, 0xa, 0x83, 0x30, 0x10, 0x85, 0xe1, 0xb9, 0x98, 0xe2, 0x9, 0x3c, 0x50, 0xe9, 0xc6, 0x83, 0x45, 0x7b, 0x8b, 0xfc, 0x7a, 0x1, 0xd7, 0x49, 0xba, 0xd, 0xd3, 0x79, 0xd0, 0x16, 0x41, 0xfe, 0x6c, 0xe6, 0x83, 0xc0, 0x33, 0x8f, 0xf2, 0xc4, 0xc6, 0x3b, 0x5a, 0x99, 0x75, 0xc7, 0xe3, 0x49, 0xc7, 0x7f, 0xe5, 0x25, 0x30, 0x4f, 0xa2, 0xd3, 0x6b, 0x74, 0x8a, 0xfb, 0x31, 0x1a, 0x2f, 0x51, 0xfb, 0x26, 0x66, 0x35, 0x1a, 0x5e, 0xff, 0x58, 0x84, 0xd5, 0xa8, 0x37, 0x2c, 0xc6, 0x76, 0xfb, 0x9e, 0x8c, 0x19, 0x17, 0x97, 0x48, 0x44, 0xdf, 0x7, 0xad, 0x5c, 0x2e, 0x93, 0x7a, 0x7e, 0x68, 0x67, 0x74, 0x8c, 0x24, 0x1a, 0x95, 0xb4, 0xf, 0xba, 0x3f, 0x56, 0x94, 0xa6, 0x72, 0xc9, 0xf9, 0xda, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 + 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0xa, 0x8, 0x4, 0x0, 0x0, 0x0, 0x27, 0x3b, 0x7, 0x36, 0x0, 0x0, 0x0, 0x6e, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0x65, 0x8e, 0xc1, 0xd, 0xc2, 0x30, 0x10, 0x4, 0xb7, 0x31, 0x22, 0x2a, 0x48, 0x41, 0x88, 0x4f, 0xa, 0x73, 0x42, 0x17, 0x1e, 0xd2, 0x40, 0xde, 0x3e, 0xf3, 0xb5, 0x8c, 0x8f, 0x13, 0x8, 0x29, 0x3b, 0xbf, 0xd1, 0x9e, 0xf6, 0xe4, 0xc9, 0x57, 0x36, 0x5e, 0x83, 0x95, 0x59, 0x11, 0xee, 0x34, 0xfa, 0x97, 0xbc, 0x44, 0x6b, 0xa8, 0xa3, 0xdb, 0xe0, 0x70, 0xdd, 0xf6, 0x49, 0x3c, 0x5c, 0xd5, 0x20, 0xf4, 0x2a, 0x2a, 0xdd, 0x7e, 0xb2, 0xb8, 0x34, 0x61, 0x27, 0x59, 0xc4, 0x76, 0x3a, 0x4f, 0x62, 0xa6, 0xbb, 0x2e, 0x83, 0x18, 0x7a, 0x5e, 0x7c, 0x7f, 0xf9, 0x7b, 0xa9, 0xe5, 0x9b, 0x22, 0xfb, 0x44, 0xa2, 0x62, 0xa4, 0x4f, 0x4b, 0x6f, 0x69, 0x3b, 0x9a, 0x7e, 0xcd, 0xde, 0x94, 0x27, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; static const unsigned char hseparator_png[] = { @@ -167,7 +167,7 @@ static const unsigned char icon_snap_grid_png[] = { }; static const unsigned char icon_visibility_png[] = { - 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x10, 0x8, 0x3, 0x0, 0x0, 0x0, 0x28, 0x2d, 0xf, 0x53, 0x0, 0x0, 0x0, 0x3, 0x73, 0x42, 0x49, 0x54, 0x8, 0x8, 0x8, 0xdb, 0xe1, 0x4f, 0xe0, 0x0, 0x0, 0x0, 0x9, 0x70, 0x48, 0x59, 0x73, 0x0, 0x0, 0xe, 0xc4, 0x0, 0x0, 0xe, 0xc4, 0x1, 0x95, 0x2b, 0xe, 0x1b, 0x0, 0x0, 0x0, 0x19, 0x74, 0x45, 0x58, 0x74, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x0, 0x77, 0x77, 0x77, 0x2e, 0x69, 0x6e, 0x6b, 0x73, 0x63, 0x61, 0x70, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x9b, 0xee, 0x3c, 0x1a, 0x0, 0x0, 0x0, 0x96, 0x50, 0x4c, 0x54, 0x45, 0x0, 0x0, 0x0, 0xdf, 0xdf, 0xdf, 0xe3, 0xe3, 0xe3, 0xe6, 0xe6, 0xe6, 0xd5, 0xd5, 0xd5, 0xd8, 0xd8, 0xd8, 0xdb, 0xdb, 0xdb, 0xdd, 0xdd, 0xdd, 0xe1, 0xe1, 0xe1, 0xe3, 0xe3, 0xe3, 0xe4, 0xe4, 0xe4, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xe0, 0xe0, 0xe0, 0xe1, 0xe1, 0xe1, 0xde, 0xde, 0xde, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xdf, 0xdf, 0xdf, 0xe0, 0xe0, 0xe0, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xe0, 0xe0, 0xe0, 0xde, 0xde, 0xde, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe1, 0xe1, 0xe1, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe1, 0xe1, 0xe1, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xb7, 0x7e, 0xd, 0xb6, 0x0, 0x0, 0x0, 0x32, 0x74, 0x52, 0x4e, 0x53, 0x0, 0x8, 0x9, 0xa, 0xc, 0xd, 0xe, 0xf, 0x11, 0x12, 0x13, 0x2e, 0x2f, 0x32, 0x33, 0x36, 0x37, 0x38, 0x48, 0x49, 0x4b, 0x50, 0x53, 0x55, 0x56, 0x6c, 0x6d, 0x6e, 0x70, 0x77, 0x79, 0x7b, 0x7c, 0xc5, 0xd7, 0xd8, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe1, 0xe2, 0xe3, 0xf0, 0xf2, 0xf3, 0xf4, 0xfe, 0x5e, 0x62, 0x1a, 0x26, 0x0, 0x0, 0x0, 0x86, 0x49, 0x44, 0x41, 0x54, 0x18, 0x19, 0x8d, 0xc1, 0xb, 0x16, 0x42, 0x40, 0x0, 0x86, 0xd1, 0x2f, 0xa2, 0x77, 0x2a, 0x85, 0xde, 0x91, 0x5e, 0x33, 0x8a, 0x7f, 0xff, 0x9b, 0xcb, 0x99, 0x63, 0x1, 0xee, 0xa5, 0x9f, 0xc1, 0x3e, 0x6f, 0xea, 0xfc, 0xe0, 0xd1, 0x99, 0xdd, 0xe5, 0x94, 0xb, 0x9c, 0xf9, 0x57, 0x26, 0x9, 0x82, 0x5d, 0xa1, 0xdf, 0x92, 0x96, 0xf7, 0x94, 0x99, 0xd0, 0x1a, 0x1b, 0x7d, 0x7c, 0xe0, 0x2c, 0x25, 0x6c, 0x2b, 0x1b, 0x93, 0x4a, 0x17, 0xa0, 0x94, 0x2, 0xac, 0x64, 0x8, 0xa5, 0x12, 0x78, 0x48, 0x1, 0x56, 0x32, 0x8c, 0xa4, 0x7, 0x70, 0x93, 0x76, 0xc4, 0xd6, 0x6c, 0xc8, 0xa4, 0x2b, 0x30, 0xac, 0x54, 0x8c, 0x69, 0x4d, 0xad, 0xcc, 0x90, 0xd6, 0xba, 0x91, 0x49, 0xc3, 0x30, 0xb3, 0x6a, 0x22, 0x9c, 0xd5, 0x5b, 0xce, 0x2b, 0xa2, 0xe3, 0x9f, 0xf2, 0xba, 0xce, 0x8f, 0x3e, 0xbd, 0xfc, 0x1, 0xdb, 0xf3, 0x10, 0xc5, 0x78, 0x85, 0x14, 0x89, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 + 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x10, 0x8, 0x3, 0x0, 0x0, 0x0, 0x28, 0x2d, 0xf, 0x53, 0x0, 0x0, 0x0, 0x9, 0x70, 0x48, 0x59, 0x73, 0x0, 0x0, 0xe, 0xc4, 0x0, 0x0, 0xe, 0xc4, 0x1, 0x95, 0x2b, 0xe, 0x1b, 0x0, 0x0, 0x0, 0x3, 0x73, 0x42, 0x49, 0x54, 0x8, 0x8, 0x8, 0xdb, 0xe1, 0x4f, 0xe0, 0x0, 0x0, 0x0, 0x96, 0x50, 0x4c, 0x54, 0x45, 0x0, 0x0, 0x0, 0xdf, 0xdf, 0xdf, 0xe3, 0xe3, 0xe3, 0xe6, 0xe6, 0xe6, 0xd5, 0xd5, 0xd5, 0xd8, 0xd8, 0xd8, 0xdb, 0xdb, 0xdb, 0xdd, 0xdd, 0xdd, 0xe1, 0xe1, 0xe1, 0xe3, 0xe3, 0xe3, 0xe4, 0xe4, 0xe4, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xe0, 0xe0, 0xe0, 0xe1, 0xe1, 0xe1, 0xde, 0xde, 0xde, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xdf, 0xdf, 0xdf, 0xe0, 0xe0, 0xe0, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xe0, 0xe0, 0xe0, 0xde, 0xde, 0xde, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe1, 0xe1, 0xe1, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe1, 0xe1, 0xe1, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xb7, 0x7e, 0xd, 0xb6, 0x0, 0x0, 0x0, 0x32, 0x74, 0x52, 0x4e, 0x53, 0x0, 0x8, 0x9, 0xa, 0xc, 0xd, 0xe, 0xf, 0x11, 0x12, 0x13, 0x2e, 0x2f, 0x32, 0x33, 0x36, 0x37, 0x38, 0x48, 0x49, 0x4b, 0x50, 0x53, 0x55, 0x56, 0x6c, 0x6d, 0x6e, 0x70, 0x77, 0x79, 0x7b, 0x7c, 0xc5, 0xd7, 0xd8, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe1, 0xe2, 0xe3, 0xf0, 0xf2, 0xf3, 0xf4, 0xfe, 0x5e, 0x62, 0x1a, 0x26, 0x0, 0x0, 0x0, 0x83, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0x8d, 0xc8, 0x45, 0x42, 0x3, 0x1, 0x0, 0xc0, 0xc0, 0xd4, 0x8b, 0x43, 0x1d, 0x5f, 0x77, 0xcb, 0xff, 0x1f, 0x87, 0xd3, 0xf3, 0xe6, 0x36, 0x61, 0x5c, 0x93, 0xc7, 0x70, 0xe8, 0xc3, 0xa7, 0xe9, 0xbf, 0xaf, 0x62, 0x55, 0x4d, 0x6e, 0x7e, 0x7d, 0xdd, 0x5a, 0x1d, 0x16, 0x8b, 0x7d, 0x64, 0x77, 0xfb, 0xed, 0x69, 0x66, 0x75, 0x1, 0xb0, 0xae, 0x2c, 0x67, 0xc0, 0xab, 0x1e, 0xd8, 0x35, 0xf5, 0x96, 0xa3, 0xbe, 0x1, 0x89, 0x2e, 0xa8, 0xb5, 0x62, 0xa9, 0x9, 0x90, 0x9e, 0xc7, 0x4a, 0x53, 0x20, 0xd0, 0x3d, 0xdb, 0xba, 0xda, 0x70, 0xd2, 0x77, 0x60, 0xde, 0x18, 0xad, 0x1, 0x2e, 0x6b, 0xab, 0x39, 0xc0, 0xc3, 0x60, 0x75, 0x5c, 0x2e, 0x4f, 0xb5, 0xc3, 0x1d, 0x3f, 0xdd, 0x17, 0xaa, 0x9a, 0xff, 0x19, 0x66, 0x2f, 0x61, 0xdf, 0x87, 0xcf, 0x33, 0x46, 0xf5, 0x9, 0xdb, 0xf3, 0x10, 0xc5, 0x55, 0x93, 0xc, 0xea, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; static const unsigned char icon_zoom_less_png[] = { @@ -211,7 +211,7 @@ static const unsigned char option_button_hover_png[] = { }; static const unsigned char option_button_normal_png[] = { - 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x10, 0x8, 0x3, 0x0, 0x0, 0x0, 0x40, 0xde, 0x8d, 0x6b, 0x0, 0x0, 0x1, 0x41, 0x50, 0x4c, 0x54, 0x45, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c, 0x3a, 0x44, 0x56, 0x53, 0x61, 0x2b, 0x2b, 0x31, 0x2e, 0x2e, 0x34, 0x56, 0x52, 0x60, 0x2a, 0x2a, 0x30, 0x47, 0x44, 0x52, 0x22, 0x22, 0x27, 0x33, 0x31, 0x39, 0x47, 0x44, 0x50, 0x24, 0x24, 0x28, 0x24, 0x24, 0x29, 0x52, 0x50, 0x5d, 0x51, 0x4f, 0x5d, 0x5d, 0x5a, 0x6a, 0x2a, 0x2a, 0x31, 0x2a, 0x2a, 0x30, 0x2d, 0x2d, 0x34, 0x2f, 0x2f, 0x36, 0x2e, 0x2e, 0x35, 0x2c, 0x2c, 0x32, 0x46, 0x42, 0x4e, 0x42, 0x3e, 0x4a, 0x41, 0x3e, 0x49, 0x51, 0x4e, 0x5b, 0x26, 0x26, 0x2b, 0x24, 0x24, 0x28, 0x27, 0x27, 0x2d, 0x29, 0x29, 0x2f, 0x28, 0x28, 0x2e, 0x25, 0x25, 0x2b, 0x23, 0x23, 0x28, 0x40, 0x3e, 0x48, 0x50, 0x4e, 0x5a, 0x26, 0x26, 0x2c, 0x25, 0x25, 0x2a, 0x2a, 0x2a, 0x2f, 0x2b, 0x2b, 0x31, 0x22, 0x22, 0x26, 0x4f, 0x4c, 0x59, 0x3f, 0x3d, 0x47, 0x2d, 0x2d, 0x33, 0x22, 0x22, 0x27, 0x4e, 0x4a, 0x58, 0x3e, 0x3b, 0x46, 0x27, 0x27, 0x2b, 0x2e, 0x2e, 0x34, 0x2c, 0x2c, 0x31, 0x29, 0x29, 0x2e, 0x4b, 0x49, 0x55, 0x3c, 0x3a, 0x44, 0x4a, 0x47, 0x54, 0x3b, 0x39, 0x43, 0x24, 0x24, 0x2a, 0x24, 0x24, 0x29, 0x20, 0x20, 0x25, 0x49, 0x46, 0x53, 0x3a, 0x38, 0x42, 0x28, 0x28, 0x2d, 0x2b, 0x2b, 0x30, 0x29, 0x29, 0x2d, 0x20, 0x20, 0x23, 0x47, 0x45, 0x50, 0x39, 0x37, 0x40, 0x22, 0x22, 0x28, 0x27, 0x27, 0x2c, 0x1e, 0x1e, 0x22, 0x47, 0x43, 0x50, 0x38, 0x35, 0x3f, 0x46, 0x42, 0x4f, 0x21, 0x21, 0x26, 0x21, 0x21, 0x25, 0x23, 0x23, 0x27, 0x20, 0x20, 0x24, 0x1d, 0x1d, 0x21, 0x36, 0x34, 0x3e, 0x44, 0x41, 0x4e, 0x1f, 0x1f, 0x24, 0x1f, 0x1f, 0x23, 0x1e, 0x1e, 0x21, 0x44, 0x42, 0x4d, 0x44, 0x41, 0x4c, 0x4e, 0x4b, 0x58, 0x8, 0xd9, 0x10, 0xcb, 0x0, 0x0, 0x0, 0x24, 0x74, 0x52, 0x4e, 0x53, 0x0, 0x4, 0xa, 0x11, 0x19, 0x1f, 0x22, 0x24, 0x1d, 0x16, 0xd, 0x7, 0x2, 0x15, 0x25, 0x34, 0x3f, 0x46, 0x47, 0x48, 0x43, 0x3a, 0x2d, 0x1b, 0x77, 0xef, 0xe6, 0x49, 0xef, 0xe6, 0xef, 0xe7, 0x77, 0xef, 0xe4, 0x4a, 0xba, 0xea, 0xc1, 0xeb, 0x0, 0x0, 0x0, 0xe7, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0x6c, 0x91, 0x53, 0x62, 0x5, 0x41, 0x14, 0x44, 0xab, 0x46, 0xb1, 0x6d, 0x67, 0x3, 0x59, 0x44, 0x16, 0x9e, 0xdf, 0xe8, 0x2f, 0xb6, 0xcd, 0xe7, 0x61, 0xe3, 0x3e, 0x4e, 0xb5, 0x2e, 0x4e, 0xdb, 0xa3, 0x11, 0x80, 0xc4, 0x51, 0xc6, 0x3f, 0x5a, 0xe5, 0xb1, 0x4f, 0x8, 0xd5, 0xff, 0x15, 0xd1, 0x26, 0xba, 0x7d, 0xbd, 0xec, 0xa3, 0x75, 0x94, 0x24, 0x11, 0xbb, 0xe1, 0x2f, 0x1f, 0xe0, 0x91, 0xde, 0x8, 0xf3, 0x1, 0xe, 0x3d, 0x42, 0x1, 0xe3, 0x49, 0xf, 0x1a, 0xc0, 0xb7, 0xb5, 0x47, 0x92, 0x52, 0xb7, 0x3b, 0x79, 0xa7, 0x80, 0x21, 0xc2, 0x2a, 0xa9, 0x15, 0x8b, 0x8e, 0x1c, 0x2e, 0x64, 0x71, 0x4, 0xd0, 0x5b, 0x34, 0x80, 0xa0, 0x34, 0x29, 0xab, 0xd5, 0x7a, 0xfb, 0x5e, 0xc2, 0x51, 0xc0, 0x3, 0x83, 0x6, 0x10, 0xa2, 0xa1, 0x62, 0x1f, 0xf0, 0xae, 0x0, 0x38, 0xd, 0xe0, 0x67, 0xfe, 0xe9, 0xb, 0x72, 0x86, 0xb7, 0x5, 0x46, 0xa, 0x48, 0xfc, 0xa6, 0x15, 0x1e, 0x96, 0xc5, 0x79, 0x99, 0xbe, 0x78, 0x59, 0x2c, 0x1, 0x5e, 0x92, 0x34, 0x6d, 0xb1, 0xf9, 0xda, 0x75, 0x66, 0x6d, 0xfa, 0xf3, 0x5, 0x7f, 0x58, 0x3, 0x8d, 0x15, 0xc8, 0x85, 0xf3, 0xd, 0x6b, 0x1f, 0xdf, 0x6e, 0x8c, 0x33, 0xd4, 0xc0, 0xce, 0xd6, 0xa8, 0x0, 0xd5, 0x20, 0xbc, 0xb5, 0xf6, 0xc2, 0x68, 0xb6, 0xf4, 0x8d, 0x6, 0x9c, 0xc3, 0x6d, 0x5a, 0x60, 0xf, 0x53, 0x7d, 0x72, 0x86, 0x6a, 0xf4, 0xf1, 0xed, 0x1, 0x74, 0x5a, 0x3f, 0xab, 0x94, 0xee, 0x3f, 0x7a, 0x64, 0x11, 0x8a, 0x6e, 0x0, 0x80, 0xdd, 0x4f, 0x5c, 0xe, 0xd7, 0x26, 0x1c, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 + 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x10, 0x8, 0x3, 0x0, 0x0, 0x0, 0x40, 0xde, 0x8d, 0x6b, 0x0, 0x0, 0x1, 0x41, 0x50, 0x4c, 0x54, 0x45, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c, 0x3a, 0x44, 0x56, 0x53, 0x61, 0x2b, 0x2b, 0x31, 0x2e, 0x2e, 0x34, 0x56, 0x52, 0x60, 0x2a, 0x2a, 0x30, 0x47, 0x44, 0x52, 0x22, 0x22, 0x27, 0x33, 0x31, 0x39, 0x47, 0x44, 0x50, 0x24, 0x24, 0x28, 0x24, 0x24, 0x29, 0x52, 0x50, 0x5d, 0x51, 0x4f, 0x5d, 0x5d, 0x5a, 0x6a, 0x2a, 0x2a, 0x31, 0x2a, 0x2a, 0x30, 0x2d, 0x2d, 0x34, 0x2f, 0x2f, 0x36, 0x2e, 0x2e, 0x35, 0x2c, 0x2c, 0x32, 0x46, 0x42, 0x4e, 0x42, 0x3e, 0x4a, 0x41, 0x3e, 0x49, 0x51, 0x4e, 0x5b, 0x26, 0x26, 0x2b, 0x24, 0x24, 0x28, 0x27, 0x27, 0x2d, 0x29, 0x29, 0x2f, 0x28, 0x28, 0x2e, 0x25, 0x25, 0x2b, 0x23, 0x23, 0x28, 0x40, 0x3e, 0x48, 0x50, 0x4e, 0x5a, 0x26, 0x26, 0x2c, 0x25, 0x25, 0x2a, 0x2a, 0x2a, 0x2f, 0x2b, 0x2b, 0x31, 0x22, 0x22, 0x26, 0x4f, 0x4c, 0x59, 0x3f, 0x3d, 0x47, 0x2d, 0x2d, 0x33, 0x22, 0x22, 0x27, 0x4e, 0x4a, 0x58, 0x3e, 0x3b, 0x46, 0x27, 0x27, 0x2b, 0x2e, 0x2e, 0x34, 0x2c, 0x2c, 0x31, 0x29, 0x29, 0x2e, 0x4b, 0x49, 0x55, 0x3c, 0x3a, 0x44, 0x4a, 0x47, 0x54, 0x3b, 0x39, 0x43, 0x24, 0x24, 0x2a, 0x24, 0x24, 0x29, 0x20, 0x20, 0x25, 0x49, 0x46, 0x53, 0x3a, 0x38, 0x42, 0x28, 0x28, 0x2d, 0x2b, 0x2b, 0x30, 0x29, 0x29, 0x2d, 0x20, 0x20, 0x23, 0x47, 0x45, 0x50, 0x39, 0x37, 0x40, 0x22, 0x22, 0x28, 0x27, 0x27, 0x2c, 0x1e, 0x1e, 0x22, 0x47, 0x43, 0x50, 0x38, 0x35, 0x3f, 0x46, 0x42, 0x4f, 0x21, 0x21, 0x26, 0x21, 0x21, 0x25, 0x23, 0x23, 0x27, 0x20, 0x20, 0x24, 0x1d, 0x1d, 0x21, 0x36, 0x34, 0x3e, 0x44, 0x41, 0x4e, 0x1f, 0x1f, 0x24, 0x1f, 0x1f, 0x23, 0x1e, 0x1e, 0x21, 0x44, 0x42, 0x4d, 0x44, 0x41, 0x4c, 0x4e, 0x4b, 0x58, 0x8, 0xd9, 0x10, 0xcb, 0x0, 0x0, 0x0, 0x24, 0x74, 0x52, 0x4e, 0x53, 0x0, 0x4, 0xa, 0x11, 0x19, 0x1f, 0x22, 0x24, 0x1d, 0x16, 0xd, 0x7, 0x2, 0x15, 0x25, 0x34, 0x3f, 0x46, 0x47, 0x48, 0x43, 0x3a, 0x2d, 0x1b, 0x77, 0xef, 0xe6, 0x49, 0xef, 0xe6, 0xef, 0xe7, 0x77, 0xef, 0xe4, 0x4a, 0xba, 0xea, 0xc1, 0xeb, 0x0, 0x0, 0x0, 0xe6, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0x6c, 0xd1, 0x55, 0x5a, 0xc4, 0x30, 0x14, 0x5, 0xe0, 0x73, 0xea, 0x82, 0xbb, 0x3b, 0x6c, 0x80, 0x45, 0xb0, 0x70, 0x5e, 0xb1, 0x37, 0xdc, 0x75, 0xdc, 0x3d, 0x43, 0x2a, 0x5f, 0x3a, 0x7e, 0x6a, 0xc9, 0xbd, 0x7f, 0x9d, 0x2a, 0x0, 0xa4, 0x16, 0xd, 0xaa, 0x18, 0x8e, 0x41, 0x3f, 0x11, 0xd1, 0xbe, 0x52, 0xc7, 0x48, 0xa8, 0xfb, 0x5e, 0x68, 0xd4, 0x24, 0x96, 0x6a, 0xfc, 0xaf, 0x8b, 0x32, 0xbf, 0x61, 0x90, 0xc6, 0x3c, 0x27, 0x3, 0xce, 0xfe, 0x20, 0x2, 0x4b, 0xd2, 0x45, 0x1f, 0x14, 0xd5, 0x78, 0x5e, 0x36, 0x1c, 0x7d, 0xe5, 0x33, 0x2, 0xb3, 0x84, 0x8a, 0xec, 0xd4, 0xeb, 0x9a, 0x1a, 0x1b, 0x82, 0xf5, 0x79, 0x20, 0x2, 0x46, 0x1f, 0x58, 0x8d, 0x95, 0xe4, 0x6a, 0x1d, 0xcf, 0x4f, 0x89, 0x85, 0x10, 0x80, 0x56, 0x1f, 0x8, 0xf4, 0x53, 0xf7, 0x81, 0x6c, 0x4, 0xa0, 0xf5, 0x41, 0x69, 0xeb, 0xb7, 0xd0, 0x7b, 0x86, 0xcc, 0x36, 0xbb, 0x11, 0x90, 0x66, 0x1f, 0x88, 0xef, 0xbd, 0x64, 0x92, 0x5a, 0x7b, 0x4e, 0xed, 0x34, 0x42, 0x20, 0xa5, 0xd5, 0x7, 0x27, 0x69, 0xfb, 0x51, 0x8d, 0x69, 0x6e, 0xd5, 0xcc, 0xb9, 0x18, 0xf4, 0xaf, 0x40, 0x6e, 0x3f, 0x1d, 0xab, 0xf1, 0xdd, 0xc7, 0xf1, 0x12, 0x45, 0xc, 0xce, 0x4f, 0x17, 0x12, 0xd0, 0xb6, 0xc4, 0x87, 0x1a, 0x6f, 0x2f, 0x48, 0x8b, 0xef, 0x31, 0xd0, 0x6e, 0xce, 0xa8, 0xc0, 0x25, 0x56, 0x7d, 0x5, 0x52, 0xed, 0x6e, 0xae, 0x68, 0x0, 0xd4, 0x86, 0x7f, 0x56, 0x43, 0x62, 0x38, 0xc, 0x46, 0x28, 0xba, 0x1, 0x7a, 0xad, 0x4f, 0x59, 0x90, 0xab, 0xbf, 0xa4, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; static const unsigned char option_button_pressed_png[] = { @@ -279,7 +279,7 @@ static const unsigned char scroll_grabber_png[] = { }; static const unsigned char scroll_grabber_hl_png[] = { - 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0, 0x0, 0xc, 0x8, 0x3, 0x0, 0x0, 0x0, 0x61, 0xab, 0xac, 0xd5, 0x0, 0x0, 0x0, 0x69, 0x50, 0x4c, 0x54, 0x45, 0x0, 0x0, 0x0, 0x97, 0xd0, 0xdf, 0x92, 0xcb, 0xdc, 0x84, 0xbb, 0xd4, 0x92, 0xca, 0xdc, 0x95, 0xd0, 0xdd, 0x83, 0xbb, 0xd3, 0x8b, 0xc8, 0xd7, 0x79, 0xb5, 0xcb, 0x78, 0xb4, 0xca, 0x73, 0xb0, 0xc7, 0x73, 0xb0, 0xc7, 0x7b, 0xc0, 0xcf, 0x79, 0xc5, 0xd1, 0x6b, 0xae, 0xc1, 0x75, 0xc6, 0xcf, 0x70, 0xbc, 0xca, 0x64, 0xa6, 0xbc, 0x71, 0xbc, 0xc9, 0x82, 0xba, 0xd4, 0x6a, 0xa2, 0xc6, 0x62, 0x9a, 0xc2, 0x61, 0x9a, 0xc1, 0x68, 0x9f, 0xc2, 0x5d, 0x92, 0xbb, 0x5c, 0x92, 0xb8, 0x58, 0x8d, 0xb6, 0x59, 0x8e, 0xb3, 0x56, 0x89, 0xb0, 0x5c, 0x91, 0xb2, 0x53, 0x84, 0xa9, 0x58, 0x8f, 0xae, 0x54, 0x83, 0xa4, 0x57, 0x8e, 0xad, 0x64, 0xa5, 0xba, 0x17, 0x3b, 0xfc, 0x67, 0x0, 0x0, 0x0, 0x13, 0x74, 0x52, 0x4e, 0x53, 0x0, 0x25, 0xad, 0xf1, 0xad, 0x27, 0xef, 0xad, 0xf1, 0xf3, 0xf1, 0xf3, 0xad, 0x28, 0xef, 0x27, 0xad, 0xf2, 0xad, 0xcd, 0x8a, 0x27, 0xfe, 0x0, 0x0, 0x0, 0x49, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0x75, 0xc7, 0xa5, 0x1, 0x3, 0x1, 0x0, 0x4, 0xc1, 0xdd, 0xb, 0x9a, 0x60, 0xff, 0x3d, 0x6, 0x54, 0xe0, 0x59, 0x3d, 0x8f, 0x9b, 0xb0, 0x66, 0x3, 0x98, 0xdc, 0xff, 0x35, 0x20, 0xec, 0x3c, 0x6b, 0xf5, 0xae, 0xff, 0x6c, 0xda, 0xdc, 0x36, 0x31, 0xc7, 0x6f, 0xc9, 0x16, 0x8c, 0x40, 0x1d, 0xba, 0x64, 0x21, 0x42, 0xc0, 0x97, 0xc9, 0xe6, 0x25, 0x8, 0x5c, 0xf4, 0xf6, 0x2c, 0x5f, 0x8c, 0x39, 0x4c, 0x3, 0xfe, 0x9a, 0x10, 0x43, 0x82, 0xcf, 0x27, 0x93, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 + 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0, 0x0, 0xc, 0x8, 0x3, 0x0, 0x0, 0x0, 0x61, 0xab, 0xac, 0xd5, 0x0, 0x0, 0x0, 0x69, 0x50, 0x4c, 0x54, 0x45, 0x0, 0x0, 0x0, 0x97, 0xd0, 0xdf, 0x92, 0xcb, 0xdc, 0x84, 0xbb, 0xd4, 0x92, 0xca, 0xdc, 0x95, 0xd0, 0xdd, 0x83, 0xbb, 0xd3, 0x8b, 0xc8, 0xd7, 0x79, 0xb5, 0xcb, 0x78, 0xb4, 0xca, 0x73, 0xb0, 0xc7, 0x73, 0xb0, 0xc7, 0x7b, 0xc0, 0xcf, 0x79, 0xc5, 0xd1, 0x6b, 0xae, 0xc1, 0x75, 0xc6, 0xcf, 0x70, 0xbc, 0xca, 0x64, 0xa6, 0xbc, 0x71, 0xbc, 0xc9, 0x82, 0xba, 0xd4, 0x6a, 0xa2, 0xc6, 0x62, 0x9a, 0xc2, 0x61, 0x9a, 0xc1, 0x68, 0x9f, 0xc2, 0x5d, 0x92, 0xbb, 0x5c, 0x92, 0xb8, 0x58, 0x8d, 0xb6, 0x59, 0x8e, 0xb3, 0x56, 0x89, 0xb0, 0x5c, 0x91, 0xb2, 0x53, 0x84, 0xa9, 0x58, 0x8f, 0xae, 0x54, 0x83, 0xa4, 0x57, 0x8e, 0xad, 0x64, 0xa5, 0xba, 0x17, 0x3b, 0xfc, 0x67, 0x0, 0x0, 0x0, 0x13, 0x74, 0x52, 0x4e, 0x53, 0x0, 0x25, 0xad, 0xf1, 0xad, 0x27, 0xef, 0xad, 0xf1, 0xf3, 0xf1, 0xf3, 0xad, 0x28, 0xef, 0x27, 0xad, 0xf2, 0xad, 0xcd, 0x8a, 0x27, 0xfe, 0x0, 0x0, 0x0, 0x46, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0x7d, 0x8a, 0x25, 0x2, 0xc4, 0x40, 0x0, 0x3, 0x27, 0x39, 0x52, 0x57, 0xfa, 0xff, 0x1f, 0x17, 0x54, 0x19, 0x6d, 0x61, 0x4c, 0x90, 0x5b, 0x5e, 0x80, 0xec, 0x66, 0x58, 0x76, 0x3, 0x1f, 0x15, 0xd2, 0x9c, 0x97, 0x61, 0xf, 0xbf, 0x4a, 0xc0, 0x12, 0x3b, 0xde, 0xfb, 0xeb, 0x8, 0x66, 0xf, 0xbe, 0x8, 0x2, 0x83, 0x92, 0xec, 0x57, 0x12, 0x8, 0x28, 0xa5, 0x3a, 0x4e, 0x89, 0x7, 0x56, 0x51, 0x36, 0x11, 0x22, 0x4, 0xb, 0xcc, 0xf7, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; static const unsigned char scroll_grabber_pressed_png[] = { @@ -295,7 +295,7 @@ static const unsigned char selection_oof_png[] = { }; static const unsigned char space_png[] = { - 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x8, 0x8, 0x6, 0x0, 0x0, 0x0, 0xc4, 0xf, 0xbe, 0x8b, 0x0, 0x0, 0x0, 0x6, 0x62, 0x4b, 0x47, 0x44, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0xa0, 0xbd, 0xa7, 0x93, 0x0, 0x0, 0x0, 0x2f, 0x49, 0x44, 0x41, 0x54, 0x18, 0x95, 0x63, 0x60, 0xa0, 0x2a, 0xf8, 0xff, 0xff, 0xbf, 0xe0, 0xff, 0xff, 0xff, 0x5, 0x91, 0xc5, 0x58, 0x90, 0x24, 0x85, 0x18, 0x18, 0x18, 0x14, 0xa0, 0x6c, 0x6, 0x46, 0x46, 0xc6, 0xf7, 0xc, 0xc, 0xc, 0xc, 0x4c, 0x14, 0x5b, 0x41, 0x39, 0x0, 0x0, 0x71, 0x1a, 0x13, 0x5d, 0x87, 0xfe, 0x9e, 0x7d, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 + 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x8, 0x8, 0x4, 0x0, 0x0, 0x0, 0x6e, 0x6, 0x76, 0x0, 0x0, 0x0, 0x0, 0x2, 0x62, 0x4b, 0x47, 0x44, 0x0, 0xff, 0x87, 0x8f, 0xcc, 0xbf, 0x0, 0x0, 0x0, 0x1c, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0x63, 0x20, 0x16, 0xfc, 0x17, 0xfc, 0x2f, 0x88, 0xcc, 0x15, 0xfa, 0x6f, 0x4, 0x84, 0x82, 0x18, 0x2, 0xe8, 0x5a, 0x88, 0x4, 0x0, 0x8c, 0xa4, 0xd, 0x47, 0x8, 0xea, 0xcc, 0xbb, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; static const unsigned char spinbox_updown_png[] = { @@ -319,15 +319,15 @@ static const unsigned char tab_close_png[] = { }; static const unsigned char tab_container_bg_png[] = { - 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x10, 0x8, 0x3, 0x0, 0x0, 0x0, 0x28, 0x2d, 0xf, 0x53, 0x0, 0x0, 0x0, 0x87, 0x50, 0x4c, 0x54, 0x45, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c, 0x3a, 0x44, 0x56, 0x53, 0x61, 0x56, 0x52, 0x60, 0x47, 0x44, 0x52, 0x33, 0x31, 0x39, 0x47, 0x44, 0x50, 0x47, 0x44, 0x51, 0x52, 0x50, 0x5d, 0x51, 0x4f, 0x5d, 0x46, 0x42, 0x4e, 0x42, 0x3e, 0x4a, 0x41, 0x3e, 0x49, 0x51, 0x4e, 0x5b, 0x40, 0x3e, 0x48, 0x4f, 0x4c, 0x59, 0x3f, 0x3d, 0x47, 0x4e, 0x4a, 0x58, 0x3e, 0x3b, 0x46, 0x4b, 0x49, 0x55, 0x3c, 0x3a, 0x44, 0x4a, 0x47, 0x54, 0x3b, 0x39, 0x43, 0x49, 0x46, 0x53, 0x3a, 0x38, 0x42, 0x47, 0x45, 0x50, 0x39, 0x37, 0x40, 0x47, 0x43, 0x50, 0x38, 0x35, 0x3f, 0x36, 0x34, 0x3e, 0x44, 0x42, 0x4d, 0x44, 0x41, 0x4c, 0x3f, 0x38, 0xaa, 0x5e, 0x0, 0x0, 0x0, 0x15, 0x74, 0x52, 0x4e, 0x53, 0x4, 0xa, 0x11, 0x19, 0x1f, 0x22, 0x24, 0x15, 0x25, 0x34, 0x3f, 0x46, 0x47, 0x48, 0x77, 0xef, 0xef, 0xef, 0x77, 0xef, 0xed, 0xe8, 0xff, 0x76, 0xed, 0x0, 0x0, 0x0, 0x65, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0x65, 0xcf, 0x45, 0x2, 0x84, 0x30, 0x14, 0x4, 0xd1, 0x2e, 0x1c, 0xee, 0x7f, 0xca, 0xd1, 0xed, 0x28, 0x8d, 0x4b, 0x92, 0x5a, 0xbe, 0xe8, 0x2f, 0xc4, 0x9c, 0x24, 0xcf, 0x15, 0x54, 0xab, 0x78, 0xee, 0x53, 0x30, 0x4a, 0x85, 0xa6, 0xfc, 0xf1, 0x87, 0x11, 0xb2, 0x9a, 0x15, 0x9a, 0x37, 0x13, 0x74, 0xce, 0xb4, 0xd4, 0x77, 0xcb, 0xe, 0xb4, 0x96, 0x99, 0x10, 0x34, 0x81, 0x42, 0x50, 0x21, 0x9d, 0x41, 0x23, 0xf8, 0xc, 0x56, 0xe1, 0x10, 0x9c, 0x40, 0x4e, 0xfe, 0x6e, 0x72, 0x96, 0x7e, 0xd7, 0xdf, 0x3f, 0xb3, 0x79, 0x90, 0xcd, 0xf1, 0xc4, 0x26, 0x1e, 0x8e, 0x78, 0xfc, 0x1, 0xf5, 0x61, 0x3f, 0x44, 0xe8, 0xf1, 0xdd, 0xba, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 + 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x10, 0x8, 0x3, 0x0, 0x0, 0x0, 0x28, 0x2d, 0xf, 0x53, 0x0, 0x0, 0x0, 0x87, 0x50, 0x4c, 0x54, 0x45, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c, 0x3a, 0x44, 0x56, 0x53, 0x61, 0x56, 0x52, 0x60, 0x47, 0x44, 0x52, 0x33, 0x31, 0x39, 0x47, 0x44, 0x50, 0x47, 0x44, 0x51, 0x52, 0x50, 0x5d, 0x51, 0x4f, 0x5d, 0x46, 0x42, 0x4e, 0x42, 0x3e, 0x4a, 0x41, 0x3e, 0x49, 0x51, 0x4e, 0x5b, 0x40, 0x3e, 0x48, 0x4f, 0x4c, 0x59, 0x3f, 0x3d, 0x47, 0x4e, 0x4a, 0x58, 0x3e, 0x3b, 0x46, 0x4b, 0x49, 0x55, 0x3c, 0x3a, 0x44, 0x4a, 0x47, 0x54, 0x3b, 0x39, 0x43, 0x49, 0x46, 0x53, 0x3a, 0x38, 0x42, 0x47, 0x45, 0x50, 0x39, 0x37, 0x40, 0x47, 0x43, 0x50, 0x38, 0x35, 0x3f, 0x36, 0x34, 0x3e, 0x44, 0x42, 0x4d, 0x44, 0x41, 0x4c, 0x3f, 0x38, 0xaa, 0x5e, 0x0, 0x0, 0x0, 0x15, 0x74, 0x52, 0x4e, 0x53, 0x4, 0xa, 0x11, 0x19, 0x1f, 0x22, 0x24, 0x15, 0x25, 0x34, 0x3f, 0x46, 0x47, 0x48, 0x77, 0xef, 0xef, 0xef, 0x77, 0xef, 0xed, 0xe8, 0xff, 0x76, 0xed, 0x0, 0x0, 0x0, 0x63, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0x6d, 0xcf, 0x45, 0x2, 0x84, 0x30, 0x0, 0x4, 0xc1, 0x69, 0x1c, 0xfe, 0xff, 0xca, 0xd5, 0xeb, 0x2a, 0x83, 0x6b, 0xd2, 0xb7, 0x54, 0x1c, 0x31, 0x26, 0xc9, 0x63, 0x50, 0xcc, 0x32, 0x8d, 0x3f, 0xd9, 0x20, 0x5, 0x1a, 0xf2, 0xc7, 0x1f, 0x7a, 0x48, 0x4a, 0x66, 0xa8, 0xde, 0xc, 0xd0, 0x38, 0xd1, 0x54, 0xdb, 0x4c, 0x2b, 0xd0, 0x5c, 0x62, 0x8e, 0xa0, 0x1, 0x74, 0x4, 0x65, 0xd2, 0x1e, 0xd4, 0x83, 0xf7, 0x60, 0x65, 0x3e, 0x82, 0x3, 0x48, 0x49, 0xdf, 0x55, 0xca, 0xd4, 0xef, 0xfa, 0xfb, 0x27, 0x36, 0xf, 0x92, 0x31, 0x9e, 0x44, 0x3e, 0x17, 0x7c, 0xbf, 0x3, 0xef, 0x34, 0x3f, 0x3e, 0xe0, 0x24, 0x67, 0xb9, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; static const unsigned char tab_current_png[] = { - 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x10, 0x8, 0x3, 0x0, 0x0, 0x0, 0x28, 0x2d, 0xf, 0x53, 0x0, 0x0, 0x0, 0x99, 0x50, 0x4c, 0x54, 0x45, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0x3d, 0x48, 0x5b, 0x58, 0x66, 0x5b, 0x57, 0x65, 0x57, 0x54, 0x62, 0x55, 0x53, 0x62, 0x4a, 0x46, 0x52, 0x46, 0x41, 0x4e, 0x45, 0x41, 0x4d, 0x55, 0x52, 0x60, 0x44, 0x41, 0x4c, 0x53, 0x50, 0x5e, 0x43, 0x40, 0x4b, 0x52, 0x4e, 0x5d, 0x41, 0x3e, 0x4a, 0x4f, 0x4d, 0x5a, 0x3f, 0x3d, 0x48, 0x4e, 0x4b, 0x59, 0x3e, 0x3c, 0x47, 0x4d, 0x4a, 0x58, 0x3d, 0x3b, 0x46, 0x4b, 0x49, 0x54, 0x3c, 0x3a, 0x44, 0x4b, 0x47, 0x54, 0x3b, 0x39, 0x43, 0x3b, 0x39, 0x42, 0x3b, 0x38, 0x43, 0x3b, 0x38, 0x42, 0x3a, 0x37, 0x41, 0x39, 0x37, 0x41, 0x3a, 0x38, 0x41, 0x39, 0x36, 0x3f, 0x38, 0x36, 0x3f, 0x39, 0x36, 0x40, 0x38, 0x36, 0x40, 0x37, 0x35, 0x3e, 0x37, 0x34, 0x3e, 0x36, 0x35, 0x3d, 0xd7, 0x41, 0xa4, 0x19, 0x0, 0x0, 0x0, 0x11, 0x74, 0x52, 0x4e, 0x53, 0x4, 0xa, 0x11, 0x19, 0x1f, 0x22, 0x24, 0x15, 0x25, 0x34, 0x3f, 0x46, 0x47, 0x48, 0x77, 0xef, 0xef, 0xa3, 0x31, 0x6b, 0xc2, 0x0, 0x0, 0x0, 0x60, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0x55, 0xca, 0x85, 0xd, 0xc0, 0x40, 0x14, 0xc3, 0x50, 0x27, 0xf7, 0xd5, 0xfd, 0xd7, 0x2d, 0xa6, 0x4c, 0x16, 0x3f, 0xb9, 0xd0, 0x11, 0x90, 0xa3, 0x52, 0x77, 0x49, 0x8e, 0x86, 0xd2, 0x26, 0x16, 0x7b, 0x59, 0x32, 0x68, 0x3, 0x37, 0x5d, 0xe0, 0x59, 0x3b, 0x74, 0x31, 0x67, 0x4b, 0x3b, 0xf, 0x71, 0xe5, 0xe8, 0xf, 0xec, 0xc0, 0x1f, 0x28, 0xf8, 0x2, 0x14, 0xf9, 0x42, 0xa8, 0xfc, 0x21, 0x3b, 0xe4, 0x1, 0x6f, 0x0, 0x18, 0x11, 0xac, 0x99, 0xc0, 0xe, 0x25, 0x22, 0x2d, 0x76, 0xc6, 0x13, 0x1a, 0x8, 0xac, 0x78, 0xfc, 0x1c, 0x70, 0x30, 0x2b, 0xba, 0xe9, 0x31, 0x70, 0xc1, 0x7f, 0x3b, 0x77, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 + 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x10, 0x8, 0x3, 0x0, 0x0, 0x0, 0x28, 0x2d, 0xf, 0x53, 0x0, 0x0, 0x0, 0x99, 0x50, 0x4c, 0x54, 0x45, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0x3d, 0x48, 0x5b, 0x58, 0x66, 0x5b, 0x57, 0x65, 0x57, 0x54, 0x62, 0x55, 0x53, 0x62, 0x4a, 0x46, 0x52, 0x46, 0x41, 0x4e, 0x45, 0x41, 0x4d, 0x55, 0x52, 0x60, 0x44, 0x41, 0x4c, 0x53, 0x50, 0x5e, 0x43, 0x40, 0x4b, 0x52, 0x4e, 0x5d, 0x41, 0x3e, 0x4a, 0x4f, 0x4d, 0x5a, 0x3f, 0x3d, 0x48, 0x4e, 0x4b, 0x59, 0x3e, 0x3c, 0x47, 0x4d, 0x4a, 0x58, 0x3d, 0x3b, 0x46, 0x4b, 0x49, 0x54, 0x3c, 0x3a, 0x44, 0x4b, 0x47, 0x54, 0x3b, 0x39, 0x43, 0x3b, 0x39, 0x42, 0x3b, 0x38, 0x43, 0x3b, 0x38, 0x42, 0x3a, 0x37, 0x41, 0x39, 0x37, 0x41, 0x3a, 0x38, 0x41, 0x39, 0x36, 0x3f, 0x38, 0x36, 0x3f, 0x39, 0x36, 0x40, 0x38, 0x36, 0x40, 0x37, 0x35, 0x3e, 0x37, 0x34, 0x3e, 0x36, 0x35, 0x3d, 0xd7, 0x41, 0xa4, 0x19, 0x0, 0x0, 0x0, 0x11, 0x74, 0x52, 0x4e, 0x53, 0x4, 0xa, 0x11, 0x19, 0x1f, 0x22, 0x24, 0x15, 0x25, 0x34, 0x3f, 0x46, 0x47, 0x48, 0x77, 0xef, 0xef, 0xa3, 0x31, 0x6b, 0xc2, 0x0, 0x0, 0x0, 0x5f, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0x55, 0xca, 0x85, 0xd, 0xc0, 0x40, 0x14, 0xc3, 0x50, 0x27, 0xf7, 0xd5, 0xfd, 0xd7, 0x2d, 0xa6, 0x4c, 0x16, 0x3f, 0x59, 0xe8, 0x8, 0xc8, 0x91, 0xd4, 0x5d, 0x92, 0xa3, 0xa1, 0x76, 0xb1, 0xd8, 0xcb, 0x92, 0x41, 0x1b, 0xb8, 0xe9, 0x2, 0xcf, 0xd2, 0x7e, 0xc4, 0x9c, 0x2d, 0xed, 0x3c, 0xc4, 0x95, 0xa3, 0x3f, 0xb0, 0x3, 0x7f, 0xa0, 0xe0, 0xb, 0x50, 0xe4, 0xb, 0xa1, 0xf2, 0x87, 0x38, 0x31, 0x4f, 0x4e, 0xa, 0x30, 0x22, 0x58, 0x33, 0x81, 0x1d, 0x4a, 0x44, 0x5a, 0xec, 0x8c, 0x27, 0x34, 0x10, 0x58, 0xf1, 0xf8, 0x39, 0xe0, 0x60, 0x56, 0x63, 0x63, 0x30, 0x69, 0xf8, 0x3c, 0xb4, 0xd1, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; static const unsigned char tab_disabled_png[] = { - 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x10, 0x8, 0x4, 0x0, 0x0, 0x0, 0xb5, 0xfa, 0x37, 0xea, 0x0, 0x0, 0x3, 0xa7, 0x7a, 0x54, 0x58, 0x74, 0x52, 0x61, 0x77, 0x20, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x65, 0x78, 0x69, 0x66, 0x0, 0x0, 0x78, 0xda, 0xcd, 0x96, 0x59, 0x92, 0xe3, 0x2a, 0x10, 0x45, 0xff, 0x59, 0x45, 0x2f, 0x81, 0xcc, 0x24, 0x19, 0x96, 0x83, 0x18, 0x22, 0x7a, 0x7, 0x6f, 0xf9, 0x7d, 0xc1, 0x48, 0x1e, 0xab, 0x5c, 0x65, 0xfb, 0xe3, 0x89, 0xb0, 0x40, 0x29, 0x48, 0xae, 0xee, 0x41, 0xc8, 0xa6, 0xfd, 0xf7, 0xb7, 0x9b, 0x3f, 0x38, 0x28, 0x45, 0x6f, 0x9c, 0x86, 0xe8, 0x93, 0xf7, 0x16, 0x87, 0x4b, 0x2e, 0x71, 0x46, 0x23, 0xda, 0xd3, 0x71, 0xaa, 0xc9, 0xba, 0x79, 0x5e, 0x17, 0x76, 0x6f, 0x5c, 0xc5, 0xcd, 0x71, 0x83, 0x11, 0x12, 0xd4, 0x72, 0xba, 0xf4, 0x6d, 0xf5, 0xcf, 0x88, 0xeb, 0x79, 0x40, 0x70, 0x2b, 0xbe, 0x5d, 0xc7, 0x4d, 0x28, 0x2b, 0x4f, 0x5c, 0x89, 0xe8, 0x48, 0x3c, 0xf, 0x19, 0x33, 0x8f, 0xf6, 0xea, 0x17, 0x57, 0x22, 0xe1, 0x53, 0x9c, 0xd6, 0xb5, 0x49, 0x6b, 0x5c, 0x76, 0x17, 0x8f, 0xb3, 0x7e, 0x5c, 0x56, 0xda, 0x95, 0xfc, 0xf6, 0xda, 0x5, 0x98, 0x51, 0x15, 0xf9, 0x84, 0xd, 0x37, 0x21, 0xb1, 0x38, 0xc7, 0x31, 0x8b, 0x40, 0x81, 0x24, 0xc9, 0x32, 0xda, 0x79, 0xde, 0x19, 0x91, 0x80, 0xb6, 0x43, 0x9d, 0x45, 0x84, 0x1e, 0x7b, 0x67, 0x8e, 0xe6, 0x8d, 0x79, 0x47, 0xeb, 0xc6, 0x3b, 0x9b, 0x57, 0x5c, 0xae, 0xad, 0x30, 0xd6, 0xaf, 0xe, 0xfe, 0xc6, 0xa3, 0x15, 0x27, 0xbd, 0x89, 0xcb, 0x31, 0xd, 0xdf, 0x52, 0xdb, 0x67, 0xbe, 0xba, 0x91, 0xcb, 0x31, 0xc5, 0x9d, 0x77, 0xbd, 0xd7, 0xd8, 0x7b, 0x3b, 0x3d, 0x5d, 0x76, 0x1e, 0x4e, 0x79, 0xb3, 0x1e, 0x6a, 0x7f, 0x94, 0xd9, 0x42, 0xc7, 0xd, 0x56, 0xca, 0x1c, 0xe6, 0x51, 0x2, 0x7e, 0x8a, 0x76, 0x98, 0x25, 0xa1, 0x44, 0x3c, 0x62, 0x1, 0xb1, 0xa, 0x9a, 0x1b, 0x4a, 0x31, 0x94, 0x88, 0xe1, 0x69, 0x27, 0x47, 0x95, 0x32, 0x75, 0x6a, 0xb3, 0x2e, 0x54, 0x20, 0xd1, 0x71, 0xe3, 0x80, 0x9a, 0xb9, 0xb0, 0xcc, 0x58, 0x94, 0xc0, 0x89, 0xcb, 0x84, 0xe2, 0x46, 0xa1, 0xce, 0x1, 0x78, 0xaa, 0x91, 0x8, 0x3e, 0x5, 0xd4, 0x4, 0x61, 0x3e, 0xb4, 0xd0, 0x9c, 0x37, 0xcd, 0xf9, 0xa, 0x45, 0xcc, 0x5c, 0x9, 0x3d, 0x99, 0x90, 0x8c, 0x30, 0xe2, 0xae, 0x98, 0x47, 0xc1, 0x57, 0xca, 0x91, 0xa8, 0xf7, 0xb1, 0x74, 0x89, 0x6c, 0x3c, 0xbc, 0x82, 0x2e, 0x1e, 0x6b, 0x1a, 0x32, 0x6, 0xb9, 0x71, 0x46, 0x2f, 0x0, 0xa1, 0xbe, 0x3c, 0xd5, 0xe9, 0xef, 0x2c, 0xe6, 0x62, 0xdd, 0xd8, 0xb, 0xb0, 0x2, 0x82, 0x3a, 0x6d, 0x8e, 0x78, 0xc0, 0x6c, 0xb7, 0x53, 0x8a, 0x4d, 0xe9, 0xbc, 0xb6, 0x64, 0x72, 0x16, 0xf4, 0x53, 0xeb, 0x8c, 0x3d, 0xbd, 0x1a, 0x14, 0xea, 0x4a, 0x0, 0x8b, 0x30, 0xb7, 0x42, 0xc, 0x9, 0x8, 0x58, 0x4f, 0xa2, 0xe4, 0xc9, 0x6, 0xe6, 0x40, 0x4, 0x1f, 0x23, 0xf8, 0x64, 0x28, 0x67, 0x71, 0xbc, 0x81, 0x0, 0xa9, 0x72, 0x25, 0xd3, 0xc1, 0x46, 0xc4, 0x3, 0x4e, 0xe4, 0x31, 0x37, 0xc6, 0x4, 0x9a, 0x7d, 0x59, 0xf9, 0x14, 0xc6, 0xd6, 0x2, 0x10, 0x2a, 0x1e, 0xaf, 0x4a, 0x1c, 0x2f, 0x10, 0x60, 0x39, 0xa7, 0x58, 0x3f, 0xc1, 0x45, 0xac, 0xa1, 0xac, 0xa2, 0xce, 0xa8, 0xaa, 0xd7, 0xa0, 0x51, 0x93, 0x66, 0x2f, 0xde, 0x79, 0xf5, 0xde, 0x7, 0x3f, 0xf6, 0xa8, 0x1c, 0x24, 0xb8, 0xa0, 0xc1, 0x87, 0x10, 0x62, 0x48, 0x21, 0x47, 0x89, 0x2e, 0x6a, 0xf4, 0x31, 0xc4, 0x18, 0x53, 0xcc, 0x89, 0x93, 0x60, 0xb, 0xd3, 0xe4, 0x53, 0x30, 0x29, 0xa6, 0x94, 0x72, 0xc6, 0xa4, 0x19, 0xa9, 0x33, 0x46, 0x67, 0xf4, 0xc8, 0x79, 0xe3, 0x4d, 0x36, 0xb7, 0xe9, 0xe6, 0xb7, 0xb0, 0xc5, 0x2d, 0x6d, 0xb9, 0x60, 0xf9, 0x14, 0x57, 0xb4, 0xf8, 0x12, 0x4a, 0x2c, 0xa9, 0xe4, 0xca, 0x55, 0x2a, 0x5e, 0xff, 0xea, 0x6b, 0x30, 0x35, 0xd6, 0x54, 0x73, 0xa3, 0x86, 0xa5, 0xd4, 0x5c, 0xd3, 0xe6, 0x5b, 0x68, 0xb1, 0xa5, 0x96, 0x3b, 0xd6, 0x5a, 0x97, 0xee, 0xba, 0x76, 0xdf, 0x43, 0x8f, 0x3d, 0xf5, 0x7c, 0x50, 0x5b, 0x54, 0xaf, 0xa9, 0xd1, 0xd, 0xb9, 0xef, 0xa9, 0xd1, 0xa2, 0x36, 0x88, 0xb9, 0xd9, 0x2f, 0x9c, 0xa9, 0x21, 0x1c, 0xc2, 0x9e, 0x82, 0xc6, 0x76, 0xa2, 0x83, 0x19, 0x88, 0xb1, 0x23, 0x10, 0xf, 0x83, 0x0, 0x16, 0x34, 0xf, 0x66, 0x36, 0x92, 0x73, 0x3c, 0xc8, 0xd, 0x66, 0x36, 0x31, 0x5e, 0xa, 0x65, 0x50, 0x23, 0x1d, 0x70, 0x2a, 0xd, 0x62, 0x20, 0xe8, 0x1a, 0xb1, 0x76, 0x3a, 0xd8, 0x9d, 0xc9, 0x7d, 0xcb, 0xcd, 0xa8, 0xfb, 0x15, 0x37, 0xfe, 0x8a, 0x9c, 0x19, 0xe8, 0x3e, 0x41, 0xce, 0xc, 0x74, 0x8b, 0xdc, 0x3d, 0xb7, 0x7, 0xd4, 0x6a, 0x9e, 0x5f, 0x14, 0x99, 0x80, 0xc6, 0x5b, 0x38, 0x3c, 0xb5, 0xd2, 0xb1, 0xb1, 0xa1, 0x43, 0x8b, 0x99, 0x63, 0x1e, 0xdf, 0xa4, 0x97, 0x6b, 0xf3, 0x6e, 0x82, 0xff, 0x59, 0xa2, 0x76, 0x98, 0x52, 0xcd, 0x96, 0x67, 0xd4, 0xe2, 0x7b, 0x78, 0x6a, 0xd8, 0xd7, 0x6a, 0x83, 0x5d, 0x64, 0x45, 0x84, 0x8e, 0x89, 0x9e, 0x4a, 0xe9, 0x9a, 0xf6, 0x51, 0x92, 0x67, 0xc, 0xd4, 0xe2, 0x2e, 0xcf, 0xfd, 0x52, 0xb, 0xf9, 0x35, 0x30, 0x1d, 0x1e, 0xe1, 0x3, 0xb4, 0xf2, 0x97, 0x94, 0x9f, 0x8a, 0x71, 0x37, 0x62, 0x3e, 0x48, 0xd, 0x42, 0xcc, 0xae, 0x24, 0xb7, 0xa7, 0x4a, 0xf8, 0x50, 0xd2, 0x3e, 0x8d, 0xbf, 0xda, 0xc3, 0x12, 0xb3, 0xf9, 0xa7, 0x4a, 0xe8, 0x91, 0x27, 0x9f, 0x51, 0x74, 0x1, 0x67, 0x5b, 0xc9, 0xcd, 0xd7, 0x4a, 0x5c, 0xff, 0xce, 0x93, 0xf7, 0x14, 0x5d, 0x78, 0x52, 0x6e, 0xee, 0x99, 0x7, 0x4a, 0xea, 0xfe, 0xd6, 0x44, 0x25, 0xa7, 0xe3, 0x6f, 0xeb, 0xf, 0x6a, 0xf3, 0x93, 0x8e, 0x14, 0xf6, 0x67, 0xeb, 0xc2, 0x5f, 0x2c, 0x73, 0x73, 0x88, 0xad, 0xb2, 0x6b, 0xca, 0x73, 0xb8, 0x8e, 0xff, 0xd0, 0x3f, 0xaf, 0xcd, 0x77, 0x1d, 0xb4, 0x9f, 0x2d, 0x79, 0xe6, 0xb7, 0xe9, 0x2e, 0xbf, 0x62, 0xc9, 0x5d, 0x6d, 0x9e, 0x58, 0xa2, 0x4f, 0x76, 0x0, 0xa9, 0xec, 0xf7, 0x6d, 0xe4, 0x25, 0x4b, 0xee, 0x6a, 0xf3, 0xd8, 0x92, 0xfa, 0x74, 0x33, 0x71, 0xe9, 0x7a, 0xb9, 0x9a, 0xcf, 0x6c, 0xfd, 0xa7, 0x44, 0x17, 0xeb, 0xf5, 0xf7, 0x4a, 0x2e, 0x13, 0xbd, 0xbd, 0xad, 0xd9, 0x99, 0xe8, 0x4d, 0x25, 0x9f, 0x50, 0x74, 0x65, 0x89, 0x79, 0x57, 0xc9, 0x3b, 0x8a, 0x1e, 0xc2, 0xd9, 0x15, 0x75, 0xfc, 0x61, 0x49, 0xe6, 0x1f, 0xbf, 0x1c, 0xa8, 0x52, 0x2b, 0xb1, 0xc9, 0xd4, 0x0, 0x0, 0x0, 0x2, 0x62, 0x4b, 0x47, 0x44, 0x0, 0xff, 0x87, 0x8f, 0xcc, 0xbf, 0x0, 0x0, 0x0, 0x9, 0x70, 0x48, 0x59, 0x73, 0x0, 0x0, 0x2e, 0x23, 0x0, 0x0, 0x2e, 0x23, 0x1, 0x78, 0xa5, 0x3f, 0x76, 0x0, 0x0, 0x0, 0x7, 0x74, 0x49, 0x4d, 0x45, 0x7, 0xe3, 0x2, 0xa, 0x13, 0x29, 0x21, 0x5f, 0x36, 0xe2, 0x14, 0x0, 0x0, 0x0, 0xaf, 0x49, 0x44, 0x41, 0x54, 0x28, 0xcf, 0x7d, 0x91, 0x41, 0xa, 0xc2, 0x40, 0x10, 0x4, 0x6b, 0x92, 0x61, 0x37, 0xb0, 0x87, 0xec, 0x39, 0x3e, 0xc6, 0x3f, 0xf8, 0x9a, 0x3c, 0xc1, 0xd7, 0xf8, 0x3, 0xf, 0x3e, 0xc6, 0xab, 0x44, 0x50, 0x30, 0x26, 0x66, 0x3c, 0x2c, 0x6, 0x3, 0xd9, 0xf4, 0x69, 0xa0, 0xab, 0x9b, 0x86, 0x11, 0x14, 0x87, 0xa7, 0xc2, 0x51, 0x52, 0x90, 0x34, 0xf1, 0xe1, 0xcd, 0x8b, 0x9e, 0xb7, 0xe2, 0x8, 0x44, 0x6a, 0x2, 0x1e, 0x41, 0x0, 0xc3, 0xe8, 0x79, 0x72, 0xa7, 0x3, 0xc5, 0x13, 0xf7, 0x87, 0x5d, 0x3b, 0x46, 0x16, 0xd2, 0xee, 0x7a, 0xbc, 0x9c, 0x18, 0x95, 0x8a, 0xba, 0x69, 0x6f, 0x71, 0xc4, 0xfe, 0x6c, 0x41, 0x63, 0xd3, 0x72, 0xe6, 0xa1, 0x38, 0xc2, 0x10, 0x87, 0x65, 0x1c, 0x63, 0x60, 0x88, 0x4, 0x9c, 0x52, 0xe2, 0xa7, 0x45, 0x9a, 0x79, 0x29, 0x9e, 0x52, 0x29, 0x10, 0x63, 0x5a, 0x1, 0xc, 0x84, 0x42, 0x1, 0xc9, 0x36, 0x8, 0x68, 0x3a, 0x33, 0x0, 0x9, 0x30, 0x5b, 0x5, 0xc, 0x6c, 0x6e, 0x98, 0x36, 0x1b, 0x24, 0xdb, 0xf0, 0xdb, 0xc0, 0x2a, 0x90, 0x54, 0x6c, 0xba, 0x96, 0x0, 0xc9, 0x2, 0xc2, 0xfc, 0xe0, 0xac, 0xbe, 0xe, 0x38, 0x38, 0x83, 0xbf, 0x35, 0x30, 0x94, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 + 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x10, 0x8, 0x4, 0x0, 0x0, 0x0, 0xb5, 0xfa, 0x37, 0xea, 0x0, 0x0, 0x0, 0x9, 0x70, 0x48, 0x59, 0x73, 0x0, 0x0, 0x2e, 0x23, 0x0, 0x0, 0x2e, 0x23, 0x1, 0x78, 0xa5, 0x3f, 0x76, 0x0, 0x0, 0x0, 0x2, 0x62, 0x4b, 0x47, 0x44, 0x0, 0xff, 0x87, 0x8f, 0xcc, 0xbf, 0x0, 0x0, 0x0, 0xa6, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0x7c, 0xcd, 0xc5, 0x41, 0x4, 0x41, 0x10, 0x0, 0xc0, 0xea, 0xbd, 0xc1, 0x6d, 0xde, 0x47, 0x30, 0xe4, 0x40, 0x34, 0x1b, 0x2, 0xd1, 0x10, 0x1, 0x1a, 0xc, 0x4f, 0xdc, 0x6d, 0x1b, 0x77, 0xe6, 0xea, 0xd5, 0xde, 0xa1, 0x98, 0x36, 0x63, 0xd6, 0xb4, 0x91, 0xe, 0x30, 0x78, 0x74, 0xe7, 0xc6, 0xad, 0xbb, 0x97, 0xf6, 0x82, 0x6a, 0xc5, 0x82, 0x19, 0x21, 0x90, 0xd2, 0xad, 0x4b, 0xa7, 0x4e, 0x28, 0x66, 0xd4, 0xb5, 0xf5, 0xd5, 0xfe, 0xa1, 0xfa, 0xa1, 0x9c, 0x1c, 0x6c, 0xec, 0x6f, 0x7a, 0x28, 0x66, 0xad, 0x8c, 0xfb, 0xa3, 0xfa, 0x20, 0x7d, 0x9, 0xa5, 0x8e, 0x7b, 0xdb, 0x2e, 0x5e, 0x5f, 0xdc, 0xd7, 0x7b, 0x3f, 0xa5, 0x7b, 0xf7, 0xd5, 0x82, 0xe9, 0x62, 0x64, 0x66, 0x90, 0xfe, 0x1a, 0x98, 0x31, 0x2a, 0x3a, 0x91, 0x6, 0x7f, 0x25, 0xa1, 0x2b, 0x88, 0xe6, 0x85, 0xa0, 0x40, 0x73, 0x0, 0x5, 0x99, 0xf2, 0xff, 0x17, 0xf9, 0x79, 0x61, 0x98, 0x78, 0x21, 0x9a, 0x17, 0x82, 0xf2, 0x99, 0x34, 0x74, 0x13, 0xbb, 0x49, 0x87, 0xd0, 0x12, 0x4f, 0x3, 0x29, 0x20, 0x0, 0x0, 0xe, 0x38, 0x38, 0x83, 0xd2, 0xe8, 0x36, 0x36, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; static const unsigned char tab_menu_png[] = { diff --git a/scene/resources/height_map_shape.cpp b/scene/resources/height_map_shape.cpp index f763700d52..214706626d 100644 --- a/scene/resources/height_map_shape.cpp +++ b/scene/resources/height_map_shape.cpp @@ -31,7 +31,7 @@ #include "height_map_shape.h" #include "servers/physics_server.h" -Vector<Vector3> HeightMapShape::_gen_debug_mesh_lines() { +Vector<Vector3> HeightMapShape::get_debug_mesh_lines() { Vector<Vector3> points; if ((map_width != 0) && (map_depth != 0)) { diff --git a/scene/resources/height_map_shape.h b/scene/resources/height_map_shape.h index b062f4e893..4cf2a76213 100644 --- a/scene/resources/height_map_shape.h +++ b/scene/resources/height_map_shape.h @@ -46,8 +46,6 @@ protected: static void _bind_methods(); virtual void _update_shape(); - virtual Vector<Vector3> _gen_debug_mesh_lines(); - public: void set_map_width(int p_new); int get_map_width() const; @@ -56,6 +54,8 @@ public: void set_map_data(PoolRealArray p_new); PoolRealArray get_map_data() const; + virtual Vector<Vector3> get_debug_mesh_lines(); + HeightMapShape(); }; diff --git a/scene/resources/material.cpp b/scene/resources/material.cpp index 0de462d616..b10db9ee61 100644 --- a/scene/resources/material.cpp +++ b/scene/resources/material.cpp @@ -476,7 +476,9 @@ void SpatialMaterial::_update_shader() { code += ";\n"; code += "uniform vec4 albedo : hint_color;\n"; - code += "uniform sampler2D texture_albedo : hint_albedo;\n"; + if (textures[TEXTURE_ALBEDO] != NULL) { + code += "uniform sampler2D texture_albedo : hint_albedo;\n"; + } code += "uniform float specular;\n"; code += "uniform float metallic;\n"; if (grow_enabled) { @@ -496,10 +498,16 @@ void SpatialMaterial::_update_shader() { } code += "uniform float roughness : hint_range(0,1);\n"; code += "uniform float point_size : hint_range(0,128);\n"; - code += "uniform sampler2D texture_metallic : hint_white;\n"; - code += "uniform vec4 metallic_texture_channel;\n"; - code += "uniform sampler2D texture_roughness : hint_white;\n"; - code += "uniform vec4 roughness_texture_channel;\n"; + + if (textures[TEXTURE_METALLIC] != NULL) { + code += "uniform sampler2D texture_metallic : hint_white;\n"; + code += "uniform vec4 metallic_texture_channel;\n"; + } + + if (textures[TEXTURE_ROUGHNESS] != NULL) { + code += "uniform sampler2D texture_roughness : hint_white;\n"; + code += "uniform vec4 roughness_texture_channel;\n"; + } if (billboard_mode == BILLBOARD_PARTICLES) { code += "uniform int particles_anim_h_frames;\n"; code += "uniform int particles_anim_v_frames;\n"; @@ -773,37 +781,51 @@ void SpatialMaterial::_update_shader() { code += "\t}\n"; } - if (flags[FLAG_USE_POINT_SIZE]) { - code += "\tvec4 albedo_tex = texture(texture_albedo,POINT_COORD);\n"; - } else { - if (flags[FLAG_UV1_USE_TRIPLANAR]) { - code += "\tvec4 albedo_tex = triplanar_texture(texture_albedo,uv1_power_normal,uv1_triplanar_pos);\n"; + if (textures[TEXTURE_ALBEDO] != NULL) { + if (flags[FLAG_USE_POINT_SIZE]) { + code += "\tvec4 albedo_tex = texture(texture_albedo,POINT_COORD);\n"; } else { - code += "\tvec4 albedo_tex = texture(texture_albedo,base_uv);\n"; + if (flags[FLAG_UV1_USE_TRIPLANAR]) { + code += "\tvec4 albedo_tex = triplanar_texture(texture_albedo,uv1_power_normal,uv1_triplanar_pos);\n"; + } else { + code += "\tvec4 albedo_tex = texture(texture_albedo,base_uv);\n"; + } } - } - if (flags[FLAG_ALBEDO_TEXTURE_FORCE_SRGB]) { - code += "\talbedo_tex.rgb = mix(pow((albedo_tex.rgb + vec3(0.055)) * (1.0 / (1.0 + 0.055)),vec3(2.4)),albedo_tex.rgb.rgb * (1.0 / 12.92),lessThan(albedo_tex.rgb,vec3(0.04045)));\n"; + if (flags[FLAG_ALBEDO_TEXTURE_FORCE_SRGB]) { + code += "\talbedo_tex.rgb = mix(pow((albedo_tex.rgb + vec3(0.055)) * (1.0 / (1.0 + 0.055)),vec3(2.4)),albedo_tex.rgb.rgb * (1.0 / 12.92),lessThan(albedo_tex.rgb,vec3(0.04045)));\n"; + } + } else { + code += "\tvec4 albedo_tex = vec4(1.0, 1.0, 1.0, 1.0);\n"; } if (flags[FLAG_ALBEDO_FROM_VERTEX_COLOR]) { code += "\talbedo_tex *= COLOR;\n"; } - code += "\tALBEDO = albedo.rgb * albedo_tex.rgb;\n"; - if (flags[FLAG_UV1_USE_TRIPLANAR]) { - code += "\tfloat metallic_tex = dot(triplanar_texture(texture_metallic,uv1_power_normal,uv1_triplanar_pos),metallic_texture_channel);\n"; + + if (textures[TEXTURE_METALLIC] != NULL) { + if (flags[FLAG_UV1_USE_TRIPLANAR]) { + code += "\tfloat metallic_tex = dot(triplanar_texture(texture_metallic,uv1_power_normal,uv1_triplanar_pos),metallic_texture_channel);\n"; + } else { + code += "\tfloat metallic_tex = dot(texture(texture_metallic,base_uv),metallic_texture_channel);\n"; + } + code += "\tMETALLIC = metallic_tex * metallic;\n"; } else { - code += "\tfloat metallic_tex = dot(texture(texture_metallic,base_uv),metallic_texture_channel);\n"; + code += "\tMETALLIC = metallic;\n"; } - code += "\tMETALLIC = metallic_tex * metallic;\n"; - if (flags[FLAG_UV1_USE_TRIPLANAR]) { - code += "\tfloat roughness_tex = dot(triplanar_texture(texture_roughness,uv1_power_normal,uv1_triplanar_pos),roughness_texture_channel);\n"; + + if (textures[TEXTURE_ROUGHNESS] != NULL) { + if (flags[FLAG_UV1_USE_TRIPLANAR]) { + code += "\tfloat roughness_tex = dot(triplanar_texture(texture_roughness,uv1_power_normal,uv1_triplanar_pos),roughness_texture_channel);\n"; + } else { + code += "\tfloat roughness_tex = dot(texture(texture_roughness,base_uv),roughness_texture_channel);\n"; + } + code += "\tROUGHNESS = roughness_tex * roughness;\n"; } else { - code += "\tfloat roughness_tex = dot(texture(texture_roughness,base_uv),roughness_texture_channel);\n"; + code += "\tROUGHNESS = roughness;\n"; } - code += "\tROUGHNESS = roughness_tex * roughness;\n"; + code += "\tSPECULAR = specular;\n"; if (features[FEATURE_NORMAL_MAPPING]) { @@ -1754,6 +1776,7 @@ SpatialMaterial::TextureChannel SpatialMaterial::get_roughness_texture_channel() void SpatialMaterial::set_ao_texture_channel(TextureChannel p_channel) { + ERR_FAIL_INDEX(p_channel, 5); ao_texture_channel = p_channel; VS::get_singleton()->material_set_param(_get_material(), shader_names->ao_texture_channel, _get_texture_mask(p_channel)); } @@ -1764,6 +1787,7 @@ SpatialMaterial::TextureChannel SpatialMaterial::get_ao_texture_channel() const void SpatialMaterial::set_refraction_texture_channel(TextureChannel p_channel) { + ERR_FAIL_INDEX(p_channel, 5); refraction_texture_channel = p_channel; VS::get_singleton()->material_set_param(_get_material(), shader_names->refraction_texture_channel, _get_texture_mask(p_channel)); } @@ -1804,10 +1828,9 @@ RID SpatialMaterial::get_material_rid_for_2d(bool p_shaded, bool p_transparent, material->set_flag(FLAG_SRGB_VERTEX_COLOR, true); material->set_flag(FLAG_ALBEDO_FROM_VERTEX_COLOR, true); material->set_flag(FLAG_USE_ALPHA_SCISSOR, p_cut_alpha); - if (p_billboard) { - material->set_billboard_mode(BILLBOARD_ENABLED); - } else if (p_billboard_y) { - material->set_billboard_mode(BILLBOARD_FIXED_Y); + if (p_billboard || p_billboard_y) { + material->set_flag(FLAG_BILLBOARD_KEEP_SCALE, true); + material->set_billboard_mode(p_billboard_y ? BILLBOARD_FIXED_Y : BILLBOARD_ENABLED); } materials_for_2d[version] = material; diff --git a/scene/resources/plane_shape.cpp b/scene/resources/plane_shape.cpp index 08f6ccd764..d3274ec5f8 100644 --- a/scene/resources/plane_shape.cpp +++ b/scene/resources/plane_shape.cpp @@ -32,7 +32,7 @@ #include "servers/physics_server.h" -Vector<Vector3> PlaneShape::_gen_debug_mesh_lines() { +Vector<Vector3> PlaneShape::get_debug_mesh_lines() { Plane p = get_plane(); Vector<Vector3> points; diff --git a/scene/resources/plane_shape.h b/scene/resources/plane_shape.h index 87c367cfde..f853d1966b 100644 --- a/scene/resources/plane_shape.h +++ b/scene/resources/plane_shape.h @@ -42,12 +42,12 @@ protected: static void _bind_methods(); virtual void _update_shape(); - virtual Vector<Vector3> _gen_debug_mesh_lines(); - public: void set_plane(Plane p_plane); Plane get_plane() const; + virtual Vector<Vector3> get_debug_mesh_lines(); + PlaneShape(); }; #endif // PLANE_SHAPE_H diff --git a/scene/resources/ray_shape.cpp b/scene/resources/ray_shape.cpp index 0acfffdc06..5a696aee23 100644 --- a/scene/resources/ray_shape.cpp +++ b/scene/resources/ray_shape.cpp @@ -32,7 +32,7 @@ #include "servers/physics_server.h" -Vector<Vector3> RayShape::_gen_debug_mesh_lines() { +Vector<Vector3> RayShape::get_debug_mesh_lines() { Vector<Vector3> points; points.push_back(Vector3()); diff --git a/scene/resources/ray_shape.h b/scene/resources/ray_shape.h index 89fc34051c..fee7475c69 100644 --- a/scene/resources/ray_shape.h +++ b/scene/resources/ray_shape.h @@ -41,7 +41,6 @@ class RayShape : public Shape { protected: static void _bind_methods(); virtual void _update_shape(); - virtual Vector<Vector3> _gen_debug_mesh_lines(); public: void set_length(float p_length); @@ -50,6 +49,8 @@ public: void set_slips_on_slope(bool p_active); bool get_slips_on_slope() const; + virtual Vector<Vector3> get_debug_mesh_lines(); + RayShape(); }; #endif // RAY_SHAPE_H diff --git a/scene/resources/shape.cpp b/scene/resources/shape.cpp index 6ba46f066c..3500fdb4bc 100644 --- a/scene/resources/shape.cpp +++ b/scene/resources/shape.cpp @@ -37,7 +37,7 @@ void Shape::add_vertices_to_array(PoolVector<Vector3> &array, const Transform &p_xform) { - Vector<Vector3> toadd = _gen_debug_mesh_lines(); + Vector<Vector3> toadd = get_debug_mesh_lines(); if (toadd.size()) { @@ -64,7 +64,7 @@ Ref<ArrayMesh> Shape::get_debug_mesh() { if (debug_mesh_cache.is_valid()) return debug_mesh_cache; - Vector<Vector3> lines = _gen_debug_mesh_lines(); + Vector<Vector3> lines = get_debug_mesh_lines(); debug_mesh_cache = Ref<ArrayMesh>(memnew(ArrayMesh)); diff --git a/scene/resources/shape.h b/scene/resources/shape.h index ba763eaab1..2743fd0c65 100644 --- a/scene/resources/shape.h +++ b/scene/resources/shape.h @@ -50,13 +50,13 @@ protected: _FORCE_INLINE_ RID get_shape() const { return shape; } Shape(RID p_shape); - virtual Vector<Vector3> _gen_debug_mesh_lines() = 0; // { return Vector<Vector3>(); } virtual void _update_shape(); public: virtual RID get_rid() const { return shape; } Ref<ArrayMesh> get_debug_mesh(); + virtual Vector<Vector3> get_debug_mesh_lines() = 0; // { return Vector<Vector3>(); } void add_vertices_to_array(PoolVector<Vector3> &array, const Transform &p_xform); diff --git a/scene/resources/sphere_shape.cpp b/scene/resources/sphere_shape.cpp index af89413ced..019bc9189a 100644 --- a/scene/resources/sphere_shape.cpp +++ b/scene/resources/sphere_shape.cpp @@ -31,7 +31,7 @@ #include "sphere_shape.h" #include "servers/physics_server.h" -Vector<Vector3> SphereShape::_gen_debug_mesh_lines() { +Vector<Vector3> SphereShape::get_debug_mesh_lines() { float r = get_radius(); diff --git a/scene/resources/sphere_shape.h b/scene/resources/sphere_shape.h index 682928e885..679882fe23 100644 --- a/scene/resources/sphere_shape.h +++ b/scene/resources/sphere_shape.h @@ -42,12 +42,13 @@ protected: static void _bind_methods(); virtual void _update_shape(); - virtual Vector<Vector3> _gen_debug_mesh_lines(); public: void set_radius(float p_radius); float get_radius() const; + virtual Vector<Vector3> get_debug_mesh_lines(); + SphereShape(); }; diff --git a/scene/resources/style_box.cpp b/scene/resources/style_box.cpp index 4453032f67..9ee7c2936e 100644 --- a/scene/resources/style_box.cpp +++ b/scene/resources/style_box.cpp @@ -40,16 +40,22 @@ bool StyleBox::test_mask(const Point2 &p_point, const Rect2 &p_rect) const { void StyleBox::set_default_margin(Margin p_margin, float p_value) { + ERR_FAIL_INDEX((int)p_margin, 4); + margin[p_margin] = p_value; emit_changed(); } float StyleBox::get_default_margin(Margin p_margin) const { + ERR_FAIL_INDEX_V((int)p_margin, 4, 0.0); + return margin[p_margin]; } float StyleBox::get_margin(Margin p_margin) const { + ERR_FAIL_INDEX_V((int)p_margin, 4, 0.0); + if (margin[p_margin] < 0) return get_style_margin(p_margin); else @@ -157,11 +163,15 @@ void StyleBoxTexture::set_margin_size(Margin p_margin, float p_size) { } float StyleBoxTexture::get_margin_size(Margin p_margin) const { + ERR_FAIL_INDEX_V((int)p_margin, 4, 0.0); + return margin[p_margin]; } float StyleBoxTexture::get_style_margin(Margin p_margin) const { + ERR_FAIL_INDEX_V((int)p_margin, 4, 0.0); + return margin[p_margin]; } @@ -250,6 +260,7 @@ Rect2 StyleBoxTexture::get_region_rect() const { void StyleBoxTexture::set_h_axis_stretch_mode(AxisStretchMode p_mode) { + ERR_FAIL_INDEX((int)p_mode, 3); axis_h = p_mode; emit_changed(); } @@ -261,6 +272,7 @@ StyleBoxTexture::AxisStretchMode StyleBoxTexture::get_h_axis_stretch_mode() cons void StyleBoxTexture::set_v_axis_stretch_mode(AxisStretchMode p_mode) { + ERR_FAIL_INDEX((int)p_mode, 3); axis_v = p_mode; emit_changed(); } @@ -391,11 +403,13 @@ int StyleBoxFlat::get_border_width_min() const { } void StyleBoxFlat::set_border_width(Margin p_margin, int p_width) { + ERR_FAIL_INDEX((int)p_margin, 4); border_width[p_margin] = p_width; emit_changed(); } int StyleBoxFlat::get_border_width(Margin p_margin) const { + ERR_FAIL_INDEX_V((int)p_margin, 4, 0); return border_width[p_margin]; } @@ -437,15 +451,19 @@ int StyleBoxFlat::get_corner_radius_min() const { void StyleBoxFlat::set_corner_radius(const Corner p_corner, const int radius) { + ERR_FAIL_INDEX((int)p_corner, 4); corner_radius[p_corner] = radius; emit_changed(); } int StyleBoxFlat::get_corner_radius(const Corner p_corner) const { + + ERR_FAIL_INDEX_V((int)p_corner, 4, 0); return corner_radius[p_corner]; } void StyleBoxFlat::set_expand_margin_size(Margin p_expand_margin, float p_size) { + ERR_FAIL_INDEX((int)p_expand_margin, 4); expand_margin[p_expand_margin] = p_size; emit_changed(); } @@ -468,6 +486,7 @@ void StyleBoxFlat::set_expand_margin_size_all(float p_expand_margin_size) { float StyleBoxFlat::get_expand_margin_size(Margin p_expand_margin) const { + ERR_FAIL_INDEX_V((int)p_expand_margin, 4, 0.0); return expand_margin[p_expand_margin]; } void StyleBoxFlat::set_draw_center(bool p_enabled) { @@ -814,6 +833,7 @@ void StyleBoxFlat::draw(RID p_canvas_item, const Rect2 &p_rect) const { } float StyleBoxFlat::get_style_margin(Margin p_margin) const { + ERR_FAIL_INDEX_V((int)p_margin, 4, 0.0); return border_width[p_margin]; } void StyleBoxFlat::_bind_methods() { @@ -997,6 +1017,7 @@ void StyleBoxLine::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::BOOL, "vertical"), "set_vertical", "is_vertical"); } float StyleBoxLine::get_style_margin(Margin p_margin) const { + ERR_FAIL_INDEX_V((int)p_margin, 4, thickness); return thickness; } Size2 StyleBoxLine::get_center_size() const { diff --git a/scene/resources/theme.cpp b/scene/resources/theme.cpp index ae18be1695..f1429a7d7b 100644 --- a/scene/resources/theme.cpp +++ b/scene/resources/theme.cpp @@ -37,6 +37,97 @@ void Theme::_emit_theme_changed() { emit_changed(); } +PoolVector<String> Theme::_get_icon_list(const String &p_type) const { + + PoolVector<String> ilret; + List<StringName> il; + + get_icon_list(p_type, &il); + ilret.resize(il.size()); + for (List<StringName>::Element *E = il.front(); E; E = E->next()) { + ilret.push_back(E->get()); + } + return ilret; +} + +PoolVector<String> Theme::_get_stylebox_list(const String &p_type) const { + + PoolVector<String> ilret; + List<StringName> il; + + get_stylebox_list(p_type, &il); + ilret.resize(il.size()); + for (List<StringName>::Element *E = il.front(); E; E = E->next()) { + ilret.push_back(E->get()); + } + return ilret; +} + +PoolVector<String> Theme::_get_stylebox_types(void) const { + + PoolVector<String> ilret; + List<StringName> il; + + get_stylebox_types(&il); + ilret.resize(il.size()); + for (List<StringName>::Element *E = il.front(); E; E = E->next()) { + ilret.push_back(E->get()); + } + return ilret; +} + +PoolVector<String> Theme::_get_font_list(const String &p_type) const { + + PoolVector<String> ilret; + List<StringName> il; + + get_font_list(p_type, &il); + ilret.resize(il.size()); + for (List<StringName>::Element *E = il.front(); E; E = E->next()) { + ilret.push_back(E->get()); + } + return ilret; +} + +PoolVector<String> Theme::_get_color_list(const String &p_type) const { + + PoolVector<String> ilret; + List<StringName> il; + + get_color_list(p_type, &il); + ilret.resize(il.size()); + for (List<StringName>::Element *E = il.front(); E; E = E->next()) { + ilret.push_back(E->get()); + } + return ilret; +} + +PoolVector<String> Theme::_get_constant_list(const String &p_type) const { + + PoolVector<String> ilret; + List<StringName> il; + + get_constant_list(p_type, &il); + ilret.resize(il.size()); + for (List<StringName>::Element *E = il.front(); E; E = E->next()) { + ilret.push_back(E->get()); + } + return ilret; +} + +PoolVector<String> Theme::_get_type_list(const String &p_type) const { + + PoolVector<String> ilret; + List<StringName> il; + + get_type_list(&il); + ilret.resize(il.size()); + for (List<StringName>::Element *E = il.front(); E; E = E->next()) { + ilret.push_back(E->get()); + } + return ilret; +} + bool Theme::_set(const StringName &p_name, const Variant &p_value) { String sname = p_name; @@ -300,6 +391,8 @@ void Theme::clear_icon(const StringName &p_name, const StringName &p_type) { void Theme::get_icon_list(StringName p_type, List<StringName> *p_list) const { + ERR_FAIL_NULL(p_list); + if (!icon_map.has(p_type)) return; @@ -344,6 +437,9 @@ void Theme::clear_shader(const StringName &p_name, const StringName &p_type) { } void Theme::get_shader_list(const StringName &p_type, List<StringName> *p_list) const { + + ERR_FAIL_NULL(p_list); + if (!shader_map.has(p_type)) return; @@ -408,6 +504,8 @@ void Theme::clear_stylebox(const StringName &p_name, const StringName &p_type) { void Theme::get_stylebox_list(StringName p_type, List<StringName> *p_list) const { + ERR_FAIL_NULL(p_list); + if (!style_map.has(p_type)) return; @@ -420,6 +518,8 @@ void Theme::get_stylebox_list(StringName p_type, List<StringName> *p_list) const } void Theme::get_stylebox_types(List<StringName> *p_list) const { + ERR_FAIL_NULL(p_list); + const StringName *key = NULL; while ((key = style_map.next(key))) { p_list->push_back(*key); @@ -478,6 +578,8 @@ void Theme::clear_font(const StringName &p_name, const StringName &p_type) { void Theme::get_font_list(StringName p_type, List<StringName> *p_list) const { + ERR_FAIL_NULL(p_list); + if (!font_map.has(p_type)) return; @@ -526,6 +628,8 @@ void Theme::clear_color(const StringName &p_name, const StringName &p_type) { void Theme::get_color_list(StringName p_type, List<StringName> *p_list) const { + ERR_FAIL_NULL(p_list); + if (!color_map.has(p_type)) return; @@ -574,6 +678,8 @@ void Theme::clear_constant(const StringName &p_name, const StringName &p_type) { void Theme::get_constant_list(StringName p_type, List<StringName> *p_list) const { + ERR_FAIL_NULL(p_list); + if (!constant_map.has(p_type)) return; @@ -637,6 +743,12 @@ void Theme::copy_default_theme() { void Theme::copy_theme(const Ref<Theme> &p_other) { + if (p_other.is_null()) { + clear(); + + return; + } + //these need reconnecting, so add normally { const StringName *K = NULL; @@ -680,8 +792,9 @@ void Theme::copy_theme(const Ref<Theme> &p_other) { void Theme::get_type_list(List<StringName> *p_list) const { - Set<StringName> types; + ERR_FAIL_NULL(p_list); + Set<StringName> types; const StringName *key = NULL; while ((key = icon_map.next(key))) { diff --git a/scene/resources/theme.h b/scene/resources/theme.h index 187694de65..471e5b1a51 100644 --- a/scene/resources/theme.h +++ b/scene/resources/theme.h @@ -52,6 +52,14 @@ class Theme : public Resource { HashMap<StringName, HashMap<StringName, Color> > color_map; HashMap<StringName, HashMap<StringName, int> > constant_map; + PoolVector<String> _get_icon_list(const String &p_type) const; + PoolVector<String> _get_stylebox_list(const String &p_type) const; + PoolVector<String> _get_stylebox_types(void) const; + PoolVector<String> _get_font_list(const String &p_type) const; + PoolVector<String> _get_color_list(const String &p_type) const; + PoolVector<String> _get_constant_list(const String &p_type) const; + PoolVector<String> _get_type_list(const String &p_type) const; + protected: bool _set(const StringName &p_name, const Variant &p_value); bool _get(const StringName &p_name, Variant &r_ret) const; @@ -65,70 +73,6 @@ protected: Ref<Font> default_theme_font; - PoolVector<String> _get_icon_list(const String &p_type) const { - PoolVector<String> ilret; - List<StringName> il; - get_icon_list(p_type, &il); - for (List<StringName>::Element *E = il.front(); E; E = E->next()) { - ilret.push_back(E->get()); - } - return ilret; - } - PoolVector<String> _get_stylebox_list(const String &p_type) const { - PoolVector<String> ilret; - List<StringName> il; - get_stylebox_list(p_type, &il); - for (List<StringName>::Element *E = il.front(); E; E = E->next()) { - ilret.push_back(E->get()); - } - return ilret; - } - PoolVector<String> _get_stylebox_types(void) const { - PoolVector<String> ilret; - List<StringName> il; - get_stylebox_types(&il); - for (List<StringName>::Element *E = il.front(); E; E = E->next()) { - ilret.push_back(E->get()); - } - return ilret; - } - PoolVector<String> _get_font_list(const String &p_type) const { - PoolVector<String> ilret; - List<StringName> il; - get_font_list(p_type, &il); - for (List<StringName>::Element *E = il.front(); E; E = E->next()) { - ilret.push_back(E->get()); - } - return ilret; - } - PoolVector<String> _get_color_list(const String &p_type) const { - PoolVector<String> ilret; - List<StringName> il; - get_color_list(p_type, &il); - for (List<StringName>::Element *E = il.front(); E; E = E->next()) { - ilret.push_back(E->get()); - } - return ilret; - } - PoolVector<String> _get_constant_list(const String &p_type) const { - PoolVector<String> ilret; - List<StringName> il; - get_constant_list(p_type, &il); - for (List<StringName>::Element *E = il.front(); E; E = E->next()) { - ilret.push_back(E->get()); - } - return ilret; - } - PoolVector<String> _get_type_list(const String &p_type) const { - PoolVector<String> ilret; - List<StringName> il; - get_type_list(&il); - for (List<StringName>::Element *E = il.front(); E; E = E->next()) { - ilret.push_back(E->get()); - } - return ilret; - } - static void _bind_methods(); public: diff --git a/scene/resources/video_stream.h b/scene/resources/video_stream.h index eb3bf6770f..81c7b062cc 100644 --- a/scene/resources/video_stream.h +++ b/scene/resources/video_stream.h @@ -63,7 +63,7 @@ public: //virtual int mix(int16_t* p_buffer,int p_frames)=0; - virtual Ref<Texture> get_texture() = 0; + virtual Ref<Texture> get_texture() const = 0; virtual void update(float p_delta) = 0; virtual void set_mix_callback(AudioMixCallback p_callback, void *p_userdata) = 0; diff --git a/scene/resources/visual_shader.cpp b/scene/resources/visual_shader.cpp index 58bbf86241..cfc57b6e33 100644 --- a/scene/resources/visual_shader.cpp +++ b/scene/resources/visual_shader.cpp @@ -1349,7 +1349,6 @@ void VisualShader::_bind_methods() { ClassDB::bind_method(D_METHOD("get_valid_node_id", "type"), &VisualShader::get_valid_node_id); ClassDB::bind_method(D_METHOD("remove_node", "type", "id"), &VisualShader::remove_node); - ClassDB::bind_method(D_METHOD("rebuild"), &VisualShader::rebuild); ClassDB::bind_method(D_METHOD("is_node_connection", "type", "from_node", "from_port", "to_node", "to_port"), &VisualShader::is_node_connection); ClassDB::bind_method(D_METHOD("can_connect_nodes", "type", "from_node", "from_port", "to_node", "to_port"), &VisualShader::is_node_connection); @@ -1600,7 +1599,7 @@ String VisualShaderNodeInput::get_output_port_name(int p_port) const { } String VisualShaderNodeInput::get_caption() const { - return TTR("Input"); + return "Input"; } String VisualShaderNodeInput::generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview) const { @@ -1922,7 +1921,7 @@ bool VisualShaderNodeOutput::is_port_separator(int p_index) const { } String VisualShaderNodeOutput::get_caption() const { - return TTR("Output"); + return "Output"; } String VisualShaderNodeOutput::generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview) const { diff --git a/scene/resources/visual_shader.h b/scene/resources/visual_shader.h index 8b6b659836..4f73316404 100644 --- a/scene/resources/visual_shader.h +++ b/scene/resources/visual_shader.h @@ -353,6 +353,7 @@ public: class VisualShaderNodeUniform : public VisualShaderNode { GDCLASS(VisualShaderNodeUniform, VisualShaderNode); +private: String uniform_name; protected: diff --git a/scene/resources/visual_shader_nodes.cpp b/scene/resources/visual_shader_nodes.cpp index 2e58c512b8..a7df736c78 100644 --- a/scene/resources/visual_shader_nodes.cpp +++ b/scene/resources/visual_shader_nodes.cpp @@ -386,7 +386,7 @@ String VisualShaderNodeTexture::get_input_port_name(int p_port) const { case 1: return "lod"; case 2: - return "sampler"; + return "sampler2D"; default: return ""; } @@ -453,7 +453,12 @@ String VisualShaderNodeTexture::generate_code(Shader::Mode p_mode, VisualShader: String code; if (p_input_vars[0] == String()) { // Use UV by default. - code += "\tvec4 " + id + "_read = texture( " + id + " , UV.xy );\n"; + if (p_input_vars[1] == String()) { + code += "\tvec4 " + id + "_read = texture( " + id + " , UV.xy );\n"; + } else { + code += "\tvec4 " + id + "_read = textureLod( " + id + " , UV.xy , " + p_input_vars[1] + " );\n"; + } + } else if (p_input_vars[1] == String()) { //no lod code += "\tvec4 " + id + "_read = texture( " + id + " , " + p_input_vars[0] + ".xy );\n"; @@ -468,13 +473,18 @@ String VisualShaderNodeTexture::generate_code(Shader::Mode p_mode, VisualShader: if (source == SOURCE_PORT) { String id = p_input_vars[2]; + String code; if (id == String()) { code += "\tvec4 " + id + "_tex_read = vec4(0.0);\n"; } else { if (p_input_vars[0] == String()) { // Use UV by default. - code += "\tvec4 " + id + "_tex_read = texture( " + id + " , UV.xy );\n"; + if (p_input_vars[1] == String()) { + code += "\tvec4 " + id + "_tex_read = texture( " + id + " , UV.xy );\n"; + } else { + code += "\tvec4 " + id + "_tex_read = textureLod( " + id + " , UV.xy , " + p_input_vars[1] + " );\n"; + } } else if (p_input_vars[1] == String()) { //no lod @@ -494,11 +504,15 @@ String VisualShaderNodeTexture::generate_code(Shader::Mode p_mode, VisualShader: String code = "\t{\n"; if (p_input_vars[0] == String() || p_for_preview) { // Use UV by default. - code += "\t\tvec4 _tex_read = textureLod( SCREEN_TEXTURE , UV.xy, 0.0 );\n"; + if (p_input_vars[1] == String()) { + code += "\t\tvec4 _tex_read = textureLod( SCREEN_TEXTURE , UV.xy , 0.0 );\n"; + } else { + code += "\t\tvec4 _tex_read = textureLod( SCREEN_TEXTURE , UV.xy , " + p_input_vars[1] + ");\n"; + } } else if (p_input_vars[1] == String()) { //no lod - code += "\t\tvec4 _tex_read = textureLod( SCREEN_TEXTURE , " + p_input_vars[0] + ".xy, 0.0 );\n"; + code += "\t\tvec4 _tex_read = textureLod( SCREEN_TEXTURE , " + p_input_vars[0] + ".xy , 0.0 );\n"; } else { code += "\t\tvec4 _tex_read = textureLod( SCREEN_TEXTURE , " + p_input_vars[0] + ".xy , " + p_input_vars[1] + " );\n"; } @@ -514,7 +528,11 @@ String VisualShaderNodeTexture::generate_code(Shader::Mode p_mode, VisualShader: String code = "\t{\n"; if (p_input_vars[0] == String()) { // Use UV by default. - code += "\t\tvec4 _tex_read = texture( TEXTURE , UV.xy );\n"; + if (p_input_vars[1] == String()) { + code += "\t\tvec4 _tex_read = texture( TEXTURE , UV.xy );\n"; + } else { + code += "\t\tvec4 _tex_read = textureLod( TEXTURE , UV.xy , " + p_input_vars[1] + " );\n"; + } } else if (p_input_vars[1] == String()) { //no lod @@ -534,7 +552,11 @@ String VisualShaderNodeTexture::generate_code(Shader::Mode p_mode, VisualShader: String code = "\t{\n"; if (p_input_vars[0] == String()) { // Use UV by default. - code += "\t\tvec4 _tex_read = texture( NORMAL_TEXTURE , UV.xy );\n"; + if (p_input_vars[1] == String()) { + code += "\t\tvec4 _tex_read = texture( NORMAL_TEXTURE , UV.xy );\n"; + } else { + code += "\t\tvec4 _tex_read = textureLod( NORMAL_TEXTURE , UV.xy , " + p_input_vars[1] + " );\n"; + } } else if (p_input_vars[1] == String()) { //no lod @@ -564,7 +586,11 @@ String VisualShaderNodeTexture::generate_code(Shader::Mode p_mode, VisualShader: String code = "\t{\n"; if (p_input_vars[0] == String()) { // Use UV by default. - code += "\t\tfloat _depth = texture( DEPTH_TEXTURE , UV.xy ).r;\n"; + if (p_input_vars[1] == String()) { + code += "\t\tfloat _depth = texture( DEPTH_TEXTURE , UV.xy ).r;\n"; + } else { + code += "\t\tfloat _depth = textureLod( DEPTH_TEXTURE , UV.xy , " + p_input_vars[1] + " ).r;\n"; + } } else if (p_input_vars[1] == String()) { //no lod @@ -704,15 +730,33 @@ String VisualShaderNodeCubeMap::get_caption() const { } int VisualShaderNodeCubeMap::get_input_port_count() const { - return 2; + return 3; } VisualShaderNodeCubeMap::PortType VisualShaderNodeCubeMap::get_input_port_type(int p_port) const { - return p_port == 0 ? PORT_TYPE_VECTOR : PORT_TYPE_SCALAR; + switch (p_port) { + case 0: + return PORT_TYPE_VECTOR; + case 1: + return PORT_TYPE_SCALAR; + case 2: + return PORT_TYPE_SAMPLER; + default: + return PORT_TYPE_SCALAR; + } } String VisualShaderNodeCubeMap::get_input_port_name(int p_port) const { - return p_port == 0 ? "uv" : "lod"; + switch (p_port) { + case 0: + return "uv"; + case 1: + return "lod"; + case 2: + return "samplerCube"; + default: + return ""; + } } int VisualShaderNodeCubeMap::get_output_port_count() const { @@ -738,22 +782,44 @@ Vector<VisualShader::DefaultTextureParam> VisualShaderNodeCubeMap::get_default_t String VisualShaderNodeCubeMap::generate_global(Shader::Mode p_mode, VisualShader::Type p_type, int p_id) const { - String u = "uniform sampler2DCube " + make_unique_id(p_type, p_id, "cube"); - switch (texture_type) { - case TYPE_DATA: break; - case TYPE_COLOR: u += " : hint_albedo"; break; - case TYPE_NORMALMAP: u += " : hint_normal"; break; + if (source == SOURCE_TEXTURE) { + String u = "uniform samplerCube " + make_unique_id(p_type, p_id, "cube"); + switch (texture_type) { + case TYPE_DATA: break; + case TYPE_COLOR: u += " : hint_albedo"; break; + case TYPE_NORMALMAP: u += " : hint_normal"; break; + } + return u + ";"; } - return u + ";"; + return String(); } String VisualShaderNodeCubeMap::generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview) const { - String id = make_unique_id(p_type, p_id, "cube"); String code; - if (p_input_vars[0] == String()) { //none bound, do nothing + String id; + if (source == SOURCE_TEXTURE) { + id = make_unique_id(p_type, p_id, "cube"); + } else if (source == SOURCE_PORT) { + id = p_input_vars[2]; + } else { + return String(); + } + if (id == String()) { code += "\tvec4 " + id + "_read = vec4(0.0);\n"; + code += "\t" + p_output_vars[0] + " = " + id + "_read.rgb;\n"; + code += "\t" + p_output_vars[1] + " = " + id + "_read.a;\n"; + return code; + } + + if (p_input_vars[0] == String()) { // Use UV by default. + + if (p_input_vars[1] == String()) { + code += "\tvec4 " + id + "_read = texture( " + id + " , vec3( UV, 0.0 ) );\n"; + } else { + code += "\tvec4 " + id + "_read = textureLod( " + id + " , vec3( UV, 0.0 )" + " , " + p_input_vars[1] + " );\n"; + } } else if (p_input_vars[1] == String()) { //no lod @@ -761,12 +827,29 @@ String VisualShaderNodeCubeMap::generate_code(Shader::Mode p_mode, VisualShader: } else { code += "\tvec4 " + id + "_read = textureLod( " + id + " , " + p_input_vars[0] + " , " + p_input_vars[1] + " );\n"; } - code += "\t" + p_output_vars[0] + " = " + id + "_read.rgb;\n"; code += "\t" + p_output_vars[1] + " = " + id + "_read.a;\n"; + return code; } +String VisualShaderNodeCubeMap::get_input_port_default_hint(int p_port) const { + if (p_port == 0) { + return "vec3(UV, 0.0)"; + } + return ""; +} + +void VisualShaderNodeCubeMap::set_source(Source p_source) { + source = p_source; + emit_changed(); + emit_signal("editor_refresh_request"); +} + +VisualShaderNodeCubeMap::Source VisualShaderNodeCubeMap::get_source() const { + return source; +} + void VisualShaderNodeCubeMap::set_cube_map(Ref<CubeMap> p_value) { cube_map = p_value; @@ -789,22 +872,32 @@ VisualShaderNodeCubeMap::TextureType VisualShaderNodeCubeMap::get_texture_type() Vector<StringName> VisualShaderNodeCubeMap::get_editable_properties() const { Vector<StringName> props; - props.push_back("cube_map"); - props.push_back("texture_type"); + props.push_back("source"); + if (source == SOURCE_TEXTURE) { + props.push_back("cube_map"); + props.push_back("texture_type"); + } return props; } void VisualShaderNodeCubeMap::_bind_methods() { + ClassDB::bind_method(D_METHOD("set_source", "value"), &VisualShaderNodeCubeMap::set_source); + ClassDB::bind_method(D_METHOD("get_source"), &VisualShaderNodeCubeMap::get_source); + ClassDB::bind_method(D_METHOD("set_cube_map", "value"), &VisualShaderNodeCubeMap::set_cube_map); ClassDB::bind_method(D_METHOD("get_cube_map"), &VisualShaderNodeCubeMap::get_cube_map); ClassDB::bind_method(D_METHOD("set_texture_type", "value"), &VisualShaderNodeCubeMap::set_texture_type); ClassDB::bind_method(D_METHOD("get_texture_type"), &VisualShaderNodeCubeMap::get_texture_type); + ADD_PROPERTY(PropertyInfo(Variant::INT, "source", PROPERTY_HINT_ENUM, "Texture,SamplerPort"), "set_source", "get_source"); ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "cube_map", PROPERTY_HINT_RESOURCE_TYPE, "CubeMap"), "set_cube_map", "get_cube_map"); ADD_PROPERTY(PropertyInfo(Variant::INT, "texture_type", PROPERTY_HINT_ENUM, "Data,Color,Normalmap"), "set_texture_type", "get_texture_type"); + BIND_ENUM_CONSTANT(SOURCE_TEXTURE); + BIND_ENUM_CONSTANT(SOURCE_PORT); + BIND_ENUM_CONSTANT(TYPE_DATA); BIND_ENUM_CONSTANT(TYPE_COLOR); BIND_ENUM_CONSTANT(TYPE_NORMALMAP); @@ -3101,7 +3194,7 @@ String VisualShaderNodeTextureUniform::get_output_port_name(int p_port) const { case 1: return "alpha"; case 2: - return "sampler"; + return "sampler2D"; default: return ""; } @@ -3135,8 +3228,11 @@ String VisualShaderNodeTextureUniform::generate_code(Shader::Mode p_mode, Visual String id = get_uniform_name(); String code = "\t{\n"; if (p_input_vars[0] == String()) { // Use UV by default. - - code += "\t\tvec4 n_tex_read = texture( " + id + " , UV.xy );\n"; + if (p_input_vars[1] == String()) { + code += "\t\tvec4 n_tex_read = texture( " + id + " , UV.xy );\n"; + } else { + code += "\t\tvec4 n_tex_read = textureLod( " + id + " , UV.xy , " + p_input_vars[1] + " );\n"; + } } else if (p_input_vars[1] == String()) { //no lod code += "\t\tvec4 n_tex_read = texture( " + id + " , " + p_input_vars[0] + ".xy );\n"; @@ -3314,28 +3410,55 @@ String VisualShaderNodeCubeMapUniform::get_caption() const { return "CubeMapUniform"; } +int VisualShaderNodeCubeMapUniform::get_output_port_count() const { + return 1; +} + +VisualShaderNodeCubeMapUniform::PortType VisualShaderNodeCubeMapUniform::get_output_port_type(int p_port) const { + return PORT_TYPE_SAMPLER; +} + +String VisualShaderNodeCubeMapUniform::get_output_port_name(int p_port) const { + return "samplerCube"; +} + int VisualShaderNodeCubeMapUniform::get_input_port_count() const { - return 2; + return 0; } VisualShaderNodeCubeMapUniform::PortType VisualShaderNodeCubeMapUniform::get_input_port_type(int p_port) const { - return p_port == 0 ? PORT_TYPE_VECTOR : PORT_TYPE_SCALAR; + return PORT_TYPE_SCALAR; } String VisualShaderNodeCubeMapUniform::get_input_port_name(int p_port) const { - return p_port == 0 ? "normal" : "lod"; + return ""; } -int VisualShaderNodeCubeMapUniform::get_output_port_count() const { - return 2; +String VisualShaderNodeCubeMapUniform::get_input_port_default_hint(int p_port) const { + return ""; } -VisualShaderNodeCubeMapUniform::PortType VisualShaderNodeCubeMapUniform::get_output_port_type(int p_port) const { - return p_port == 0 ? PORT_TYPE_VECTOR : PORT_TYPE_SCALAR; -} +String VisualShaderNodeCubeMapUniform::generate_global(Shader::Mode p_mode, VisualShader::Type p_type, int p_id) const { + String code = "uniform samplerCube " + get_uniform_name(); -String VisualShaderNodeCubeMapUniform::get_output_port_name(int p_port) const { - return p_port == 0 ? "rgb" : "alpha"; + switch (texture_type) { + case TYPE_DATA: + if (color_default == COLOR_DEFAULT_BLACK) + code += " : hint_black;\n"; + else + code += ";\n"; + break; + case TYPE_COLOR: + if (color_default == COLOR_DEFAULT_BLACK) + code += " : hint_black_albedo;\n"; + else + code += " : hint_albedo;\n"; + break; + case TYPE_NORMALMAP: code += " : hint_normal;\n"; break; + case TYPE_ANISO: code += " : hint_aniso;\n"; break; + } + + return code; } String VisualShaderNodeCubeMapUniform::generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview) const { diff --git a/scene/resources/visual_shader_nodes.h b/scene/resources/visual_shader_nodes.h index d5ee990191..339e59bda9 100644 --- a/scene/resources/visual_shader_nodes.h +++ b/scene/resources/visual_shader_nodes.h @@ -259,6 +259,11 @@ class VisualShaderNodeCubeMap : public VisualShaderNode { Ref<CubeMap> cube_map; public: + enum Source { + SOURCE_TEXTURE, + SOURCE_PORT + }; + enum TextureType { TYPE_DATA, TYPE_COLOR, @@ -266,6 +271,7 @@ public: }; private: + Source source; TextureType texture_type; protected: @@ -277,6 +283,7 @@ public: virtual int get_input_port_count() const; virtual PortType get_input_port_type(int p_port) const; virtual String get_input_port_name(int p_port) const; + virtual String get_input_port_default_hint(int p_port) const; virtual int get_output_port_count() const; virtual PortType get_output_port_type(int p_port) const; @@ -286,6 +293,9 @@ public: virtual String generate_global(Shader::Mode p_mode, VisualShader::Type p_type, int p_id) const; virtual String generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview = false) const; //if no output is connected, the output var passed will be empty. if no input is connected and input is NIL, the input var passed will be empty + void set_source(Source p_source); + Source get_source() const; + void set_cube_map(Ref<CubeMap> p_value); Ref<CubeMap> get_cube_map() const; @@ -298,6 +308,7 @@ public: }; VARIANT_ENUM_CAST(VisualShaderNodeCubeMap::TextureType) +VARIANT_ENUM_CAST(VisualShaderNodeCubeMap::Source) /////////////////////////////////////// /// OPS @@ -1412,7 +1423,7 @@ public: COLOR_DEFAULT_BLACK }; -private: +protected: TextureType texture_type; ColorDefault color_default; @@ -1471,8 +1482,8 @@ public: /////////////////////////////////////// -class VisualShaderNodeCubeMapUniform : public VisualShaderNode { - GDCLASS(VisualShaderNodeCubeMapUniform, VisualShaderNode); +class VisualShaderNodeCubeMapUniform : public VisualShaderNodeTextureUniform { + GDCLASS(VisualShaderNodeCubeMapUniform, VisualShaderNodeTextureUniform); public: virtual String get_caption() const; @@ -1485,6 +1496,8 @@ public: virtual PortType get_output_port_type(int p_port) const; virtual String get_output_port_name(int p_port) const; + virtual String get_input_port_default_hint(int p_port) const; + virtual String generate_global(Shader::Mode p_mode, VisualShader::Type p_type, int p_id) const; virtual String generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview = false) const; //if no output is connected, the output var passed will be empty. if no input is connected and input is NIL, the input var passed will be empty VisualShaderNodeCubeMapUniform(); diff --git a/servers/audio_server.cpp b/servers/audio_server.cpp index 2cf6a67bef..1da0146084 100644 --- a/servers/audio_server.cpp +++ b/servers/audio_server.cpp @@ -1079,6 +1079,7 @@ void AudioServer::finish() { for (int i = 0; i < AudioDriverManager::get_driver_count(); i++) { AudioDriverManager::get_driver(i)->finish(); + AudioDriverManager::get_driver(i)->clear_capture_buffer(); } for (int i = 0; i < buses.size(); i++) { diff --git a/servers/audio_server.h b/servers/audio_server.h index 72bb6faf42..da4b9daf5b 100644 --- a/servers/audio_server.h +++ b/servers/audio_server.h @@ -115,6 +115,8 @@ public: unsigned int get_capture_position() { return capture_position; } unsigned int get_capture_size() { return capture_size; } + void clear_capture_buffer() { capture_buffer.resize(0); } + #ifdef DEBUG_ENABLED uint64_t get_profiling_time() const { return prof_time; } void reset_profiling_time() { prof_time = 0; } diff --git a/servers/physics/body_sw.cpp b/servers/physics/body_sw.cpp index a3bb581cb5..ba98e14d2e 100644 --- a/servers/physics/body_sw.cpp +++ b/servers/physics/body_sw.cpp @@ -260,12 +260,14 @@ void BodySW::set_mode(PhysicsServer::BodyMode p_mode) { _inv_mass = mass > 0 ? (1.0 / mass) : 0; _set_static(false); + set_active(true); } break; case PhysicsServer::BODY_MODE_CHARACTER: { _inv_mass = mass > 0 ? (1.0 / mass) : 0; _set_static(false); + set_active(true); angular_velocity = Vector3(); } break; } @@ -794,7 +796,7 @@ BodySW::BodySW() : still_time = 0; continuous_cd = false; - can_sleep = false; + can_sleep = true; fi_callback = NULL; } diff --git a/servers/physics_2d/body_2d_sw.cpp b/servers/physics_2d/body_2d_sw.cpp index 6ba159ca0a..de1dfc9ee7 100644 --- a/servers/physics_2d/body_2d_sw.cpp +++ b/servers/physics_2d/body_2d_sw.cpp @@ -238,6 +238,7 @@ void Body2DSW::set_mode(Physics2DServer::BodyMode p_mode) { _inv_mass = mass > 0 ? (1.0 / mass) : 0; _inv_inertia = inertia > 0 ? (1.0 / inertia) : 0; _set_static(false); + set_active(true); } break; case Physics2DServer::BODY_MODE_CHARACTER: { @@ -245,6 +246,7 @@ void Body2DSW::set_mode(Physics2DServer::BodyMode p_mode) { _inv_mass = mass > 0 ? (1.0 / mass) : 0; _inv_inertia = 0; _set_static(false); + set_active(true); angular_velocity = 0; } break; } @@ -694,7 +696,7 @@ Body2DSW::Body2DSW() : still_time = 0; continuous_cd_mode = Physics2DServer::CCD_MODE_DISABLED; - can_sleep = false; + can_sleep = true; fi_callback = NULL; } diff --git a/servers/physics_2d/physics_2d_server_wrap_mt.cpp b/servers/physics_2d/physics_2d_server_wrap_mt.cpp index c698290fd9..9fc15d9660 100644 --- a/servers/physics_2d/physics_2d_server_wrap_mt.cpp +++ b/servers/physics_2d/physics_2d_server_wrap_mt.cpp @@ -139,6 +139,7 @@ void Physics2DServerWrapMT::finish() { segment_shape_free_cached_ids(); circle_shape_free_cached_ids(); rectangle_shape_free_cached_ids(); + capsule_shape_free_cached_ids(); convex_polygon_shape_free_cached_ids(); concave_polygon_shape_free_cached_ids(); diff --git a/servers/visual/shader_language.cpp b/servers/visual/shader_language.cpp index ae99d64eee..46f65bb758 100644 --- a/servers/visual/shader_language.cpp +++ b/servers/visual/shader_language.cpp @@ -4143,6 +4143,11 @@ Error ShaderLanguage::_parse_block(BlockNode *p_block, const Map<StringName, Bui if (!n) return ERR_PARSE_ERROR; + if (n->get_datatype() != TYPE_BOOL) { + _set_error("Expected boolean expression"); + return ERR_PARSE_ERROR; + } + tk = _get_token(); if (tk.type != TK_PARENTHESIS_CLOSE) { _set_error("Expected ')' after expression"); @@ -4610,19 +4615,34 @@ Error ShaderLanguage::_parse_block(BlockNode *p_block, const Map<StringName, Bui return OK; } +String ShaderLanguage::_get_shader_type_list(const Set<String> &p_shader_types) const { + + // Return a list of shader types as an human-readable string + String valid_types; + for (const Set<String>::Element *E = p_shader_types.front(); E; E = E->next()) { + if (valid_types != String()) { + valid_types += ", "; + } + + valid_types += "'" + E->get() + "'"; + } + + return valid_types; +} + Error ShaderLanguage::_parse_shader(const Map<StringName, FunctionInfo> &p_functions, const Vector<StringName> &p_render_modes, const Set<String> &p_shader_types) { Token tk = _get_token(); if (tk.type != TK_SHADER_TYPE) { - _set_error("Expected 'shader_type' at the beginning of shader."); + _set_error("Expected 'shader_type' at the beginning of shader. Valid types are: " + _get_shader_type_list(p_shader_types)); return ERR_PARSE_ERROR; } tk = _get_token(); if (tk.type != TK_IDENTIFIER) { - _set_error("Expected identifier after 'shader_type', indicating type of shader."); + _set_error("Expected identifier after 'shader_type', indicating type of shader. Valid types are: " + _get_shader_type_list(p_shader_types)); return ERR_PARSE_ERROR; } @@ -4631,15 +4651,7 @@ Error ShaderLanguage::_parse_shader(const Map<StringName, FunctionInfo> &p_funct shader_type_identifier = tk.text; if (!p_shader_types.has(shader_type_identifier)) { - - String valid; - for (Set<String>::Element *E = p_shader_types.front(); E; E = E->next()) { - if (valid != String()) { - valid += ", "; - } - valid += "'" + E->get() + "'"; - } - _set_error("Invalid shader type, valid types are: " + valid); + _set_error("Invalid shader type. Valid types are: " + _get_shader_type_list(p_shader_types)); return ERR_PARSE_ERROR; } @@ -4742,6 +4754,11 @@ Error ShaderLanguage::_parse_shader(const Map<StringName, FunctionInfo> &p_funct return ERR_PARSE_ERROR; } + if (has_builtin(p_functions, name)) { + _set_error("Redefinition of '" + String(name) + "'"); + return ERR_PARSE_ERROR; + } + if (uniform) { ShaderNode::Uniform uniform2; @@ -4990,6 +5007,11 @@ Error ShaderLanguage::_parse_shader(const Map<StringName, FunctionInfo> &p_funct return ERR_PARSE_ERROR; } + if (has_builtin(p_functions, name)) { + _set_error("Redefinition of '" + String(name) + "'"); + return ERR_PARSE_ERROR; + } + tk = _get_token(); if (tk.type != TK_PARENTHESIS_OPEN) { if (type == TYPE_VOID) { @@ -5048,6 +5070,11 @@ Error ShaderLanguage::_parse_shader(const Map<StringName, FunctionInfo> &p_funct return ERR_PARSE_ERROR; } + if (has_builtin(p_functions, name)) { + _set_error("Redefinition of '" + String(name) + "'"); + return ERR_PARSE_ERROR; + } + tk = _get_token(); } else if (tk.type == TK_SEMICOLON) { @@ -5149,6 +5176,12 @@ Error ShaderLanguage::_parse_shader(const Map<StringName, FunctionInfo> &p_funct return ERR_PARSE_ERROR; } } + + if (has_builtin(p_functions, pname)) { + _set_error("Redefinition of '" + String(pname) + "'"); + return ERR_PARSE_ERROR; + } + FunctionNode::Argument arg; arg.type = ptype; arg.name = pname; @@ -5215,6 +5248,26 @@ Error ShaderLanguage::_parse_shader(const Map<StringName, FunctionInfo> &p_funct return OK; } +bool ShaderLanguage::has_builtin(const Map<StringName, ShaderLanguage::FunctionInfo> &p_functions, const StringName &p_name) { + + if (p_functions.has("vertex")) { + if (p_functions["vertex"].built_ins.has(p_name)) { + return true; + } + } + if (p_functions.has("fragment")) { + if (p_functions["fragment"].built_ins.has(p_name)) { + return true; + } + } + if (p_functions.has("light")) { + if (p_functions["light"].built_ins.has(p_name)) { + return true; + } + } + return false; +} + Error ShaderLanguage::_find_last_flow_op_in_op(ControlFlowNode *p_flow, FlowOperation p_op) { bool found = false; @@ -5419,7 +5472,7 @@ Error ShaderLanguage::complete(const String &p_code, const Map<StringName, Funct if (block->parent_function) { if (comp_ident) { for (int i = 0; i < block->parent_function->arguments.size(); i++) { - matches.insert(block->parent_function->arguments[i].name, ScriptCodeCompletionOption::KIND_FUNCTION); + matches.insert(block->parent_function->arguments[i].name, ScriptCodeCompletionOption::KIND_VARIABLE); } } skip_function = block->parent_function->name; diff --git a/servers/visual/shader_language.h b/servers/visual/shader_language.h index 3a5630ef42..e62881f5c6 100644 --- a/servers/visual/shader_language.h +++ b/servers/visual/shader_language.h @@ -645,6 +645,7 @@ public: Map<StringName, BuiltInInfo> built_ins; bool can_discard; }; + static bool has_builtin(const Map<StringName, ShaderLanguage::FunctionInfo> &p_functions, const StringName &p_name); private: struct KeyWord { @@ -750,6 +751,8 @@ private: Node *_parse_and_reduce_expression(BlockNode *p_block, const Map<StringName, BuiltInInfo> &p_builtin_types); Error _parse_block(BlockNode *p_block, const Map<StringName, BuiltInInfo> &p_builtin_types, bool p_just_one = false, bool p_can_break = false, bool p_can_continue = false); + String _get_shader_type_list(const Set<String> &p_shader_types) const; + Error _parse_shader(const Map<StringName, FunctionInfo> &p_functions, const Vector<StringName> &p_render_modes, const Set<String> &p_shader_types); Error _find_last_flow_op_in_block(BlockNode *p_block, FlowOperation p_op); diff --git a/servers/visual/visual_server_canvas.cpp b/servers/visual/visual_server_canvas.cpp index f5a1276c27..ed06a67e4c 100644 --- a/servers/visual/visual_server_canvas.cpp +++ b/servers/visual/visual_server_canvas.cpp @@ -680,11 +680,22 @@ void VisualServerCanvas::canvas_item_add_texture_rect_region(RID p_item, const R rect->flags |= RasterizerCanvas::CANVAS_RECT_FLIP_H; rect->rect.size.x = -rect->rect.size.x; } + if (p_src_rect.size.x < 0) { + + rect->flags ^= RasterizerCanvas::CANVAS_RECT_FLIP_H; + rect->source.size.x = -rect->source.size.x; + } if (p_rect.size.y < 0) { rect->flags |= RasterizerCanvas::CANVAS_RECT_FLIP_V; rect->rect.size.y = -rect->rect.size.y; } + if (p_src_rect.size.y < 0) { + + rect->flags ^= RasterizerCanvas::CANVAS_RECT_FLIP_V; + rect->source.size.y = -rect->source.size.y; + } + if (p_transpose) { rect->flags |= RasterizerCanvas::CANVAS_RECT_TRANSPOSE; SWAP(rect->rect.size.x, rect->rect.size.y); diff --git a/servers/visual/visual_server_wrap_mt.cpp b/servers/visual/visual_server_wrap_mt.cpp index 79e4d8cbba..1f0217c0ce 100644 --- a/servers/visual/visual_server_wrap_mt.cpp +++ b/servers/visual/visual_server_wrap_mt.cpp @@ -137,6 +137,7 @@ void VisualServerWrapMT::finish() { } texture_free_cached_ids(); + sky_free_cached_ids(); shader_free_cached_ids(); material_free_cached_ids(); mesh_free_cached_ids(); @@ -148,6 +149,7 @@ void VisualServerWrapMT::finish() { spot_light_free_cached_ids(); reflection_probe_free_cached_ids(); gi_probe_free_cached_ids(); + lightmap_capture_free_cached_ids(); particles_free_cached_ids(); camera_free_cached_ids(); viewport_free_cached_ids(); diff --git a/thirdparty/README.md b/thirdparty/README.md index 7c7f331657..6f0d4da958 100644 --- a/thirdparty/README.md +++ b/thirdparty/README.md @@ -157,12 +157,12 @@ Files extracted from upstream source: ## libogg - Upstream: https://www.xiph.org/ogg -- Version: 1.3.3 +- Version: git (c8fca6b, 2019) - License: BSD-3-Clause Files extracted from upstream source: -- `src/*.c` +- `src/*.{c,h}` - `include/ogg/*.h` in ogg/ - COPYING @@ -250,7 +250,7 @@ from the Android NDK r18. ## libwebp - Upstream: https://chromium.googlesource.com/webm/libwebp/ -- Version: 1.0.2 +- Version: 1.0.3 - License: BSD-3-Clause Files extracted from upstream source: diff --git a/thirdparty/libogg/bitwise.c b/thirdparty/libogg/bitwise.c index fa2b572029..f5ef79122e 100644 --- a/thirdparty/libogg/bitwise.c +++ b/thirdparty/libogg/bitwise.c @@ -11,7 +11,6 @@ ******************************************************************** function: packing variable sized words into an octet stream - last mod: $Id$ ********************************************************************/ @@ -890,7 +889,7 @@ int main(void){ for(i=0;i<test2size;i++){ if(oggpack_look(&r,32)==-1)report("out of data. failed!"); if(oggpack_look(&r,32)!=large[i]){ - fprintf(stderr,"%ld != %ld (%lx!=%lx):",oggpack_look(&r,32),large[i], + fprintf(stderr,"%ld != %lu (%lx!=%lx):",oggpack_look(&r,32),large[i], oggpack_look(&r,32),large[i]); report("read incorrect value!\n"); } @@ -1000,7 +999,7 @@ int main(void){ for(i=0;i<test2size;i++){ if(oggpackB_look(&r,32)==-1)report("out of data. failed!"); if(oggpackB_look(&r,32)!=large[i]){ - fprintf(stderr,"%ld != %ld (%lx!=%lx):",oggpackB_look(&r,32),large[i], + fprintf(stderr,"%ld != %lu (%lx!=%lx):",oggpackB_look(&r,32),large[i], oggpackB_look(&r,32),large[i]); report("read incorrect value!\n"); } diff --git a/thirdparty/libogg/crctable.h b/thirdparty/libogg/crctable.h new file mode 100644 index 0000000000..dcc378b309 --- /dev/null +++ b/thirdparty/libogg/crctable.h @@ -0,0 +1,278 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE Ogg CONTAINER SOURCE CODE. * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2018 * + * by the Xiph.Org Foundation http://www.xiph.org/ * + * * + ********************************************************************/ + +#include <ogg/os_types.h> + +static const ogg_uint32_t crc_lookup[8][256]={ +{0x00000000,0x04c11db7,0x09823b6e,0x0d4326d9,0x130476dc,0x17c56b6b,0x1a864db2,0x1e475005, + 0x2608edb8,0x22c9f00f,0x2f8ad6d6,0x2b4bcb61,0x350c9b64,0x31cd86d3,0x3c8ea00a,0x384fbdbd, + 0x4c11db70,0x48d0c6c7,0x4593e01e,0x4152fda9,0x5f15adac,0x5bd4b01b,0x569796c2,0x52568b75, + 0x6a1936c8,0x6ed82b7f,0x639b0da6,0x675a1011,0x791d4014,0x7ddc5da3,0x709f7b7a,0x745e66cd, + 0x9823b6e0,0x9ce2ab57,0x91a18d8e,0x95609039,0x8b27c03c,0x8fe6dd8b,0x82a5fb52,0x8664e6e5, + 0xbe2b5b58,0xbaea46ef,0xb7a96036,0xb3687d81,0xad2f2d84,0xa9ee3033,0xa4ad16ea,0xa06c0b5d, + 0xd4326d90,0xd0f37027,0xddb056fe,0xd9714b49,0xc7361b4c,0xc3f706fb,0xceb42022,0xca753d95, + 0xf23a8028,0xf6fb9d9f,0xfbb8bb46,0xff79a6f1,0xe13ef6f4,0xe5ffeb43,0xe8bccd9a,0xec7dd02d, + 0x34867077,0x30476dc0,0x3d044b19,0x39c556ae,0x278206ab,0x23431b1c,0x2e003dc5,0x2ac12072, + 0x128e9dcf,0x164f8078,0x1b0ca6a1,0x1fcdbb16,0x018aeb13,0x054bf6a4,0x0808d07d,0x0cc9cdca, + 0x7897ab07,0x7c56b6b0,0x71159069,0x75d48dde,0x6b93dddb,0x6f52c06c,0x6211e6b5,0x66d0fb02, + 0x5e9f46bf,0x5a5e5b08,0x571d7dd1,0x53dc6066,0x4d9b3063,0x495a2dd4,0x44190b0d,0x40d816ba, + 0xaca5c697,0xa864db20,0xa527fdf9,0xa1e6e04e,0xbfa1b04b,0xbb60adfc,0xb6238b25,0xb2e29692, + 0x8aad2b2f,0x8e6c3698,0x832f1041,0x87ee0df6,0x99a95df3,0x9d684044,0x902b669d,0x94ea7b2a, + 0xe0b41de7,0xe4750050,0xe9362689,0xedf73b3e,0xf3b06b3b,0xf771768c,0xfa325055,0xfef34de2, + 0xc6bcf05f,0xc27dede8,0xcf3ecb31,0xcbffd686,0xd5b88683,0xd1799b34,0xdc3abded,0xd8fba05a, + 0x690ce0ee,0x6dcdfd59,0x608edb80,0x644fc637,0x7a089632,0x7ec98b85,0x738aad5c,0x774bb0eb, + 0x4f040d56,0x4bc510e1,0x46863638,0x42472b8f,0x5c007b8a,0x58c1663d,0x558240e4,0x51435d53, + 0x251d3b9e,0x21dc2629,0x2c9f00f0,0x285e1d47,0x36194d42,0x32d850f5,0x3f9b762c,0x3b5a6b9b, + 0x0315d626,0x07d4cb91,0x0a97ed48,0x0e56f0ff,0x1011a0fa,0x14d0bd4d,0x19939b94,0x1d528623, + 0xf12f560e,0xf5ee4bb9,0xf8ad6d60,0xfc6c70d7,0xe22b20d2,0xe6ea3d65,0xeba91bbc,0xef68060b, + 0xd727bbb6,0xd3e6a601,0xdea580d8,0xda649d6f,0xc423cd6a,0xc0e2d0dd,0xcda1f604,0xc960ebb3, + 0xbd3e8d7e,0xb9ff90c9,0xb4bcb610,0xb07daba7,0xae3afba2,0xaafbe615,0xa7b8c0cc,0xa379dd7b, + 0x9b3660c6,0x9ff77d71,0x92b45ba8,0x9675461f,0x8832161a,0x8cf30bad,0x81b02d74,0x857130c3, + 0x5d8a9099,0x594b8d2e,0x5408abf7,0x50c9b640,0x4e8ee645,0x4a4ffbf2,0x470cdd2b,0x43cdc09c, + 0x7b827d21,0x7f436096,0x7200464f,0x76c15bf8,0x68860bfd,0x6c47164a,0x61043093,0x65c52d24, + 0x119b4be9,0x155a565e,0x18197087,0x1cd86d30,0x029f3d35,0x065e2082,0x0b1d065b,0x0fdc1bec, + 0x3793a651,0x3352bbe6,0x3e119d3f,0x3ad08088,0x2497d08d,0x2056cd3a,0x2d15ebe3,0x29d4f654, + 0xc5a92679,0xc1683bce,0xcc2b1d17,0xc8ea00a0,0xd6ad50a5,0xd26c4d12,0xdf2f6bcb,0xdbee767c, + 0xe3a1cbc1,0xe760d676,0xea23f0af,0xeee2ed18,0xf0a5bd1d,0xf464a0aa,0xf9278673,0xfde69bc4, + 0x89b8fd09,0x8d79e0be,0x803ac667,0x84fbdbd0,0x9abc8bd5,0x9e7d9662,0x933eb0bb,0x97ffad0c, + 0xafb010b1,0xab710d06,0xa6322bdf,0xa2f33668,0xbcb4666d,0xb8757bda,0xb5365d03,0xb1f740b4}, + +{0x00000000,0xd219c1dc,0xa0f29e0f,0x72eb5fd3,0x452421a9,0x973de075,0xe5d6bfa6,0x37cf7e7a, + 0x8a484352,0x5851828e,0x2abadd5d,0xf8a31c81,0xcf6c62fb,0x1d75a327,0x6f9efcf4,0xbd873d28, + 0x10519b13,0xc2485acf,0xb0a3051c,0x62bac4c0,0x5575baba,0x876c7b66,0xf58724b5,0x279ee569, + 0x9a19d841,0x4800199d,0x3aeb464e,0xe8f28792,0xdf3df9e8,0x0d243834,0x7fcf67e7,0xadd6a63b, + 0x20a33626,0xf2baf7fa,0x8051a829,0x524869f5,0x6587178f,0xb79ed653,0xc5758980,0x176c485c, + 0xaaeb7574,0x78f2b4a8,0x0a19eb7b,0xd8002aa7,0xefcf54dd,0x3dd69501,0x4f3dcad2,0x9d240b0e, + 0x30f2ad35,0xe2eb6ce9,0x9000333a,0x4219f2e6,0x75d68c9c,0xa7cf4d40,0xd5241293,0x073dd34f, + 0xbabaee67,0x68a32fbb,0x1a487068,0xc851b1b4,0xff9ecfce,0x2d870e12,0x5f6c51c1,0x8d75901d, + 0x41466c4c,0x935fad90,0xe1b4f243,0x33ad339f,0x04624de5,0xd67b8c39,0xa490d3ea,0x76891236, + 0xcb0e2f1e,0x1917eec2,0x6bfcb111,0xb9e570cd,0x8e2a0eb7,0x5c33cf6b,0x2ed890b8,0xfcc15164, + 0x5117f75f,0x830e3683,0xf1e56950,0x23fca88c,0x1433d6f6,0xc62a172a,0xb4c148f9,0x66d88925, + 0xdb5fb40d,0x094675d1,0x7bad2a02,0xa9b4ebde,0x9e7b95a4,0x4c625478,0x3e890bab,0xec90ca77, + 0x61e55a6a,0xb3fc9bb6,0xc117c465,0x130e05b9,0x24c17bc3,0xf6d8ba1f,0x8433e5cc,0x562a2410, + 0xebad1938,0x39b4d8e4,0x4b5f8737,0x994646eb,0xae893891,0x7c90f94d,0x0e7ba69e,0xdc626742, + 0x71b4c179,0xa3ad00a5,0xd1465f76,0x035f9eaa,0x3490e0d0,0xe689210c,0x94627edf,0x467bbf03, + 0xfbfc822b,0x29e543f7,0x5b0e1c24,0x8917ddf8,0xbed8a382,0x6cc1625e,0x1e2a3d8d,0xcc33fc51, + 0x828cd898,0x50951944,0x227e4697,0xf067874b,0xc7a8f931,0x15b138ed,0x675a673e,0xb543a6e2, + 0x08c49bca,0xdadd5a16,0xa83605c5,0x7a2fc419,0x4de0ba63,0x9ff97bbf,0xed12246c,0x3f0be5b0, + 0x92dd438b,0x40c48257,0x322fdd84,0xe0361c58,0xd7f96222,0x05e0a3fe,0x770bfc2d,0xa5123df1, + 0x189500d9,0xca8cc105,0xb8679ed6,0x6a7e5f0a,0x5db12170,0x8fa8e0ac,0xfd43bf7f,0x2f5a7ea3, + 0xa22feebe,0x70362f62,0x02dd70b1,0xd0c4b16d,0xe70bcf17,0x35120ecb,0x47f95118,0x95e090c4, + 0x2867adec,0xfa7e6c30,0x889533e3,0x5a8cf23f,0x6d438c45,0xbf5a4d99,0xcdb1124a,0x1fa8d396, + 0xb27e75ad,0x6067b471,0x128ceba2,0xc0952a7e,0xf75a5404,0x254395d8,0x57a8ca0b,0x85b10bd7, + 0x383636ff,0xea2ff723,0x98c4a8f0,0x4add692c,0x7d121756,0xaf0bd68a,0xdde08959,0x0ff94885, + 0xc3cab4d4,0x11d37508,0x63382adb,0xb121eb07,0x86ee957d,0x54f754a1,0x261c0b72,0xf405caae, + 0x4982f786,0x9b9b365a,0xe9706989,0x3b69a855,0x0ca6d62f,0xdebf17f3,0xac544820,0x7e4d89fc, + 0xd39b2fc7,0x0182ee1b,0x7369b1c8,0xa1707014,0x96bf0e6e,0x44a6cfb2,0x364d9061,0xe45451bd, + 0x59d36c95,0x8bcaad49,0xf921f29a,0x2b383346,0x1cf74d3c,0xceee8ce0,0xbc05d333,0x6e1c12ef, + 0xe36982f2,0x3170432e,0x439b1cfd,0x9182dd21,0xa64da35b,0x74546287,0x06bf3d54,0xd4a6fc88, + 0x6921c1a0,0xbb38007c,0xc9d35faf,0x1bca9e73,0x2c05e009,0xfe1c21d5,0x8cf77e06,0x5eeebfda, + 0xf33819e1,0x2121d83d,0x53ca87ee,0x81d34632,0xb61c3848,0x6405f994,0x16eea647,0xc4f7679b, + 0x79705ab3,0xab699b6f,0xd982c4bc,0x0b9b0560,0x3c547b1a,0xee4dbac6,0x9ca6e515,0x4ebf24c9}, + +{0x00000000,0x01d8ac87,0x03b1590e,0x0269f589,0x0762b21c,0x06ba1e9b,0x04d3eb12,0x050b4795, + 0x0ec56438,0x0f1dc8bf,0x0d743d36,0x0cac91b1,0x09a7d624,0x087f7aa3,0x0a168f2a,0x0bce23ad, + 0x1d8ac870,0x1c5264f7,0x1e3b917e,0x1fe33df9,0x1ae87a6c,0x1b30d6eb,0x19592362,0x18818fe5, + 0x134fac48,0x129700cf,0x10fef546,0x112659c1,0x142d1e54,0x15f5b2d3,0x179c475a,0x1644ebdd, + 0x3b1590e0,0x3acd3c67,0x38a4c9ee,0x397c6569,0x3c7722fc,0x3daf8e7b,0x3fc67bf2,0x3e1ed775, + 0x35d0f4d8,0x3408585f,0x3661add6,0x37b90151,0x32b246c4,0x336aea43,0x31031fca,0x30dbb34d, + 0x269f5890,0x2747f417,0x252e019e,0x24f6ad19,0x21fdea8c,0x2025460b,0x224cb382,0x23941f05, + 0x285a3ca8,0x2982902f,0x2beb65a6,0x2a33c921,0x2f388eb4,0x2ee02233,0x2c89d7ba,0x2d517b3d, + 0x762b21c0,0x77f38d47,0x759a78ce,0x7442d449,0x714993dc,0x70913f5b,0x72f8cad2,0x73206655, + 0x78ee45f8,0x7936e97f,0x7b5f1cf6,0x7a87b071,0x7f8cf7e4,0x7e545b63,0x7c3daeea,0x7de5026d, + 0x6ba1e9b0,0x6a794537,0x6810b0be,0x69c81c39,0x6cc35bac,0x6d1bf72b,0x6f7202a2,0x6eaaae25, + 0x65648d88,0x64bc210f,0x66d5d486,0x670d7801,0x62063f94,0x63de9313,0x61b7669a,0x606fca1d, + 0x4d3eb120,0x4ce61da7,0x4e8fe82e,0x4f5744a9,0x4a5c033c,0x4b84afbb,0x49ed5a32,0x4835f6b5, + 0x43fbd518,0x4223799f,0x404a8c16,0x41922091,0x44996704,0x4541cb83,0x47283e0a,0x46f0928d, + 0x50b47950,0x516cd5d7,0x5305205e,0x52dd8cd9,0x57d6cb4c,0x560e67cb,0x54679242,0x55bf3ec5, + 0x5e711d68,0x5fa9b1ef,0x5dc04466,0x5c18e8e1,0x5913af74,0x58cb03f3,0x5aa2f67a,0x5b7a5afd, + 0xec564380,0xed8eef07,0xefe71a8e,0xee3fb609,0xeb34f19c,0xeaec5d1b,0xe885a892,0xe95d0415, + 0xe29327b8,0xe34b8b3f,0xe1227eb6,0xe0fad231,0xe5f195a4,0xe4293923,0xe640ccaa,0xe798602d, + 0xf1dc8bf0,0xf0042777,0xf26dd2fe,0xf3b57e79,0xf6be39ec,0xf766956b,0xf50f60e2,0xf4d7cc65, + 0xff19efc8,0xfec1434f,0xfca8b6c6,0xfd701a41,0xf87b5dd4,0xf9a3f153,0xfbca04da,0xfa12a85d, + 0xd743d360,0xd69b7fe7,0xd4f28a6e,0xd52a26e9,0xd021617c,0xd1f9cdfb,0xd3903872,0xd24894f5, + 0xd986b758,0xd85e1bdf,0xda37ee56,0xdbef42d1,0xdee40544,0xdf3ca9c3,0xdd555c4a,0xdc8df0cd, + 0xcac91b10,0xcb11b797,0xc978421e,0xc8a0ee99,0xcdaba90c,0xcc73058b,0xce1af002,0xcfc25c85, + 0xc40c7f28,0xc5d4d3af,0xc7bd2626,0xc6658aa1,0xc36ecd34,0xc2b661b3,0xc0df943a,0xc10738bd, + 0x9a7d6240,0x9ba5cec7,0x99cc3b4e,0x981497c9,0x9d1fd05c,0x9cc77cdb,0x9eae8952,0x9f7625d5, + 0x94b80678,0x9560aaff,0x97095f76,0x96d1f3f1,0x93dab464,0x920218e3,0x906bed6a,0x91b341ed, + 0x87f7aa30,0x862f06b7,0x8446f33e,0x859e5fb9,0x8095182c,0x814db4ab,0x83244122,0x82fceda5, + 0x8932ce08,0x88ea628f,0x8a839706,0x8b5b3b81,0x8e507c14,0x8f88d093,0x8de1251a,0x8c39899d, + 0xa168f2a0,0xa0b05e27,0xa2d9abae,0xa3010729,0xa60a40bc,0xa7d2ec3b,0xa5bb19b2,0xa463b535, + 0xafad9698,0xae753a1f,0xac1ccf96,0xadc46311,0xa8cf2484,0xa9178803,0xab7e7d8a,0xaaa6d10d, + 0xbce23ad0,0xbd3a9657,0xbf5363de,0xbe8bcf59,0xbb8088cc,0xba58244b,0xb831d1c2,0xb9e97d45, + 0xb2275ee8,0xb3fff26f,0xb19607e6,0xb04eab61,0xb545ecf4,0xb49d4073,0xb6f4b5fa,0xb72c197d}, + +{0x00000000,0xdc6d9ab7,0xbc1a28d9,0x6077b26e,0x7cf54c05,0xa098d6b2,0xc0ef64dc,0x1c82fe6b, + 0xf9ea980a,0x258702bd,0x45f0b0d3,0x999d2a64,0x851fd40f,0x59724eb8,0x3905fcd6,0xe5686661, + 0xf7142da3,0x2b79b714,0x4b0e057a,0x97639fcd,0x8be161a6,0x578cfb11,0x37fb497f,0xeb96d3c8, + 0x0efeb5a9,0xd2932f1e,0xb2e49d70,0x6e8907c7,0x720bf9ac,0xae66631b,0xce11d175,0x127c4bc2, + 0xeae946f1,0x3684dc46,0x56f36e28,0x8a9ef49f,0x961c0af4,0x4a719043,0x2a06222d,0xf66bb89a, + 0x1303defb,0xcf6e444c,0xaf19f622,0x73746c95,0x6ff692fe,0xb39b0849,0xd3ecba27,0x0f812090, + 0x1dfd6b52,0xc190f1e5,0xa1e7438b,0x7d8ad93c,0x61082757,0xbd65bde0,0xdd120f8e,0x017f9539, + 0xe417f358,0x387a69ef,0x580ddb81,0x84604136,0x98e2bf5d,0x448f25ea,0x24f89784,0xf8950d33, + 0xd1139055,0x0d7e0ae2,0x6d09b88c,0xb164223b,0xade6dc50,0x718b46e7,0x11fcf489,0xcd916e3e, + 0x28f9085f,0xf49492e8,0x94e32086,0x488eba31,0x540c445a,0x8861deed,0xe8166c83,0x347bf634, + 0x2607bdf6,0xfa6a2741,0x9a1d952f,0x46700f98,0x5af2f1f3,0x869f6b44,0xe6e8d92a,0x3a85439d, + 0xdfed25fc,0x0380bf4b,0x63f70d25,0xbf9a9792,0xa31869f9,0x7f75f34e,0x1f024120,0xc36fdb97, + 0x3bfad6a4,0xe7974c13,0x87e0fe7d,0x5b8d64ca,0x470f9aa1,0x9b620016,0xfb15b278,0x277828cf, + 0xc2104eae,0x1e7dd419,0x7e0a6677,0xa267fcc0,0xbee502ab,0x6288981c,0x02ff2a72,0xde92b0c5, + 0xcceefb07,0x108361b0,0x70f4d3de,0xac994969,0xb01bb702,0x6c762db5,0x0c019fdb,0xd06c056c, + 0x3504630d,0xe969f9ba,0x891e4bd4,0x5573d163,0x49f12f08,0x959cb5bf,0xf5eb07d1,0x29869d66, + 0xa6e63d1d,0x7a8ba7aa,0x1afc15c4,0xc6918f73,0xda137118,0x067eebaf,0x660959c1,0xba64c376, + 0x5f0ca517,0x83613fa0,0xe3168dce,0x3f7b1779,0x23f9e912,0xff9473a5,0x9fe3c1cb,0x438e5b7c, + 0x51f210be,0x8d9f8a09,0xede83867,0x3185a2d0,0x2d075cbb,0xf16ac60c,0x911d7462,0x4d70eed5, + 0xa81888b4,0x74751203,0x1402a06d,0xc86f3ada,0xd4edc4b1,0x08805e06,0x68f7ec68,0xb49a76df, + 0x4c0f7bec,0x9062e15b,0xf0155335,0x2c78c982,0x30fa37e9,0xec97ad5e,0x8ce01f30,0x508d8587, + 0xb5e5e3e6,0x69887951,0x09ffcb3f,0xd5925188,0xc910afe3,0x157d3554,0x750a873a,0xa9671d8d, + 0xbb1b564f,0x6776ccf8,0x07017e96,0xdb6ce421,0xc7ee1a4a,0x1b8380fd,0x7bf43293,0xa799a824, + 0x42f1ce45,0x9e9c54f2,0xfeebe69c,0x22867c2b,0x3e048240,0xe26918f7,0x821eaa99,0x5e73302e, + 0x77f5ad48,0xab9837ff,0xcbef8591,0x17821f26,0x0b00e14d,0xd76d7bfa,0xb71ac994,0x6b775323, + 0x8e1f3542,0x5272aff5,0x32051d9b,0xee68872c,0xf2ea7947,0x2e87e3f0,0x4ef0519e,0x929dcb29, + 0x80e180eb,0x5c8c1a5c,0x3cfba832,0xe0963285,0xfc14ccee,0x20795659,0x400ee437,0x9c637e80, + 0x790b18e1,0xa5668256,0xc5113038,0x197caa8f,0x05fe54e4,0xd993ce53,0xb9e47c3d,0x6589e68a, + 0x9d1cebb9,0x4171710e,0x2106c360,0xfd6b59d7,0xe1e9a7bc,0x3d843d0b,0x5df38f65,0x819e15d2, + 0x64f673b3,0xb89be904,0xd8ec5b6a,0x0481c1dd,0x18033fb6,0xc46ea501,0xa419176f,0x78748dd8, + 0x6a08c61a,0xb6655cad,0xd612eec3,0x0a7f7474,0x16fd8a1f,0xca9010a8,0xaae7a2c6,0x768a3871, + 0x93e25e10,0x4f8fc4a7,0x2ff876c9,0xf395ec7e,0xef171215,0x337a88a2,0x530d3acc,0x8f60a07b}, + +{0x00000000,0x490d678d,0x921acf1a,0xdb17a897,0x20f48383,0x69f9e40e,0xb2ee4c99,0xfbe32b14, + 0x41e90706,0x08e4608b,0xd3f3c81c,0x9afeaf91,0x611d8485,0x2810e308,0xf3074b9f,0xba0a2c12, + 0x83d20e0c,0xcadf6981,0x11c8c116,0x58c5a69b,0xa3268d8f,0xea2bea02,0x313c4295,0x78312518, + 0xc23b090a,0x8b366e87,0x5021c610,0x192ca19d,0xe2cf8a89,0xabc2ed04,0x70d54593,0x39d8221e, + 0x036501af,0x4a686622,0x917fceb5,0xd872a938,0x2391822c,0x6a9ce5a1,0xb18b4d36,0xf8862abb, + 0x428c06a9,0x0b816124,0xd096c9b3,0x999bae3e,0x6278852a,0x2b75e2a7,0xf0624a30,0xb96f2dbd, + 0x80b70fa3,0xc9ba682e,0x12adc0b9,0x5ba0a734,0xa0438c20,0xe94eebad,0x3259433a,0x7b5424b7, + 0xc15e08a5,0x88536f28,0x5344c7bf,0x1a49a032,0xe1aa8b26,0xa8a7ecab,0x73b0443c,0x3abd23b1, + 0x06ca035e,0x4fc764d3,0x94d0cc44,0xddddabc9,0x263e80dd,0x6f33e750,0xb4244fc7,0xfd29284a, + 0x47230458,0x0e2e63d5,0xd539cb42,0x9c34accf,0x67d787db,0x2edae056,0xf5cd48c1,0xbcc02f4c, + 0x85180d52,0xcc156adf,0x1702c248,0x5e0fa5c5,0xa5ec8ed1,0xece1e95c,0x37f641cb,0x7efb2646, + 0xc4f10a54,0x8dfc6dd9,0x56ebc54e,0x1fe6a2c3,0xe40589d7,0xad08ee5a,0x761f46cd,0x3f122140, + 0x05af02f1,0x4ca2657c,0x97b5cdeb,0xdeb8aa66,0x255b8172,0x6c56e6ff,0xb7414e68,0xfe4c29e5, + 0x444605f7,0x0d4b627a,0xd65ccaed,0x9f51ad60,0x64b28674,0x2dbfe1f9,0xf6a8496e,0xbfa52ee3, + 0x867d0cfd,0xcf706b70,0x1467c3e7,0x5d6aa46a,0xa6898f7e,0xef84e8f3,0x34934064,0x7d9e27e9, + 0xc7940bfb,0x8e996c76,0x558ec4e1,0x1c83a36c,0xe7608878,0xae6deff5,0x757a4762,0x3c7720ef, + 0x0d9406bc,0x44996131,0x9f8ec9a6,0xd683ae2b,0x2d60853f,0x646de2b2,0xbf7a4a25,0xf6772da8, + 0x4c7d01ba,0x05706637,0xde67cea0,0x976aa92d,0x6c898239,0x2584e5b4,0xfe934d23,0xb79e2aae, + 0x8e4608b0,0xc74b6f3d,0x1c5cc7aa,0x5551a027,0xaeb28b33,0xe7bfecbe,0x3ca84429,0x75a523a4, + 0xcfaf0fb6,0x86a2683b,0x5db5c0ac,0x14b8a721,0xef5b8c35,0xa656ebb8,0x7d41432f,0x344c24a2, + 0x0ef10713,0x47fc609e,0x9cebc809,0xd5e6af84,0x2e058490,0x6708e31d,0xbc1f4b8a,0xf5122c07, + 0x4f180015,0x06156798,0xdd02cf0f,0x940fa882,0x6fec8396,0x26e1e41b,0xfdf64c8c,0xb4fb2b01, + 0x8d23091f,0xc42e6e92,0x1f39c605,0x5634a188,0xadd78a9c,0xe4daed11,0x3fcd4586,0x76c0220b, + 0xccca0e19,0x85c76994,0x5ed0c103,0x17dda68e,0xec3e8d9a,0xa533ea17,0x7e244280,0x3729250d, + 0x0b5e05e2,0x4253626f,0x9944caf8,0xd049ad75,0x2baa8661,0x62a7e1ec,0xb9b0497b,0xf0bd2ef6, + 0x4ab702e4,0x03ba6569,0xd8adcdfe,0x91a0aa73,0x6a438167,0x234ee6ea,0xf8594e7d,0xb15429f0, + 0x888c0bee,0xc1816c63,0x1a96c4f4,0x539ba379,0xa878886d,0xe175efe0,0x3a624777,0x736f20fa, + 0xc9650ce8,0x80686b65,0x5b7fc3f2,0x1272a47f,0xe9918f6b,0xa09ce8e6,0x7b8b4071,0x328627fc, + 0x083b044d,0x413663c0,0x9a21cb57,0xd32cacda,0x28cf87ce,0x61c2e043,0xbad548d4,0xf3d82f59, + 0x49d2034b,0x00df64c6,0xdbc8cc51,0x92c5abdc,0x692680c8,0x202be745,0xfb3c4fd2,0xb231285f, + 0x8be90a41,0xc2e46dcc,0x19f3c55b,0x50fea2d6,0xab1d89c2,0xe210ee4f,0x390746d8,0x700a2155, + 0xca000d47,0x830d6aca,0x581ac25d,0x1117a5d0,0xeaf48ec4,0xa3f9e949,0x78ee41de,0x31e32653}, + +{0x00000000,0x1b280d78,0x36501af0,0x2d781788,0x6ca035e0,0x77883898,0x5af02f10,0x41d82268, + 0xd9406bc0,0xc26866b8,0xef107130,0xf4387c48,0xb5e05e20,0xaec85358,0x83b044d0,0x989849a8, + 0xb641ca37,0xad69c74f,0x8011d0c7,0x9b39ddbf,0xdae1ffd7,0xc1c9f2af,0xecb1e527,0xf799e85f, + 0x6f01a1f7,0x7429ac8f,0x5951bb07,0x4279b67f,0x03a19417,0x1889996f,0x35f18ee7,0x2ed9839f, + 0x684289d9,0x736a84a1,0x5e129329,0x453a9e51,0x04e2bc39,0x1fcab141,0x32b2a6c9,0x299aabb1, + 0xb102e219,0xaa2aef61,0x8752f8e9,0x9c7af591,0xdda2d7f9,0xc68ada81,0xebf2cd09,0xf0dac071, + 0xde0343ee,0xc52b4e96,0xe853591e,0xf37b5466,0xb2a3760e,0xa98b7b76,0x84f36cfe,0x9fdb6186, + 0x0743282e,0x1c6b2556,0x311332de,0x2a3b3fa6,0x6be31dce,0x70cb10b6,0x5db3073e,0x469b0a46, + 0xd08513b2,0xcbad1eca,0xe6d50942,0xfdfd043a,0xbc252652,0xa70d2b2a,0x8a753ca2,0x915d31da, + 0x09c57872,0x12ed750a,0x3f956282,0x24bd6ffa,0x65654d92,0x7e4d40ea,0x53355762,0x481d5a1a, + 0x66c4d985,0x7decd4fd,0x5094c375,0x4bbcce0d,0x0a64ec65,0x114ce11d,0x3c34f695,0x271cfbed, + 0xbf84b245,0xa4acbf3d,0x89d4a8b5,0x92fca5cd,0xd32487a5,0xc80c8add,0xe5749d55,0xfe5c902d, + 0xb8c79a6b,0xa3ef9713,0x8e97809b,0x95bf8de3,0xd467af8b,0xcf4fa2f3,0xe237b57b,0xf91fb803, + 0x6187f1ab,0x7aaffcd3,0x57d7eb5b,0x4cffe623,0x0d27c44b,0x160fc933,0x3b77debb,0x205fd3c3, + 0x0e86505c,0x15ae5d24,0x38d64aac,0x23fe47d4,0x622665bc,0x790e68c4,0x54767f4c,0x4f5e7234, + 0xd7c63b9c,0xccee36e4,0xe196216c,0xfabe2c14,0xbb660e7c,0xa04e0304,0x8d36148c,0x961e19f4, + 0xa5cb3ad3,0xbee337ab,0x939b2023,0x88b32d5b,0xc96b0f33,0xd243024b,0xff3b15c3,0xe41318bb, + 0x7c8b5113,0x67a35c6b,0x4adb4be3,0x51f3469b,0x102b64f3,0x0b03698b,0x267b7e03,0x3d53737b, + 0x138af0e4,0x08a2fd9c,0x25daea14,0x3ef2e76c,0x7f2ac504,0x6402c87c,0x497adff4,0x5252d28c, + 0xcaca9b24,0xd1e2965c,0xfc9a81d4,0xe7b28cac,0xa66aaec4,0xbd42a3bc,0x903ab434,0x8b12b94c, + 0xcd89b30a,0xd6a1be72,0xfbd9a9fa,0xe0f1a482,0xa12986ea,0xba018b92,0x97799c1a,0x8c519162, + 0x14c9d8ca,0x0fe1d5b2,0x2299c23a,0x39b1cf42,0x7869ed2a,0x6341e052,0x4e39f7da,0x5511faa2, + 0x7bc8793d,0x60e07445,0x4d9863cd,0x56b06eb5,0x17684cdd,0x0c4041a5,0x2138562d,0x3a105b55, + 0xa28812fd,0xb9a01f85,0x94d8080d,0x8ff00575,0xce28271d,0xd5002a65,0xf8783ded,0xe3503095, + 0x754e2961,0x6e662419,0x431e3391,0x58363ee9,0x19ee1c81,0x02c611f9,0x2fbe0671,0x34960b09, + 0xac0e42a1,0xb7264fd9,0x9a5e5851,0x81765529,0xc0ae7741,0xdb867a39,0xf6fe6db1,0xedd660c9, + 0xc30fe356,0xd827ee2e,0xf55ff9a6,0xee77f4de,0xafafd6b6,0xb487dbce,0x99ffcc46,0x82d7c13e, + 0x1a4f8896,0x016785ee,0x2c1f9266,0x37379f1e,0x76efbd76,0x6dc7b00e,0x40bfa786,0x5b97aafe, + 0x1d0ca0b8,0x0624adc0,0x2b5cba48,0x3074b730,0x71ac9558,0x6a849820,0x47fc8fa8,0x5cd482d0, + 0xc44ccb78,0xdf64c600,0xf21cd188,0xe934dcf0,0xa8ecfe98,0xb3c4f3e0,0x9ebce468,0x8594e910, + 0xab4d6a8f,0xb06567f7,0x9d1d707f,0x86357d07,0xc7ed5f6f,0xdcc55217,0xf1bd459f,0xea9548e7, + 0x720d014f,0x69250c37,0x445d1bbf,0x5f7516c7,0x1ead34af,0x058539d7,0x28fd2e5f,0x33d52327}, + +{0x00000000,0x4f576811,0x9eaed022,0xd1f9b833,0x399cbdf3,0x76cbd5e2,0xa7326dd1,0xe86505c0, + 0x73397be6,0x3c6e13f7,0xed97abc4,0xa2c0c3d5,0x4aa5c615,0x05f2ae04,0xd40b1637,0x9b5c7e26, + 0xe672f7cc,0xa9259fdd,0x78dc27ee,0x378b4fff,0xdfee4a3f,0x90b9222e,0x41409a1d,0x0e17f20c, + 0x954b8c2a,0xda1ce43b,0x0be55c08,0x44b23419,0xacd731d9,0xe38059c8,0x3279e1fb,0x7d2e89ea, + 0xc824f22f,0x87739a3e,0x568a220d,0x19dd4a1c,0xf1b84fdc,0xbeef27cd,0x6f169ffe,0x2041f7ef, + 0xbb1d89c9,0xf44ae1d8,0x25b359eb,0x6ae431fa,0x8281343a,0xcdd65c2b,0x1c2fe418,0x53788c09, + 0x2e5605e3,0x61016df2,0xb0f8d5c1,0xffafbdd0,0x17cab810,0x589dd001,0x89646832,0xc6330023, + 0x5d6f7e05,0x12381614,0xc3c1ae27,0x8c96c636,0x64f3c3f6,0x2ba4abe7,0xfa5d13d4,0xb50a7bc5, + 0x9488f9e9,0xdbdf91f8,0x0a2629cb,0x457141da,0xad14441a,0xe2432c0b,0x33ba9438,0x7cedfc29, + 0xe7b1820f,0xa8e6ea1e,0x791f522d,0x36483a3c,0xde2d3ffc,0x917a57ed,0x4083efde,0x0fd487cf, + 0x72fa0e25,0x3dad6634,0xec54de07,0xa303b616,0x4b66b3d6,0x0431dbc7,0xd5c863f4,0x9a9f0be5, + 0x01c375c3,0x4e941dd2,0x9f6da5e1,0xd03acdf0,0x385fc830,0x7708a021,0xa6f11812,0xe9a67003, + 0x5cac0bc6,0x13fb63d7,0xc202dbe4,0x8d55b3f5,0x6530b635,0x2a67de24,0xfb9e6617,0xb4c90e06, + 0x2f957020,0x60c21831,0xb13ba002,0xfe6cc813,0x1609cdd3,0x595ea5c2,0x88a71df1,0xc7f075e0, + 0xbadefc0a,0xf589941b,0x24702c28,0x6b274439,0x834241f9,0xcc1529e8,0x1dec91db,0x52bbf9ca, + 0xc9e787ec,0x86b0effd,0x574957ce,0x181e3fdf,0xf07b3a1f,0xbf2c520e,0x6ed5ea3d,0x2182822c, + 0x2dd0ee65,0x62878674,0xb37e3e47,0xfc295656,0x144c5396,0x5b1b3b87,0x8ae283b4,0xc5b5eba5, + 0x5ee99583,0x11befd92,0xc04745a1,0x8f102db0,0x67752870,0x28224061,0xf9dbf852,0xb68c9043, + 0xcba219a9,0x84f571b8,0x550cc98b,0x1a5ba19a,0xf23ea45a,0xbd69cc4b,0x6c907478,0x23c71c69, + 0xb89b624f,0xf7cc0a5e,0x2635b26d,0x6962da7c,0x8107dfbc,0xce50b7ad,0x1fa90f9e,0x50fe678f, + 0xe5f41c4a,0xaaa3745b,0x7b5acc68,0x340da479,0xdc68a1b9,0x933fc9a8,0x42c6719b,0x0d91198a, + 0x96cd67ac,0xd99a0fbd,0x0863b78e,0x4734df9f,0xaf51da5f,0xe006b24e,0x31ff0a7d,0x7ea8626c, + 0x0386eb86,0x4cd18397,0x9d283ba4,0xd27f53b5,0x3a1a5675,0x754d3e64,0xa4b48657,0xebe3ee46, + 0x70bf9060,0x3fe8f871,0xee114042,0xa1462853,0x49232d93,0x06744582,0xd78dfdb1,0x98da95a0, + 0xb958178c,0xf60f7f9d,0x27f6c7ae,0x68a1afbf,0x80c4aa7f,0xcf93c26e,0x1e6a7a5d,0x513d124c, + 0xca616c6a,0x8536047b,0x54cfbc48,0x1b98d459,0xf3fdd199,0xbcaab988,0x6d5301bb,0x220469aa, + 0x5f2ae040,0x107d8851,0xc1843062,0x8ed35873,0x66b65db3,0x29e135a2,0xf8188d91,0xb74fe580, + 0x2c139ba6,0x6344f3b7,0xb2bd4b84,0xfdea2395,0x158f2655,0x5ad84e44,0x8b21f677,0xc4769e66, + 0x717ce5a3,0x3e2b8db2,0xefd23581,0xa0855d90,0x48e05850,0x07b73041,0xd64e8872,0x9919e063, + 0x02459e45,0x4d12f654,0x9ceb4e67,0xd3bc2676,0x3bd923b6,0x748e4ba7,0xa577f394,0xea209b85, + 0x970e126f,0xd8597a7e,0x09a0c24d,0x46f7aa5c,0xae92af9c,0xe1c5c78d,0x303c7fbe,0x7f6b17af, + 0xe4376989,0xab600198,0x7a99b9ab,0x35ced1ba,0xddabd47a,0x92fcbc6b,0x43050458,0x0c526c49}, + +{0x00000000,0x5ba1dcca,0xb743b994,0xece2655e,0x6a466e9f,0x31e7b255,0xdd05d70b,0x86a40bc1, + 0xd48cdd3e,0x8f2d01f4,0x63cf64aa,0x386eb860,0xbecab3a1,0xe56b6f6b,0x09890a35,0x5228d6ff, + 0xadd8a7cb,0xf6797b01,0x1a9b1e5f,0x413ac295,0xc79ec954,0x9c3f159e,0x70dd70c0,0x2b7cac0a, + 0x79547af5,0x22f5a63f,0xce17c361,0x95b61fab,0x1312146a,0x48b3c8a0,0xa451adfe,0xfff07134, + 0x5f705221,0x04d18eeb,0xe833ebb5,0xb392377f,0x35363cbe,0x6e97e074,0x8275852a,0xd9d459e0, + 0x8bfc8f1f,0xd05d53d5,0x3cbf368b,0x671eea41,0xe1bae180,0xba1b3d4a,0x56f95814,0x0d5884de, + 0xf2a8f5ea,0xa9092920,0x45eb4c7e,0x1e4a90b4,0x98ee9b75,0xc34f47bf,0x2fad22e1,0x740cfe2b, + 0x262428d4,0x7d85f41e,0x91679140,0xcac64d8a,0x4c62464b,0x17c39a81,0xfb21ffdf,0xa0802315, + 0xbee0a442,0xe5417888,0x09a31dd6,0x5202c11c,0xd4a6cadd,0x8f071617,0x63e57349,0x3844af83, + 0x6a6c797c,0x31cda5b6,0xdd2fc0e8,0x868e1c22,0x002a17e3,0x5b8bcb29,0xb769ae77,0xecc872bd, + 0x13380389,0x4899df43,0xa47bba1d,0xffda66d7,0x797e6d16,0x22dfb1dc,0xce3dd482,0x959c0848, + 0xc7b4deb7,0x9c15027d,0x70f76723,0x2b56bbe9,0xadf2b028,0xf6536ce2,0x1ab109bc,0x4110d576, + 0xe190f663,0xba312aa9,0x56d34ff7,0x0d72933d,0x8bd698fc,0xd0774436,0x3c952168,0x6734fda2, + 0x351c2b5d,0x6ebdf797,0x825f92c9,0xd9fe4e03,0x5f5a45c2,0x04fb9908,0xe819fc56,0xb3b8209c, + 0x4c4851a8,0x17e98d62,0xfb0be83c,0xa0aa34f6,0x260e3f37,0x7dafe3fd,0x914d86a3,0xcaec5a69, + 0x98c48c96,0xc365505c,0x2f873502,0x7426e9c8,0xf282e209,0xa9233ec3,0x45c15b9d,0x1e608757, + 0x79005533,0x22a189f9,0xce43eca7,0x95e2306d,0x13463bac,0x48e7e766,0xa4058238,0xffa45ef2, + 0xad8c880d,0xf62d54c7,0x1acf3199,0x416eed53,0xc7cae692,0x9c6b3a58,0x70895f06,0x2b2883cc, + 0xd4d8f2f8,0x8f792e32,0x639b4b6c,0x383a97a6,0xbe9e9c67,0xe53f40ad,0x09dd25f3,0x527cf939, + 0x00542fc6,0x5bf5f30c,0xb7179652,0xecb64a98,0x6a124159,0x31b39d93,0xdd51f8cd,0x86f02407, + 0x26700712,0x7dd1dbd8,0x9133be86,0xca92624c,0x4c36698d,0x1797b547,0xfb75d019,0xa0d40cd3, + 0xf2fcda2c,0xa95d06e6,0x45bf63b8,0x1e1ebf72,0x98bab4b3,0xc31b6879,0x2ff90d27,0x7458d1ed, + 0x8ba8a0d9,0xd0097c13,0x3ceb194d,0x674ac587,0xe1eece46,0xba4f128c,0x56ad77d2,0x0d0cab18, + 0x5f247de7,0x0485a12d,0xe867c473,0xb3c618b9,0x35621378,0x6ec3cfb2,0x8221aaec,0xd9807626, + 0xc7e0f171,0x9c412dbb,0x70a348e5,0x2b02942f,0xada69fee,0xf6074324,0x1ae5267a,0x4144fab0, + 0x136c2c4f,0x48cdf085,0xa42f95db,0xff8e4911,0x792a42d0,0x228b9e1a,0xce69fb44,0x95c8278e, + 0x6a3856ba,0x31998a70,0xdd7bef2e,0x86da33e4,0x007e3825,0x5bdfe4ef,0xb73d81b1,0xec9c5d7b, + 0xbeb48b84,0xe515574e,0x09f73210,0x5256eeda,0xd4f2e51b,0x8f5339d1,0x63b15c8f,0x38108045, + 0x9890a350,0xc3317f9a,0x2fd31ac4,0x7472c60e,0xf2d6cdcf,0xa9771105,0x4595745b,0x1e34a891, + 0x4c1c7e6e,0x17bda2a4,0xfb5fc7fa,0xa0fe1b30,0x265a10f1,0x7dfbcc3b,0x9119a965,0xcab875af, + 0x3548049b,0x6ee9d851,0x820bbd0f,0xd9aa61c5,0x5f0e6a04,0x04afb6ce,0xe84dd390,0xb3ec0f5a, + 0xe1c4d9a5,0xba65056f,0x56876031,0x0d26bcfb,0x8b82b73a,0xd0236bf0,0x3cc10eae,0x6760d264}}; diff --git a/thirdparty/libogg/framing.c b/thirdparty/libogg/framing.c index 79fc715c8c..83601199ad 100644 --- a/thirdparty/libogg/framing.c +++ b/thirdparty/libogg/framing.c @@ -5,14 +5,13 @@ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2010 * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2018 * * by the Xiph.Org Foundation http://www.xiph.org/ * * * ******************************************************************** function: code raw packets into framed OggSquish stream and decode Ogg streams back into raw packets - last mod: $Id$ note: The CRC code is directly derived from public domain code by Ross Williams (ross@guest.adelaide.edu.au). See docs/framing.html @@ -20,6 +19,10 @@ ********************************************************************/ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include <stdlib.h> #include <limits.h> #include <string.h> @@ -45,7 +48,7 @@ int ogg_page_eos(const ogg_page *og){ ogg_int64_t ogg_page_granulepos(const ogg_page *og){ unsigned char *page=og->header; - ogg_int64_t granulepos=page[13]&(0xff); + ogg_uint64_t granulepos=page[13]&(0xff); granulepos= (granulepos<<8)|(page[12]&0xff); granulepos= (granulepos<<8)|(page[11]&0xff); granulepos= (granulepos<<8)|(page[10]&0xff); @@ -53,21 +56,21 @@ ogg_int64_t ogg_page_granulepos(const ogg_page *og){ granulepos= (granulepos<<8)|(page[8]&0xff); granulepos= (granulepos<<8)|(page[7]&0xff); granulepos= (granulepos<<8)|(page[6]&0xff); - return(granulepos); + return((ogg_int64_t)granulepos); } int ogg_page_serialno(const ogg_page *og){ - return(og->header[14] | - (og->header[15]<<8) | - (og->header[16]<<16) | - (og->header[17]<<24)); + return((int)((ogg_uint32_t)og->header[14]) | + ((ogg_uint32_t)og->header[15]<<8) | + ((ogg_uint32_t)og->header[16]<<16) | + ((ogg_uint32_t)og->header[17]<<24)); } long ogg_page_pageno(const ogg_page *og){ - return(og->header[18] | - (og->header[19]<<8) | - (og->header[20]<<16) | - (og->header[21]<<24)); + return((long)((ogg_uint32_t)og->header[18]) | + ((ogg_uint32_t)og->header[19]<<8) | + ((ogg_uint32_t)og->header[20]<<16) | + ((ogg_uint32_t)og->header[21]<<24)); } @@ -99,90 +102,31 @@ int ogg_page_packets(const ogg_page *og){ #if 0 /* helper to initialize lookup for direct-table CRC (illustrative; we - use the static init below) */ - -static ogg_uint32_t _ogg_crc_entry(unsigned long index){ - int i; - unsigned long r; - - r = index << 24; - for (i=0; i<8; i++) - if (r & 0x80000000UL) - r = (r << 1) ^ 0x04c11db7; /* The same as the ethernet generator - polynomial, although we use an - unreflected alg and an init/final - of 0, not 0xffffffff */ - else - r<<=1; - return (r & 0xffffffffUL); + use the static init in crctable.h) */ + +static void _ogg_crc_init(){ + int i, j; + ogg_uint32_t polynomial, crc; + polynomial = 0x04c11db7; /* The same as the ethernet generator + polynomial, although we use an + unreflected alg and an init/final + of 0, not 0xffffffff */ + for (i = 0; i <= 0xFF; i++){ + crc = i << 24; + + for (j = 0; j < 8; j++) + crc = (crc << 1) ^ (crc & (1 << 31) ? polynomial : 0); + + crc_lookup[0][i] = crc; + } + + for (i = 0; i <= 0xFF; i++) + for (j = 1; j < 8; j++) + crc_lookup[j][i] = crc_lookup[0][(crc_lookup[j - 1][i] >> 24) & 0xFF] ^ (crc_lookup[j - 1][i] << 8); } #endif -static const ogg_uint32_t crc_lookup[256]={ - 0x00000000,0x04c11db7,0x09823b6e,0x0d4326d9, - 0x130476dc,0x17c56b6b,0x1a864db2,0x1e475005, - 0x2608edb8,0x22c9f00f,0x2f8ad6d6,0x2b4bcb61, - 0x350c9b64,0x31cd86d3,0x3c8ea00a,0x384fbdbd, - 0x4c11db70,0x48d0c6c7,0x4593e01e,0x4152fda9, - 0x5f15adac,0x5bd4b01b,0x569796c2,0x52568b75, - 0x6a1936c8,0x6ed82b7f,0x639b0da6,0x675a1011, - 0x791d4014,0x7ddc5da3,0x709f7b7a,0x745e66cd, - 0x9823b6e0,0x9ce2ab57,0x91a18d8e,0x95609039, - 0x8b27c03c,0x8fe6dd8b,0x82a5fb52,0x8664e6e5, - 0xbe2b5b58,0xbaea46ef,0xb7a96036,0xb3687d81, - 0xad2f2d84,0xa9ee3033,0xa4ad16ea,0xa06c0b5d, - 0xd4326d90,0xd0f37027,0xddb056fe,0xd9714b49, - 0xc7361b4c,0xc3f706fb,0xceb42022,0xca753d95, - 0xf23a8028,0xf6fb9d9f,0xfbb8bb46,0xff79a6f1, - 0xe13ef6f4,0xe5ffeb43,0xe8bccd9a,0xec7dd02d, - 0x34867077,0x30476dc0,0x3d044b19,0x39c556ae, - 0x278206ab,0x23431b1c,0x2e003dc5,0x2ac12072, - 0x128e9dcf,0x164f8078,0x1b0ca6a1,0x1fcdbb16, - 0x018aeb13,0x054bf6a4,0x0808d07d,0x0cc9cdca, - 0x7897ab07,0x7c56b6b0,0x71159069,0x75d48dde, - 0x6b93dddb,0x6f52c06c,0x6211e6b5,0x66d0fb02, - 0x5e9f46bf,0x5a5e5b08,0x571d7dd1,0x53dc6066, - 0x4d9b3063,0x495a2dd4,0x44190b0d,0x40d816ba, - 0xaca5c697,0xa864db20,0xa527fdf9,0xa1e6e04e, - 0xbfa1b04b,0xbb60adfc,0xb6238b25,0xb2e29692, - 0x8aad2b2f,0x8e6c3698,0x832f1041,0x87ee0df6, - 0x99a95df3,0x9d684044,0x902b669d,0x94ea7b2a, - 0xe0b41de7,0xe4750050,0xe9362689,0xedf73b3e, - 0xf3b06b3b,0xf771768c,0xfa325055,0xfef34de2, - 0xc6bcf05f,0xc27dede8,0xcf3ecb31,0xcbffd686, - 0xd5b88683,0xd1799b34,0xdc3abded,0xd8fba05a, - 0x690ce0ee,0x6dcdfd59,0x608edb80,0x644fc637, - 0x7a089632,0x7ec98b85,0x738aad5c,0x774bb0eb, - 0x4f040d56,0x4bc510e1,0x46863638,0x42472b8f, - 0x5c007b8a,0x58c1663d,0x558240e4,0x51435d53, - 0x251d3b9e,0x21dc2629,0x2c9f00f0,0x285e1d47, - 0x36194d42,0x32d850f5,0x3f9b762c,0x3b5a6b9b, - 0x0315d626,0x07d4cb91,0x0a97ed48,0x0e56f0ff, - 0x1011a0fa,0x14d0bd4d,0x19939b94,0x1d528623, - 0xf12f560e,0xf5ee4bb9,0xf8ad6d60,0xfc6c70d7, - 0xe22b20d2,0xe6ea3d65,0xeba91bbc,0xef68060b, - 0xd727bbb6,0xd3e6a601,0xdea580d8,0xda649d6f, - 0xc423cd6a,0xc0e2d0dd,0xcda1f604,0xc960ebb3, - 0xbd3e8d7e,0xb9ff90c9,0xb4bcb610,0xb07daba7, - 0xae3afba2,0xaafbe615,0xa7b8c0cc,0xa379dd7b, - 0x9b3660c6,0x9ff77d71,0x92b45ba8,0x9675461f, - 0x8832161a,0x8cf30bad,0x81b02d74,0x857130c3, - 0x5d8a9099,0x594b8d2e,0x5408abf7,0x50c9b640, - 0x4e8ee645,0x4a4ffbf2,0x470cdd2b,0x43cdc09c, - 0x7b827d21,0x7f436096,0x7200464f,0x76c15bf8, - 0x68860bfd,0x6c47164a,0x61043093,0x65c52d24, - 0x119b4be9,0x155a565e,0x18197087,0x1cd86d30, - 0x029f3d35,0x065e2082,0x0b1d065b,0x0fdc1bec, - 0x3793a651,0x3352bbe6,0x3e119d3f,0x3ad08088, - 0x2497d08d,0x2056cd3a,0x2d15ebe3,0x29d4f654, - 0xc5a92679,0xc1683bce,0xcc2b1d17,0xc8ea00a0, - 0xd6ad50a5,0xd26c4d12,0xdf2f6bcb,0xdbee767c, - 0xe3a1cbc1,0xe760d676,0xea23f0af,0xeee2ed18, - 0xf0a5bd1d,0xf464a0aa,0xf9278673,0xfde69bc4, - 0x89b8fd09,0x8d79e0be,0x803ac667,0x84fbdbd0, - 0x9abc8bd5,0x9e7d9662,0x933eb0bb,0x97ffad0c, - 0xafb010b1,0xab710d06,0xa6322bdf,0xa2f33668, - 0xbcb4666d,0xb8757bda,0xb5365d03,0xb1f740b4}; +#include "crctable.h" /* init the encode/decode logical stream state */ @@ -290,10 +234,27 @@ static int _os_lacing_expand(ogg_stream_state *os,long needed){ /* Direct table CRC; note that this will be faster in the future if we perform the checksum simultaneously with other copies */ +static ogg_uint32_t _os_update_crc(ogg_uint32_t crc, unsigned char *buffer, int size){ + while (size>=8){ + crc^=((ogg_uint32_t)buffer[0]<<24)|((ogg_uint32_t)buffer[1]<<16)|((ogg_uint32_t)buffer[2]<<8)|((ogg_uint32_t)buffer[3]); + + crc=crc_lookup[7][ crc>>24 ]^crc_lookup[6][(crc>>16)&0xFF]^ + crc_lookup[5][(crc>> 8)&0xFF]^crc_lookup[4][ crc &0xFF]^ + crc_lookup[3][buffer[4] ]^crc_lookup[2][buffer[5] ]^ + crc_lookup[1][buffer[6] ]^crc_lookup[0][buffer[7] ]; + + buffer+=8; + size-=8; + } + + while (size--) + crc=(crc<<8)^crc_lookup[0][((crc >> 24)&0xff)^*buffer++]; + return crc; +} + void ogg_page_checksum_set(ogg_page *og){ if(og){ ogg_uint32_t crc_reg=0; - int i; /* safety; needed for API behavior, but not framing code */ og->header[22]=0; @@ -301,10 +262,8 @@ void ogg_page_checksum_set(ogg_page *og){ og->header[24]=0; og->header[25]=0; - for(i=0;i<og->header_len;i++) - crc_reg=(crc_reg<<8)^crc_lookup[((crc_reg >> 24)&0xff)^og->header[i]]; - for(i=0;i<og->body_len;i++) - crc_reg=(crc_reg<<8)^crc_lookup[((crc_reg >> 24)&0xff)^og->body[i]]; + crc_reg=_os_update_crc(crc_reg,og->header,og->header_len); + crc_reg=_os_update_crc(crc_reg,og->body,og->body_len); og->header[22]=(unsigned char)(crc_reg&0xff); og->header[23]=(unsigned char)((crc_reg>>8)&0xff); @@ -414,9 +373,9 @@ static int ogg_stream_flush_i(ogg_stream_state *os,ogg_page *og, int force, int }else{ /* The extra packets_done, packet_just_done logic here attempts to do two things: - 1) Don't unneccessarily span pages. + 1) Don't unnecessarily span pages. 2) Unless necessary, don't flush pages if there are less than four packets on - them; this expands page size to reduce unneccessary overhead if incoming packets + them; this expands page size to reduce unnecessary overhead if incoming packets are large. These are not necessary behaviors, just 'always better than naive flushing' without requiring an application to explicitly request a specific optimized @@ -723,16 +682,15 @@ long ogg_sync_pageseek(ogg_sync_state *oy,ogg_page *og){ /* replace the computed checksum with the one actually read in */ memcpy(page+22,chksum,4); +#ifndef DISABLE_CRC /* Bad checksum. Lose sync */ goto sync_fail; +#endif } } /* yes, have a whole page all ready to go */ { - unsigned char *page=oy->data+oy->returned; - long bytes; - if(og){ og->header=page; og->header_len=oy->headerbytes; @@ -1814,6 +1772,7 @@ int main(void){ test_pack(packets,headret,0,0,0); } +#ifndef DISABLE_CRC { /* test for the libogg 1.1.1 resync in large continuation bug found by Josh Coalson) */ @@ -1823,6 +1782,9 @@ int main(void){ fprintf(stderr,"testing continuation resync in very large packets... "); test_pack(packets,headret,100,2,3); } +#else + fprintf(stderr,"Skipping continuation resync test due to --disable-crc\n"); +#endif { /* term only page. why not? */ @@ -2084,6 +2046,7 @@ int main(void){ fprintf(stderr,"ok.\n"); } +#ifndef DISABLE_CRC /* Test recapture: page + garbage + page */ { ogg_page og_de; @@ -2125,6 +2088,9 @@ int main(void){ fprintf(stderr,"ok.\n"); } +#else + fprintf(stderr,"Skipping recapture test due to --disable-crc\n"); +#endif /* Free page data that was previously copied */ { @@ -2133,6 +2099,9 @@ int main(void){ } } } + ogg_sync_clear(&oy); + ogg_stream_clear(&os_en); + ogg_stream_clear(&os_de); return(0); } diff --git a/thirdparty/libogg/ogg/config_types.h b/thirdparty/libogg/ogg/config_types.h index e630657547..3574a8ad44 100644 --- a/thirdparty/libogg/ogg/config_types.h +++ b/thirdparty/libogg/ogg/config_types.h @@ -8,5 +8,6 @@ typedef uint16_t ogg_uint16_t; typedef int32_t ogg_int32_t; typedef uint32_t ogg_uint32_t; typedef int64_t ogg_int64_t; +typedef uint64_t ogg_uint64_t; #endif diff --git a/thirdparty/libogg/ogg/ogg.h b/thirdparty/libogg/ogg/ogg.h index 7609fc24d6..c4325aa76d 100644 --- a/thirdparty/libogg/ogg/ogg.h +++ b/thirdparty/libogg/ogg/ogg.h @@ -11,7 +11,6 @@ ******************************************************************** function: toplevel libogg include - last mod: $Id$ ********************************************************************/ #ifndef _OGG_H diff --git a/thirdparty/libogg/ogg/os_types.h b/thirdparty/libogg/ogg/os_types.h index b8f56308b5..e655a1d628 100644 --- a/thirdparty/libogg/ogg/os_types.h +++ b/thirdparty/libogg/ogg/os_types.h @@ -10,8 +10,7 @@ * * ******************************************************************** - function: #ifdef jail to whip a few platforms into the UNIX ideal. - last mod: $Id$ + function: Define a consistent set of types on each platform. ********************************************************************/ #ifndef _OS_TYPES_H @@ -44,6 +43,7 @@ typedef unsigned long long ogg_uint64_t; # elif defined(__MWERKS__) typedef long long ogg_int64_t; + typedef unsigned long long ogg_uint64_t; typedef int ogg_int32_t; typedef unsigned int ogg_uint32_t; typedef short ogg_int16_t; @@ -62,6 +62,7 @@ typedef __int64 ogg_int64_t; typedef __int32 ogg_int32_t; typedef unsigned __int32 ogg_uint32_t; + typedef unsigned __int64 ogg_uint64_t; typedef __int16 ogg_int16_t; typedef unsigned __int16 ogg_uint16_t; # endif @@ -69,12 +70,13 @@ #elif (defined(__APPLE__) && defined(__MACH__)) /* MacOS X Framework build */ -# include <inttypes.h> +# include <sys/types.h> typedef int16_t ogg_int16_t; - typedef uint16_t ogg_uint16_t; + typedef u_int16_t ogg_uint16_t; typedef int32_t ogg_int32_t; - typedef uint32_t ogg_uint32_t; + typedef u_int32_t ogg_uint32_t; typedef int64_t ogg_int64_t; + typedef u_int64_t ogg_uint64_t; #elif defined(__HAIKU__) @@ -85,6 +87,7 @@ typedef int ogg_int32_t; typedef unsigned int ogg_uint32_t; typedef long long ogg_int64_t; + typedef unsigned long long ogg_uint64_t; #elif defined(__BEOS__) @@ -95,6 +98,7 @@ typedef int32_t ogg_int32_t; typedef uint32_t ogg_uint32_t; typedef int64_t ogg_int64_t; + typedef uint64_t ogg_uint64_t; #elif defined (__EMX__) @@ -104,6 +108,8 @@ typedef int ogg_int32_t; typedef unsigned int ogg_uint32_t; typedef long long ogg_int64_t; + typedef unsigned long long ogg_uint64_t; + #elif defined (DJGPP) @@ -112,11 +118,13 @@ typedef int ogg_int32_t; typedef unsigned int ogg_uint32_t; typedef long long ogg_int64_t; + typedef unsigned long long ogg_uint64_t; #elif defined(R5900) /* PS2 EE */ typedef long ogg_int64_t; + typedef unsigned long ogg_uint64_t; typedef int ogg_int32_t; typedef unsigned ogg_uint32_t; typedef short ogg_int16_t; @@ -129,6 +137,7 @@ typedef signed int ogg_int32_t; typedef unsigned int ogg_uint32_t; typedef long long int ogg_int64_t; + typedef unsigned long long int ogg_uint64_t; #elif defined(__TMS320C6X__) @@ -138,6 +147,7 @@ typedef signed int ogg_int32_t; typedef unsigned int ogg_uint32_t; typedef long long int ogg_int64_t; + typedef unsigned long long int ogg_uint64_t; #else diff --git a/thirdparty/libwebp/src/dec/quant_dec.c b/thirdparty/libwebp/src/dec/quant_dec.c index f07212ad73..a0ac018b0f 100644 --- a/thirdparty/libwebp/src/dec/quant_dec.c +++ b/thirdparty/libwebp/src/dec/quant_dec.c @@ -61,12 +61,17 @@ static const uint16_t kAcTable[128] = { void VP8ParseQuant(VP8Decoder* const dec) { VP8BitReader* const br = &dec->br_; - const int base_q0 = VP8GetValue(br, 7); - const int dqy1_dc = VP8Get(br) ? VP8GetSignedValue(br, 4) : 0; - const int dqy2_dc = VP8Get(br) ? VP8GetSignedValue(br, 4) : 0; - const int dqy2_ac = VP8Get(br) ? VP8GetSignedValue(br, 4) : 0; - const int dquv_dc = VP8Get(br) ? VP8GetSignedValue(br, 4) : 0; - const int dquv_ac = VP8Get(br) ? VP8GetSignedValue(br, 4) : 0; + const int base_q0 = VP8GetValue(br, 7, "global-header"); + const int dqy1_dc = VP8Get(br, "global-header") ? + VP8GetSignedValue(br, 4, "global-header") : 0; + const int dqy2_dc = VP8Get(br, "global-header") ? + VP8GetSignedValue(br, 4, "global-header") : 0; + const int dqy2_ac = VP8Get(br, "global-header") ? + VP8GetSignedValue(br, 4, "global-header") : 0; + const int dquv_dc = VP8Get(br, "global-header") ? + VP8GetSignedValue(br, 4, "global-header") : 0; + const int dquv_ac = VP8Get(br, "global-header") ? + VP8GetSignedValue(br, 4, "global-header") : 0; const VP8SegmentHeader* const hdr = &dec->segment_hdr_; int i; diff --git a/thirdparty/libwebp/src/dec/tree_dec.c b/thirdparty/libwebp/src/dec/tree_dec.c index 3f5a957d32..1c6fdea27c 100644 --- a/thirdparty/libwebp/src/dec/tree_dec.c +++ b/thirdparty/libwebp/src/dec/tree_dec.c @@ -296,20 +296,21 @@ static void ParseIntraMode(VP8BitReader* const br, // to decode more than 1 keyframe. if (dec->segment_hdr_.update_map_) { // Hardcoded tree parsing - block->segment_ = !VP8GetBit(br, dec->proba_.segments_[0]) - ? VP8GetBit(br, dec->proba_.segments_[1]) - : 2 + VP8GetBit(br, dec->proba_.segments_[2]); + block->segment_ = !VP8GetBit(br, dec->proba_.segments_[0], "segments") + ? VP8GetBit(br, dec->proba_.segments_[1], "segments") + : VP8GetBit(br, dec->proba_.segments_[2], "segments") + 2; } else { block->segment_ = 0; // default for intra } - if (dec->use_skip_proba_) block->skip_ = VP8GetBit(br, dec->skip_p_); + if (dec->use_skip_proba_) block->skip_ = VP8GetBit(br, dec->skip_p_, "skip"); - block->is_i4x4_ = !VP8GetBit(br, 145); // decide for B_PRED first + block->is_i4x4_ = !VP8GetBit(br, 145, "block-size"); if (!block->is_i4x4_) { // Hardcoded 16x16 intra-mode decision tree. const int ymode = - VP8GetBit(br, 156) ? (VP8GetBit(br, 128) ? TM_PRED : H_PRED) - : (VP8GetBit(br, 163) ? V_PRED : DC_PRED); + VP8GetBit(br, 156, "pred-modes") ? + (VP8GetBit(br, 128, "pred-modes") ? TM_PRED : H_PRED) : + (VP8GetBit(br, 163, "pred-modes") ? V_PRED : DC_PRED); block->imodes_[0] = ymode; memset(top, ymode, 4 * sizeof(*top)); memset(left, ymode, 4 * sizeof(*left)); @@ -323,22 +324,25 @@ static void ParseIntraMode(VP8BitReader* const br, const uint8_t* const prob = kBModesProba[top[x]][ymode]; #if (USE_GENERIC_TREE == 1) // Generic tree-parsing - int i = kYModesIntra4[VP8GetBit(br, prob[0])]; + int i = kYModesIntra4[VP8GetBit(br, prob[0], "pred-modes")]; while (i > 0) { - i = kYModesIntra4[2 * i + VP8GetBit(br, prob[i])]; + i = kYModesIntra4[2 * i + VP8GetBit(br, prob[i], "pred-modes")]; } ymode = -i; #else // Hardcoded tree parsing - ymode = !VP8GetBit(br, prob[0]) ? B_DC_PRED : - !VP8GetBit(br, prob[1]) ? B_TM_PRED : - !VP8GetBit(br, prob[2]) ? B_VE_PRED : - !VP8GetBit(br, prob[3]) ? - (!VP8GetBit(br, prob[4]) ? B_HE_PRED : - (!VP8GetBit(br, prob[5]) ? B_RD_PRED : B_VR_PRED)) : - (!VP8GetBit(br, prob[6]) ? B_LD_PRED : - (!VP8GetBit(br, prob[7]) ? B_VL_PRED : - (!VP8GetBit(br, prob[8]) ? B_HD_PRED : B_HU_PRED))); + ymode = !VP8GetBit(br, prob[0], "pred-modes") ? B_DC_PRED : + !VP8GetBit(br, prob[1], "pred-modes") ? B_TM_PRED : + !VP8GetBit(br, prob[2], "pred-modes") ? B_VE_PRED : + !VP8GetBit(br, prob[3], "pred-modes") ? + (!VP8GetBit(br, prob[4], "pred-modes") ? B_HE_PRED : + (!VP8GetBit(br, prob[5], "pred-modes") ? B_RD_PRED + : B_VR_PRED)) : + (!VP8GetBit(br, prob[6], "pred-modes") ? B_LD_PRED : + (!VP8GetBit(br, prob[7], "pred-modes") ? B_VL_PRED : + (!VP8GetBit(br, prob[8], "pred-modes") ? B_HD_PRED + : B_HU_PRED)) + ); #endif // USE_GENERIC_TREE top[x] = ymode; } @@ -348,9 +352,9 @@ static void ParseIntraMode(VP8BitReader* const br, } } // Hardcoded UVMode decision tree - block->uvmode_ = !VP8GetBit(br, 142) ? DC_PRED - : !VP8GetBit(br, 114) ? V_PRED - : VP8GetBit(br, 183) ? TM_PRED : H_PRED; + block->uvmode_ = !VP8GetBit(br, 142, "pred-modes-uv") ? DC_PRED + : !VP8GetBit(br, 114, "pred-modes-uv") ? V_PRED + : VP8GetBit(br, 183, "pred-modes-uv") ? TM_PRED : H_PRED; } int VP8ParseIntraModeRow(VP8BitReader* const br, VP8Decoder* const dec) { @@ -514,8 +518,10 @@ void VP8ParseProba(VP8BitReader* const br, VP8Decoder* const dec) { for (b = 0; b < NUM_BANDS; ++b) { for (c = 0; c < NUM_CTX; ++c) { for (p = 0; p < NUM_PROBAS; ++p) { - const int v = VP8GetBit(br, CoeffsUpdateProba[t][b][c][p]) ? - VP8GetValue(br, 8) : CoeffsProba0[t][b][c][p]; + const int v = + VP8GetBit(br, CoeffsUpdateProba[t][b][c][p], "global-header") ? + VP8GetValue(br, 8, "global-header") : + CoeffsProba0[t][b][c][p]; proba->bands_[t][b].probas_[c][p] = v; } } @@ -524,9 +530,8 @@ void VP8ParseProba(VP8BitReader* const br, VP8Decoder* const dec) { proba->bands_ptr_[t][b] = &proba->bands_[t][kBands[b]]; } } - dec->use_skip_proba_ = VP8Get(br); + dec->use_skip_proba_ = VP8Get(br, "global-header"); if (dec->use_skip_proba_) { - dec->skip_p_ = VP8GetValue(br, 8); + dec->skip_p_ = VP8GetValue(br, 8, "global-header"); } } - diff --git a/thirdparty/libwebp/src/dec/vp8_dec.c b/thirdparty/libwebp/src/dec/vp8_dec.c index c904b529f6..57efb69041 100644 --- a/thirdparty/libwebp/src/dec/vp8_dec.c +++ b/thirdparty/libwebp/src/dec/vp8_dec.c @@ -161,23 +161,26 @@ static int ParseSegmentHeader(VP8BitReader* br, VP8SegmentHeader* hdr, VP8Proba* proba) { assert(br != NULL); assert(hdr != NULL); - hdr->use_segment_ = VP8Get(br); + hdr->use_segment_ = VP8Get(br, "global-header"); if (hdr->use_segment_) { - hdr->update_map_ = VP8Get(br); - if (VP8Get(br)) { // update data + hdr->update_map_ = VP8Get(br, "global-header"); + if (VP8Get(br, "global-header")) { // update data int s; - hdr->absolute_delta_ = VP8Get(br); + hdr->absolute_delta_ = VP8Get(br, "global-header"); for (s = 0; s < NUM_MB_SEGMENTS; ++s) { - hdr->quantizer_[s] = VP8Get(br) ? VP8GetSignedValue(br, 7) : 0; + hdr->quantizer_[s] = VP8Get(br, "global-header") ? + VP8GetSignedValue(br, 7, "global-header") : 0; } for (s = 0; s < NUM_MB_SEGMENTS; ++s) { - hdr->filter_strength_[s] = VP8Get(br) ? VP8GetSignedValue(br, 6) : 0; + hdr->filter_strength_[s] = VP8Get(br, "global-header") ? + VP8GetSignedValue(br, 6, "global-header") : 0; } } if (hdr->update_map_) { int s; for (s = 0; s < MB_FEATURE_TREE_PROBS; ++s) { - proba->segments_[s] = VP8Get(br) ? VP8GetValue(br, 8) : 255u; + proba->segments_[s] = VP8Get(br, "global-header") ? + VP8GetValue(br, 8, "global-header") : 255u; } } } else { @@ -205,7 +208,7 @@ static VP8StatusCode ParsePartitions(VP8Decoder* const dec, size_t last_part; size_t p; - dec->num_parts_minus_one_ = (1 << VP8GetValue(br, 2)) - 1; + dec->num_parts_minus_one_ = (1 << VP8GetValue(br, 2, "global-header")) - 1; last_part = dec->num_parts_minus_one_; if (size < 3 * last_part) { // we can't even read the sizes with sz[]! That's a failure. @@ -229,21 +232,21 @@ static VP8StatusCode ParsePartitions(VP8Decoder* const dec, // Paragraph 9.4 static int ParseFilterHeader(VP8BitReader* br, VP8Decoder* const dec) { VP8FilterHeader* const hdr = &dec->filter_hdr_; - hdr->simple_ = VP8Get(br); - hdr->level_ = VP8GetValue(br, 6); - hdr->sharpness_ = VP8GetValue(br, 3); - hdr->use_lf_delta_ = VP8Get(br); + hdr->simple_ = VP8Get(br, "global-header"); + hdr->level_ = VP8GetValue(br, 6, "global-header"); + hdr->sharpness_ = VP8GetValue(br, 3, "global-header"); + hdr->use_lf_delta_ = VP8Get(br, "global-header"); if (hdr->use_lf_delta_) { - if (VP8Get(br)) { // update lf-delta? + if (VP8Get(br, "global-header")) { // update lf-delta? int i; for (i = 0; i < NUM_REF_LF_DELTAS; ++i) { - if (VP8Get(br)) { - hdr->ref_lf_delta_[i] = VP8GetSignedValue(br, 6); + if (VP8Get(br, "global-header")) { + hdr->ref_lf_delta_[i] = VP8GetSignedValue(br, 6, "global-header"); } } for (i = 0; i < NUM_MODE_LF_DELTAS; ++i) { - if (VP8Get(br)) { - hdr->mode_lf_delta_[i] = VP8GetSignedValue(br, 6); + if (VP8Get(br, "global-header")) { + hdr->mode_lf_delta_[i] = VP8GetSignedValue(br, 6, "global-header"); } } } @@ -352,8 +355,8 @@ int VP8GetHeaders(VP8Decoder* const dec, VP8Io* const io) { buf_size -= frm_hdr->partition_length_; if (frm_hdr->key_frame_) { - pic_hdr->colorspace_ = VP8Get(br); - pic_hdr->clamp_type_ = VP8Get(br); + pic_hdr->colorspace_ = VP8Get(br, "global-header"); + pic_hdr->clamp_type_ = VP8Get(br, "global-header"); } if (!ParseSegmentHeader(br, &dec->segment_hdr_, &dec->proba_)) { return VP8SetError(dec, VP8_STATUS_BITSTREAM_ERROR, @@ -378,7 +381,7 @@ int VP8GetHeaders(VP8Decoder* const dec, VP8Io* const io) { "Not a key frame."); } - VP8Get(br); // ignore the value of update_proba_ + VP8Get(br, "global-header"); // ignore the value of update_proba_ VP8ParseProba(br, dec); @@ -403,28 +406,28 @@ static const uint8_t kZigzag[16] = { // See section 13-2: http://tools.ietf.org/html/rfc6386#section-13.2 static int GetLargeValue(VP8BitReader* const br, const uint8_t* const p) { int v; - if (!VP8GetBit(br, p[3])) { - if (!VP8GetBit(br, p[4])) { + if (!VP8GetBit(br, p[3], "coeffs")) { + if (!VP8GetBit(br, p[4], "coeffs")) { v = 2; } else { - v = 3 + VP8GetBit(br, p[5]); + v = 3 + VP8GetBit(br, p[5], "coeffs"); } } else { - if (!VP8GetBit(br, p[6])) { - if (!VP8GetBit(br, p[7])) { - v = 5 + VP8GetBit(br, 159); + if (!VP8GetBit(br, p[6], "coeffs")) { + if (!VP8GetBit(br, p[7], "coeffs")) { + v = 5 + VP8GetBit(br, 159, "coeffs"); } else { - v = 7 + 2 * VP8GetBit(br, 165); - v += VP8GetBit(br, 145); + v = 7 + 2 * VP8GetBit(br, 165, "coeffs"); + v += VP8GetBit(br, 145, "coeffs"); } } else { const uint8_t* tab; - const int bit1 = VP8GetBit(br, p[8]); - const int bit0 = VP8GetBit(br, p[9 + bit1]); + const int bit1 = VP8GetBit(br, p[8], "coeffs"); + const int bit0 = VP8GetBit(br, p[9 + bit1], "coeffs"); const int cat = 2 * bit1 + bit0; v = 0; for (tab = kCat3456[cat]; *tab; ++tab) { - v += v + VP8GetBit(br, *tab); + v += v + VP8GetBit(br, *tab, "coeffs"); } v += 3 + (8 << cat); } @@ -438,24 +441,24 @@ static int GetCoeffsFast(VP8BitReader* const br, int ctx, const quant_t dq, int n, int16_t* out) { const uint8_t* p = prob[n]->probas_[ctx]; for (; n < 16; ++n) { - if (!VP8GetBit(br, p[0])) { + if (!VP8GetBit(br, p[0], "coeffs")) { return n; // previous coeff was last non-zero coeff } - while (!VP8GetBit(br, p[1])) { // sequence of zero coeffs + while (!VP8GetBit(br, p[1], "coeffs")) { // sequence of zero coeffs p = prob[++n]->probas_[0]; if (n == 16) return 16; } { // non zero coeff const VP8ProbaArray* const p_ctx = &prob[n + 1]->probas_[0]; int v; - if (!VP8GetBit(br, p[2])) { + if (!VP8GetBit(br, p[2], "coeffs")) { v = 1; p = p_ctx[1]; } else { v = GetLargeValue(br, p); p = p_ctx[2]; } - out[kZigzag[n]] = VP8GetSigned(br, v) * dq[n > 0]; + out[kZigzag[n]] = VP8GetSigned(br, v, "coeffs") * dq[n > 0]; } } return 16; @@ -468,24 +471,24 @@ static int GetCoeffsAlt(VP8BitReader* const br, int ctx, const quant_t dq, int n, int16_t* out) { const uint8_t* p = prob[n]->probas_[ctx]; for (; n < 16; ++n) { - if (!VP8GetBitAlt(br, p[0])) { + if (!VP8GetBitAlt(br, p[0], "coeffs")) { return n; // previous coeff was last non-zero coeff } - while (!VP8GetBitAlt(br, p[1])) { // sequence of zero coeffs + while (!VP8GetBitAlt(br, p[1], "coeffs")) { // sequence of zero coeffs p = prob[++n]->probas_[0]; if (n == 16) return 16; } { // non zero coeff const VP8ProbaArray* const p_ctx = &prob[n + 1]->probas_[0]; int v; - if (!VP8GetBitAlt(br, p[2])) { + if (!VP8GetBitAlt(br, p[2], "coeffs")) { v = 1; p = p_ctx[1]; } else { v = GetLargeValue(br, p); p = p_ctx[2]; } - out[kZigzag[n]] = VP8GetSigned(br, v) * dq[n > 0]; + out[kZigzag[n]] = VP8GetSigned(br, v, "coeffs") * dq[n > 0]; } } return 16; diff --git a/thirdparty/libwebp/src/dec/vp8i_dec.h b/thirdparty/libwebp/src/dec/vp8i_dec.h index 2d7900aae1..3de8d86f90 100644 --- a/thirdparty/libwebp/src/dec/vp8i_dec.h +++ b/thirdparty/libwebp/src/dec/vp8i_dec.h @@ -32,7 +32,7 @@ extern "C" { // version numbers #define DEC_MAJ_VERSION 1 #define DEC_MIN_VERSION 0 -#define DEC_REV_VERSION 2 +#define DEC_REV_VERSION 3 // YUV-cache parameters. Cache is 32-bytes wide (= one cacheline). // Constraints are: We need to store one 16x16 block of luma samples (y), diff --git a/thirdparty/libwebp/src/dec/vp8l_dec.c b/thirdparty/libwebp/src/dec/vp8l_dec.c index 333bb3e80d..d3e27119ea 100644 --- a/thirdparty/libwebp/src/dec/vp8l_dec.c +++ b/thirdparty/libwebp/src/dec/vp8l_dec.c @@ -362,12 +362,8 @@ static int ReadHuffmanCodes(VP8LDecoder* const dec, int xsize, int ysize, VP8LMetadata* const hdr = &dec->hdr_; uint32_t* huffman_image = NULL; HTreeGroup* htree_groups = NULL; - // When reading htrees, some might be unused, as the format allows it. - // We will still read them but put them in this htree_group_bogus. - HTreeGroup htree_group_bogus; HuffmanCode* huffman_tables = NULL; - HuffmanCode* huffman_tables_bogus = NULL; - HuffmanCode* next = NULL; + HuffmanCode* huffman_table = NULL; int num_htree_groups = 1; int num_htree_groups_max = 1; int max_alphabet_size = 0; @@ -418,12 +414,6 @@ static int ReadHuffmanCodes(VP8LDecoder* const dec, int xsize, int ysize, if (*mapped_group == -1) *mapped_group = num_htree_groups++; huffman_image[i] = *mapped_group; } - huffman_tables_bogus = (HuffmanCode*)WebPSafeMalloc( - table_size, sizeof(*huffman_tables_bogus)); - if (huffman_tables_bogus == NULL) { - dec->status_ = VP8_STATUS_OUT_OF_MEMORY; - goto Error; - } } else { num_htree_groups = num_htree_groups_max; } @@ -453,63 +443,71 @@ static int ReadHuffmanCodes(VP8LDecoder* const dec, int xsize, int ysize, goto Error; } - next = huffman_tables; + huffman_table = huffman_tables; for (i = 0; i < num_htree_groups_max; ++i) { - // If the index "i" is unused in the Huffman image, read the coefficients - // but store them to a bogus htree_group. - const int is_bogus = (mapping != NULL && mapping[i] == -1); - HTreeGroup* const htree_group = - is_bogus ? &htree_group_bogus : - &htree_groups[(mapping == NULL) ? i : mapping[i]]; - HuffmanCode** const htrees = htree_group->htrees; - HuffmanCode* huffman_tables_i = is_bogus ? huffman_tables_bogus : next; - int size; - int total_size = 0; - int is_trivial_literal = 1; - int max_bits = 0; - for (j = 0; j < HUFFMAN_CODES_PER_META_CODE; ++j) { - int alphabet_size = kAlphabetSize[j]; - htrees[j] = huffman_tables_i; - if (j == 0 && color_cache_bits > 0) { - alphabet_size += 1 << color_cache_bits; - } - size = - ReadHuffmanCode(alphabet_size, dec, code_lengths, huffman_tables_i); - if (size == 0) { - goto Error; - } - if (is_trivial_literal && kLiteralMap[j] == 1) { - is_trivial_literal = (huffman_tables_i->bits == 0); + // If the index "i" is unused in the Huffman image, just make sure the + // coefficients are valid but do not store them. + if (mapping != NULL && mapping[i] == -1) { + for (j = 0; j < HUFFMAN_CODES_PER_META_CODE; ++j) { + int alphabet_size = kAlphabetSize[j]; + if (j == 0 && color_cache_bits > 0) { + alphabet_size += (1 << color_cache_bits); + } + // Passing in NULL so that nothing gets filled. + if (!ReadHuffmanCode(alphabet_size, dec, code_lengths, NULL)) { + goto Error; + } } - total_size += huffman_tables_i->bits; - huffman_tables_i += size; - if (j <= ALPHA) { - int local_max_bits = code_lengths[0]; - int k; - for (k = 1; k < alphabet_size; ++k) { - if (code_lengths[k] > local_max_bits) { - local_max_bits = code_lengths[k]; + } else { + HTreeGroup* const htree_group = + &htree_groups[(mapping == NULL) ? i : mapping[i]]; + HuffmanCode** const htrees = htree_group->htrees; + int size; + int total_size = 0; + int is_trivial_literal = 1; + int max_bits = 0; + for (j = 0; j < HUFFMAN_CODES_PER_META_CODE; ++j) { + int alphabet_size = kAlphabetSize[j]; + htrees[j] = huffman_table; + if (j == 0 && color_cache_bits > 0) { + alphabet_size += (1 << color_cache_bits); + } + size = ReadHuffmanCode(alphabet_size, dec, code_lengths, huffman_table); + if (size == 0) { + goto Error; + } + if (is_trivial_literal && kLiteralMap[j] == 1) { + is_trivial_literal = (huffman_table->bits == 0); + } + total_size += huffman_table->bits; + huffman_table += size; + if (j <= ALPHA) { + int local_max_bits = code_lengths[0]; + int k; + for (k = 1; k < alphabet_size; ++k) { + if (code_lengths[k] > local_max_bits) { + local_max_bits = code_lengths[k]; + } } + max_bits += local_max_bits; } - max_bits += local_max_bits; } - } - if (!is_bogus) next = huffman_tables_i; - htree_group->is_trivial_literal = is_trivial_literal; - htree_group->is_trivial_code = 0; - if (is_trivial_literal) { - const int red = htrees[RED][0].value; - const int blue = htrees[BLUE][0].value; - const int alpha = htrees[ALPHA][0].value; - htree_group->literal_arb = ((uint32_t)alpha << 24) | (red << 16) | blue; - if (total_size == 0 && htrees[GREEN][0].value < NUM_LITERAL_CODES) { - htree_group->is_trivial_code = 1; - htree_group->literal_arb |= htrees[GREEN][0].value << 8; + htree_group->is_trivial_literal = is_trivial_literal; + htree_group->is_trivial_code = 0; + if (is_trivial_literal) { + const int red = htrees[RED][0].value; + const int blue = htrees[BLUE][0].value; + const int alpha = htrees[ALPHA][0].value; + htree_group->literal_arb = ((uint32_t)alpha << 24) | (red << 16) | blue; + if (total_size == 0 && htrees[GREEN][0].value < NUM_LITERAL_CODES) { + htree_group->is_trivial_code = 1; + htree_group->literal_arb |= htrees[GREEN][0].value << 8; + } } + htree_group->use_packed_table = + !htree_group->is_trivial_code && (max_bits < HUFFMAN_PACKED_BITS); + if (htree_group->use_packed_table) BuildPackedTable(htree_group); } - htree_group->use_packed_table = - !htree_group->is_trivial_code && (max_bits < HUFFMAN_PACKED_BITS); - if (htree_group->use_packed_table) BuildPackedTable(htree_group); } ok = 1; @@ -521,7 +519,6 @@ static int ReadHuffmanCodes(VP8LDecoder* const dec, int xsize, int ysize, Error: WebPSafeFree(code_lengths); - WebPSafeFree(huffman_tables_bogus); WebPSafeFree(mapping); if (!ok) { WebPSafeFree(huffman_image); diff --git a/thirdparty/libwebp/src/demux/demux.c b/thirdparty/libwebp/src/demux/demux.c index d8f7a40a56..ab6433e54b 100644 --- a/thirdparty/libwebp/src/demux/demux.c +++ b/thirdparty/libwebp/src/demux/demux.c @@ -25,7 +25,7 @@ #define DMUX_MAJ_VERSION 1 #define DMUX_MIN_VERSION 0 -#define DMUX_REV_VERSION 2 +#define DMUX_REV_VERSION 3 typedef struct { size_t start_; // start location of the data diff --git a/thirdparty/libwebp/src/dsp/alpha_processing_sse2.c b/thirdparty/libwebp/src/dsp/alpha_processing_sse2.c index 76587006a1..2871c56d84 100644 --- a/thirdparty/libwebp/src/dsp/alpha_processing_sse2.c +++ b/thirdparty/libwebp/src/dsp/alpha_processing_sse2.c @@ -214,7 +214,7 @@ static void ApplyAlphaMultiply_SSE2(uint8_t* rgba, int alpha_first, // Alpha detection static int HasAlpha8b_SSE2(const uint8_t* src, int length) { - const __m128i all_0xff = _mm_set1_epi8(0xff); + const __m128i all_0xff = _mm_set1_epi8((char)0xff); int i = 0; for (; i + 16 <= length; i += 16) { const __m128i v = _mm_loadu_si128((const __m128i*)(src + i)); @@ -228,7 +228,7 @@ static int HasAlpha8b_SSE2(const uint8_t* src, int length) { static int HasAlpha32b_SSE2(const uint8_t* src, int length) { const __m128i alpha_mask = _mm_set1_epi32(0xff); - const __m128i all_0xff = _mm_set1_epi8(0xff); + const __m128i all_0xff = _mm_set1_epi8((char)0xff); int i = 0; // We don't know if we can access the last 3 bytes after the last alpha // value 'src[4 * length - 4]' (because we don't know if alpha is the first diff --git a/thirdparty/libwebp/src/dsp/cpu.c b/thirdparty/libwebp/src/dsp/cpu.c index 8b40feed29..0fa5b6a5ce 100644 --- a/thirdparty/libwebp/src/dsp/cpu.c +++ b/thirdparty/libwebp/src/dsp/cpu.c @@ -173,8 +173,8 @@ static int AndroidCPUInfo(CPUFeature feature) { const AndroidCpuFamily cpu_family = android_getCpuFamily(); const uint64_t cpu_features = android_getCpuFeatures(); if (feature == kNEON) { - return (cpu_family == ANDROID_CPU_FAMILY_ARM && - 0 != (cpu_features & ANDROID_CPU_ARM_FEATURE_NEON)); + return cpu_family == ANDROID_CPU_FAMILY_ARM && + (cpu_features & ANDROID_CPU_ARM_FEATURE_NEON) != 0; } return 0; } diff --git a/thirdparty/libwebp/src/dsp/dec_sse2.c b/thirdparty/libwebp/src/dsp/dec_sse2.c index b3840faf3a..873aa59e8a 100644 --- a/thirdparty/libwebp/src/dsp/dec_sse2.c +++ b/thirdparty/libwebp/src/dsp/dec_sse2.c @@ -326,7 +326,7 @@ static WEBP_INLINE void Update2Pixels_SSE2(__m128i* const pi, __m128i* const qi, const __m128i a1_lo = _mm_srai_epi16(*a0_lo, 7); const __m128i a1_hi = _mm_srai_epi16(*a0_hi, 7); const __m128i delta = _mm_packs_epi16(a1_lo, a1_hi); - const __m128i sign_bit = _mm_set1_epi8(0x80); + const __m128i sign_bit = _mm_set1_epi8((char)0x80); *pi = _mm_adds_epi8(*pi, delta); *qi = _mm_subs_epi8(*qi, delta); FLIP_SIGN_BIT2(*pi, *qi); @@ -338,9 +338,9 @@ static WEBP_INLINE void NeedsFilter_SSE2(const __m128i* const p1, const __m128i* const q0, const __m128i* const q1, int thresh, __m128i* const mask) { - const __m128i m_thresh = _mm_set1_epi8(thresh); + const __m128i m_thresh = _mm_set1_epi8((char)thresh); const __m128i t1 = MM_ABS(*p1, *q1); // abs(p1 - q1) - const __m128i kFE = _mm_set1_epi8(0xFE); + const __m128i kFE = _mm_set1_epi8((char)0xFE); const __m128i t2 = _mm_and_si128(t1, kFE); // set lsb of each byte to zero const __m128i t3 = _mm_srli_epi16(t2, 1); // abs(p1 - q1) / 2 @@ -360,7 +360,7 @@ static WEBP_INLINE void DoFilter2_SSE2(__m128i* const p1, __m128i* const p0, __m128i* const q0, __m128i* const q1, int thresh) { __m128i a, mask; - const __m128i sign_bit = _mm_set1_epi8(0x80); + const __m128i sign_bit = _mm_set1_epi8((char)0x80); // convert p1/q1 to int8_t (for GetBaseDelta_SSE2) const __m128i p1s = _mm_xor_si128(*p1, sign_bit); const __m128i q1s = _mm_xor_si128(*q1, sign_bit); @@ -380,7 +380,7 @@ static WEBP_INLINE void DoFilter4_SSE2(__m128i* const p1, __m128i* const p0, const __m128i* const mask, int hev_thresh) { const __m128i zero = _mm_setzero_si128(); - const __m128i sign_bit = _mm_set1_epi8(0x80); + const __m128i sign_bit = _mm_set1_epi8((char)0x80); const __m128i k64 = _mm_set1_epi8(64); const __m128i k3 = _mm_set1_epi8(3); const __m128i k4 = _mm_set1_epi8(4); @@ -427,7 +427,7 @@ static WEBP_INLINE void DoFilter6_SSE2(__m128i* const p2, __m128i* const p1, const __m128i* const mask, int hev_thresh) { const __m128i zero = _mm_setzero_si128(); - const __m128i sign_bit = _mm_set1_epi8(0x80); + const __m128i sign_bit = _mm_set1_epi8((char)0x80); __m128i a, not_hev; // compute hev mask @@ -941,7 +941,7 @@ static void VR4_SSE2(uint8_t* dst) { // Vertical-Right const __m128i ABCD0 = _mm_srli_si128(XABCD, 1); const __m128i abcd = _mm_avg_epu8(XABCD, ABCD0); const __m128i _XABCD = _mm_slli_si128(XABCD, 1); - const __m128i IXABCD = _mm_insert_epi16(_XABCD, I | (X << 8), 0); + const __m128i IXABCD = _mm_insert_epi16(_XABCD, (short)(I | (X << 8)), 0); const __m128i avg1 = _mm_avg_epu8(IXABCD, ABCD0); const __m128i lsb = _mm_and_si128(_mm_xor_si128(IXABCD, ABCD0), one); const __m128i avg2 = _mm_subs_epu8(avg1, lsb); diff --git a/thirdparty/libwebp/src/dsp/enc_sse2.c b/thirdparty/libwebp/src/dsp/enc_sse2.c index 7b3f142c31..b2e78ed941 100644 --- a/thirdparty/libwebp/src/dsp/enc_sse2.c +++ b/thirdparty/libwebp/src/dsp/enc_sse2.c @@ -777,7 +777,7 @@ static WEBP_INLINE void VR4_SSE2(uint8_t* dst, const __m128i ABCD0 = _mm_srli_si128(XABCD, 1); const __m128i abcd = _mm_avg_epu8(XABCD, ABCD0); const __m128i _XABCD = _mm_slli_si128(XABCD, 1); - const __m128i IXABCD = _mm_insert_epi16(_XABCD, I | (X << 8), 0); + const __m128i IXABCD = _mm_insert_epi16(_XABCD, (short)(I | (X << 8)), 0); const __m128i avg1 = _mm_avg_epu8(IXABCD, ABCD0); const __m128i lsb = _mm_and_si128(_mm_xor_si128(IXABCD, ABCD0), one); const __m128i avg2 = _mm_subs_epu8(avg1, lsb); diff --git a/thirdparty/libwebp/src/dsp/filters.c b/thirdparty/libwebp/src/dsp/filters.c index 069a22eaef..9e910d99c9 100644 --- a/thirdparty/libwebp/src/dsp/filters.c +++ b/thirdparty/libwebp/src/dsp/filters.c @@ -33,9 +33,9 @@ static WEBP_INLINE void PredictLine_C(const uint8_t* src, const uint8_t* pred, uint8_t* dst, int length, int inverse) { int i; if (inverse) { - for (i = 0; i < length; ++i) dst[i] = src[i] + pred[i]; + for (i = 0; i < length; ++i) dst[i] = (uint8_t)(src[i] + pred[i]); } else { - for (i = 0; i < length; ++i) dst[i] = src[i] - pred[i]; + for (i = 0; i < length; ++i) dst[i] = (uint8_t)(src[i] - pred[i]); } } @@ -155,7 +155,7 @@ static WEBP_INLINE void DoGradientFilter_C(const uint8_t* in, const int pred = GradientPredictor_C(preds[w - 1], preds[w - stride], preds[w - stride - 1]); - out[w] = in[w] + (inverse ? pred : -pred); + out[w] = (uint8_t)(in[w] + (inverse ? pred : -pred)); } ++row; preds += stride; @@ -194,7 +194,7 @@ static void HorizontalUnfilter_C(const uint8_t* prev, const uint8_t* in, uint8_t pred = (prev == NULL) ? 0 : prev[0]; int i; for (i = 0; i < width; ++i) { - out[i] = pred + in[i]; + out[i] = (uint8_t)(pred + in[i]); pred = out[i]; } } @@ -206,7 +206,7 @@ static void VerticalUnfilter_C(const uint8_t* prev, const uint8_t* in, HorizontalUnfilter_C(NULL, in, out, width); } else { int i; - for (i = 0; i < width; ++i) out[i] = prev[i] + in[i]; + for (i = 0; i < width; ++i) out[i] = (uint8_t)(prev[i] + in[i]); } } #endif // !WEBP_NEON_OMIT_C_CODE @@ -220,7 +220,7 @@ static void GradientUnfilter_C(const uint8_t* prev, const uint8_t* in, int i; for (i = 0; i < width; ++i) { top = prev[i]; // need to read this first, in case prev==out - left = in[i] + GradientPredictor_C(left, top, top_left); + left = (uint8_t)(in[i] + GradientPredictor_C(left, top, top_left)); top_left = top; out[i] = left; } diff --git a/thirdparty/libwebp/src/dsp/filters_sse2.c b/thirdparty/libwebp/src/dsp/filters_sse2.c index 5a18895676..4b3f2d020f 100644 --- a/thirdparty/libwebp/src/dsp/filters_sse2.c +++ b/thirdparty/libwebp/src/dsp/filters_sse2.c @@ -163,7 +163,8 @@ static void GradientPredictDirect_SSE2(const uint8_t* const row, _mm_storel_epi64((__m128i*)(out + i), H); } for (; i < length; ++i) { - out[i] = row[i] - GradientPredictor_SSE2(row[i - 1], top[i], top[i - 1]); + const int delta = GradientPredictor_SSE2(row[i - 1], top[i], top[i - 1]); + out[i] = (uint8_t)(row[i] - delta); } } @@ -188,7 +189,7 @@ static WEBP_INLINE void DoGradientFilter_SSE2(const uint8_t* in, // Filter line-by-line. while (row < last_row) { - out[0] = in[0] - in[-stride]; + out[0] = (uint8_t)(in[0] - in[-stride]); GradientPredictDirect_SSE2(in + 1, in + 1 - stride, out + 1, width - 1); ++row; in += stride; @@ -223,7 +224,7 @@ static void HorizontalUnfilter_SSE2(const uint8_t* prev, const uint8_t* in, uint8_t* out, int width) { int i; __m128i last; - out[0] = in[0] + (prev == NULL ? 0 : prev[0]); + out[0] = (uint8_t)(in[0] + (prev == NULL ? 0 : prev[0])); if (width <= 1) return; last = _mm_set_epi32(0, 0, 0, out[0]); for (i = 1; i + 8 <= width; i += 8) { @@ -238,7 +239,7 @@ static void HorizontalUnfilter_SSE2(const uint8_t* prev, const uint8_t* in, _mm_storel_epi64((__m128i*)(out + i), A7); last = _mm_srli_epi64(A7, 56); } - for (; i < width; ++i) out[i] = in[i] + out[i - 1]; + for (; i < width; ++i) out[i] = (uint8_t)(in[i] + out[i - 1]); } static void VerticalUnfilter_SSE2(const uint8_t* prev, const uint8_t* in, @@ -259,7 +260,7 @@ static void VerticalUnfilter_SSE2(const uint8_t* prev, const uint8_t* in, _mm_storeu_si128((__m128i*)&out[i + 0], C0); _mm_storeu_si128((__m128i*)&out[i + 16], C1); } - for (; i < width; ++i) out[i] = in[i] + prev[i]; + for (; i < width; ++i) out[i] = (uint8_t)(in[i] + prev[i]); } } @@ -296,7 +297,8 @@ static void GradientPredictInverse_SSE2(const uint8_t* const in, _mm_storel_epi64((__m128i*)&row[i], out); } for (; i < length; ++i) { - row[i] = in[i] + GradientPredictor_SSE2(row[i - 1], top[i], top[i - 1]); + const int delta = GradientPredictor_SSE2(row[i - 1], top[i], top[i - 1]); + row[i] = (uint8_t)(in[i] + delta); } } } @@ -306,7 +308,7 @@ static void GradientUnfilter_SSE2(const uint8_t* prev, const uint8_t* in, if (prev == NULL) { HorizontalUnfilter_SSE2(NULL, in, out, width); } else { - out[0] = in[0] + prev[0]; // predict from above + out[0] = (uint8_t)(in[0] + prev[0]); // predict from above GradientPredictInverse_SSE2(in + 1, prev + 1, out + 1, width - 1); } } diff --git a/thirdparty/libwebp/src/dsp/lossless.c b/thirdparty/libwebp/src/dsp/lossless.c index d21aa6a0a0..d05af84e7b 100644 --- a/thirdparty/libwebp/src/dsp/lossless.c +++ b/thirdparty/libwebp/src/dsp/lossless.c @@ -270,14 +270,14 @@ void VP8LTransformColorInverse_C(const VP8LMultipliers* const m, int i; for (i = 0; i < num_pixels; ++i) { const uint32_t argb = src[i]; - const uint32_t green = argb >> 8; + const int8_t green = (int8_t)(argb >> 8); const uint32_t red = argb >> 16; int new_red = red & 0xff; int new_blue = argb & 0xff; new_red += ColorTransformDelta(m->green_to_red_, green); new_red &= 0xff; new_blue += ColorTransformDelta(m->green_to_blue_, green); - new_blue += ColorTransformDelta(m->red_to_blue_, new_red); + new_blue += ColorTransformDelta(m->red_to_blue_, (int8_t)new_red); new_blue &= 0xff; dst[i] = (argb & 0xff00ff00u) | (new_red << 16) | (new_blue); } diff --git a/thirdparty/libwebp/src/dsp/lossless_enc.c b/thirdparty/libwebp/src/dsp/lossless_enc.c index 1408fbf580..9c36055afc 100644 --- a/thirdparty/libwebp/src/dsp/lossless_enc.c +++ b/thirdparty/libwebp/src/dsp/lossless_enc.c @@ -515,13 +515,17 @@ static WEBP_INLINE int ColorTransformDelta(int8_t color_pred, int8_t color) { return ((int)color_pred * color) >> 5; } +static WEBP_INLINE int8_t U32ToS8(uint32_t v) { + return (int8_t)(v & 0xff); +} + void VP8LTransformColor_C(const VP8LMultipliers* const m, uint32_t* data, int num_pixels) { int i; for (i = 0; i < num_pixels; ++i) { const uint32_t argb = data[i]; - const uint32_t green = argb >> 8; - const uint32_t red = argb >> 16; + const int8_t green = U32ToS8(argb >> 8); + const int8_t red = U32ToS8(argb >> 16); int new_red = red & 0xff; int new_blue = argb & 0xff; new_red -= ColorTransformDelta(m->green_to_red_, green); @@ -535,7 +539,7 @@ void VP8LTransformColor_C(const VP8LMultipliers* const m, uint32_t* data, static WEBP_INLINE uint8_t TransformColorRed(uint8_t green_to_red, uint32_t argb) { - const uint32_t green = argb >> 8; + const int8_t green = U32ToS8(argb >> 8); int new_red = argb >> 16; new_red -= ColorTransformDelta(green_to_red, green); return (new_red & 0xff); @@ -544,9 +548,9 @@ static WEBP_INLINE uint8_t TransformColorRed(uint8_t green_to_red, static WEBP_INLINE uint8_t TransformColorBlue(uint8_t green_to_blue, uint8_t red_to_blue, uint32_t argb) { - const uint32_t green = argb >> 8; - const uint32_t red = argb >> 16; - uint8_t new_blue = argb; + const int8_t green = U32ToS8(argb >> 8); + const int8_t red = U32ToS8(argb >> 16); + uint8_t new_blue = argb & 0xff; new_blue -= ColorTransformDelta(green_to_blue, green); new_blue -= ColorTransformDelta(red_to_blue, red); return (new_blue & 0xff); @@ -558,7 +562,7 @@ void VP8LCollectColorRedTransforms_C(const uint32_t* argb, int stride, while (tile_height-- > 0) { int x; for (x = 0; x < tile_width; ++x) { - ++histo[TransformColorRed(green_to_red, argb[x])]; + ++histo[TransformColorRed((uint8_t)green_to_red, argb[x])]; } argb += stride; } @@ -571,7 +575,8 @@ void VP8LCollectColorBlueTransforms_C(const uint32_t* argb, int stride, while (tile_height-- > 0) { int x; for (x = 0; x < tile_width; ++x) { - ++histo[TransformColorBlue(green_to_blue, red_to_blue, argb[x])]; + ++histo[TransformColorBlue((uint8_t)green_to_blue, (uint8_t)red_to_blue, + argb[x])]; } argb += stride; } diff --git a/thirdparty/libwebp/src/dsp/lossless_enc_sse2.c b/thirdparty/libwebp/src/dsp/lossless_enc_sse2.c index 36478c4912..8adc52139b 100644 --- a/thirdparty/libwebp/src/dsp/lossless_enc_sse2.c +++ b/thirdparty/libwebp/src/dsp/lossless_enc_sse2.c @@ -363,7 +363,7 @@ static void BundleColorMap_SSE2(const uint8_t* const row, int width, int xbits, assert(xbits <= 3); switch (xbits) { case 0: { - const __m128i ff = _mm_set1_epi16(0xff00); + const __m128i ff = _mm_set1_epi16((short)0xff00); const __m128i zero = _mm_setzero_si128(); // Store 0xff000000 | (row[x] << 8). for (x = 0; x + 16 <= width; x += 16, dst += 16) { @@ -382,7 +382,7 @@ static void BundleColorMap_SSE2(const uint8_t* const row, int width, int xbits, break; } case 1: { - const __m128i ff = _mm_set1_epi16(0xff00); + const __m128i ff = _mm_set1_epi16((short)0xff00); const __m128i mul = _mm_set1_epi16(0x110); for (x = 0; x + 16 <= width; x += 16, dst += 8) { // 0a0b | (where a/b are 4 bits). diff --git a/thirdparty/libwebp/src/dsp/lossless_enc_sse41.c b/thirdparty/libwebp/src/dsp/lossless_enc_sse41.c index 2e12a712eb..719d8ed25e 100644 --- a/thirdparty/libwebp/src/dsp/lossless_enc_sse41.c +++ b/thirdparty/libwebp/src/dsp/lossless_enc_sse41.c @@ -51,9 +51,9 @@ static void CollectColorBlueTransforms_SSE41(const uint32_t* argb, int stride, int histo[]) { const __m128i mults_r = _mm_set1_epi16(CST_5b(red_to_blue)); const __m128i mults_g = _mm_set1_epi16(CST_5b(green_to_blue)); - const __m128i mask_g = _mm_set1_epi16(0xff00); // green mask - const __m128i mask_gb = _mm_set1_epi32(0xffff); // green/blue mask - const __m128i mask_b = _mm_set1_epi16(0x00ff); // blue mask + const __m128i mask_g = _mm_set1_epi16((short)0xff00); // green mask + const __m128i mask_gb = _mm_set1_epi32(0xffff); // green/blue mask + const __m128i mask_b = _mm_set1_epi16(0x00ff); // blue mask const __m128i shuffler_lo = _mm_setr_epi8(-1, 2, -1, 6, -1, 10, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1); const __m128i shuffler_hi = _mm_setr_epi8(-1, -1, -1, -1, -1, -1, -1, -1, -1, diff --git a/thirdparty/libwebp/src/dsp/quant.h b/thirdparty/libwebp/src/dsp/quant.h index 5ba6f9c377..5e8dba8d19 100644 --- a/thirdparty/libwebp/src/dsp/quant.h +++ b/thirdparty/libwebp/src/dsp/quant.h @@ -10,6 +10,8 @@ #ifndef WEBP_DSP_QUANT_H_ #define WEBP_DSP_QUANT_H_ +#include <string.h> + #include "src/dsp/dsp.h" #include "src/webp/types.h" @@ -67,4 +69,17 @@ static WEBP_INLINE int IsFlat(const int16_t* levels, int num_blocks, #endif // defined(WEBP_USE_NEON) && !defined(WEBP_ANDROID_NEON) && // !defined(WEBP_HAVE_NEON_RTCD) +static WEBP_INLINE int IsFlatSource16(const uint8_t* src) { + const uint32_t v = src[0] * 0x01010101u; + int i; + for (i = 0; i < 16; ++i) { + if (memcmp(src + 0, &v, 4) || memcmp(src + 4, &v, 4) || + memcmp(src + 8, &v, 4) || memcmp(src + 12, &v, 4)) { + return 0; + } + src += BPS; + } + return 1; +} + #endif // WEBP_DSP_QUANT_H_ diff --git a/thirdparty/libwebp/src/dsp/rescaler.c b/thirdparty/libwebp/src/dsp/rescaler.c index 753f84fcf4..c5a01e82df 100644 --- a/thirdparty/libwebp/src/dsp/rescaler.c +++ b/thirdparty/libwebp/src/dsp/rescaler.c @@ -109,8 +109,7 @@ void WebPRescalerExportRowExpand_C(WebPRescaler* const wrk) { for (x_out = 0; x_out < x_out_max; ++x_out) { const uint32_t J = frow[x_out]; const int v = (int)MULT_FIX(J, wrk->fy_scale); - assert(v >= 0 && v <= 255); - dst[x_out] = v; + dst[x_out] = (v > 255) ? 255u : (uint8_t)v; } } else { const uint32_t B = WEBP_RESCALER_FRAC(-wrk->y_accum, wrk->y_sub); @@ -120,8 +119,7 @@ void WebPRescalerExportRowExpand_C(WebPRescaler* const wrk) { + (uint64_t)B * irow[x_out]; const uint32_t J = (uint32_t)((I + ROUNDER) >> WEBP_RESCALER_RFIX); const int v = (int)MULT_FIX(J, wrk->fy_scale); - assert(v >= 0 && v <= 255); - dst[x_out] = v; + dst[x_out] = (v > 255) ? 255u : (uint8_t)v; } } } @@ -138,17 +136,15 @@ void WebPRescalerExportRowShrink_C(WebPRescaler* const wrk) { assert(!wrk->y_expand); if (yscale) { for (x_out = 0; x_out < x_out_max; ++x_out) { - const uint32_t frac = (uint32_t)MULT_FIX(frow[x_out], yscale); - const int v = (int)MULT_FIX_FLOOR(irow[x_out] - frac, wrk->fxy_scale); - assert(v >= 0 && v <= 255); - dst[x_out] = v; + const uint32_t frac = (uint32_t)MULT_FIX_FLOOR(frow[x_out], yscale); + const int v = (int)MULT_FIX(irow[x_out] - frac, wrk->fxy_scale); + dst[x_out] = (v > 255) ? 255u : (uint8_t)v; irow[x_out] = frac; // new fractional start } } else { for (x_out = 0; x_out < x_out_max; ++x_out) { const int v = (int)MULT_FIX(irow[x_out], wrk->fxy_scale); - assert(v >= 0 && v <= 255); - dst[x_out] = v; + dst[x_out] = (v > 255) ? 255u : (uint8_t)v; irow[x_out] = 0; } } diff --git a/thirdparty/libwebp/src/dsp/rescaler_mips_dsp_r2.c b/thirdparty/libwebp/src/dsp/rescaler_mips_dsp_r2.c index ce9e64862e..419b741fa5 100644 --- a/thirdparty/libwebp/src/dsp/rescaler_mips_dsp_r2.c +++ b/thirdparty/libwebp/src/dsp/rescaler_mips_dsp_r2.c @@ -107,10 +107,9 @@ static void ExportRowShrink_MIPSdspR2(WebPRescaler* const wrk) { ); } for (i = 0; i < (x_out_max & 0x3); ++i) { - const uint32_t frac = (uint32_t)MULT_FIX(*frow++, yscale); - const int v = (int)MULT_FIX_FLOOR(*irow - frac, wrk->fxy_scale); - assert(v >= 0 && v <= 255); - *dst++ = v; + const uint32_t frac = (uint32_t)MULT_FIX_FLOOR(*frow++, yscale); + const int v = (int)MULT_FIX(*irow - frac, wrk->fxy_scale); + *dst++ = (v > 255) ? 255u : (uint8_t)v; *irow++ = frac; // new fractional start } } else { @@ -157,8 +156,7 @@ static void ExportRowShrink_MIPSdspR2(WebPRescaler* const wrk) { } for (i = 0; i < (x_out_max & 0x3); ++i) { const int v = (int)MULT_FIX_FLOOR(*irow, wrk->fxy_scale); - assert(v >= 0 && v <= 255); - *dst++ = v; + *dst++ = (v > 255) ? 255u : (uint8_t)v; *irow++ = 0; } } @@ -219,8 +217,7 @@ static void ExportRowExpand_MIPSdspR2(WebPRescaler* const wrk) { for (i = 0; i < (x_out_max & 0x3); ++i) { const uint32_t J = *frow++; const int v = (int)MULT_FIX(J, wrk->fy_scale); - assert(v >= 0 && v <= 255); - *dst++ = v; + *dst++ = (v > 255) ? 255u : (uint8_t)v; } } else { const uint32_t B = WEBP_RESCALER_FRAC(-wrk->y_accum, wrk->y_sub); @@ -291,8 +288,7 @@ static void ExportRowExpand_MIPSdspR2(WebPRescaler* const wrk) { + (uint64_t)B * *irow++; const uint32_t J = (uint32_t)((I + ROUNDER) >> WEBP_RESCALER_RFIX); const int v = (int)MULT_FIX(J, wrk->fy_scale); - assert(v >= 0 && v <= 255); - *dst++ = v; + *dst++ = (v > 255) ? 255u : (uint8_t)v; } } } diff --git a/thirdparty/libwebp/src/dsp/rescaler_msa.c b/thirdparty/libwebp/src/dsp/rescaler_msa.c index c559254836..256dbdd437 100644 --- a/thirdparty/libwebp/src/dsp/rescaler_msa.c +++ b/thirdparty/libwebp/src/dsp/rescaler_msa.c @@ -166,8 +166,7 @@ static WEBP_INLINE void ExportRowExpand_0(const uint32_t* frow, uint8_t* dst, for (x_out = 0; x_out < length; ++x_out) { const uint32_t J = frow[x_out]; const int v = (int)MULT_FIX(J, wrk->fy_scale); - assert(v >= 0 && v <= 255); - dst[x_out] = v; + dst[x_out] = (v > 255) ? 255u : (uint8_t)v; } } } @@ -241,8 +240,7 @@ static WEBP_INLINE void ExportRowExpand_1(const uint32_t* frow, uint32_t* irow, + (uint64_t)B * irow[x_out]; const uint32_t J = (uint32_t)((I + ROUNDER) >> WEBP_RESCALER_RFIX); const int v = (int)MULT_FIX(J, wrk->fy_scale); - assert(v >= 0 && v <= 255); - dst[x_out] = v; + dst[x_out] = (v > 255) ? 255u : (uint8_t)v; } } } @@ -342,10 +340,9 @@ static WEBP_INLINE void ExportRowShrink_0(const uint32_t* frow, uint32_t* irow, length -= 4; } for (x_out = 0; x_out < length; ++x_out) { - const uint32_t frac = (uint32_t)MULT_FIX(frow[x_out], yscale); - const int v = (int)MULT_FIX_FLOOR(irow[x_out] - frac, wrk->fxy_scale); - assert(v >= 0 && v <= 255); - dst[x_out] = v; + const uint32_t frac = (uint32_t)MULT_FIX_FLOOR(frow[x_out], yscale); + const int v = (int)MULT_FIX(irow[x_out] - frac, wrk->fxy_scale); + dst[x_out] = (v > 255) ? 255u : (uint8_t)v; irow[x_out] = frac; } } @@ -406,8 +403,7 @@ static WEBP_INLINE void ExportRowShrink_1(uint32_t* irow, uint8_t* dst, } for (x_out = 0; x_out < length; ++x_out) { const int v = (int)MULT_FIX(irow[x_out], wrk->fxy_scale); - assert(v >= 0 && v <= 255); - dst[x_out] = v; + dst[x_out] = (v > 255) ? 255u : (uint8_t)v; irow[x_out] = 0; } } diff --git a/thirdparty/libwebp/src/dsp/rescaler_neon.c b/thirdparty/libwebp/src/dsp/rescaler_neon.c index a553f06f79..b976a852cf 100644 --- a/thirdparty/libwebp/src/dsp/rescaler_neon.c +++ b/thirdparty/libwebp/src/dsp/rescaler_neon.c @@ -81,14 +81,13 @@ static void RescalerExportRowExpand_NEON(WebPRescaler* const wrk) { const uint32x4_t B1 = MULT_FIX(A1, fy_scale_half); const uint16x4_t C0 = vmovn_u32(B0); const uint16x4_t C1 = vmovn_u32(B1); - const uint8x8_t D = vmovn_u16(vcombine_u16(C0, C1)); + const uint8x8_t D = vqmovn_u16(vcombine_u16(C0, C1)); vst1_u8(dst + x_out, D); } for (; x_out < x_out_max; ++x_out) { const uint32_t J = frow[x_out]; const int v = (int)MULT_FIX_C(J, fy_scale); - assert(v >= 0 && v <= 255); - dst[x_out] = v; + dst[x_out] = (v > 255) ? 255u : (uint8_t)v; } } else { const uint32_t B = WEBP_RESCALER_FRAC(-wrk->y_accum, wrk->y_sub); @@ -102,7 +101,7 @@ static void RescalerExportRowExpand_NEON(WebPRescaler* const wrk) { const uint32x4_t D1 = MULT_FIX(C1, fy_scale_half); const uint16x4_t E0 = vmovn_u32(D0); const uint16x4_t E1 = vmovn_u32(D1); - const uint8x8_t F = vmovn_u16(vcombine_u16(E0, E1)); + const uint8x8_t F = vqmovn_u16(vcombine_u16(E0, E1)); vst1_u8(dst + x_out, F); } for (; x_out < x_out_max; ++x_out) { @@ -110,8 +109,7 @@ static void RescalerExportRowExpand_NEON(WebPRescaler* const wrk) { + (uint64_t)B * irow[x_out]; const uint32_t J = (uint32_t)((I + ROUNDER) >> WEBP_RESCALER_RFIX); const int v = (int)MULT_FIX_C(J, fy_scale); - assert(v >= 0 && v <= 255); - dst[x_out] = v; + dst[x_out] = (v > 255) ? 255u : (uint8_t)v; } } } @@ -135,23 +133,22 @@ static void RescalerExportRowShrink_NEON(WebPRescaler* const wrk) { for (x_out = 0; x_out < max_span; x_out += 8) { LOAD_32x8(frow + x_out, in0, in1); LOAD_32x8(irow + x_out, in2, in3); - const uint32x4_t A0 = MULT_FIX(in0, yscale_half); - const uint32x4_t A1 = MULT_FIX(in1, yscale_half); + const uint32x4_t A0 = MULT_FIX_FLOOR(in0, yscale_half); + const uint32x4_t A1 = MULT_FIX_FLOOR(in1, yscale_half); const uint32x4_t B0 = vqsubq_u32(in2, A0); const uint32x4_t B1 = vqsubq_u32(in3, A1); - const uint32x4_t C0 = MULT_FIX_FLOOR(B0, fxy_scale_half); - const uint32x4_t C1 = MULT_FIX_FLOOR(B1, fxy_scale_half); + const uint32x4_t C0 = MULT_FIX(B0, fxy_scale_half); + const uint32x4_t C1 = MULT_FIX(B1, fxy_scale_half); const uint16x4_t D0 = vmovn_u32(C0); const uint16x4_t D1 = vmovn_u32(C1); - const uint8x8_t E = vmovn_u16(vcombine_u16(D0, D1)); + const uint8x8_t E = vqmovn_u16(vcombine_u16(D0, D1)); vst1_u8(dst + x_out, E); STORE_32x8(A0, A1, irow + x_out); } for (; x_out < x_out_max; ++x_out) { - const uint32_t frac = (uint32_t)MULT_FIX_C(frow[x_out], yscale); - const int v = (int)MULT_FIX_FLOOR_C(irow[x_out] - frac, fxy_scale); - assert(v >= 0 && v <= 255); - dst[x_out] = v; + const uint32_t frac = (uint32_t)MULT_FIX_FLOOR_C(frow[x_out], yscale); + const int v = (int)MULT_FIX_C(irow[x_out] - frac, fxy_scale); + dst[x_out] = (v > 255) ? 255u : (uint8_t)v; irow[x_out] = frac; // new fractional start } } else { @@ -161,14 +158,13 @@ static void RescalerExportRowShrink_NEON(WebPRescaler* const wrk) { const uint32x4_t A1 = MULT_FIX(in1, fxy_scale_half); const uint16x4_t B0 = vmovn_u32(A0); const uint16x4_t B1 = vmovn_u32(A1); - const uint8x8_t C = vmovn_u16(vcombine_u16(B0, B1)); + const uint8x8_t C = vqmovn_u16(vcombine_u16(B0, B1)); vst1_u8(dst + x_out, C); STORE_32x8(zero, zero, irow + x_out); } for (; x_out < x_out_max; ++x_out) { const int v = (int)MULT_FIX_C(irow[x_out], fxy_scale); - assert(v >= 0 && v <= 255); - dst[x_out] = v; + dst[x_out] = (v > 255) ? 255u : (uint8_t)v; irow[x_out] = 0; } } diff --git a/thirdparty/libwebp/src/dsp/rescaler_sse2.c b/thirdparty/libwebp/src/dsp/rescaler_sse2.c index f7461a452c..d7effea16e 100644 --- a/thirdparty/libwebp/src/dsp/rescaler_sse2.c +++ b/thirdparty/libwebp/src/dsp/rescaler_sse2.c @@ -225,35 +225,6 @@ static WEBP_INLINE void ProcessRow_SSE2(const __m128i* const A0, _mm_storel_epi64((__m128i*)dst, G); } -static WEBP_INLINE void ProcessRow_Floor_SSE2(const __m128i* const A0, - const __m128i* const A1, - const __m128i* const A2, - const __m128i* const A3, - const __m128i* const mult, - uint8_t* const dst) { - const __m128i mask = _mm_set_epi32(0xffffffffu, 0, 0xffffffffu, 0); - const __m128i B0 = _mm_mul_epu32(*A0, *mult); - const __m128i B1 = _mm_mul_epu32(*A1, *mult); - const __m128i B2 = _mm_mul_epu32(*A2, *mult); - const __m128i B3 = _mm_mul_epu32(*A3, *mult); - const __m128i D0 = _mm_srli_epi64(B0, WEBP_RESCALER_RFIX); - const __m128i D1 = _mm_srli_epi64(B1, WEBP_RESCALER_RFIX); -#if (WEBP_RESCALER_RFIX < 32) - const __m128i D2 = - _mm_and_si128(_mm_slli_epi64(B2, 32 - WEBP_RESCALER_RFIX), mask); - const __m128i D3 = - _mm_and_si128(_mm_slli_epi64(B3, 32 - WEBP_RESCALER_RFIX), mask); -#else - const __m128i D2 = _mm_and_si128(B2, mask); - const __m128i D3 = _mm_and_si128(B3, mask); -#endif - const __m128i E0 = _mm_or_si128(D0, D2); - const __m128i E1 = _mm_or_si128(D1, D3); - const __m128i F = _mm_packs_epi32(E0, E1); - const __m128i G = _mm_packus_epi16(F, F); - _mm_storel_epi64((__m128i*)dst, G); -} - static void RescalerExportRowExpand_SSE2(WebPRescaler* const wrk) { int x_out; uint8_t* const dst = wrk->dst; @@ -274,8 +245,7 @@ static void RescalerExportRowExpand_SSE2(WebPRescaler* const wrk) { for (; x_out < x_out_max; ++x_out) { const uint32_t J = frow[x_out]; const int v = (int)MULT_FIX(J, wrk->fy_scale); - assert(v >= 0 && v <= 255); - dst[x_out] = v; + dst[x_out] = (v > 255) ? 255u : (uint8_t)v; } } else { const uint32_t B = WEBP_RESCALER_FRAC(-wrk->y_accum, wrk->y_sub); @@ -308,8 +278,7 @@ static void RescalerExportRowExpand_SSE2(WebPRescaler* const wrk) { + (uint64_t)B * irow[x_out]; const uint32_t J = (uint32_t)((I + ROUNDER) >> WEBP_RESCALER_RFIX); const int v = (int)MULT_FIX(J, wrk->fy_scale); - assert(v >= 0 && v <= 255); - dst[x_out] = v; + dst[x_out] = (v > 255) ? 255u : (uint8_t)v; } } } @@ -328,20 +297,15 @@ static void RescalerExportRowShrink_SSE2(WebPRescaler* const wrk) { const int scale_xy = wrk->fxy_scale; const __m128i mult_xy = _mm_set_epi32(0, scale_xy, 0, scale_xy); const __m128i mult_y = _mm_set_epi32(0, yscale, 0, yscale); - const __m128i rounder = _mm_set_epi32(0, ROUNDER, 0, ROUNDER); for (x_out = 0; x_out + 8 <= x_out_max; x_out += 8) { __m128i A0, A1, A2, A3, B0, B1, B2, B3; LoadDispatchAndMult_SSE2(irow + x_out, NULL, &A0, &A1, &A2, &A3); LoadDispatchAndMult_SSE2(frow + x_out, &mult_y, &B0, &B1, &B2, &B3); { - const __m128i C0 = _mm_add_epi64(B0, rounder); - const __m128i C1 = _mm_add_epi64(B1, rounder); - const __m128i C2 = _mm_add_epi64(B2, rounder); - const __m128i C3 = _mm_add_epi64(B3, rounder); - const __m128i D0 = _mm_srli_epi64(C0, WEBP_RESCALER_RFIX); // = frac - const __m128i D1 = _mm_srli_epi64(C1, WEBP_RESCALER_RFIX); - const __m128i D2 = _mm_srli_epi64(C2, WEBP_RESCALER_RFIX); - const __m128i D3 = _mm_srli_epi64(C3, WEBP_RESCALER_RFIX); + const __m128i D0 = _mm_srli_epi64(B0, WEBP_RESCALER_RFIX); // = frac + const __m128i D1 = _mm_srli_epi64(B1, WEBP_RESCALER_RFIX); + const __m128i D2 = _mm_srli_epi64(B2, WEBP_RESCALER_RFIX); + const __m128i D3 = _mm_srli_epi64(B3, WEBP_RESCALER_RFIX); const __m128i E0 = _mm_sub_epi64(A0, D0); // irow[x] - frac const __m128i E1 = _mm_sub_epi64(A1, D1); const __m128i E2 = _mm_sub_epi64(A2, D2); @@ -352,14 +316,13 @@ static void RescalerExportRowShrink_SSE2(WebPRescaler* const wrk) { const __m128i G1 = _mm_or_si128(D1, F3); _mm_storeu_si128((__m128i*)(irow + x_out + 0), G0); _mm_storeu_si128((__m128i*)(irow + x_out + 4), G1); - ProcessRow_Floor_SSE2(&E0, &E1, &E2, &E3, &mult_xy, dst + x_out); + ProcessRow_SSE2(&E0, &E1, &E2, &E3, &mult_xy, dst + x_out); } } for (; x_out < x_out_max; ++x_out) { - const uint32_t frac = (int)MULT_FIX(frow[x_out], yscale); - const int v = (int)MULT_FIX_FLOOR(irow[x_out] - frac, wrk->fxy_scale); - assert(v >= 0 && v <= 255); - dst[x_out] = v; + const uint32_t frac = (int)MULT_FIX_FLOOR(frow[x_out], yscale); + const int v = (int)MULT_FIX(irow[x_out] - frac, wrk->fxy_scale); + dst[x_out] = (v > 255) ? 255u : (uint8_t)v; irow[x_out] = frac; // new fractional start } } else { @@ -375,8 +338,7 @@ static void RescalerExportRowShrink_SSE2(WebPRescaler* const wrk) { } for (; x_out < x_out_max; ++x_out) { const int v = (int)MULT_FIX(irow[x_out], scale); - assert(v >= 0 && v <= 255); - dst[x_out] = v; + dst[x_out] = (v > 255) ? 255u : (uint8_t)v; irow[x_out] = 0; } } diff --git a/thirdparty/libwebp/src/enc/backward_references_enc.c b/thirdparty/libwebp/src/enc/backward_references_enc.c index 3ab7b0ac7d..d445b40fc5 100644 --- a/thirdparty/libwebp/src/enc/backward_references_enc.c +++ b/thirdparty/libwebp/src/enc/backward_references_enc.c @@ -191,13 +191,14 @@ void VP8LHashChainClear(VP8LHashChain* const p) { // ----------------------------------------------------------------------------- -#define HASH_MULTIPLIER_HI (0xc6a4a793ULL) -#define HASH_MULTIPLIER_LO (0x5bd1e996ULL) +static const uint32_t kHashMultiplierHi = 0xc6a4a793u; +static const uint32_t kHashMultiplierLo = 0x5bd1e996u; -static WEBP_INLINE uint32_t GetPixPairHash64(const uint32_t* const argb) { +static WEBP_UBSAN_IGNORE_UNSIGNED_OVERFLOW WEBP_INLINE +uint32_t GetPixPairHash64(const uint32_t* const argb) { uint32_t key; - key = (argb[1] * HASH_MULTIPLIER_HI) & 0xffffffffu; - key += (argb[0] * HASH_MULTIPLIER_LO) & 0xffffffffu; + key = argb[1] * kHashMultiplierHi; + key += argb[0] * kHashMultiplierLo; key = key >> (32 - HASH_BITS); return key; } diff --git a/thirdparty/libwebp/src/enc/histogram_enc.c b/thirdparty/libwebp/src/enc/histogram_enc.c index 8ac6fa8e02..d89b98524a 100644 --- a/thirdparty/libwebp/src/enc/histogram_enc.c +++ b/thirdparty/libwebp/src/enc/histogram_enc.c @@ -929,9 +929,8 @@ static int HistogramCombineStochastic(VP8LHistogramSet* const image_histo, } mappings = (int*) WebPSafeMalloc(*num_used, sizeof(*mappings)); - if (mappings == NULL || !HistoQueueInit(&histo_queue, kHistoQueueSize)) { - goto End; - } + if (mappings == NULL) return 0; + if (!HistoQueueInit(&histo_queue, kHistoQueueSize)) goto End; // Fill the initial mapping. for (j = 0, iter = 0; iter < image_histo->size; ++iter) { if (histograms[iter] == NULL) continue; diff --git a/thirdparty/libwebp/src/enc/predictor_enc.c b/thirdparty/libwebp/src/enc/predictor_enc.c index 802e89693e..2e6762ea0d 100644 --- a/thirdparty/libwebp/src/enc/predictor_enc.c +++ b/thirdparty/libwebp/src/enc/predictor_enc.c @@ -202,7 +202,7 @@ static uint32_t NearLossless(uint32_t value, uint32_t predict, } if ((value >> 24) == 0 || (value >> 24) == 0xff) { // Preserve transparency of fully transparent or fully opaque pixels. - a = NearLosslessDiff(value >> 24, predict >> 24); + a = NearLosslessDiff((value >> 24) & 0xff, (predict >> 24) & 0xff); } else { a = NearLosslessComponent(value >> 24, predict >> 24, 0xff, quantization); } @@ -215,12 +215,12 @@ static uint32_t NearLossless(uint32_t value, uint32_t predict, // The amount by which green has been adjusted during quantization. It is // subtracted from red and blue for compensation, to avoid accumulating two // quantization errors in them. - green_diff = NearLosslessDiff(new_green, value >> 8); + green_diff = NearLosslessDiff(new_green, (value >> 8) & 0xff); } - r = NearLosslessComponent(NearLosslessDiff(value >> 16, green_diff), + r = NearLosslessComponent(NearLosslessDiff((value >> 16) & 0xff, green_diff), (predict >> 16) & 0xff, 0xff - new_green, quantization); - b = NearLosslessComponent(NearLosslessDiff(value, green_diff), + b = NearLosslessComponent(NearLosslessDiff(value & 0xff, green_diff), predict & 0xff, 0xff - new_green, quantization); return ((uint32_t)a << 24) | ((uint32_t)r << 16) | ((uint32_t)g << 8) | b; } @@ -587,7 +587,7 @@ static void GetBestGreenToRed( } } } - best_tx->green_to_red_ = green_to_red_best; + best_tx->green_to_red_ = (green_to_red_best & 0xff); } static float GetPredictionCostCrossColorBlue( @@ -666,8 +666,8 @@ static void GetBestGreenRedToBlue( break; // out of iter-loop. } } - best_tx->green_to_blue_ = green_to_blue_best; - best_tx->red_to_blue_ = red_to_blue_best; + best_tx->green_to_blue_ = green_to_blue_best & 0xff; + best_tx->red_to_blue_ = red_to_blue_best & 0xff; } #undef kGreenRedToBlueMaxIters #undef kGreenRedToBlueNumAxis diff --git a/thirdparty/libwebp/src/enc/quant_enc.c b/thirdparty/libwebp/src/enc/quant_enc.c index 03c682e3ae..01eb565c7f 100644 --- a/thirdparty/libwebp/src/enc/quant_enc.c +++ b/thirdparty/libwebp/src/enc/quant_enc.c @@ -33,7 +33,7 @@ // number of non-zero coeffs below which we consider the block very flat // (and apply a penalty to complex predictions) -#define FLATNESS_LIMIT_I16 10 // I16 mode +#define FLATNESS_LIMIT_I16 0 // I16 mode (special case) #define FLATNESS_LIMIT_I4 3 // I4 mode #define FLATNESS_LIMIT_UV 2 // UV mode #define FLATNESS_PENALTY 140 // roughly ~1bit per block @@ -988,6 +988,7 @@ static void PickBestIntra16(VP8EncIterator* const it, VP8ModeScore* rd) { VP8ModeScore* rd_cur = &rd_tmp; VP8ModeScore* rd_best = rd; int mode; + int is_flat = IsFlatSource16(it->yuv_in_ + Y_OFF_ENC); rd->mode_i16 = -1; for (mode = 0; mode < NUM_PRED_MODES; ++mode) { @@ -1003,10 +1004,14 @@ static void PickBestIntra16(VP8EncIterator* const it, VP8ModeScore* rd) { tlambda ? MULT_8B(tlambda, VP8TDisto16x16(src, tmp_dst, kWeightY)) : 0; rd_cur->H = VP8FixedCostsI16[mode]; rd_cur->R = VP8GetCostLuma16(it, rd_cur); - if (mode > 0 && - IsFlat(rd_cur->y_ac_levels[0], kNumBlocks, FLATNESS_LIMIT_I16)) { - // penalty to avoid flat area to be mispredicted by complex mode - rd_cur->R += FLATNESS_PENALTY * kNumBlocks; + if (is_flat) { + // refine the first impression (which was in pixel space) + is_flat = IsFlat(rd_cur->y_ac_levels[0], kNumBlocks, FLATNESS_LIMIT_I16); + if (is_flat) { + // Block is very flat. We put emphasis on the distortion being very low! + rd_cur->D *= 2; + rd_cur->SD *= 2; + } } // Since we always examine Intra16 first, we can overwrite *rd directly. @@ -1087,7 +1092,8 @@ static int PickBestIntra4(VP8EncIterator* const it, VP8ModeScore* const rd) { : 0; rd_tmp.H = mode_costs[mode]; - // Add flatness penalty + // Add flatness penalty, to avoid flat area to be mispredicted + // by a complex mode. if (mode > 0 && IsFlat(tmp_levels, kNumBlocks, FLATNESS_LIMIT_I4)) { rd_tmp.R = FLATNESS_PENALTY * kNumBlocks; } else { @@ -1242,11 +1248,19 @@ static void RefineUsingDistortion(VP8EncIterator* const it, if (mode > 0 && VP8FixedCostsI16[mode] > bit_limit) { continue; } + if (score < best_score) { best_mode = mode; best_score = score; } } + if (it->x_ == 0 || it->y_ == 0) { + // avoid starting a checkerboard resonance from the border. See bug #432. + if (IsFlatSource16(src)) { + best_mode = (it->x_ == 0) ? 0 : 2; + try_both_modes = 0; // stick to i16 + } + } VP8SetIntra16Mode(it, best_mode); // we'll reconstruct later, if i16 mode actually gets selected } diff --git a/thirdparty/libwebp/src/enc/vp8i_enc.h b/thirdparty/libwebp/src/enc/vp8i_enc.h index 3a1967da88..24e1944610 100644 --- a/thirdparty/libwebp/src/enc/vp8i_enc.h +++ b/thirdparty/libwebp/src/enc/vp8i_enc.h @@ -32,7 +32,7 @@ extern "C" { // version numbers #define ENC_MAJ_VERSION 1 #define ENC_MIN_VERSION 0 -#define ENC_REV_VERSION 2 +#define ENC_REV_VERSION 3 enum { MAX_LF_LEVELS = 64, // Maximum loop filter level MAX_VARIABLE_LEVEL = 67, // last (inclusive) level with variable cost diff --git a/thirdparty/libwebp/src/mux/muxi.h b/thirdparty/libwebp/src/mux/muxi.h index 3e9d8c48d8..7bc0b07e9b 100644 --- a/thirdparty/libwebp/src/mux/muxi.h +++ b/thirdparty/libwebp/src/mux/muxi.h @@ -29,7 +29,7 @@ extern "C" { #define MUX_MAJ_VERSION 1 #define MUX_MIN_VERSION 0 -#define MUX_REV_VERSION 2 +#define MUX_REV_VERSION 3 // Chunk object. typedef struct WebPChunk WebPChunk; diff --git a/thirdparty/libwebp/src/utils/bit_reader_inl_utils.h b/thirdparty/libwebp/src/utils/bit_reader_inl_utils.h index 7e607f370a..46b3880706 100644 --- a/thirdparty/libwebp/src/utils/bit_reader_inl_utils.h +++ b/thirdparty/libwebp/src/utils/bit_reader_inl_utils.h @@ -104,7 +104,8 @@ void VP8LoadNewBytes(VP8BitReader* const br) { } // Read a bit with proba 'prob'. Speed-critical function! -static WEBP_INLINE int VP8GetBit(VP8BitReader* const br, int prob) { +static WEBP_INLINE int VP8GetBit(VP8BitReader* const br, + int prob, const char label[]) { // Don't move this declaration! It makes a big speed difference to store // 'range' *before* calling VP8LoadNewBytes(), even if this function doesn't // alter br->range_ value. @@ -129,13 +130,14 @@ static WEBP_INLINE int VP8GetBit(VP8BitReader* const br, int prob) { br->bits_ -= shift; } br->range_ = range - 1; + BT_TRACK(br); return bit; } } // simplified version of VP8GetBit() for prob=0x80 (note shift is always 1 here) static WEBP_UBSAN_IGNORE_UNSIGNED_OVERFLOW WEBP_INLINE -int VP8GetSigned(VP8BitReader* const br, int v) { +int VP8GetSigned(VP8BitReader* const br, int v, const char label[]) { if (br->bits_ < 0) { VP8LoadNewBytes(br); } @@ -148,11 +150,13 @@ int VP8GetSigned(VP8BitReader* const br, int v) { br->range_ += mask; br->range_ |= 1; br->value_ -= (bit_t)((split + 1) & mask) << pos; + BT_TRACK(br); return (v ^ mask) - mask; } } -static WEBP_INLINE int VP8GetBitAlt(VP8BitReader* const br, int prob) { +static WEBP_INLINE int VP8GetBitAlt(VP8BitReader* const br, + int prob, const char label[]) { // Don't move this declaration! It makes a big speed difference to store // 'range' *before* calling VP8LoadNewBytes(), even if this function doesn't // alter br->range_ value. @@ -179,6 +183,7 @@ static WEBP_INLINE int VP8GetBitAlt(VP8BitReader* const br, int prob) { br->bits_ -= shift; } br->range_ = range; + BT_TRACK(br); return bit; } } diff --git a/thirdparty/libwebp/src/utils/bit_reader_utils.c b/thirdparty/libwebp/src/utils/bit_reader_utils.c index 5fa3ae7795..60271c0ae0 100644 --- a/thirdparty/libwebp/src/utils/bit_reader_utils.c +++ b/thirdparty/libwebp/src/utils/bit_reader_utils.c @@ -109,17 +109,18 @@ void VP8LoadFinalBytes(VP8BitReader* const br) { //------------------------------------------------------------------------------ // Higher-level calls -uint32_t VP8GetValue(VP8BitReader* const br, int bits) { +uint32_t VP8GetValue(VP8BitReader* const br, int bits, const char label[]) { uint32_t v = 0; while (bits-- > 0) { - v |= VP8GetBit(br, 0x80) << bits; + v |= VP8GetBit(br, 0x80, label) << bits; } return v; } -int32_t VP8GetSignedValue(VP8BitReader* const br, int bits) { - const int value = VP8GetValue(br, bits); - return VP8Get(br) ? -value : value; +int32_t VP8GetSignedValue(VP8BitReader* const br, int bits, + const char label[]) { + const int value = VP8GetValue(br, bits, label); + return VP8Get(br, label) ? -value : value; } //------------------------------------------------------------------------------ @@ -227,3 +228,78 @@ uint32_t VP8LReadBits(VP8LBitReader* const br, int n_bits) { } //------------------------------------------------------------------------------ +// Bit-tracing tool + +#if (BITTRACE > 0) + +#include <stdlib.h> // for atexit() +#include <stdio.h> +#include <string.h> + +#define MAX_NUM_LABELS 32 +static struct { + const char* label; + int size; + int count; +} kLabels[MAX_NUM_LABELS]; + +static int last_label = 0; +static int last_pos = 0; +static const uint8_t* buf_start = NULL; +static int init_done = 0; + +static void PrintBitTraces(void) { + int i; + int scale = 1; + int total = 0; + const char* units = "bits"; +#if (BITTRACE == 2) + scale = 8; + units = "bytes"; +#endif + for (i = 0; i < last_label; ++i) total += kLabels[i].size; + if (total < 1) total = 1; // avoid rounding errors + printf("=== Bit traces ===\n"); + for (i = 0; i < last_label; ++i) { + const int skip = 16 - (int)strlen(kLabels[i].label); + const int value = (kLabels[i].size + scale - 1) / scale; + assert(skip > 0); + printf("%s \%*s: %6d %s \t[%5.2f%%] [count: %7d]\n", + kLabels[i].label, skip, "", value, units, + 100.f * kLabels[i].size / total, + kLabels[i].count); + } + total = (total + scale - 1) / scale; + printf("Total: %d %s\n", total, units); +} + +void BitTrace(const struct VP8BitReader* const br, const char label[]) { + int i, pos; + if (!init_done) { + memset(kLabels, 0, sizeof(kLabels)); + atexit(PrintBitTraces); + buf_start = br->buf_; + init_done = 1; + } + pos = (int)(br->buf_ - buf_start) * 8 - br->bits_; + // if there's a too large jump, we've changed partition -> reset counter + if (abs(pos - last_pos) > 32) { + buf_start = br->buf_; + pos = 0; + last_pos = 0; + } + if (br->range_ >= 0x7f) pos += kVP8Log2Range[br->range_ - 0x7f]; + for (i = 0; i < last_label; ++i) { + if (!strcmp(label, kLabels[i].label)) break; + } + if (i == MAX_NUM_LABELS) abort(); // overflow! + kLabels[i].label = label; + kLabels[i].size += pos - last_pos; + kLabels[i].count += 1; + if (i == last_label) ++last_label; + last_pos = pos; +} + +#endif // BITTRACE > 0 + +//------------------------------------------------------------------------------ diff --git a/thirdparty/libwebp/src/utils/bit_reader_utils.h b/thirdparty/libwebp/src/utils/bit_reader_utils.h index de810d402a..199dacf224 100644 --- a/thirdparty/libwebp/src/utils/bit_reader_utils.h +++ b/thirdparty/libwebp/src/utils/bit_reader_utils.h @@ -21,6 +21,27 @@ #endif #include "src/webp/types.h" +// Warning! This macro triggers quite some MACRO wizardry around func signature! +#if !defined(BITTRACE) +#define BITTRACE 0 // 0 = off, 1 = print bits, 2 = print bytes +#endif + +#if (BITTRACE > 0) +struct VP8BitReader; +extern void BitTrace(const struct VP8BitReader* const br, const char label[]); +#define BT_TRACK(br) BitTrace(br, label) +#define VP8Get(BR, L) VP8GetValue(BR, 1, L) +#else +#define BT_TRACK(br) +// We'll REMOVE the 'const char label[]' from all signatures and calls (!!): +#define VP8GetValue(BR, N, L) VP8GetValue(BR, N) +#define VP8Get(BR, L) VP8GetValue(BR, 1, L) +#define VP8GetSignedValue(BR, N, L) VP8GetSignedValue(BR, N) +#define VP8GetBit(BR, P, L) VP8GetBit(BR, P) +#define VP8GetBitAlt(BR, P, L) VP8GetBitAlt(BR, P) +#define VP8GetSigned(BR, V, L) VP8GetSigned(BR, V) +#endif + #ifdef __cplusplus extern "C" { #endif @@ -102,17 +123,15 @@ void VP8BitReaderSetBuffer(VP8BitReader* const br, void VP8RemapBitReader(VP8BitReader* const br, ptrdiff_t offset); // return the next value made of 'num_bits' bits -uint32_t VP8GetValue(VP8BitReader* const br, int num_bits); -static WEBP_INLINE uint32_t VP8Get(VP8BitReader* const br) { - return VP8GetValue(br, 1); -} +uint32_t VP8GetValue(VP8BitReader* const br, int num_bits, const char label[]); // return the next value with sign-extension. -int32_t VP8GetSignedValue(VP8BitReader* const br, int num_bits); +int32_t VP8GetSignedValue(VP8BitReader* const br, int num_bits, + const char label[]); // bit_reader_inl.h will implement the following methods: -// static WEBP_INLINE int VP8GetBit(VP8BitReader* const br, int prob) -// static WEBP_INLINE int VP8GetSigned(VP8BitReader* const br, int v) +// static WEBP_INLINE int VP8GetBit(VP8BitReader* const br, int prob, ...) +// static WEBP_INLINE int VP8GetSigned(VP8BitReader* const br, int v, ...) // and should be included by the .c files that actually need them. // This is to avoid recompiling the whole library whenever this file is touched, // and also allowing platform-specific ad-hoc hacks. diff --git a/thirdparty/libwebp/src/utils/bit_writer_utils.c b/thirdparty/libwebp/src/utils/bit_writer_utils.c index 7f83b4c8a2..bef0e31ca5 100644 --- a/thirdparty/libwebp/src/utils/bit_writer_utils.c +++ b/thirdparty/libwebp/src/utils/bit_writer_utils.c @@ -70,7 +70,7 @@ static void Flush(VP8BitWriter* const bw) { const int value = (bits & 0x100) ? 0x00 : 0xff; for (; bw->run_ > 0; --bw->run_) bw->buf_[pos++] = value; } - bw->buf_[pos++] = bits; + bw->buf_[pos++] = bits & 0xff; bw->pos_ = pos; } else { bw->run_++; // delay writing of bytes 0xff, pending eventual carry. diff --git a/thirdparty/libwebp/src/utils/color_cache_utils.h b/thirdparty/libwebp/src/utils/color_cache_utils.h index 20b7be11c9..ec21d5199b 100644 --- a/thirdparty/libwebp/src/utils/color_cache_utils.h +++ b/thirdparty/libwebp/src/utils/color_cache_utils.h @@ -17,6 +17,7 @@ #include <assert.h> +#include "src/dsp/dsp.h" #include "src/webp/types.h" #ifdef __cplusplus @@ -30,10 +31,11 @@ typedef struct { int hash_bits_; } VP8LColorCache; -static const uint64_t kHashMul = 0x1e35a7bdull; +static const uint32_t kHashMul = 0x1e35a7bdu; -static WEBP_INLINE int VP8LHashPix(uint32_t argb, int shift) { - return (int)(((argb * kHashMul) & 0xffffffffu) >> shift); +static WEBP_UBSAN_IGNORE_UNSIGNED_OVERFLOW WEBP_INLINE +int VP8LHashPix(uint32_t argb, int shift) { + return (int)((argb * kHashMul) >> shift); } static WEBP_INLINE uint32_t VP8LColorCacheLookup( diff --git a/thirdparty/libwebp/src/utils/huffman_utils.c b/thirdparty/libwebp/src/utils/huffman_utils.c index 7a69963c3e..0cba0fbb7d 100644 --- a/thirdparty/libwebp/src/utils/huffman_utils.c +++ b/thirdparty/libwebp/src/utils/huffman_utils.c @@ -91,7 +91,8 @@ static int BuildHuffmanTable(HuffmanCode* const root_table, int root_bits, assert(code_lengths_size != 0); assert(code_lengths != NULL); - assert(root_table != NULL); + assert((root_table != NULL && sorted != NULL) || + (root_table == NULL && sorted == NULL)); assert(root_bits > 0); // Build histogram of code lengths. @@ -120,16 +121,22 @@ static int BuildHuffmanTable(HuffmanCode* const root_table, int root_bits, for (symbol = 0; symbol < code_lengths_size; ++symbol) { const int symbol_code_length = code_lengths[symbol]; if (code_lengths[symbol] > 0) { - sorted[offset[symbol_code_length]++] = symbol; + if (sorted != NULL) { + sorted[offset[symbol_code_length]++] = symbol; + } else { + offset[symbol_code_length]++; + } } } // Special case code with only one value. if (offset[MAX_ALLOWED_CODE_LENGTH] == 1) { - HuffmanCode code; - code.bits = 0; - code.value = (uint16_t)sorted[0]; - ReplicateValue(table, 1, total_size, code); + if (sorted != NULL) { + HuffmanCode code; + code.bits = 0; + code.value = (uint16_t)sorted[0]; + ReplicateValue(table, 1, total_size, code); + } return total_size; } @@ -151,6 +158,7 @@ static int BuildHuffmanTable(HuffmanCode* const root_table, int root_bits, if (num_open < 0) { return 0; } + if (root_table == NULL) continue; for (; count[len] > 0; --count[len]) { HuffmanCode code; code.bits = (uint8_t)len; @@ -169,6 +177,7 @@ static int BuildHuffmanTable(HuffmanCode* const root_table, int root_bits, if (num_open < 0) { return 0; } + if (root_table == NULL) continue; for (; count[len] > 0; --count[len]) { HuffmanCode code; if ((key & mask) != low) { @@ -206,7 +215,10 @@ int VP8LBuildHuffmanTable(HuffmanCode* const root_table, int root_bits, const int code_lengths[], int code_lengths_size) { int total_size; assert(code_lengths_size <= MAX_CODE_LENGTHS_SIZE); - if (code_lengths_size <= SORTED_SIZE_CUTOFF) { + if (root_table == NULL) { + total_size = BuildHuffmanTable(NULL, root_bits, + code_lengths, code_lengths_size, NULL); + } else if (code_lengths_size <= SORTED_SIZE_CUTOFF) { // use local stack-allocated array. uint16_t sorted[SORTED_SIZE_CUTOFF]; total_size = BuildHuffmanTable(root_table, root_bits, diff --git a/thirdparty/libwebp/src/utils/huffman_utils.h b/thirdparty/libwebp/src/utils/huffman_utils.h index ff7ef17f3b..13b7ad1ac4 100644 --- a/thirdparty/libwebp/src/utils/huffman_utils.h +++ b/thirdparty/libwebp/src/utils/huffman_utils.h @@ -78,6 +78,8 @@ void VP8LHtreeGroupsFree(HTreeGroup* const htree_groups); // the huffman table. // Returns built table size or 0 in case of error (invalid tree or // memory error). +// If root_table is NULL, it returns 0 if a lookup cannot be built, something +// > 0 otherwise (but not the table size). int VP8LBuildHuffmanTable(HuffmanCode* const root_table, int root_bits, const int code_lengths[], int code_lengths_size); diff --git a/thirdparty/libwebp/src/utils/rescaler_utils.c b/thirdparty/libwebp/src/utils/rescaler_utils.c index 90e2ea76a1..4bcae24af5 100644 --- a/thirdparty/libwebp/src/utils/rescaler_utils.c +++ b/thirdparty/libwebp/src/utils/rescaler_utils.c @@ -84,14 +84,14 @@ int WebPRescalerGetScaledDimensions(int src_width, int src_height, int height = *scaled_height; // if width is unspecified, scale original proportionally to height ratio. - if (width == 0) { + if (width == 0 && src_height > 0) { width = - (int)(((uint64_t)src_width * height + src_height / 2) / src_height); + (int)(((uint64_t)src_width * height + src_height - 1) / src_height); } // if height is unspecified, scale original proportionally to width ratio. - if (height == 0) { + if (height == 0 && src_width > 0) { height = - (int)(((uint64_t)src_height * width + src_width / 2) / src_width); + (int)(((uint64_t)src_height * width + src_width - 1) / src_width); } // Check if the overall dimensions still make sense. if (width <= 0 || height <= 0) { diff --git a/thirdparty/libwebp/src/utils/thread_utils.c b/thirdparty/libwebp/src/utils/thread_utils.c index 2052b6b006..438296b45f 100644 --- a/thirdparty/libwebp/src/utils/thread_utils.c +++ b/thirdparty/libwebp/src/utils/thread_utils.c @@ -217,8 +217,12 @@ static THREADFN ThreadLoop(void* ptr) { done = 1; } // signal to the main thread that we're done (for Sync()) - pthread_cond_signal(&impl->condition_); + // Note the associated mutex does not need to be held when signaling the + // condition. Unlocking the mutex first may improve performance in some + // implementations, avoiding the case where the waiting thread can't + // reacquire the mutex when woken. pthread_mutex_unlock(&impl->mutex_); + pthread_cond_signal(&impl->condition_); } return THREAD_RETURN(NULL); // Thread is finished } @@ -240,7 +244,13 @@ static void ChangeState(WebPWorker* const worker, WebPWorkerStatus new_status) { // assign new status and release the working thread if needed if (new_status != OK) { worker->status_ = new_status; + // Note the associated mutex does not need to be held when signaling the + // condition. Unlocking the mutex first may improve performance in some + // implementations, avoiding the case where the waiting thread can't + // reacquire the mutex when woken. + pthread_mutex_unlock(&impl->mutex_); pthread_cond_signal(&impl->condition_); + return; } } pthread_mutex_unlock(&impl->mutex_); diff --git a/thirdparty/libwebp/src/utils/utils.h b/thirdparty/libwebp/src/utils/utils.h index c7620f91ec..2a3ec92678 100644 --- a/thirdparty/libwebp/src/utils/utils.h +++ b/thirdparty/libwebp/src/utils/utils.h @@ -92,14 +92,14 @@ static WEBP_INLINE uint32_t GetLE32(const uint8_t* const data) { // Store 16, 24 or 32 bits in little-endian order. static WEBP_INLINE void PutLE16(uint8_t* const data, int val) { assert(val < (1 << 16)); - data[0] = (val >> 0); - data[1] = (val >> 8); + data[0] = (val >> 0) & 0xff; + data[1] = (val >> 8) & 0xff; } static WEBP_INLINE void PutLE24(uint8_t* const data, int val) { assert(val < (1 << 24)); PutLE16(data, val & 0xffff); - data[2] = (val >> 16); + data[2] = (val >> 16) & 0xff; } static WEBP_INLINE void PutLE32(uint8_t* const data, uint32_t val) { diff --git a/thirdparty/libwebp/src/webp/encode.h b/thirdparty/libwebp/src/webp/encode.h index 549cf07730..339f8810aa 100644 --- a/thirdparty/libwebp/src/webp/encode.h +++ b/thirdparty/libwebp/src/webp/encode.h @@ -62,6 +62,10 @@ WEBP_EXTERN size_t WebPEncodeBGRA(const uint8_t* bgra, // These functions are the equivalent of the above, but compressing in a // lossless manner. Files are usually larger than lossy format, but will // not suffer any compression loss. +// Note these functions, like the lossy versions, use the library's default +// settings. For lossless this means 'exact' is disabled. RGB values in +// transparent areas will be modified to improve compression. To avoid this, +// use WebPEncode() and set WebPConfig::exact to 1. WEBP_EXTERN size_t WebPEncodeLosslessRGB(const uint8_t* rgb, int width, int height, int stride, uint8_t** output); |